@@ -236,9 +236,8 @@ ENABLE_CONTROLLER_ATTACH_DETACH=${ENABLE_CONTROLLER_ATTACH_DETACH:-"true"} # cur
236
236
# which should be able to be used as the CA to verify itself
237
237
CERT_DIR=${CERT_DIR:- " /var/run/kubernetes" }
238
238
ROOT_CA_FILE=${CERT_DIR} /server-ca.crt
239
- ROOT_CA_KEY=${CERT_DIR} /server-ca.key
240
- CLUSTER_SIGNING_CERT_FILE=${CLUSTER_SIGNING_CERT_FILE:- " ${ROOT_CA_FILE} " }
241
- CLUSTER_SIGNING_KEY_FILE=${CLUSTER_SIGNING_KEY_FILE:- " ${ROOT_CA_KEY} " }
239
+ CLUSTER_SIGNING_CERT_FILE=${CLUSTER_SIGNING_CERT_FILE:- " ${CERT_DIR} /client-ca.crt" }
240
+ CLUSTER_SIGNING_KEY_FILE=${CLUSTER_SIGNING_KEY_FILE:- " ${CERT_DIR} /client-ca.key" }
242
241
# Reuse certs will skip generate new ca/cert files under CERT_DIR
243
242
# it's useful with PRESERVE_ETCD=true because new ca will make existed service account secrets invalided
244
243
REUSE_CERTS=${REUSE_CERTS:- false}
610
609
# Grant apiserver permission to speak to the kubelet
611
610
${KUBECTL} --kubeconfig " ${CERT_DIR} /admin.kubeconfig" create clusterrolebinding kube-apiserver-kubelet-admin --clusterrole=system:kubelet-api-admin --user=kube-apiserver
612
611
612
+ # Grant kubelets permission to request client certificates
613
+ ${KUBECTL} --kubeconfig " ${CERT_DIR} /admin.kubeconfig" create clusterrolebinding kubelet-csr --clusterrole=system:certificates.k8s.io:certificatesigningrequests:selfnodeclient --group=system:nodes
614
+
613
615
${CONTROLPLANE_SUDO} cp " ${CERT_DIR} /admin.kubeconfig" " ${CERT_DIR} /admin-kube-aggregator.kubeconfig"
614
616
${CONTROLPLANE_SUDO} chown " $( whoami) " " ${CERT_DIR} /admin-kube-aggregator.kubeconfig"
615
617
${KUBECTL} config set-cluster local-up-cluster --kubeconfig=" ${CERT_DIR} /admin-kube-aggregator.kubeconfig" --server=" https://${API_HOST_IP} :31090"
@@ -686,7 +688,7 @@ function wait_node_ready(){
686
688
# check the nodes information after kubelet daemon start
687
689
local nodes_stats=" ${KUBECTL} --kubeconfig '${CERT_DIR} /admin.kubeconfig' get nodes"
688
690
local node_name=$HOSTNAME_OVERRIDE
689
- local system_node_wait_time=30
691
+ local system_node_wait_time=60
690
692
local interval_time=2
691
693
kube::util::wait_for_success " $system_node_wait_time " " $interval_time " " $nodes_stats | grep $node_name "
692
694
if [ $? == " 1" ]; then
@@ -770,7 +772,9 @@ function start_kubelet {
770
772
" --hostname-override=${HOSTNAME_OVERRIDE} "
771
773
" ${cloud_config_arg[@]} "
772
774
" --address=${KUBELET_HOST} "
773
- --kubeconfig " ${CERT_DIR} " /kubelet.kubeconfig
775
+ " --bootstrap-kubeconfig=${CERT_DIR} /kubelet.kubeconfig"
776
+ " --kubeconfig=${CERT_DIR} /kubelet-rotated.kubeconfig"
777
+ " --rotate-certificates=true"
774
778
" --feature-gates=${FEATURE_GATES} "
775
779
" --cpu-cfs-quota=${CPU_CFS_QUOTA} "
776
780
" --enable-controller-attach-detach=${ENABLE_CONTROLLER_ATTACH_DETACH} "
@@ -800,6 +804,9 @@ function start_kubelet {
800
804
fi
801
805
802
806
if [[ " ${REUSE_CERTS} " != true ]]; then
807
+ # clear previous dynamic certs
808
+ sudo rm -fr " /var/lib/kubelet/pki" " ${CERT_DIR} /kubelet-rotated.kubeconfig"
809
+ # create new certs
803
810
generate_kubelet_certs
804
811
fi
805
812
0 commit comments