Tôi đã thấy vấn đề này ở nhiều diễn đàn khác và cuối cùng tôi đã tìm ra giải pháp phù hợp với mình.
Đầu tiên, các vấn đề của tôi hoàn toàn là do chứng chỉ /var/lib/kubelet/pki/kubelet.crt
, mà tôi có thể thấy đã hết hạn với:
tiếng vang -n | openssl s_client -kết nối máy chủ cục bộ:10250 2>&1 | sed -ne '/-BEGIN CHỨNG NHẬN-/,/- KẾT THÚC CHỨNG NHẬN-/p' | openssl x509 -text -noout | grep -A 2 Hiệu lực
hoặc
sudo openssl x509 -in /var/lib/kubelet/pki/kubelet.crt -text -noout | grep -A 2 Hiệu lực
Trước tiên, bạn cần kích hoạt --rotate-certificates=true
và --rotate-server-certificates=true
trong kubelet của bạn. Trong trường hợp của tôi, tôi đã cài đặt cụm bằng cách sử dụng kubeadm
, để tôi có thể chỉnh sửa /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
, và thêm phần sau vào KUBELET_EXTRA_ARGS
:
Môi trường="KUBELET_EXTRA_ARGS=--rotate-certificates=true --rotate-server-certificates=true --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
Nói chung, nó chỉ là thêm các cờ này vào quá trình thực thi kubelet /usr/bin/kubelet --rotate-certificates=true --rotate-server-certificates=true
.
Và, tải lại và khởi động lại kubelet với:
Sudo systemctl daemon-tải lại
khởi động lại dịch vụ sudo kubelet
Sau khi khởi động lại, tôi thấy một cái gì đó giống như 14114 log.go:172] http: Lỗi bắt tay TLS từ 20.0.0.13:57738: không có chứng chỉ cung cấp cho kubelet
, cho biết rằng chứng chỉ cần được thêm và phê duyệt.
Thứ hai, chúng ta cần phê chuẩn csr
từ kubernetes (đây là thứ tôi chưa từng xem trước đây ...):
kubectl lấy csr
Ở đó sẽ thấy chứng chỉ đang chờ duyệt nên chỉ cần duyệt:
chứng chỉ kubectl phê duyệt csr-dlcf6
Và cụm của bạn bây giờ sẽ được gia hạn chứng chỉ máy chủ kubelet. Để xác minh lại:
tiếng vang -n | openssl s_client -kết nối máy chủ cục bộ:10250 2>&1 | sed -ne '/-BEGIN CHỨNG NHẬN-/,/- KẾT THÚC CHỨNG NHẬN-/p' | openssl x509 -text -noout | grep -A 2 Hiệu lực
Một số lưu ý:
- Chúng tôi đã kích hoạt xoay vòng cho cả máy khách và máy chủ. Xoay vòng ứng dụng khách cũng là một phần của tập lệnh gia hạn chứng chỉ tự động (https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/)
- Sau khi chúng tôi kích hoạt tính năng xoay,
/var/lib/kubelet/pki/kubelet.crt
không còn được sử dụng, thay vào đó là liên kết tượng trưng /var/lib/kubelet/pki/kubelet-server-current.pem
được sử dụng và trỏ đến chứng chỉ được luân phiên mới nhất.
Người giới thiệu: