서버 구축 내역 정리
시스템을 무작정 구축해보았는데요. 그럼 내가 무엇을 설치 한것인지 확인 해 볼필요가 있겠죠. 기본적인 명령어 에서부터 내 서버에각각 어떤것이 설치되었는지 확인해 보겠습니다.
기존에 계획되어 있던 Kubernetes의 시스템 구조는 1기의 Deploy, 3기의 Control-Plane, 2기의 Worker입니다. 네트워크는 2개 External과 Internal로 구성되어 있고, Kubernetes의 관리 및 운영은 Deploy를 통해서 운영하고 웹 및 외부 연동을 위한 외부 연동은 Ingress를 통한 Worker에 구성되어 있습니다. Playce Kube를 구축하면서 설정했던 부분은 이정도 인거 같은데요. 설정한 설정들 부터 확인해 보도록 하겠습니다.
*Bastion서버로 이용되는 Deploy Node에서 kubectl명령어로 확인이 가능합니다.
Node정보를 확인하는 명령어는 kubectl get nodes로 구축된 Kubernetes의 운영되고 있는 서버와 그 서버의 정상 운영여부를 확인 할 수 있습니다. 옵션인 wide를 사용할 경우, 조금더 자세한 운영정보를 알 수 있습니다.
### Node 정보
# node 정보 확인
kubectl get nodes
NAME STATUS ROLES AGE VERSION
playcekube-master01 Ready control-plane,master 2d23h v1.22.8
playcekube-master02 Ready control-plane,master 2d23h v1.22.8
playcekube-master03 Ready control-plane,master 2d23h v1.22.8
playcekube-worker01 Ready ingress 2d23h v1.22.8
playcekube-worker02 Ready ingress 2d23h v1.22.8
# node 정보 자세히
kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
playcekube-master01 Ready control-plane,master 2d23h v1.22.8 10.0.0.21 <none> Ubuntu 22.04.1 LTS 5.15.0-57-generic containerd://1.5.8
playcekube-master02 Ready control-plane,master 2d23h v1.22.8 10.0.0.22 <none> Ubuntu 22.04.1 LTS 5.15.0-57-generic containerd://1.5.8
playcekube-master03 Ready control-plane,master 2d23h v1.22.8 10.0.0.23 <none> Ubuntu 22.04.1 LTS 5.15.0-57-generic containerd://1.5.8
playcekube-worker01 Ready ingress 2d23h v1.22.8 10.0.0.31 <none> Ubuntu 22.04.1 LTS 5.15.0-57-generic containerd://1.5.8
playcekube-worker02 Ready ingress 2d23h v1.22.8 10.0.0.32 <none> Ubuntu 22.04.1 LTS 5.15.0-57-generic containerd://1.5.8
wide옵션이 없을 경우에는 심플하게 노드의 이름과 상태 그리고 버전등을 표시 하고 있습니다. wide 옵션을 사용하게 되면 kuberntes의 네트워크(INTERNAL_IP)를 알 수 있고 각 서버의 OS 정보들과 Container runtime의 버전정보까지 보이게 됩니다. 이중에 중요한 것은 Kubernetes의 상태와 구축된 Kubernetes의 버전 정보입니다. 상태는 모두 Ready로 정상이군요.Kubernetes는 v1.22.8버전이 설치 되었고, Node들의 OS는 Ubuntu 22.04.1이네요. Kubernetes가 운영하게될 Container Runtime은 containerd 1.5.8이 되겠습니다. 이렇게 버전 정보를 알게되었지만 kubectl의 버전도 서버와 맞는지 확인을 해봐야 합니다. kubectl version 명령어를 통하면 확인이 가능합니다.
### Kubernetes 설치 버전 확인
# kubectl version 정보
kubectl version
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.8", GitCommit:"7061dbbf75f9f82e8ab21f9be7e8ffcaae8e0d44", GitTreeState:"clean", BuildDate:"2022-03-16T14:10:06Z", GoVersion:"go1.16.15", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.8", GitCommit:"7061dbbf75f9f82e8ab21f9be7e8ffcaae8e0d44", GitTreeState:"clean", BuildDate:"2022-03-16T14:04:34Z", GoVersion:"go1.16.15", Compiler:"gc", Platform:"linux/amd64"}
당연하겠지만 kubectl의 Client와 Server모두 1.22.8로 구성되어있음을 확인 할 수 있습니다.
만약 kubernetes의 Status가 Ready상태가 아니거나 Node가 계왹한대로 보이지 않는다면 설치도중 문제가 있었던 것으로 판단하고, 처음부터 다시 구성을 고려해야 합니다. 대부분 서버 구성을 조금 다르게 했거나 Network 설정에서 이슈가 있을경우 정상 설치가 되지 않으므로 다시한번 처음부터 확인하여 재구성을 하면 되겠습니다.
그럼 Playce Kube가 구축해준 Kubernetes는 어떻게 구성되어 있는지 확인해보겠습니다. 사용하게 될 명령어는 여러개가 될텐데요. 처음으로 확인하게 될 명령어는 Kubernetes에서 제일 많이 사용하는 명령어 입니다. kubectl get pod 그리고 kubectl get all 입니다.
### Kubernetes 정보 확인
# pod 정보 확인
kubectl get pod
No resources found in default namespace.
# all 정보 확인
kubectl get all
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.233.0.1 <none> 443/TCP 2d23h
kubectl get pod와 kubectl get all명령어는 현재 namespace의 운영되고 있는 pod의 정보 그리고 pod와 관련된 모든 정보를 보여줍니다. 구축된 정보를 보게 되면 이상하게도 service 하나만 보이는데요. kubectl get pod의 리턴값의 정보처럼 default namespace에는 pod가 구축되어 있지 않기 때문입니다.
kubernetes는 정상적으로 운영되는 것 처럼 보이는데 kubernetes가 사용하는 pod들은 어디에 있을까요? kubernetes의 namespace정보를 확인해보겠습니다.
### Namespace 정보
# Namespace 정보 확인
kubectl get namespaces
NAME STATUS AGE
cattle-impersonation-system Active 2d23h
cattle-system Active 2d23h
default Active 2d23h
kube-node-lease Active 2d23h
kube-public Active 2d23h
kube-system Active 2d23h
local Active 2d23h
playcekube Active 2d23h
playcekube-dev Active 2d23h
kubectl get namespaces 명령어로 확인해 보니 9개의 namespace가 표시됩니다. 기본으로 지정되어 있는 default 를 비롯해 kube- 로 시작하는 kube-node-lease, kube-public, kube-system이 유력해보이네요. -n, --namespace 옵션을 적용해 한번 확인해보겠습니다.
### kube-node-local namespace 확인
# Pod 정보 확인
kubectl -n kube-node-lease get pod
No resources found in kube-node-lease namespace.
# all 정보 확인
kubectl -n kube-node-lease get all
No resources found in kube-node-lease namespace.
kube-node-lease namespcae는 Node Heart bit 와 관련이 있는것 같습니다. 하지만 사용하지는 않네요.
*참고: kube-node-lease
### kube-public namespace 확인
# Pod 정보 확인
kubectl -n kube-public get pod
No resources found in kube-public namespace.
# all 정보 확인
kubectl -n kube-public get all
No resources found in kube-public namespace.
kube-public namespace또한 다른 정보가 없습니다. 하지만 이름을 통해 공개되어 있는 namespace임을 알 수 있는데요. 모든 사용자가 읽기 권한으로 접근 가능합니다.
### kube-system Namespace 확인
# Pod 정보 확인
kubectl -n kube-system get pod
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-b8d4d8984-82xn7 1/1 Running 0 3d
calico-node-8qf8n 1/1 Running 0 3d
calico-node-92vqx 1/1 Running 0 3d
calico-node-l42l9 1/1 Running 0 3d
calico-node-sn89s 1/1 Running 0 3d
calico-node-zx9z6 1/1 Running 0 3d
coredns-66fcfddbbd-q74d5 1/1 Running 0 3d
coredns-66fcfddbbd-s6gzd 1/1 Running 0 3d
dns-autoscaler-cf845685b-kgvb8 1/1 Running 0 3d
etcd-playcekube-master01 1/1 Running 0 3d
etcd-playcekube-master02 1/1 Running 0 3d
etcd-playcekube-master03 1/1 Running 0 3d
kube-apiserver-playcekube-master01 1/1 Running 0 3d
kube-apiserver-playcekube-master02 1/1 Running 1 (3d ago) 3d
kube-apiserver-playcekube-master03 1/1 Running 1 (3d ago) 3d
kube-controller-manager-playcekube-master01 1/1 Running 8 (13h ago) 3d
kube-controller-manager-playcekube-master02 1/1 Running 4 (22h ago) 3d
kube-controller-manager-playcekube-master03 1/1 Running 6 (151m ago) 3d
kube-proxy-49fkr 1/1 Running 0 3d
kube-proxy-92htk 1/1 Running 0 3d
kube-proxy-f4tw7 1/1 Running 0 3d
kube-proxy-rgh8j 1/1 Running 0 3d
kube-proxy-s6gk2 1/1 Running 0 3d
kube-scheduler-playcekube-master01 1/1 Running 7 (13h ago) 3d
kube-scheduler-playcekube-master02 1/1 Running 6 (15h ago) 3d
kube-scheduler-playcekube-master03 1/1 Running 5 (151m ago) 3d
metrics-server-7855bfbc9b-9q4k5 1/1 Running 0 3d
nginx-proxy-playcekube-worker01 1/1 Running 0 3d
nginx-proxy-playcekube-worker02 1/1 Running 0 3d
드디어 많은 정보가 나오기 시작합니다. Pod는 크게 Calico, CoreDNS, dns-autoscaler, etcd, api, coltroller-manager, proxy, scheduler, metrics-server, nginx-proxy 가 보입니다.
### kube-system namespace 정보 확인
# all 정보 확인
kubectl -n kube-system get all
NAME READY STATUS RESTARTS AGE
pod/calico-kube-controllers-b8d4d8984-82xn7 1/1 Running 0 3d
pod/calico-node-8qf8n 1/1 Running 0 3d
pod/calico-node-92vqx 1/1 Running 0 3d
pod/calico-node-l42l9 1/1 Running 0 3d
pod/calico-node-sn89s 1/1 Running 0 3d
pod/calico-node-zx9z6 1/1 Running 0 3d
pod/coredns-66fcfddbbd-q74d5 1/1 Running 0 3d
pod/coredns-66fcfddbbd-s6gzd 1/1 Running 0 3d
pod/dns-autoscaler-cf845685b-kgvb8 1/1 Running 0 3d
pod/etcd-playcekube-master01 1/1 Running 0 3d
pod/etcd-playcekube-master02 1/1 Running 0 3d
pod/etcd-playcekube-master03 1/1 Running 0 3d
pod/kube-apiserver-playcekube-master01 1/1 Running 0 3d
pod/kube-apiserver-playcekube-master02 1/1 Running 1 (3d ago) 3d
pod/kube-apiserver-playcekube-master03 1/1 Running 1 (3d ago) 3d
pod/kube-controller-manager-playcekube-master01 1/1 Running 8 (13h ago) 3d
pod/kube-controller-manager-playcekube-master02 1/1 Running 4 (22h ago) 3d
pod/kube-controller-manager-playcekube-master03 1/1 Running 6 (152m ago) 3d
pod/kube-proxy-49fkr 1/1 Running 0 3d
pod/kube-proxy-92htk 1/1 Running 0 3d
pod/kube-proxy-f4tw7 1/1 Running 0 3d
pod/kube-proxy-rgh8j 1/1 Running 0 3d
pod/kube-proxy-s6gk2 1/1 Running 0 3d
pod/kube-scheduler-playcekube-master01 1/1 Running 7 (13h ago) 3d
pod/kube-scheduler-playcekube-master02 1/1 Running 6 (15h ago) 3d
pod/kube-scheduler-playcekube-master03 1/1 Running 5 (152m ago) 3d
pod/metrics-server-7855bfbc9b-9q4k5 1/1 Running 0 3d
pod/nginx-proxy-playcekube-worker01 1/1 Running 0 3d
pod/nginx-proxy-playcekube-worker02 1/1 Running 0 3d
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/coredns ClusterIP 10.233.0.3 <none> 53/UDP,53/TCP,9153/TCP 3d
service/metrics-server ClusterIP 10.233.22.239 <none> 443/TCP 3d
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/calico-node 5 5 5 5 5 kubernetes.io/os=linux 3d
daemonset.apps/kube-proxy 5 5 5 5 5 kubernetes.io/os=linux 3d
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/calico-kube-controllers 1/1 1 1 3d
deployment.apps/coredns 2/2 2 2 3d
deployment.apps/dns-autoscaler 1/1 1 1 3d
deployment.apps/metrics-server 1/1 1 1 3d
NAME DESIRED CURRENT READY AGE
replicaset.apps/calico-kube-controllers-b8d4d8984 1 1 1 3d
replicaset.apps/coredns-66fcfddbbd 2 2 2 3d
replicaset.apps/dns-autoscaler-cf845685b 1 1 1 3d
replicaset.apps/metrics-server-7855bfbc9b 1 1 1 3d
생각지도 못한 deployment와 replicaset이 생기고, daemonset과 service도 생성이 되어 있네요. 비슷한 이름으로 묶여있는것으로 봐서는 개별로 연결되어 있는것으로 보입니다.
deployment는 replicaset을 생성하고, replicaset은 pod를 생성합니다. 그렇다면, deployment의 calico-kube-controllers 는 replicaset으로 연결되어 있겠군요. 그런데 -b8d4d8984 이렇게 무언가 다른것이 추가로 붙어 있습니다. kubernetes는 자신이 생성한 하위에는 임의의 명칭이 생성되기 때문인데요 그럼 한번 생성된 replicaset의 추가 이름뒤에 pod는 또다시 임의의 명칭이 생성되는지 보겠습니다. 예상과 맞으셨나 모르겠습니다만 calico-kube-controllers-b8d4d8984-82xn7 이렇게 추가로 -82xn7이 붙어있습니다. 이걸 역으로 따라가면 pod를 어떤 메소드가 생성했는지를 알 수 있다는 거네요. 그럼 다른 pod로 어떻게 생성된 것인지 확인해 보겠습니다. calico kube controllers의 아래를 보면 calico node가 5개 생성되어 있네요. calico-node-8qf8n, calico-node-92vqx, calico-node-l42l9, calico-node-sn89s, calico-node-zx9z6 이렇게 이름이 되어 네요. 그럼 뒤의 문자를 제거하면 calico-node만 남습니다. calico-node를 보게 되면 모든 노드에 1개씩 구성이 되는 daemonset에 있습니다. 그럼 service는 무엇일까요. 이름으로 보면 coredns와 metrics-server를 보여주고 있습니다. 정보에 port가 있는것을 보니 Pod들이 외부로 노출 시키는 역할을 하는것으로 보입니다. 간단하게 daemonset, deployment, replicaset, service를 우리는 벌서 경험하게 된거네요. 위 내역을 요약하자면 다음과 같습니다.
1. daemonset: 모든 node에 pod를 1개이상 생성, 관리 합니다.
2. deployment: 원하는 숫자만큼의 pod를 생성하도록 replicaset을 생성합니다.
3. replicaset: deployment가 지정한 만큼의 pod를 생성하도록 지속적으로 시도 합니다.
4. service: 구성되어 있는 Pod를 외부에 port맵핑으로 노출합니다.
그럼 kube-system이라는 namespace에 운영되고 있는 pod들은 어떤것인지 확인해보겠습니다. 우선 calico-kube-controllers, calico-node, coredns, dns-autoscaler, etcd, kube-apiserver, kube-controller-manager, kube-proxy, kube-scheduler, metrics-server, nginx-proxy 이렇게 많은 pod들이 있네요. 간단하게 보면 다음과 같습니다.
Name | 역할 |
calico-kube-controllers | Calico의 Controller역할, Calico 정보를 이용해 Calico-node의 정보를 구성합니다. |
calico-node | Pod간 통신 역할을 하는 Calico Network 입니다. 노드마다 생성되어 Pod간 네트워크 정보를 관리 합니다. |
coredns | Kubernetes간에 사용되는 사설 DNS입니다. Service 이름등을 이용한 DNS를 제공합니다. Ex: servicename.namespace.svc.cluster.local |
dns-autoscaler | 사용하는 Node의 규모와 성능에 따라 DNS를 확장 및 축소 합니다. |
etcd | kubeapi를 통해 저장소로 이용되는 key: value 형식의 DB입니다. |
kube-apiserver | Kubernetes 필수 구성요소 입니다. API를 제공하여, kubernetes를 운영합니다. |
kube-controller-manager | Kubernetes 필수 구성요소 입니다. API에서 확인된 정보를 이용해 kubernetes를 운영합니다. |
kube-proxy | 각 노드에 설치되어 Kubernetes의 네트워크를 IPVS, iptables를 이용하여 컨트롤 합니다. |
kube-scheduler | Kubernetes 필수 구성요소 입니다. 각 노드의 성능 및 Pod의 성능을 확인하여 관리 합니다. |
metrics-server | Kubernetes의 사용 성능을 기록하고 저장합니다. |
nginx-proxy | Nginx를 이용하여 Kubrnetes의 웹 접근을 컨트롤 합니다. |
상당히 많은 항목입니다만, Kubernetes를 소개할때처럼 대형 인프라에 필수적인 요소들이 kube-system에 존재 한다는것을 알 수 있습니다.
그럼 playcekube, playcekube-dev로 되어 있는 namespace를 확인해보겠습니다.
### playcekube namespace 정보 확인
# pod 정보 확인
kubectl get pod -n playcekube
NAME READY STATUS RESTARTS AGE
csi-nfs-controller-6f796f9bc9-z4slw 3/3 Running 33 (8h ago) 5d23h
csi-nfs-node-25z8k 3/3 Running 0 5d23h
csi-nfs-node-4mk8d 3/3 Running 0 5d23h
csi-nfs-node-6lhhm 3/3 Running 0 5d23h
csi-nfs-node-jghps 3/3 Running 0 5d23h
csi-nfs-node-mlqg9 3/3 Running 0 5d23h
ingress-nginx-controller-dmgwr 1/1 Running 0 5d23h
ingress-nginx-controller-qv92f 1/1 Running 0 5d23h
# all 정보 확인
kubectl get all -n playcekube
NAME READY STATUS RESTARTS AGE
pod/csi-nfs-controller-6f796f9bc9-z4slw 3/3 Running 33 (8h ago) 5d23h
pod/csi-nfs-node-25z8k 3/3 Running 0 5d23h
pod/csi-nfs-node-4mk8d 3/3 Running 0 5d23h
pod/csi-nfs-node-6lhhm 3/3 Running 0 5d23h
pod/csi-nfs-node-jghps 3/3 Running 0 5d23h
pod/csi-nfs-node-mlqg9 3/3 Running 0 5d23h
pod/ingress-nginx-controller-dmgwr 1/1 Running 0 5d23h
pod/ingress-nginx-controller-qv92f 1/1 Running 0 5d23h
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/ingress-nginx-controller-admission ClusterIP 10.233.63.123 <none> 443/TCP 5d23h
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/csi-nfs-node 5 5 5 5 5 kubernetes.io/os=linux 5d23h
daemonset.apps/ingress-nginx-controller 2 2 2 2 2 kubernetes.io/os=linux,node-role.kubernetes.io/ingress= 5d23h
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/csi-nfs-controller 1/1 1 1 5d23h
NAME DESIRED CURRENT READY AGE
replicaset.apps/csi-nfs-controller-6f796f9bc9 1 1 1 5d23h
playcekube의 namespace는 kube-system의 namespace에 포함되지 않는 시스템적인 pod들이 구성되어 있습니다. 대표적으로 CSI와 Ingress가 포함되어 있네요. CSI는 Pod에서 사용할수 있는 공유스토리지를 연결해주는 역할을 하고, Ingress는 외부에서 내부로 접근하게 되는 서비스들의 Domain분기를 지원하는 역할을 합니다.
playcekube-dev로 되어있는 Namespace는 아쉽게도 비어있습니다. 다른 Addon들이 사용하거나, 개발 목적으로 생성되어 있는 Namespace로 보이네요
### playcekube-dev namespace 정보 확인
# pod 정보 확인
kubectl get pod -n playcekube-dev
No resources found in playcekube-dev namespace.
# all 정보 확인
kubectl get all -n playcekube-dev
No resources found in playcekube-dev namespace.
kubectl로 확인 가능한 정보는 얼추 본거 같은데요. Pod가 사용하게 되는 config라던지 Service Account정보등은 나중에 확인해 보도록 하고, 실제 서버에 구성되어 있는 내역을 확인해 보도록 하겠습니다.
Deploy Node는 구축을 위한 데이터 저장소와 kubespray를 운영하는 서버입니다. 추가로 Playce Kube에서는 Bastion서버로도 운영한다는것을 우리는 kubectl 명령어를 사용하면서 알 수 있었죠. 하지만 구성요소들이 containerd가 아닌 단독으로 운영되는 docker로 구성이 되어 있다는게 특이점 이라고 볼 수 있겠습니다.
### Deploy Node 정보
root@deploy:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7567a7498f23 rancher/rancher:v2.6.6 "entrypoint.sh" 6 days ago Up 8 hours 0.0.0.0:8080->80/tcp, :::8080->80/tcp, 0.0.0.0:8443->443/tcp, :::8443->443/tcp playcekube_rancher
d9b74e1b2ff7 quay.io/keycloak/keycloak:18.0.2 "/opt/keycloak/bin/k…" 6 days ago Up 6 days 8080/tcp, 8443/tcp, 0.0.0.0:9443->9443/tcp, :::9443->9443/tcp playcecloud_keycloak
eef1c27bc9db itsthenetwork/nfs-server-alpine:12 "/usr/bin/nfsd.sh" 6 days ago Up 6 days 0.0.0.0:2049->2049/tcp, :::2049->2049/tcp playcecloud_nfs
0526d61891e0 nginx:1.20.2 "/docker-entrypoint.…" 6 days ago Up 6 days 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp playcecloud_repository
07da61e60e76 ubuntu/bind9:9.16-21.10_edge "docker-entrypoint.sh" 6 days ago Up 5 days 0.0.0.0:53->53/tcp, 0.0.0.0:53->53/udp, :::53->53/tcp, :::53->53/udp, 953/tcp playcecloud_bind9
ad90e7c1e75c registry:2.7.1 "/entrypoint.sh /etc…" 6 days ago Up 6 days 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp playcecloud_registry
생각보다 많은 요소를 포함하고 있다는 것을 알 수 있습니다. 특이한것은 rancher가 있는 것으로 보아 멀티클러스터를 지원하는 것 같고, NFS 서버를 테스트 용으로 지원하고 있습니다.
repository를 구성했던 만큼 디스크 용량을 얼마나 사용하고 있는지 보면 장시간 다운로드 받았던 파일들이 있는 /playcecloud 경로가 많이 쓰이고 있다는 것을 알 수 있습니다. 일반적인 서비스였다면 증설이 필요할 것 같네요.
*참고: /playcecloud/srcdata 의 경로에 tar로 받았던 파일들이 유지되고 있습니다. 이 파일들을 삭제하면 약 200GB의 정도용량확보에 도움이 됩니다.
### Disk 정보 확인
root@deploy:~# df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 795M 1.7M 794M 1% /run
/dev/vda1 49G 11G 39G 21% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/vda15 105M 5.3M 100M 5% /boot/efi
/dev/vdb1 492G 432G 35G 93% /playcecloud
tmpfs 795M 4.0K 795M 1% /run/user/0
overlay 49G 11G 39G 21% /var/lib/docker/overlay2/19d06c81882bc388d19edfbd36c15b6d3311fff27fdd2b1a4b53650c5b1e99f4/merged
overlay 49G 11G 39G 21% /var/lib/docker/overlay2/dc02b76ef64b13631902d1b497b1a2ba6187523eee1967c91ed9858a68255f10/merged
overlay 49G 11G 39G 21% /var/lib/docker/overlay2/78c54bead6ad76e5fddaa2d51894150b978aa0cbc81d08267887422e735f76b6/merged
overlay 49G 11G 39G 21% /var/lib/docker/overlay2/d6fc98e4d11cebef0091a59e681d9752ed7b22b38b4696261617f8fe0ff24bd1/merged
overlay 49G 11G 39G 21% /var/lib/docker/overlay2/c7515f1126ef2421747f731c5bdb77160d31a3e210786f05b0ba987006e919b0/merged
overlay 49G 11G 39G 21% /var/lib/docker/overlay2/72a0dc096f197f6ca7f2ab9dd0aa1a35657f50db2a07155b3f2ccf955ee028ca/merged
그럼 빠르게 Control-Plane의 내용도 확인해보겠습니다. containerd를 확인하는 명령어는 crictl 로 확인이 가능합니다. 위에서 확인했던대로 Control-Plane은 kube-system namespace의 요소들을 모두 포함하고 있습니다.
### Control-Plane-01 정보 확인
# containerd ps 정보 확인
crictl ps
CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID
369a693ab7de3 398b2c18375df 10 hours ago Running kube-scheduler 20 1aab72357ac30
e50ec238ec29a 41ff053508988 34 hours ago Running kube-controller-manager 20 dd83283e6f7aa
d0dc0600c35d0 c0d565df2c900 37 hours ago Running kube-apiserver 2 01934052bf476
14190bf4eec2d b1d3401f372c2 6 days ago Running nfs 0 e8b29c1140e41
e22d16051acc1 cb03930a2bd42 6 days ago Running node-driver-registrar 0 e8b29c1140e41
f127dd196b06a 8b6940b4f6952 6 days ago Running liveness-probe 0 e8b29c1140e41
62447711b0cde e57a417f15d36 6 days ago Running metrics-server 0 8facebe695cac
b6f7d425e7721 6570786a0fd3b 6 days ago Running calico-node 0 de30bb688a626
9a8e9c20b7494 c1cfbd59f7747 6 days ago Running kube-proxy 0 fa1f559dd5f91
ee14eba4493fb a7908fd5fb88f 6 days ago Running etcd 0 7e57247780421
# Containerd pod 정보 확인
crictl pods
POD ID CREATED STATE NAME NAMESPACE ATTEMPT RUNTIME
e8b29c1140e41 6 days ago Ready csi-nfs-node-4mk8d playcekube 0 (default)
8facebe695cac 6 days ago Ready metrics-server-7855bfbc9b-9q4k5 kube-system 0 (default)
de30bb688a626 6 days ago Ready calico-node-l42l9 kube-system 0 (default)
fa1f559dd5f91 6 days ago Ready kube-proxy-s6gk2 kube-system 0 (default)
1aab72357ac30 6 days ago Ready kube-scheduler-playcekube-master01 kube-system 0 (default)
dd83283e6f7aa 6 days ago Ready kube-controller-manager-playcekube-master01 kube-system 0 (default)
7e57247780421 6 days ago Ready etcd-playcekube-master01 kube-system 0 (default)
01934052bf476 6 days ago Ready kube-apiserver-playcekube-master01 kube-system 0 (default)
이때 pods 와 ps가 다른데요 Pod는 여러개의 container를 운영 할 수 있기때문입니다.
그럼 worker 도 확인 해보겠습니다. Control-Plane과 비슷하지만 조금더 많은 Pod들이 있습니다. Add-On이 설치 되지 않은 상태에서는 시스템 Pod만 주로 보이네요.
### Worker 정보 확인
# worker-01 ps 정보 확인
crictl ps
CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID
0d3ac553daebb b09d97dcb88ca 38 hours ago Running cluster-register 3 042076ed8c944
f487ec54c29da b1d3401f372c2 6 days ago Running nfs 0 85f7988b36800
382c0b857ff3b cb03930a2bd42 6 days ago Running node-driver-registrar 0 85f7988b36800
69b9f3bc41efd 8b6940b4f6952 6 days ago Running liveness-probe 0 85f7988b36800
16cc7c1cb26d5 75bdf78d9d67e 6 days ago Running controller 0 dedeb13decd85
f719f07f5364c 6570786a0fd3b 6 days ago Running calico-node 0 54028fc8823fc
f97e742413e55 c1cfbd59f7747 6 days ago Running kube-proxy 0 309e9b086ae5c
7f42a03760ab9 f6987c8d6ed59 6 days ago Running nginx-proxy 0 6601a072ea24d
# worker-01 pods 정보 확인
crictl pods
POD ID CREATED STATE NAME NAMESPACE ATTEMPT RUNTIME
042076ed8c944 6 days ago Ready cattle-cluster-agent-679697c475-9l4p6 cattle-system 0 (default)
85f7988b36800 6 days ago Ready csi-nfs-node-6lhhm playcekube 0 (default)
dedeb13decd85 6 days ago Ready ingress-nginx-controller-qv92f playcekube 0 (default)
54028fc8823fc 6 days ago Ready calico-node-sn89s kube-system 0 (default)
309e9b086ae5c 6 days ago Ready kube-proxy-f4tw7 kube-system 0 (default)
6601a072ea24d 6 days ago Ready nginx-proxy-playcekube-worker01 kube-system 0 (default)
# worker-02 ps 정보 확인
crictl ps
CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID
85aeae11e6dbd c3dfb4b04796b 9 hours ago Running csi-provisioner 33 68d488cc24638
78d1933b51250 b09d97dcb88ca 38 hours ago Running cluster-register 7 b911ead17f162
8a5fc8e725e13 fcd3512f2a7c5 38 hours ago Running calico-kube-controllers 3 8ff382c5ec525
2d15381361ee7 b1d3401f372c2 6 days ago Running nfs 0 0cecd714e61cc
f5c566f0a1e1b b1d3401f372c2 6 days ago Running nfs 0 68d488cc24638
10bf2a84630d5 cb03930a2bd42 6 days ago Running node-driver-registrar 0 0cecd714e61cc
b18acf5fd4212 8b6940b4f6952 6 days ago Running liveness-probe 0 68d488cc24638
0b82df77896d0 8b6940b4f6952 6 days ago Running liveness-probe 0 0cecd714e61cc
0b287b6e0f8ca 75bdf78d9d67e 6 days ago Running controller 0 71f65d4505ebd
1ed9fc4386e0c 6570786a0fd3b 6 days ago Running calico-node 0 6e61ec8a17ca4
8d6292edc0786 c1cfbd59f7747 6 days ago Running kube-proxy 0 c2856944ccd08
be9807e476ac2 f6987c8d6ed59 6 days ago Running nginx-proxy 0 84407c564f2d4
# worker-02 pods 정보 확인
POD ID CREATED STATE NAME NAMESPACE ATTEMPT RUNTIME
b911ead17f162 6 days ago Ready cattle-cluster-agent-679697c475-q5s4d cattle-system 0 (default)
0cecd714e61cc 6 days ago Ready csi-nfs-node-25z8k playcekube 0 (default)
68d488cc24638 6 days ago Ready csi-nfs-controller-6f796f9bc9-z4slw playcekube 0 (default)
71f65d4505ebd 6 days ago Ready ingress-nginx-controller-dmgwr playcekube 0 (default)
8ff382c5ec525 6 days ago Ready calico-kube-controllers-b8d4d8984-82xn7 kube-system 0 (default)
6e61ec8a17ca4 6 days ago Ready calico-node-zx9z6 kube-system 0 (default)
c2856944ccd08 6 days ago Ready kube-proxy-rgh8j kube-system 0 (default)
84407c564f2d4 6 days ago Ready nginx-proxy-playcekube-worker02 kube-system 0 (default)
이렇게 간단하게 구성된 Playce Kube를 확인해 봤습니다. Kubernetes를 쉽게 설치 할 수는 있지만 아직 알아보고 확인해 볼게 많은것 같습니다. 그럼 구성가능한 Add-On을 이용하여 실제 어플리케이션들을 설치하고 운영준비를 해보도록 하겠습니다.
'kubernetes' 카테고리의 다른 글
Playce Kube - CNI(Calico) (0) | 2023.06.26 |
---|---|
Playce Kube - 서버 준비 (0) | 2023.02.21 |
Playce Kube - System Design (0) | 2023.01.14 |
Playce Kube - 설치 (0) | 2023.01.14 |
Playce Kube - 구조 (0) | 2022.08.29 |