Kubernetes Cluster 구축의 세번째 단계로,
이제 각 Node의 역할에 따라 마스터노드(Control-Plane) or 워커노드(Worker)로 구성해주면 됩니다.
구성환경
OS : CentOS 7
kubeadm, kubectl, kubelet : v1.22.3
컨테이너 런타임 : CRI-O
[Kubernetes Cluster 구성 Step]
1) 서버 OS 설정 (마스터, 워커 동일 작업) <링크>
2) Kubernetes 런타임 준비 (마스터, 워커 동일 작업) <링크>
3) 클러스터 구성 (마스터, 워커 별도 역할 구성 작업)
3) 클러스터 구성
마스터노드와 워커노드에 각자 역할에 맞는 설정을 해주시면 됩니다.
[Control-Plane]
Control-plane 노드 초기화
Kubernetes cluster를 시작하기 위해서 kubeadm init 명령어를 사용하여 control-plane노드를 초기화 합니다.
(Control-Plane 노드가 형성되면, 이를 마스터노드라고 부릅니다. )
sudo kubeadm init --apiserver-advertise-address=(마스터 노드 접속 가능한 IP) --pod-network-cidr=(클러스터 내부적으로 사용할 네트워크 대역)
Ex) sudo kubeadm init --apiserver-advertise-address=192.168.42.3 --pod-network-cidr=192.168.0.0/16 --cri-socket /var/run/crio/crio.sock
[옵션설명]
- Apiserver-advertise-address : 마스터 노드의 API Server 주소를 설정할 때 사용하는 옵션이다. 워커노드들이 이 API 주소로 Master Node와 통신한다.
- Pod-network-cidr : Pod 네트워크 대역 설정
- Control-plane-endpoint : 고가용성을 위해 마스터 노드를 다중으로 구성하였다면, 해당 옵션을 사용하여 모든 마스터 노드에 대한 공유 엔드포인트 설정
- cri-socket : 기본적으로 컨테이너 런타임 소켓을 자동으로 검색하여 등록하지만, 직접 명시해줄수 있다.(ex. 두개 이상의 컨테이너 런타임이 설치되어 있는 경우)
정상적으로 Control-Plane이 초기화된 경우
아래와 같은 문구를 볼 수 있습니다. .
Your Kubernetes control-plane has initialized successfully! To start using yout cluster, you need to run the following as a regular user: mkdir -p \$HOME/.kube sudo cp -i /etc/kubernetes/admin.conf \$HOME/.kube/config sudo chown \$(id -u):$(id -g) $HOME/.kube/config Then you can join any number of worker nodes by running the following on each as root: kubeadm join 172.31.0.100:6443 --token (TOKEN) --discovery-token-ca-cert-hash (DISCOVERY_HASH) |
가운데 3줄은 Control-Plane에서 실행해주고,
마지막 줄 kubeadm join 명령은 복사해서 Worker 노드에서 실행해주면 된다.
[Worker]
Control-Plane 초기화 과정에서 나온 Join 문을 가지고 마스터에 조인하면 됩니다.
# sudo kubeadm join (마스터 노드 접속 가능한 IP):6443 --token (TOKEN) --discovery-token-ca-cert-hash (DISCOVERY_HASH)
조인 완료
출처: <https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/>
최종확인
마스터노드에서 확인
Container runtime도 crio 확인
정상적으로 nodes가 확인되며, 컨테이너 런타임도 cri-o로 구동중이다.
'IT Knowledge > Kubernetes' 카테고리의 다른 글
컨테이너 런타임별 Proxy 설정방법(CRI-O, containerd) (0) | 2021.12.22 |
---|---|
Kubernetes CNI(Calico) 설치 방법 (0) | 2021.12.15 |
Kubernetes Cluster 구축(CentOS, CRI-O) Step.2 (0) | 2021.12.15 |
Kubernetes Cluster 구축(CentOS, CRI-O) Step.1 (0) | 2021.12.14 |
Kubernetes 물리서버 vs 가상서버 (0) | 2021.08.04 |
댓글