일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- journalctl
- 날짜변경
- mount
- vgcreate
- yum
- MSBing
- chatGPT
- HTTPD
- Kubernetes
- docker network
- newbingai
- ssh
- firewalld
- 엑셀파일명변경
- vagrant kubernetes
- ansible
- pvcreate
- permission
- 리다이렉션
- nmcli
- chmod
- swapon
- docker
- docker image
- 같은폴더
- lvcreate
- M365필터
- 프로세스
- 랜카드인식불량
- tar
- Today
- Total
becool
20210906 (월) kubeadm 설치 실습 본문
9:38
### 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>
'kubernetes' 카테고리의 다른 글
20210907 (화) request resource, limitrange (0) | 2021.09.07 |
---|---|
20210906 (월) deployment strategies, statefulset (0) | 2021.09.06 |
20210903 (금) deployment, deployment strategies (0) | 2021.09.03 |
20210903 (금) kubernetes application customizing (0) | 2021.09.03 |
20210902 (목) kubernetes Persistent Volume, 정적 동적 volume provisioning (0) | 2021.09.02 |