본문 바로가기
IT Knowledge/Kubernetes

Kubernetes Cluster 구축(CentOS, CRI-O) Step.3

by Seok. 2021. 12. 15.
반응형

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로 구동중이다. 

반응형

댓글