針對有過期憑證的節點未就緒失敗進行疑難解答
本文可協助您針對 Microsoft Azure Kubernetes Service (AKS 叢集內的節點未就緒案例進行疑難解答,) 有過期的憑證。
必要條件
徵狀
您發現 AKS 叢集節點處於「節點未就緒」狀態。
原因
有一或多個過期的憑證。
預防:執行 OpenSSL 簽署憑證
叫用 openssl-x509 命令來檢查憑證的到期日,如下所示:
針對虛擬機 (VM) 擴展集節點,請使用 az vmss run-command invoke 命令:
az vmss run-command invoke \ --resource-group <resource-group-name> \ --name <vm-scale-set-name> \ --command-id RunShellScript \ --instance-id 0 \ --output tsv \ --query "value[0].message" \ --scripts "openssl x509 -in /etc/kubernetes/certs/apiserver.crt -noout -enddate"
針對 VM 可用性設定組節點,請使用 az vm run-command invoke 命令:
az vm run-command invoke \ --resource-group <resource-group-name> \ --name <vm-availability-set-name> \ --command-id RunShellScript \ --output tsv \ --query "value[0].message" \ --scripts "openssl x509 -in /etc/kubernetes/certs/apiserver.crt -noout -enddate"
叫用這些命令之後,您可能會收到某些錯誤碼。 如需錯誤碼 50、51 和 52 的相關信息,請視需要參閱下列連結:
- 針對 OutboundConnFailVMExtensionError 錯誤碼 (50) 進行疑難解答
- 針對 K8SAPIServerConnFailVMExtensionError 錯誤碼 (51) 進行疑難解答
- 針對 K8SAPIServerDNSLookupFailVMExtensionError 錯誤碼 (52) 進行疑難解答
如果您收到錯誤碼 99,這表示 apt-get update 命令遭到封鎖,無法存取下列一或多個網域:
- security.ubuntu.com
- azure.archive.ubuntu.com
- nvidia.github.io
若要允許存取這些網域,請更新任何封鎖防火牆、網路安全組 (NSG) 或網路虛擬設備 (NVA) 的設定。
解決方案:輪替憑證
您可以套用 憑證自動輪替 ,在節點過期之前輪替節點中的憑證。 此選項不需要 AKS 叢集的停機時間。
如果您可以容納叢集停機時間,您可以 改為手動輪替憑證 。
注意事項
從 2021年7月15日發行的AKS開始,AKS叢集升級會自動協助輪替叢集憑證。 不過,此行為變更不會對過期的叢集憑證生效。 如果升級只採取下列動作,則不會更新過期的憑證:
- 升級節點映像。
- 將節點集區升級至相同的版本。
- 將節點集區升級至較新的版本。
只有完整升級 (,也就是控制平面和節點集區的升級) 有助於更新過期的憑證。
其他相關資訊
- 如需一般疑難解答步驟,請參閱 節點未就緒失敗的基本疑難解答。