이 극단적 인 경우, 신중한 계획과 작업을 할 수, 그것은 클러스터가 완전히 죽은하지 않습니다. 첫째, 몇 CA 루트 인증서가 만료 안 10 년의 기간이다. 우리는 이러한 루트 인증서를 기반으로 할 수 있습니다, 사용할 수있는 인증의 구성 요소를 다시 생성합니다.
다음 프로그램 단계를 달성 할 수 조기, 첫 공식화, 확인해야합니다.
첫째, 기본 문서 생산 증명서.
CA-csr.json (루트 인증서 확인, 그래서이 파일하지만, 여기에 나와 있기 때문에, 지출하지 않음)
{ "CN": "는 Kubernetes" , "키" : { "너 한테": "RSA" , "크기"2048 }, "CA" : { "만료": "438000h" } }
(ca.crt 및 ca.key에서 새 자체 서명 된 루트 인증서를 생성하는 데 사용됩니다, 공유 할 수 있습니다) CA-config.json
{ "서명" : { "기본" : { "만료": "43800h" }, "프로필" : { "서버" : { "만료": "43800h" , "용도" : [ "서명" , "키 암호 용 " , "서버 인증 " ] }, "클라이언트 " : { "만료 ":"43800h " , "용도 " : [ " "서명 , "키 암호 용" , "클라이언트 인증" ] } "피어" { "만료": "43800h" , "용도" : "서명" , "키 암호 용" , "서버 인증" , "클라이언트 인증" ] } } } }
둘째,)이이 / etc /는 Kubernetes / PKI / etcd / CA 인증서 디렉토리 기준입니다 ((etcd 시리즈 인증서를 다시 생성
Etcd-server.json
{ "CN": "etcdServer" , "호스트" : [ "127.0.0.1" , "로컬 호스트" , "小写主机名" , "本机IP를" , "키" : { "너 한테": "RSA" , "크기"2048 }, "이름" [ { "O" "etcd" , "OU": "etcd 보안" , "C": "CN" , "L": "상하이" , "ST": "상하이" } ] }
cfssl gencert -ca = ca.crt -ca 키 = ca.key -config = CA-config.json -profile = 서버 etcd-server.json | cfssljson 풀린 서버
etcd-peer.json
{ "CN": "etcdPeer" , "호스트" : [ "127.0.0.1" , "로컬 호스트" , "小写主机名" , "本机IP를" , "키" : { "너 한테": "RSA" , "크기"2048 }, "이름" [ { "O" "etcd" , "OU": "etcd 보안" , "C": "CN" , "L": "상하이" , "ST ":"상하이 " } ] }
cfssl gencert -ca = ca.crt -ca 키 = ca.key -config = CA-config.json -profile = 피어 etcd-peer.json | cfssljson 풀린 피어
etcd-client.json
{ "CN": "etcdClient" , "키" : { "너 한테": "RSA" , "크기"2048 }, "이름" : [ { "O": "etcd" , "OU": "etcd 보안 " , "C ":"CN " , "L ":"상하이 " , "ST ":"상하이 " } ] }
cfssl gencert -ca = ca.crt -ca 키 = ca.key -config = CA-config.json의 -profile = 클라이언트 etcd - client.json | cfssljson 풀린 클라이언트
셋째, 다시 만들 (이는 PKI 디렉토리 아래의 / etc /는 Kubernetes / CA 인증서를 기반으로 참고) apiserver 인증서를
Apiserver.json
{ "CN": "KUBE-apiserver" , "호스트" : "는 Kubernetes" , "kubernetes.default" , "kubernetes.default.svc" , "kubernetes.default.svc.cluster.local" , "10.96.0.1 " , "小写主机名" , "本机IP를 " , "키 " : { "너 한테 ":"RSA " , "크기 "2048 } }
cfssl gencert -ca = ca.crt -ca 키 = ca.key -config = CA-config.json -profile = 서버 apiserver.json | cfssljson 풀린 apiserver
apiserver-kubelet-client.json
{ "CN": "KUBE-apiserver-kubelet 클라이언트" , "키" : { "너 한테": "RSA" , "크기"2048 }, "이름" : [ { "O": "시스템 : 마스터" } ] }
cfssl gencert -ca = ca.crt -ca 키 = ca.key -config = CA-config.json의 -profile = 클라이언트 apiserver - kubelet-client.json | cfssljson 풀린 apiserver-kubelet 클라이언트
셋째, 다시 생산 전면 프록시 인증서 (이는 PKI 디렉토리 아래의 / etc /는 Kubernetes / 전면 프록시-CA 인증서를 기반으로 참고, 그것은 반드시의 apiserver이 동일하지 CA, 인증 시퀀스 apiserver을 포함, 기억)
전면 프록시 client.json
{ "CN": "전면 프록시 클라이언트" , "키" : { "너 한테": "RSA" , "크기"2048 } }
cfssl gencert -ca = 전면 프록시-ca.crt의 -ca 키 = 전면 프록시 ca.key -config = CA-config.json의 -profile = 클라이언트 전면 프록시 client.json | cfssljson 풀린 전면 프록시 -고객
이 개념을 만료하지 않기 때문에 넷째,은 / etc /는 Kubernetes sa.key 경우 / PKI 디렉토리 아래, sa.pub이 존재, 당신은 업데이트 할 필요가 없습니다.
다섯째, 위의 서류 준비 후, 지금은 K8S 명령 규칙의 이름을 변경해야 할뿐만 아니라, 다른 디렉토리에 저장된 다른 파일에 따라.
여섯째, 이번에는 K8S 마스터 시작해야합니다. 다음으로, kubeconfig 수 있도록 문서, 참조 URL
https://www.cnblogs.com/netsa/p/8134000.html (부트 스트랩 구성 및 인증 kubelet)
https://www.cnblogs.com/charlieroro/p/8489515.html (구성 .kube / config 파일)
# 설정 클러스터 매개 변수 kubectl 설정 후 SET - 클러스터 클라이언트 인증 매개 변수 설정 # kubectl 설정 후 SET - 자격 증명 # 컨텍스트 매개 변수를 설정 한 후 SET 설정을 kubectl - 상황에 맞는 # 기본 컨텍스트 설정 kubectl 설정 사용 -context
세븐에 의해 이러한 문서를 잘 활용 한 후 , 위치 K8S 설치, 배포 파일를 다시 시작 kubelet를 클러스터 좋은를 다시 시작 할 수 있어야한다.