Generate the necessary certificates

Kubeadm 은 다양한 인증서를 생성하고, 관리한다. 
인증서는 Default 로 /etc/kubenetes/pki 에 저장된다. 

kubeadm generates certificate and private key pairs for different purposes. Certificates are stored by default in /etc/kubernetes/pki. This directory is configurable.

 

 - CA certificate (ca.crt) Private key (ca.key)

 - API Server certificate (apiserver.crt) ca.crt 를 사용하며, Private Key (apiserver.key)

ㄴ server certificate 는 (x509.ExtKeyUsageServerAuth) 방식이여야 함

ㄴ 아래의 항목에 대한 이름을 포함

ㄴㄴ kubernetes Service's 의 Cluster IP ( 젓번째 CIDR IP 가 10.96.0.1 이라면, Subnet 은 10.96.0.0/12 )

ㄴㄴ Kubernetes DNS names ( kubernetes.default.svc.cluster.local if --service-dns-domain is cluster.local, kubernetes.default.svc, kubernetes.default, kubernetes )

ㄴㄴ Node Name
ㄴㄴ --apiserver-advertise-address
ㄴㄴ 사용자가 추가 지정한 이름 (extra altnames)

 - 개인 키(apiser-kuberlet-client.key)로 CA로 ca.crt를 사용하여 kubelet에 안전하게 연결(apiser-kubelet-client.crt)하는 API 서버의 클라이언트 인증서. 인증서는 다음 사항을 충족해야 한다.

ㄴ client certificate (x509.ExtKeyUsageClientAuth)
ㄴ system:masters organization

 - ServiceAccount Tokens 에 signing 하기위한 Private key 는 sa.pub, Public Key 는 sa.pub

 - Front Proxy 를 위한 CA 는 front-proxy-ca.crt front-proxy-ca.key

 - front proxy client 를 위한 인증서는 key (front-proxy-client.crt, front-proxy-client.key) front-proxy-ca.crt는CA를사용해서생성한다.

 

유의사항
 - 기존의 인증서가 위의 내용과 동일한 파일로 존제한다면, 새로운 인증서를 생성하지 않고, 기존의 인증서를 사용할수 있다. 

 - CA 의 경우 다른 모든 인증서와 kubeconfig 파일이 이미 존제할때에 ca.crt 은 기존것을 사용할수 있지만, ca.key 파일은 기존것을 사용할수 없다. kubeadm은 이런경우 ExternalCA 를 자동으로 활성화하게 된다. 이는 "csrsignercontroller" 를 의미하며, "controller-manager" 가 시작되지 않는다. 

 - kubeadm 의 ExternalCA 모드로 실행되게 된다면, 인증서를 생성하지 않는다. 필요한 모든 인증서는 외부에서 제공이 되어야 한다. 
 - --dry-run 모드로 kubeadm 이 수행되는경우 인증서들은 임시 디렉토리에 기록되며, 저장된다. 
 - kubeadm 은 모든 인증서 생성을 kubeadm alpha phase 로 개별적으로 호출이 가능하다. 

 

+ Recent posts