kubernetes PKI 인증서

bo-yoon·2022년 1월 11일
1

kubernetes

목록 보기
10/10

https://kubernetes.io/ko/docs/setup/best-practices/certificates/

쿠버네티스는 TLS 인증을 위해서 PKI 인증서가 필요하다

kuberadm 으로 설치한다면 전부 인증서를 자동으로 설치된다.



주요 파일 위치 ⭐️

  • kube-api-server의 certificate file : /etc/kubernetes/pki/apiserver.crt
  • kube-apiserver의 ETCD Client certificate file : /etc/kubernetes/pki/apiserver-etcd-client.crt
  • kubeapi-server의 kubelet client key : /etc/kubernetes/pki/apiserver-kubelet-client.key

와 같이 대부분의 인증서의 위치는 /etc/kubernetes/pki 이다



root@controlplane:/etc/kubernetes/pki# ls
apiserver-etcd-client.crt     apiserver.key       front-proxy-ca.key
apiserver-etcd-client.key     ca.crt              front-proxy-client.crt
apiserver-kubelet-client.crt  ca.key              front-proxy-client.key
apiserver-kubelet-client.key  etcd(디렉토리임)       sa.key
apiserver.crt                 front-proxy-ca.crt  sa.pub

관리에 의해 제어 되는 [단일 루트 ca] 를 만들 수 있다.

루트 CA 란?
: 일반적으로 인증서는 최상위 Root 인증서, Intermediate(중간 인증서), Leaf(서버 인증서, SSL 인증서) 로 구성되어 인증서 체인(certificate chain) 을 구성한다. 인증서 체인은 하위 인증서인 서버 인증서로 시작하여 ROOT 인증서로 끝나며, 우리가 알고 있는 SSL 인증서는 서버 인증서이다. 여기서 루트 CA 인증서는 CA 자체에서 서명한 인증서로 우리가 알고 있는 https 의 TLS 인증을 할때 사용하는 ca의 인증서이다.

따라서 여기서 단일 루트 인증서란 쿠버네티스 오브젝트를 생성할때 사용하는 최상위 인증서이다.

이런 인증서는 다음과 같이 있다.

경로기본 CN설명
ca.crt,keykubernetes-ca쿠버네티스 일반 CA
etcd/ca.crt,keyetcd-ca모든 etcd 관련 기능을 위해서
front-proxy-ca.crt,keykubernetes-front-proxy-cafront-end proxy 위해서

또한 ETCD 의 인증서는 다른 곳에서 관리한다.

  • ETCD server Certificate file : /etc/kubernetes/pki/etcd/server.crt
root@controlplane: /etc/kubernetes/pki/etcd# ls
ca.crt  healthcheck-client.crt  peer.crt  server.crt
ca.key  healthcheck-client.key  peer.key  server.key


ETCD 의 CA 루트 인증서의 위치는 다음 과같다.
  • ETCD server CA Root Certificate file : /etc/kubernetes/pki/etcd/ca.crt

  • 인증서 내용 보기

openssl x509 -in file- ./apiserver.crt -text 
  • kube-system static pod 경로 : /etc/kubernetes/manifests
root@controlplane:/etc/kubernetes/manifests# ls
etcd.yaml            kube-controller-manager.yaml
kube-apiserver.yaml  kube-scheduler.yaml
profile
개발 로그 🍎 🍎 🍎

0개의 댓글