728x90
Kubernetes 실습 :: Virtual Machine에서 Kubernetes 설치 (3) node 서버 생성
<master와 node 생성>
1. master 서버 호스트 이름 지정
ubuntu@ubuntu:~$ sudo hostnamectl set-hostname k8s-master
ubuntu@ubuntu:~$ sudo vi /etc/hosts
<vi 편집 내용>
127.0.0.1 localhost
127.0.1.1 k8s-master
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.56.100 k8s-master
192.168.56.101 k8s-node1
192.168.56.102 k8s-node2
192.168.56.103 k8s-node3
2. node 1~3 생성
- 버추얼 박스 복제 기능을 이용 (완전한 복제)
- MAC 주소 정책: 모든 네트워크 어댑터의 새 MAC 주소 생성 선택
3. node IP 변경
A. node1 (192.168.56.101)
ubuntu@ubuntu:~$ sudo hostnamectl set-hostname k8s-node1
ubuntu@ubuntu:~$ sudo vi /etc/hosts
<ip a로 IP 변경 확인>
B. node2 (192.168.56.102)
ubuntu@ubuntu:~$ sudo hostnamectl set-hostname k8s-node2
ubuntu@ubuntu:~$ sudo vi /etc/hosts
<ip a로 IP 변경 확인>
C. node3 (192.168.56.103)
ubuntu@ubuntu:~$ sudo hostnamectl set-hostname k8s-node3
ubuntu@ubuntu:~$ sudo vi /etc/hosts
<ip a로 IP 변경 확인>
4. master - node(1~3) 간 ssh 연결
- k8s-master 서버에서 k8s-node 1~3 ssh 연결
ubuntu@k8s-master:~$ ssh ubuntu@k8s-node1
ubuntu@k8s-master:~$ ssh ubuntu@k8s-node2
ubuntu@k8s-master:~$ ssh ubuntu@k8s-node3
- k8s-node 1~3에서 k8s-master 연결
ubuntu@k8s-node1:~$ ssh ubuntu@k8s-master
5. 쿠버네티스 클러스터 구성
명령은 Kubernetes 클러스터를 구성하기 위해 필요한 이미지를 미리 내려받는 작업
ubuntu@k8s-master:~$ sudo kubeadm config images pull
ubuntu@k8s-master:~$ sudo swapoff -a
ubuntu@k8s-master:~$ sudo free
total used free shared buff/cache available
Mem: 4001000 1011296 1068328 14252 1921376 2742624
**Swap: 0 0 0
>> swap이 모두 0인지 확인해야 함**
ubuntu@k8s-master:~$ sudo systemctl stop kubelet
ubuntu@k8s-master:~$ sudo rm -rf /var/lib/etcd/*
ubuntu@k8s-master:~$ sudo rm -rf /etc/kubernstes/manifests/
ubuntu@k8s-master:~$ sudo kubeadm reset
ubuntu@k8s-master:~$ sudo kubeadm init --pod-network-cidr=10.96.0.0/12 --apiserver-advertise-address=192.168.56.100
>> Kubernetes 컨트롤 플레인 노드를 초기화하는 명령어
<클러스터 구성 확인>
토큰 저장:
kubeadm join 192.168.56.100:6443 --token mxmi8f.e4q20ddh2xcuax81 \\
--discovery-token-ca-cert-hash sha256:df2b759375f568a72beaac4a5064f510fc145efb01a844769d4c2770c23ff824
6. ~/.kube/config 파일(Kubernetes 클러스터에 접속하기 위해 사용) 권한 변경
ubuntu@k8s-master:~$ ls -al 했을 때, .kube가 없기 때문에 생성해야 함
ubuntu@k8s-master:~$ mkdir .kube
ubuntu@k8s-master:~$ ls -al
total 40
drwxr-x--- 19 ubuntu ubuntu 4096 2월 15 14:50 .
drwxr-xr-x 3 root root 20 2월 14 15:27 ..
-rw------- 1 ubuntu ubuntu 2438 2월 15 12:36 .bash_history
-rw-r--r-- 1 ubuntu ubuntu 220 2월 14 15:27 .bash_logout
-rw-r--r-- 1 ubuntu ubuntu 3771 2월 14 15:27 .bashrc
drwx------ 10 ubuntu ubuntu 4096 2월 14 15:57 .cache
drwx------ 11 ubuntu ubuntu 4096 2월 14 15:50 .config
drwxr-xr-x 2 ubuntu ubuntu 6 2월 14 15:47 Desktop
drwxr-xr-x 2 ubuntu ubuntu 6 2월 14 15:47 Documents
drwxr-xr-x 2 ubuntu ubuntu 6 2월 14 15:47 Downloads
drwx------ 2 ubuntu ubuntu 44 2월 14 15:50 .gnupg
**drwxrwxr-x 2 ubuntu ubuntu 6 2월 15 14:50 .kube**
drwx------ 3 ubuntu ubuntu 19 2월 14 15:47 .local
ubuntu@k8s-master:~$ sudo cp -i /etc/kubernetes/admin.conf ~/.kube/config
ubuntu@k8s-master:~$ sudo chown $(id -u):$(id -g) ~/.kube/config
ubuntu@k8s-master:~$ ls -al .kube/
total 12
drwxrwxr-x 2 ubuntu ubuntu 20 2월 15 14:52 .
drwxr-x--- 19 ubuntu ubuntu 4096 2월 15 14:50 ..
-rw------- 1 ubuntu ubuntu 5646 2월 15 14:52 config
7. kubernetes 자동 완성 설정
ubuntu@k8s-master:~$ source <(kubectl completion bash)
ubuntu@k8s-master:~$ echo "source <(kubectl completion bash)" >> ~/.bashrc
ubuntu@k8s-master:~$ complete -F start_kubectl k
ubuntu@k8s-master:~$ vi .bashrc
ubuntu@k8s-master:~$ source .bashrc
8. 프로세스 확인
ubuntu@k8s-master:~$ sudo netstat -nltp | grep LISTEN
ubuntu@k8s-master:~$ kubectl get nodes
ubuntu@k8s-master:~$ kubectl get pods -A