Certified Kubernetes Administration - 80
2024-06-23
- Kubernetes
- Cloud
kubeadm 소개
-
kubeadm: Kubernetes 클러스터를 부트스트랩하는 도구로, 여러 노드 클러스터를 쉽게 설정 가능.
-
Kubernetes 클러스터 구성 요소: kube-apiserver, etcd, 컨트롤러 등.
-
보안 및 인증 요구 사항: 모든 구성 요소 간 통신을 위한 인증서 설정 등.
-
수동 설치의 어려움: 모든 구성 요소를 개별적으로 설치하고 구성 파일을 수정하는 것은 매우 번거롭다.
-
kubeadm의 장점: 모든 작업을 자동으로 처리하여 클러스터 설정을 간소화.
클러스터 설정 단계
-
여러 시스템 또는 VM 프로비저닝: Kubernetes 클러스터를 위해 물리적 또는 가상 머신을 준비.
-
마스터 및 워커 노드 지정: 하나의 노드를 마스터로 지정하고 나머지를 워커 노드로 설정.
-
컨테이너 런타임 설치: 모든 노드에 containerd 설치.
-
kubeadm 도구 설치: 모든 노드에 kubeadm 설치.
-
마스터 서버 초기화: 마스터 서버에 필요한 모든 구성 요소 설치 및 구성.
-
네트워크 사전 요구 사항 확인: 마스터와 워커 노드 간의 특수 네트워크 솔루션(POD Network) 설정.
-
워커 노드 클러스터에 추가: 워커 노드를 마스터 노드에 연결하여 클러스터에 추가.
-
애플리케이션 배포: Kubernetes 환경에 애플리케이션 배포.
데모: VMs 프로비저닝 및 클러스터 부트스트랩
-
VMs 프로비저닝
-
VirtualBox 및 Vagrant 설치: VirtualBox는 하이퍼바이저, Vagrant는 VM 자동화 도구.
-
Vagrant 파일 사용: Vagrant 파일을 통해 동일한 설정의 VM을 간단히 프로비저닝.
-
VM 생성:
vagrant up
명령으로 VM 생성 및 상태 확인(vagrant status
).
-
-
노드 접속
-
SSH 접속:
vagrant ssh <노드 이름>
명령으로 각 노드에 SSH 접속. -
노드 상태 확인:
uptime
명령 등으로 각 노드의 상태 확인.
-
-
컨테이너 런타임 설치
-
IPv4 포워딩 및 iptables 설정: 각 노드에서 네트워크 설정.
-
containerd 설치:
apt install containerd.io
명령으로 containerd 설치 및 Cgroup 드라이버 설정.
-
-
kubeadm, kubelet 및 kubectl 설치
- 설치 명령 실행:
apt install kubeadm kubelet kubectl
명령으로 설치.
- 설치 명령 실행:
-
마스터 노드 초기화
-
kubeadm init 명령 실행:
kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=<마스터 노드 IP>
명령으로 마스터 노드 초기화. -
관리자 구성 파일 복사:
mkdir -p $HOME/.kube
및cp /etc/kubernetes/admin.conf $HOME/.kube/config
명령으로 관리 구성 파일 설정.
-
-
Pod 네트워크 설정
-
Weave Net 설치:
kubectl apply -f https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')
명령으로 네트워크 애드온 설치. -
DaemonSet 설정 수정:
kubectl edit daemonset weave-net -n kube-system
명령으로 설정 수정.
-
-
워커 노드 클러스터에 추가
-
kubeadm join 명령 실행: 각 워커 노드에서
kubeadm join <마스터 노드 IP>:<포트> --token <토큰> --discovery-token-ca-cert-hash <해시>
명령 실행. -
노드 상태 확인:
kubectl get nodes
명령으로 노드 상태 확인.
-
-
애플리케이션 배포 및 확인
- nginx 배포: `kubectl
run nginx --image=nginx` 명령으로 nginx 배포.
-
Pod 상태 확인:
kubectl get pods
명령으로 배포된 Pod 상태 확인. -
Pod 삭제:
kubectl delete pod <pod 이름>
명령으로 Pod 삭제.
요약
-
kubeadm을 사용하면 Kubernetes 클러스터를 쉽게 부트스트랩할 수 있으며, 모든 구성 요소를 자동으로 설치하고 구성합니다.
-
VM 프로비저닝: VirtualBox와 Vagrant를 사용하여 동일한 설정의 여러 VM을 쉽게 프로비저닝.
-
컨테이너 런타임 설치: 각 노드에 containerd 설치 및 Cgroup 드라이버 설정.
-
클러스터 초기화: 마스터 노드 초기화 및 네트워크 설정 후 워커 노드 추가.
-
애플리케이션 배포 및 확인: 클러스터에 애플리케이션을 배포하고 상태를 확인하여 클러스터가 제대로 동작하는지 확인.
Certified ...
Certified ...