기사 디렉토리
1. 100주년 kubeadm
1.1 소스코드 수정
- 소스 코드 다운로드
cd /usr/local/src/
git clone -b release-1.15 https://github.com/kubernetes/kubernetes.git
- 지점을 다시 확인하십시오.
cd kubernetes
git branch -a
- cert.go 수정
vim ./staging/src/k8s.io/client-go/util/cert/cert.go
NotBefore: now.UTC(),
#修改下边的10为100
NotAfter: now.Add(duration365d * 10).UTC(),
KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign,
BasicConstraintsValid: true,
IsCA:
- constants.go 수정
vim ./cmd/kubeadm/app/constants/constants.go
// CertificateValidity defines the validity for all the signed certificates generated by kubeadm
#将下边time.Hour * 100
CertificateValidity = time.Hour * 24 * 365
수정 사항은 다음과 같습니다.
vim ./cmd/kubeadm/app/constants/constants.go
// CertificateValidity defines the validity for all the signed certificates generated by kubeadm
CertificateValidity = time.Hour * 24 * 365 * 100
1.2 미러링 준비
docker pull mirrorgooglecontainers/kube-cross:v1.12.10-1
공식적으로 제공되는 컴파일된 이미지, 어쨌든 서버에 가져오기만 하면 됩니다.
1.3 컴파일
docker run --rm -it -v /usr/local/src/k8s.io/kubernetes:/go/src/k8s.io/kubernetes \
mirrorgooglecontainers/kube-cross:v1.12.10-1 bash
cd /go/src/k8s.io/kubernetes
make all WHAT=cmd/kubeadm GOFLAGS=-v
exit
1.4 완제품 백업
-
완제품 위치
컴파일된 완제품 위치: _output/local/bin/linux/amd64/kubeadm -
완제품 테스트
cp _output/local/bin/linux/amd64/kubeadm /usr/bin/
chmod a+x /usr/bin/kubeadm
kubeadm version
- 비용 절감이
ftp 서버에 업로드되었습니다. ftp://10.252.97.213/soft/kubeadm
2. 인증서 생성
2.1 마스터 마스터 노드
- 이전에 준비한 kubeadm을 서버에 복사
cd /usr/local/src
wget ftp://10.252.97.213/soft/kubeadm
- 원본 kubeadm 파일 교체
cp /usr/bin/kubeadm /usr/bin/kubeadm_back
cp /usr/local/src/kubeadm /usr/bin/kubeadm
chmod 755 /usr/bin/kubeadm
- 구성 파일 및 인증서 백업
cp -ra /etc/kubernetes /etc/kubernetes_back
- 인증서 만료 시간 보기
kubeadm alpha certs check-expiration
- 인증서 및 구성 파일 업데이트
kubeadm alpha certs renew all
- 인증서 만료 시간 확인
[root@AiK8sM2 ~]# kubeadm alpha certs check-expiration
CERTIFICATE EXPIRES RESIDUAL TIME EXTERNALLY MANAGED
admin.conf Apr 03, 2120 06:46 UTC 99y no
apiserver Apr 03, 2120 09:36 UTC 99y no
apiserver-etcd-client Apr 03, 2120 09:36 UTC 99y no
apiserver-kubelet-client Apr 03, 2120 09:36 UTC 99y no
controller-manager.conf Apr 03, 2120 09:36 UTC 99y no
etcd-healthcheck-client Apr 03, 2120 09:36 UTC 99y no
etcd-peer Apr 03, 2120 09:36 UTC 99y no
etcd-server Apr 03, 2120 09:36 UTC 99y no
front-proxy-client Apr 03, 2120 06:47 UTC 99y no
scheduler.conf Apr 03, 2120 09:36 UTC 99y no
- 도커 재시작
설명: 주로 프록시 및 etcd를 다시 시작합니다.
service docker restart
- kubelet 재시작
service kubelet restart
2.2 기타 마스터 노드
- 100년 간의 kubeadmin 파일 복사
- 이전에 준비한 kubeadm을 서버에 복사
cd /usr/local/src
wget ftp://10.252.97.213/soft/kubeadm
- 원본 kubeadm 파일 교체
cp /usr/bin/kubeadm /usr/bin/kubeadm_back
cp /usr/local/src/kubeadm /usr/bin/kubeadm
chmod 755 /usr/bin/kubeadm
- 구성 파일 및 인증서 백업
cp -ra /etc/kubernetes /etc/kubernetes_back
- 인증서 만료 시간 보기
kubeadm alpha certs check-expiration
- 인증서 및 구성 파일 업데이트
kubeadm alpha certs renew all
- 인증서 만료 시간 확인
[root@AiK8sM2 ~]# kubeadm alpha certs check-expiration
CERTIFICATE EXPIRES RESIDUAL TIME EXTERNALLY MANAGED
admin.conf Apr 03, 2120 06:46 UTC 99y no
apiserver Apr 03, 2120 09:36 UTC 99y no
apiserver-etcd-client Apr 03, 2120 09:36 UTC 99y no
apiserver-kubelet-client Apr 03, 2120 09:36 UTC 99y no
controller-manager.conf Apr 03, 2120 09:36 UTC 99y no
etcd-healthcheck-client Apr 03, 2120 09:36 UTC 99y no
etcd-peer Apr 03, 2120 09:36 UTC 99y no
etcd-server Apr 03, 2120 09:36 UTC 99y no
front-proxy-client Apr 03, 2120 06:47 UTC 99y no
scheduler.conf Apr 03, 2120 09:36 UTC 99y no
- master-01에서 인증서 파일 복사
master01에서 인증서 복사
ssh 10.251.137.187 "mkdir -p /etc/kubernetes/pki/etcd"
ssh 10.251.137.188 "mkdir -p /etc/kubernetes/pki/etcd"
scp -r /etc/kubernetes/admin.conf 10.251.137.187:/etc/kubernetes/admin.conf
scp -r /etc/kubernetes/admin.conf 10.251.137.188:/etc/kubernetes/admin.conf
scp -r /etc/kubernetes/pki/{
ca.*,sa.*,front*} 10.251.137.187:/etc/kubernetes/pki/
scp -r /etc/kubernetes/pki/{
ca.*,sa.*,front*} 10.251.137.188:/etc/kubernetes/pki/
scp -r /etc/kubernetes/pki/etcd/ca.* 10.251.137.187:/etc/kubernetes/pki/etcd/
scp -r /etc/kubernetes/pki/etcd/ca.* 10.251.137.188:/etc/kubernetes/pki/etcd/
- 도커 재시작
설명: 주로 프록시 및 etcd를 다시 시작합니다.
service docker restart
- kubelet 재시작
service kubelet restart