我正在使用kubeadm构建k8s集群,默认的ssl证书将在1年内使用。我计划使用cfssl或opensll生成新的证书,使用10年。有人能帮我吗?谢谢大家
hivapdat1#
您可以使用cfssl或openssl生成证书并存储在目录中,并在Kubeadm init中指定该目录,kubeadm将不会生成证书并使用提供的证书。
kubeadm init --cert-dir
字符串https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#custom-certificatesKubeadm还提供证书更新机制,可将证书更新1年。
kubeadm alpha certs renew
型由于您有一个正在运行的集群,它签署的证书有效期为1年,您可以将kube控制器管理器的默认证书签署期限更改为10年。
--experimental-cluster-signing-duration duration Default: 8760h0m0s
型完成后,您可以使用以下指南签署证书,有效期为10年。https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#renew-certificates-with-the-kubernetes-certificates-api
yrefmtwq2#
将Kubernetes证书续订10年(不推荐)。x1c 0d1x的数据
第一个月
mkdir -p $HOME/fcik8s-old-certs/pki个/bin/cp -p /etc/kubernetes/pki/*.* $HOME/fcik8s-old-certs/pki个
mkdir -p $HOME/fcik8s-old-certs/pki
/bin/cp -p /etc/kubernetes/pki/*.* $HOME/fcik8s-old-certs/pki
/bin/cp -p /etc/kubernetes/*.conf $HOME/fcik8s-old-certs个
/bin/cp -p /etc/kubernetes/*.conf $HOME/fcik8s-old-certs
mkdir -p $HOME/fcik8s-old-certs/.kube个/bin/cp -p ~/.kube/config $HOME/fcik8s-old-certs/.kube/.个
mkdir -p $HOME/fcik8s-old-certs/.kube
/bin/cp -p ~/.kube/config $HOME/fcik8s-old-certs/.kube/.
编辑/etc/kubernetes/manifests/kube-controller-manager.yaml
apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: component: kube-controller-manager tier: control-plane name: kube-controller-manager namespace: kube-system spec: containers: - command: - kube-controller-manager ... - --experimental-cluster-signing-duration=87600h ... ...
字符串87600 h ~ 10年
kubeadm alpha certs renew all --config /etc/kubernetes/kubeadm-config.yaml --use-api个
kubeadm alpha certs renew all --config /etc/kubernetes/kubeadm-config.yaml --use-api
kubectl get csr个kubectl certificate approve <cert_request>
kubectl get csr
kubectl certificate approve <cert_request>
kubeadm init phase kubeconfig all --config /etc/kubernetes/kubeadm-config.yaml
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config个chown $(id -u):$(id -g) $HOME/.kube/config
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
docker restart $(docker ps | grep etcd | awk '{ print $1 }')docker restart $(docker ps | grep kube-apiserver | awk '{ print $1 }')docker restart $(docker ps | grep kube-scheduler | awk '{ print $1 })docker restart $(docker ps | grep kube-controller | awk '{ print $1 }')systemctl daemon-reload && systemctl restart kubelet
docker restart $(docker ps | grep etcd | awk '{ print $1 }')
docker restart $(docker ps | grep kube-apiserver | awk '{ print $1 }')
docker restart $(docker ps | grep kube-scheduler | awk '{ print $1 })
docker restart $(docker ps | grep kube-controller | awk '{ print $1 }')
systemctl daemon-reload && systemctl restart kubelet
echo | openssl s_client -showcerts -connect 127.0.0.1:6443 -servername api 2>/dev/null | openssl x509 -noout -enddate
2条答案
按热度按时间hivapdat1#
您可以使用cfssl或openssl生成证书并存储在目录中,并在Kubeadm init中指定该目录,kubeadm将不会生成证书并使用提供的证书。
字符串
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#custom-certificates
Kubeadm还提供证书更新机制,可将证书更新1年。
型
由于您有一个正在运行的集群,它签署的证书有效期为1年,您可以将kube控制器管理器的默认证书签署期限更改为10年。
型
完成后,您可以使用以下指南签署证书,有效期为10年。
https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#renew-certificates-with-the-kubernetes-certificates-api
yrefmtwq2#
将Kubernetes证书续订10年(不推荐)。x1c 0d1x的数据
第一个月
mkdir -p $HOME/fcik8s-old-certs/pki
个/bin/cp -p /etc/kubernetes/pki/*.* $HOME/fcik8s-old-certs/pki
个/bin/cp -p /etc/kubernetes/*.conf $HOME/fcik8s-old-certs
个mkdir -p $HOME/fcik8s-old-certs/.kube
个/bin/cp -p ~/.kube/config $HOME/fcik8s-old-certs/.kube/.
个编辑/etc/kubernetes/manifests/kube-controller-manager.yaml
字符串
87600 h ~ 10年
kubeadm alpha certs renew all --config /etc/kubernetes/kubeadm-config.yaml --use-api
个kubectl get csr
个kubectl certificate approve <cert_request>
kubeadm init phase kubeconfig all --config /etc/kubernetes/kubeadm-config.yaml
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
个chown $(id -u):$(id -g) $HOME/.kube/config
docker restart $(docker ps | grep etcd | awk '{ print $1 }')
docker restart $(docker ps | grep kube-apiserver | awk '{ print $1 }')
docker restart $(docker ps | grep kube-scheduler | awk '{ print $1 })
docker restart $(docker ps | grep kube-controller | awk '{ print $1 }')
systemctl daemon-reload && systemctl restart kubelet
echo | openssl s_client -showcerts -connect 127.0.0.1:6443 -servername api 2>/dev/null | openssl x509 -noout -enddate