이번 파트에선 클러스터를 생성하고, 파드를 배포하는 부분을 작성합니다.
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 |