[Rancher2] 멀티 클러스터 생성

이번 파트에선 클러스터를 생성하고, 파드를 배포하는 부분을 작성합니다.

 

 

 

Add Cluster를 통해서, 노드들을 추가합니다.

실습에선 master+worker를 같이 수행하는 노드들을 3개를 만듭니다.(일반적으론 master, worker를 분리합니다.)

Add Cluster를 클릭 후 보면, 노드들을 추가할 수 있습니다.
(public cloud의 k8s 인스턴스들도 rancher를 통해서 관리가 가능합니다.)

 

 

 

 

 

생성한 VM 3대에 노드를 설치할 예정이므로, Existing nodes를 클릭합니다.

 

 

빨간 박스안에 내용들만 수정 후 진행을 해줍니다.(나머지는 Default값으로 진행합니다.)

나머지 옵션들은, rancher2 docs를 참고해주시기 바랍니다.

 

etcd,control plane, worker 세가지를 체크합니다.(일반적으로 master노드는 etcd,control plane역할을 진행하므로 두가지만 체크를 하고, 워커노드들만 추가시, worker만 체크하여 진행합니다.)

 

이제 2번 항목에 나온 CMD를 복사 후 각 VM1~3에 접속하여, 붙여넣기 및 실행을 해줍니다.

 

#VM1
[root@rancher2-test1 ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.5.16 --server https://##.##.###.### --token d2tb6tbt2rzxmhh8b5bj9x2bp28xr9hv6vplt97vqgkdbcrvhgshtv --ca-checksum ab2a21d03a2d1a4dd74a6d0620fb875820ca2ea0762809b8bbe2172cd96e3035 --etcd --controlplane --worker
Unable to find image 'rancher/rancher-agent:v2.5.16' locally
v2.5.16: Pulling from rancher/rancher-age

#VM2
[root@rancher2-test2 ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.5.16 --server https://##.##.###.### --token d2tb6tbt2rzxmhh8b5bj9x2bp28xr9hv6vplt97vqgkdbcrvhgshtv --ca-checksum ab2a21d03a2d1a4dd74a6d0620fb875820ca2ea0762809b8bbe2172cd96e3035 --etcd --controlplane --worker


#VM3
[root@rancher2-test3 ~]# sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.5.16 --server https://##.##.###.### --token d2tb6tbt2rzxmhh8b5bj9x2bp28xr9hv6vplt97vqgkdbcrvhgshtv --ca-checksum ab2a21d03a2d1a4dd74a6d0620fb875820ca2ea0762809b8bbe2172cd96e3035 --etcd --controlplane --worker
Unable to find image 'rancher/rancher-agent:v2.5.16' locally
v2.5.16: Pulling from rancher/rancher-agent




#실행 후 docker ps 로 컨테이너가 생성 및 구동된 상황을 살펴봅니다

[root@rancher2-test1 ~]# docker ps
CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS          PORTS                                                                      NAMES
67f445769928   rancher/rancher-agent:v2.5.16   "run.sh --server htt…"   57 seconds ago   Up 55 seconds                                                                              affectionate_pascal
202bc24834a1   rancher/rancher:v2.5.16         "entrypoint.sh"          7 minutes ago    Up 7 minutes    0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   gallant_wozniak



[root@rancher2-test2 ~]# docker ps
CONTAINER ID   IMAGE                                           COMMAND                  CREATED         STATUS              PORTS     NAMES
627322c0bcc6   rancher/mirrored-coreos-etcd:v3.4.15-rancher1   "/usr/local/bin/etcd…"   7 seconds ago   Up 4 seconds                  etcd
40bb06ecfc9a   rancher/rancher-agent:v2.5.16                   "run.sh --server htt…"   2 minutes ago   Up About a minute             goofy_varahamihira


[root@rancher2-test3 ~]# docker ps
CONTAINER ID   IMAGE                                           COMMAND                  CREATED          STATUS         PORTS     NAMES
d8830f84ca75   rancher/hyperkube:v1.20.15-rancher2             "/opt/rke-tools/entr…"   7 seconds ago    Up 6 seconds             kube-apiserver
7c911abe6c83   rancher/mirrored-coreos-etcd:v3.4.15-rancher1   "/usr/local/bin/etcd…"   12 seconds ago   Up 9 seconds             etcd
9b9e6ecf1dc3   rancher/rancher-agent:v2.5.16                   "run.sh --server htt…"   2 minutes ago    Up 2 minutes             silly_visvesvaraya



##각 vm에서 쿠버네티스 구동에 필요한 각 구성요소들이 컨테이너 형식으로 생성 및 구동되게됩니다.

[root@rancher2-test1 ~]# docker ps
CONTAINER ID   IMAGE                                           COMMAND                  CREATED          STATUS          PORTS                                                                      NAMES
a9818007bcab   rancher/mirrored-coredns-coredns                "/coredns -conf /etc…"   7 minutes ago    Up 7 minutes                                                                               k8s_coredns_coredns-b85b997d-mshxs_kube-system_7193ecd0-0054-4ef7-849d-e822cc07babd_0
2b9e1dcfd9aa   rancher/kube-api-auth                           "/bin/sh -c 'kube-ap…"   7 minutes ago    Up 7 minutes                                                                               k8s_kube-api-auth_kube-api-auth-7hj6h_cattle-system_c55ea422-3e07-4faa-b5cd-b42418f7aada_0
b2b5e435a4b7   rancher/mirrored-pause:3.6                      "/pause"                 7 minutes ago    Up 7 minutes                                                                               k8s_POD_coredns-b85b997d-mshxs_kube-system_7193ecd0-0054-4ef7-849d-e822cc07babd_0
26c7b1fea25b   rancher/mirrored-pause:3.6                      "/pause"                 7 minutes ago    Up 7 minutes                                                                               k8s_POD_kube-api-auth-7hj6h_cattle-system_c55ea422-3e07-4faa-b5cd-b42418f7aada_0
913ca99ca13a   rancher/mirrored-pause:3.6                      "/pause"                 7 minutes ago    Up 7 minutes                                                                               k8s_POD_nginx-ingress-controller-28kk5_ingress-nginx_22a52df0-8219-4035-afec-fbc70e45dcc4_0
143bc2d8c025   rancher/mirrored-calico-node                    "start_runit"            7 minutes ago    Up 7 minutes                                                                               k8s_calico-node_calico-node-pjl5b_kube-system_86f74440-a2a4-474d-887f-7da03a2bd39f_0
6be168405e3f   fd825fbb4fed                                    "run.sh"                 8 minutes ago    Up 8 minutes                                                                               k8s_agent_cattle-node-agent-zh4x6_cattle-system_d99af18f-1e4b-49a5-94fa-0435de8890b5_0
3fd24ad392b1   rancher/mirrored-pause:3.6                      "/pause"                 8 minutes ago    Up 8 minutes                                                                               k8s_POD_cattle-node-agent-zh4x6_cattle-system_d99af18f-1e4b-49a5-94fa-0435de8890b5_0
4f4a429e1bf8   rancher/mirrored-pause:3.6                      "/pause"                 8 minutes ago    Up 8 minutes                                                                               k8s_POD_calico-node-pjl5b_kube-system_86f74440-a2a4-474d-887f-7da03a2bd39f_0
e360569fc8e9   rancher/hyperkube:v1.20.15-rancher2             "/opt/rke-tools/entr…"   8 minutes ago    Up 8 minutes                                                                               kube-proxy
19e6f217e281   rancher/hyperkube:v1.20.15-rancher2             "/opt/rke-tools/entr…"   8 minutes ago    Up 8 minutes                                                                               kubelet
8473a197b3a9   rancher/hyperkube:v1.20.15-rancher2             "/opt/rke-tools/entr…"   8 minutes ago    Up 8 minutes                                                                               kube-scheduler
8674dacd5079   rancher/hyperkube:v1.20.15-rancher2             "/opt/rke-tools/entr…"   8 minutes ago    Up 8 minutes                                                                               kube-controller-manager
974a3ca1db9c   rancher/hyperkube:v1.20.15-rancher2             "/opt/rke-tools/entr…"   9 minutes ago    Up 9 minutes                                                                               kube-apiserver
bd3d142c4ba3   rancher/mirrored-coreos-etcd:v3.4.15-rancher1   "/usr/local/bin/etcd…"   10 minutes ago   Up 10 minutes                                                                              etcd
202bc24834a1   rancher/rancher:v2.5.16                         "entrypoint.sh"          22 minutes ago   Up 22 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   gallant_wozniak

 

 

Rancher 페이지를 통해서, 현재 각 노드들의 provisioning 상태를 볼 수 있습니다.

 

 

 

노드 생성이 완료되면 다음과 같이 활성화 상태로 확인됩니다.

 

 

 

 

 

이제 kubectl명령어로, 쿠버네티스 노드들을 확인할 수 있도록 config파일을 환경변수로 저장합니다.

 

kubectl 설치방법은 https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/

 

Install and Set Up kubectl on Linux

Before you begin You must use a kubectl version that is within one minor version difference of your cluster. For example, a v1.29 client can communicate with v1.28, v1.29, and v1.30 control planes. Using the latest compatible version of kubectl helps avoid

kubernetes.io

해당 링크를 참고합니다.

 

 

rancher 페이지에서, 생성된 클러스터 이름을 클릭하면, 다음과 같은 화면 확인이 가능합니다

 

 

빨간박스의 kubeconfig file을 클릭하면, yaml형태의 내용이 확인이 가능하고, 해당 내용을 전부 복사합니다.

 

 

 

복사 후 rancher가 설치된 vm에 들어가서 kube.conf (파일명은 임의로 생성해도 됩니다.) 파일을 만들고 안에 붙여넣기합니다.

 

만들어진 파일을 /root로 복사합니다. (cp kube.conf /root/)

 

[root@rancher2-test1 home]# cp kube.conf /root/
[root@rancher2-test1 home]# 

#다음 export를 통해 conf를 지정합니다.

export KUBECONFIG=/root/kube.conf
#/root/kube.conf에 만들어져 있으므로, 해당 경로로 지정합니다.
#해당 export는 로그인할때마다 설정해야 하므로, 좀더 편하게 사용하기 위해, /root/.bashrc에 내용을 넣어줍니다.

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
export KUBECONFIG=/root/kube.conf


#export 진행하 kubectl get nodes 명령어를 이용하면, 현재 rancher를 통해 구성된 k8s정보를 확인할 수 있습니다.
NAME             STATUS   ROLES                      AGE   VERSION
rancher2-test1   Ready    controlplane,etcd,worker   36m   v1.20.15
rancher2-test2   Ready    controlplane,etcd,worker   41m   v1.20.15
rancher2-test3   Ready    controlplane,etcd,worker   41m   v1.20.15

 

'Kubernetes > Rancher' 카테고리의 다른 글

[Rancher] 서비스 및 POD 생성  (0) 2024.01.07
[Rancher2] 설치 (docker 기반)  (0) 2024.01.03