針對有過期憑證的節點未就緒失敗進行疑難解答

本文可協助您針對 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 的相關信息,請視需要參閱下列連結:

如果您收到錯誤碼 99,這表示 apt-get update 命令遭到封鎖,無法存取下列一或多個網域:

  • security.ubuntu.com
  • azure.archive.ubuntu.com
  • nvidia.github.io

若要允許存取這些網域,請更新任何封鎖防火牆、網路安全組 (NSG) 或網路虛擬設備 (NVA) 的設定。

解決方案:輪替憑證

您可以套用 憑證自動輪替 ,在節點過期之前輪替節點中的憑證。 此選項不需要 AKS 叢集的停機時間。

如果您可以容納叢集停機時間,您可以 改為手動輪替憑證

注意事項

2021年7月15日發行的AKS開始,AKS叢集升級會自動協助輪替叢集憑證。 不過,此行為變更不會對過期的叢集憑證生效。 如果升級只採取下列動作,則不會更新過期的憑證:

  • 升級節點映像。
  • 將節點集區升級至相同的版本。
  • 將節點集區升級至較新的版本。

只有完整升級 (,也就是控制平面和節點集區的升級) 有助於更新過期的憑證。

其他相關資訊