컴포넌트별 호출관계

image(2270).png

인증서 생성

kubeadm를 사용하여 클러스터를 생성하면 self signed 인증서가 자동 발급된다. (root CA 인증서와 각 서버 인증서, 클라이언트 인증서 생성) 다만, etcd의 경우는 전용으로 root CA를 만들고 따로 관리할 수 있도록 준비되어 다른 컴포넌트의 root CA와 구분된다.

인증서 파일위치

현재 (22.05) cluster-api aws-provider를 통해 배포되는 클러스터는 kubernetes관련 인증서를 /etc/kubernetes/pki에 생성한다. 앞에서 언급한 것 처럼 etcd용 root CA는 하부의 etcd/ 에 생성한다.

root@ip-10-0-172-41:/# ls -al /etc/kubernetes/pki
total 68
drwxr-xr-x 3 root root 4096 May 13 12:39 .
drwxr-xr-x 4 root root 4096 May 13 12:39 ..
-rw-r--r-- 1 root root 1159 May 13 12:39 apiserver-etcd-client.crt
-rw------- 1 root root 1679 May 13 12:39 apiserver-etcd-client.key
-rw-r--r-- 1 root root 1164 May 13 12:39 apiserver-kubelet-client.crt
-rw------- 1 root root 1679 May 13 12:39 apiserver-kubelet-client.key
-rw-r--r-- 1 root root 1432 May 13 12:39 apiserver.crt
-rw------- 1 root root 1675 May 13 12:39 apiserver.key
-rw-r----- 1 root root 1070 May 13 12:38 ca.crt
-rw------- 1 root root 1675 May 13 12:38 ca.key
drwxr-xr-x 2 root root 4096 May 13 12:39 etcd
-rw-r----- 1 root root 1070 May 13 12:38 front-proxy-ca.crt
-rw------- 1 root root 1679 May 13 12:38 front-proxy-ca.key
-rw-r--r-- 1 root root 1115 May 13 12:39 front-proxy-client.crt
-rw------- 1 root root 1679 May 13 12:39 front-proxy-client.key
-rw------- 1 root root 1679 May 13 12:38 sa.key
-rw-r----- 1 root root  451 May 13 12:38 sa.pub
root@ip-10-0-172-41:/etc# ls --color=auto --color=auto -al /etc/kubernetes/pki/etcd/
total 40
drwxr-xr-x 2 root root 4096 May 13 12:39 .
drwxr-xr-x 3 root root 4096 May 13 12:39 ..
-rw-r----- 1 root root 1070 May 13 12:38 ca.crt
-rw------- 1 root root 1679 May 13 12:38 ca.key
-rw-r--r-- 1 root root 1164 May 13 12:39 healthcheck-client.crt
-rw------- 1 root root 1679 May 13 12:39 healthcheck-client.key
-rw-r--r-- 1 root root 1306 May 13 12:39 peer.crt
-rw------- 1 root root 1675 May 13 12:39 peer.key
-rw-r--r-- 1 root root 1306 May 13 12:39 server.crt
-rw------- 1 root root 1675 May 13 12:39 server.key

인증서 활용 (설정)

첫번째 보여준 다이어그램에서 보면 6가지의 통신이 필요한데 각 통신들의 보안통신을 위한 설정 혹은 인증서는 다음과 같이 사용된다.

root@ip-10-0-172-41:/# ls -al /etc/kubernetes
total 44
drwxr-xr-x   4 root root 4096 May 13 12:39 .
drwxr-xr-x 100 root root 4096 May 18 10:42 ..
-rw-------   1 root root 5652 May 13 12:39 admin.conf
-rw-------   1 root root 5635 May 13 12:39 controller-manager.conf
-rw-------   1 root root 2136 May 13 12:40 kubelet.conf
drwxr-xr-x   2 root root 4096 May 13 12:39 manifests
drwxr-xr-x   3 root root 4096 May 13 12:39 pki
-rw-------   1 root root 5579 May 13 12:39 scheduler.conf