becool

20210906 (월) kubeadm 설치 실습 본문

kubernetes

20210906 (월) kubeadm 설치 실습

gusalstm 2021. 9. 6. 11:54
반응형

9:38

Vagrantfile
0.00MB

 


### 1. VM 삭제 (vagrant destory)
PS C:\Users\hi> cd .\kube\
PS C:\Users\hi\kube> vagrant global-status
id       name          provider   state   directory
------------------------------------------------------------------------------
e43a286  kube-control1 virtualbox running C:/Users/hi/kube
23a1e45  kube-node1    virtualbox running C:/Users/hi/kube
e523be5  kube-node2    virtualbox running C:/Users/hi/kube
47a369d  kube-node3    virtualbox running C:/Users/hi/kube
PS C:\Users\hi\kube> vagrant box list
centos/8           (virtualbox, 2011.0)
hashicorp/bionic64 (virtualbox, 1.0.282)
ubuntu/focal64     (virtualbox, 20210816.0.0)
PS C:\Users\hi\kube> vagrant destroy e43a286 23a1e45 e523be5 47a369d

### 2. Vagrantfile 에 한줄 추가
PS C:\Users\hi\kube> notepad .\Vagrantfile
   config.vm.box_version = "20210816"

### 3. vagrant up & VM 접속
PS C:\Users\hi\kube> vagrant up
PS C:\Users\hi\kube> vagrant status
Current machine states:

kube-control1             running (virtualbox)
kube-node1                running (virtualbox)
kube-node2                running (virtualbox)
kube-node3                running (virtualbox)

This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.
PS C:\Users\hi\kube> vagrant ssh kube-control1

### 4. ssh 접속을 위한 control plane, nodes 설정 변경 (각 노드들에서 모두 실행)
vagrant@kube-control1:~$ sudo -i
root@kube-control1:~# vim /etc/ssh/sshd_config
 PubkeyAuthentication yes  (#defult no 에서 변경)
root@kube-control1:~# systemctl restart ssh.service
root@kube-control1:~# ssh kube-node1

vagrant@kube-node1:~$ sudo -i
root@kube-node1:~# vim /etc/ssh/sshd_config
root@kube-node1:~# systemctl restart ssh
root@kube-node1:~# ssh vagrant@kube-node2

vagrant@kube-node2:~$ sudo -i
root@kube-node2:~# vim /etc/ssh/sshd_config
root@kube-node2:~# systemctl restart ssh
root@kube-node2:~# ssh vagrant@kube-node3

vagrant@kube-node3:~$ sudo -i
root@kube-node3:~# vim /etc/ssh/sshd_config
root@kube-node3:~# systemctl restart ssh
root@kube-node3:~# exit

### 5. docker CE 설치 (각 노드들에서 모두 실행)

vagrant@kube-node2:~$ sudo apt-get update
vagrant@kube-node2:~$  sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -y
vagrant@kube-node2:~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
vagrant@kube-node2:~$ echo \
> "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
> $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
vagrant@kube-node2:~$ cat /etc/apt/sources.list.d/docker.list
deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu focal stable
vagrant@kube-node2:~$  sudo apt-get update
vagrant@kube-node2:~$ sudo apt-get install docker-ce docker-ce-cli containerd.io -y

### 6. kubeadm, kubelet, kubectl 설치 / 버전 지정 및 고정 (각 노드들에서 모두 실행)

vagrant@kube-control1:~$ sudo curl -fssL https://packages.cloud.google.com/apt/doc/apt-key.gpg -o /usr/share/keyrings/kubernetes-archive-keyring.gpg
vagrant@kube-control1:~$ echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main
vagrant@kube-control1:~$ cat /etc/apt/sources.list.d/kubernetes.list
deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main
vagrant@kube-control1:~$ sudo apt-get update
vagrant@kube-control1:~$ sudo apt-get install -y kubelet=1.19.11-00 kubeadm=1.19.11-00 kubectl=1.19.11-00
vagrant@kube-control1:~$ sudo apt-mark hold kubelet kubeadm kubectl

### 7. kubernetes Control Plane 초기화 (contorl plane만 실행) 및 calico project 설치

vagrant@kube-control1:~$ sudo kubeadm init --control-plane-endpoint 192.168.200.11 --pod-network-cidr 192.168.0.0/16 --apiserver-advertise-address 192.168.200.11
# 결과값 : kubeadm join 192.168.200.11:6443 --token 51xzkp.h9a3j4odhw4vcgu0 \
    --discovery-token-ca-cert-hash sha256:93c37d244edc5c5b9a663e512e5f81abe1bd527250ffec0c196c6ddf0b5f367d
# (설치순서 8. 에서) 각 노드들에 결과값 입력

vagrant@kube-control1:~$ pwd
/home/vagrant
vagrant@kube-control1:~$ ls
vagrant@kube-control1:~$ mkdir -p ~/.kube
vagrant@kube-control1:~$ sudo cp -i /etc/kubernetes/admin.conf ~/.kube/config
vagrant@kube-control1:~$ sudo chown vagrant:vagrant ~/.kube/config
vagrant@kube-control1:~$ ls .kube/
config
vagrant@kube-control1:~$ ls -l .kube/
total 8
-rw------- 1 vagrant vagrant 5570 Sep  6 02:26 config
vagrant@kube-control1:~$ kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

### 8. 노드들을 가입 (각 노드들에서 실행)
vagrant@kube-node3:~$ sudo -i
root@kube-node3:~# kubeadm join 192.168.200.11:6443 --token 51xzkp.h9a3j4odhw4vcgu0 \
> --discovery-token-ca-cert-hash sha256:93c37d244edc5c5b9a663e512e5f81abe1bd527250ffec0c196c6ddf0b5f367d


### 9. 노드 확인 
vagrant@kube-control1:~$ kubectl get nodes
NAME            STATUS     ROLES    AGE     VERSION
kube-control1   Ready      master   6m36s   v1.19.11
kube-node1      NotReady   <none>   10s     v1.19.11
kube-node2      NotReady   <none>   16s     v1.19.11
kube-node3      NotReady   <none>   43s     v1.19.11

### 10. replicaset 생성 시 각각의 노드에 생성되는지 확인
NAME                                    READY   STATUS              RESTARTS   AGE   IP       NODE         NOMINATED NODE   READINESS GATES
photoview-deployment-58696dd9b7-8v2mx   0/1     ContainerCreating   0          33s   <none>   kube-node1   <none>           <none>
photoview-deployment-58696dd9b7-95fhz   0/1     ContainerCreating   0          33s   <none>   kube-node3   <none>           <none>
photoview-deployment-58696dd9b7-969z9   0/1     ContainerCreating   0          33s   <none>   kube-node3   <none>           <none>
photoview-deployment-58696dd9b7-qdnkk   0/1     ContainerCreating   0          33s   <none>   kube-node1   <none>           <none>
photoview-deployment-58696dd9b7-zcgr5   0/1     ContainerCreating   0          33s   <none>   kube-node2   <none>           <none>

 

 

728x90
Comments