Certified Kubernetes Administrator (CKA) with Practice Tests (강의 링크, 레퍼런스 노트)
- 평소 강의 할인도 많이 하고, 연습문제도 풀어볼 수 있으니 실제 강의 수강을 추천
- 아래는 강의 내용 번역 및 정리본 (문제 시 댓글로 알려주세요)
Kubeadm 배포 단계
- kubeadm은 멀티 노드 클러스터 구성을 가능케 함
- 프로비져닝된 여러 개의 시스템 혹은 VM 필요 (노드)
- 마스터 노드와 워커 노드로 분리
- 모든 노드의 호스트에 컨테이너 런타임 설치
- 모든 노드에 kubeadm 도구 설치
- 마스터 노드 초기화 및 설정
- 마스터 노드와 워커 노드 전반에 걸친 POD 네트워크 설정
- 워커 노드를 마스터 노드에 조인시킴
Vagrant로 VM 프로비져닝
git clone https://github.com/kodekloudhub/certified-kubernetes-administrator-course
vagrant up
- Vagrant file에 나와있는 설정대로 VM들을 프로비져닝
vagrant status
vagrant ssh [노드명]
logout
Kubeadm으로 배포 (데모)
- 전체 과정 참고 링크
- 컨테이너 런타임 설치
- 해당 링크에서 Forward IPv4 and letting iptables see bridged traffic 부분을 모든 노드에서 실행
- 해당 링크 참고하여 모든 노드에 containerd 설치
- 해당 링크 참고하여 모든 노드에 cgroup driver 설치
- 컨테이너 런타임과 kubelet은 동일한 cgroup driver를 사용해야 함
- cgroupfs driver (기본), systemd cgroup driver
ps -p 1 활용해 어떤 드라이버 사용해야 하는지 알 수 있음
- containerd의 경우 systemd 사용하기 때문에 /etc/containerd/config.toml에서 기본 내용들 모두 지우고 링크 내 내용을 붙여넣기 및 재시작
- kubeadm, kubelet, kubectl 설치
- 링크 참고하여 모든 노드에 필요 사양들 설치
- 해당 링크의 Initializing your control-plane node 참고
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=[ip add로 확인한 ip]
- 클러스터 시작
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
- Pod 네트워크 설정
- 해당 링크 참고
- 예를 들어 weavenet 사용 시, 마스터 노드에 설치 명령어 실행
kubectl get daemonset(ds) -A && kubectl edit ds [ds명] -n kube-system
- IPALLOC_RANGE 등 환경설정 맞춰줘야 함 (yaml 파일 수정 필요)
- 워커 노드 조인시키기
- kubeadm init 명령어 사용했을 때 나왔던
kubeadm join ~ 명령어를 워커 노드에서 실행