Điểm:0

/var/lib/kubelet/pki/kubelet.crt đã hết hạn, Làm cách nào để gia hạn?

lá cờ cn

Các kubernetes nhóm vào ngày 1.21.2. Các kubelet cũng là ngày 1.21.2

kubelet --version
Kubernetes v1.21.2

phiên bản kubeadm
phiên bản kubeadm: &version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.2", GitCommit:"092fbfbf53427de67cac1e9fa54aaa09a28371d7", GitTreeState:"clean", BuildDate:"2021-06-16T12:57: 56Z", GoVersion:"go1.16.5", Trình biên dịch:"gc", Nền tảng:"linux/amd64"}

Khi tôi đang cố gắng "kl nhận được không"Tôi nhận được lỗi dưới đây

kl nhận được không
lỗi: Bạn phải đăng nhập vào máy chủ (Trái phép)
**Lưu ý: kl là bí danh của kubectl**
Tôi đã kiểm tra /var/lib/kubelet/pki/kubelet.crt của mình và nó đã hết hạn.

Trong kubelet.crt, nhà phát hành ở bên dưới

Chủ đề: CN=aparapu@1591592441
        Thông tin khóa công khai chủ đề:
            Thuật toán khóa công khai: rsaEncryption

Cần trợ giúp để gia hạn kubelet.crt này.

lá cờ in
Xin chào shaktirath chào mừng đến với S.F. Không biết thêm về cách bạn cung cấp Node của mình, không ai có thể nói _chắc chắn_ nhưng trong _hầu hết các trường hợp_ `rm -rf /var/lib/kubelet && rm -rf /etc/kubernetes && systemctl restart kubelet.service` sẽ khiến kubelet ngừng hoạt động quay lại quy trình yêu cầu chứng chỉ ban đầu và apiserver sẽ nhắc bạn hoặc tự động phê duyệt yêu cầu chứng chỉ của Node. Vui lòng sử dụng `mv` thay vì `rm` và tùy chọn dừng kubelet trước
shaktirath avatar
lá cờ cn
Tại sao phải xóa /etc/kubernetes? Tôi đã cung cấp nút thông qua kubeadm, có trong tài liệu kubernetes.
shaktirath avatar
lá cờ cn
Chỉ cần thêm một điều nữa, chứng chỉ gia hạn kubeadm không dành cho /var/lib/kubelet/kubelet.crt. Nếu bạn vẫn chắc chắn thì cho tôi các bước chi tiết.
Mikołaj Głodziak avatar
lá cờ id
Xin chào @shaktirath, nếu tôi hiểu rõ câu hỏi của bạn [gia hạn chứng chỉ thủ công](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#manual-certificate-renewal) sẽ giúp ích cho bạn. Hãy thử thực thi `kubeadm certs refresh`.
shaktirath avatar
lá cờ cn
Liên kết trên không nói về bất cứ điều gì, làm thế nào để gia hạn /var/lib/kubelet/kubelet.crt. Tôi cũng đã thử liên kết bên dưới nhưng tiếc là kubectl của tôi không hoạt động. https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/#kubelet-serving-certs
Mikołaj Głodziak avatar
lá cờ id
Bạn đã thiết lập cụm của mình như thế nào? Bạn đang sử dụng kim loại trần hoặc một số nhà cung cấp đám mây? Xem thêm [vấn đề tương tự này](https://github.com/kubernetes/kubeadm/issues/2186)
shaktirath avatar
lá cờ cn
Đúng. Cụm của tôi được tạo thành từ kim loại trần.
Điểm:1
lá cờ my

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--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:

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.