CKA 공부 18일차

TLS in Kubernetes

  • 쿠버네티스 내의 모든 노드간의 통신은 Secure 해야한다.

  • 당연히 kube-apiserver로 들어오는 요청과 마스터 노드 내부 컴포넌트간의 통신도 Secure 해야한다.

  • k8s의 서버 컴포넌트들이 갖는 인증서와 key는 다음과 같다.

    • kube-apiserver는 apiserver.crt, apiserver.key
    • ETCD Server는 ectdserver.crt, etcdserver.ky
    • Kubelet Server는 kubelet.crt, kubelet.key
  • k8s의 클라이언트 컴포넌트들이 갖는 인증서와 key는 다음과 같다.

    • kubectl 명령을 사용하는 ADMIN(유저)가 사용하는 admin.crt, admin.key
    • Kube-Scheduler가 사용하는 scheduler.crt, scheduler.key
    • Kube-controller-manager가 사용하는 controller-manager.crt, controller-manager.key
    • Kube-proxy가 사용하는 kube-proxy.crt, kube-proxy.key

TLS in Kuberenetes - Certificate Creation

  • 우리는 OPENSSL을 사용해 직접 CA Certificate를 만들어보자.

  • 키 생성 :openssl genrsa -out ca.key 2048 -> ca.key 생성

  • Certificate Siging 요청 openssl req -new -key ca.key -subj "/CN=KUBERNETES-CA" -out ca.csr -> ca.csr

  • Sign Certificate : openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt -> ca.crt (인증서)

View Certificate Details

  • kubeadm을 사용하면 손쉽게 클러스터 설치와 설정이 가능하다.

  • kubeadm을 사용해 설치하면 각종 CA가 설정값에 잡혀있는 것을 볼 수 있다.

  • /etc/kubernetes/manifests/kube-apiserver.yaml을 보면 해당 CA 파일의 위치를 알 수 있다.

  • 그리고 openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text -noout으로 인증서 내용도 볼 수 있다.





© 2022. by minkuk

Powered by minkuk