共用方式為


針對適用於 AKS 的 Azure Linux 容器主機常見問題進行疑難解答

本文提供您在 Azure Kubernetes Service 中使用 Azure Linux 容器主機時可能會遇到的一些常見回報問題的疑難解答步驟。 如需如何在 AKS 中使用 Azure Linux 容器主機的詳細資訊,請參閱 搭配 AKS 使用 Azure Linux。

開始之前

閱讀官方指南以針對 Kubernetes 叢集進行疑難解答。 此外,請閱讀 kubernetes 疑難解答Microsoft工程師指南。 本指南包含針對 Pod、節點、叢集和其他功能的疑難解答命令。

最後,檢閱 Azure Linux 中的已知限制清單。 您嘗試解決的問題可能是我們已經處理的問題。

必要條件

  • Azure CLI 2.31 版或更新版本。 如果已安裝 Azure CLI,您可以執行 az --version來尋找版本號碼。

關於適用於 AKS 的 Azure Linux 容器主機

Azure Linux 是Microsoft建立的開放原始碼 Linux 發行版。 作為輕量型OS,Azure Linux具有下列功能:

  • 只包含執行容器工作負載所需的套件
  • 進行 Azure 驗證測試
  • 與 Azure 代理程式相容

適用於 AKS 的 Azure Linux 容器主機是 AKS 的作業系統映像,已針對執行容器工作負載進行優化。 其由Microsoft和以 Azure Linux 為基礎來維護。 其提供從雲端到邊緣的可靠性和一致性,橫跨 AKSAzure Stack HCI 上的 AKS 和 Azure Arc 產品。 您可以使用 Azure Linux 容器主機來執行下列程式:

  • 在新叢集中部署 Azure Linux 節點集區。
  • 將 Azure Linux 節點集區新增至現有的 Ubuntu 叢集。
  • 將您的Ubuntu節點移轉至 Azure Linux 節點。

如需 Azure Linux 的詳細資訊,請參閱 Azure Linux GitHub 存放庫。

疑難排解檢查清單

步驟 1:檢閱 Ubuntu 和 Azure Linux 中的對等命令

Azure Linux OS 中的大部分命令,例如進程狀態 (ps) 命令,類似於 Ubuntu 中使用的命令。 不過,套件管理是使用 Tiny DNF (tdnf) 命令來完成。 下表列出Ubuntu中的一些常見命令,以及其在 Azure Linux 中的對等命令。

Ubuntu 命令 建議的 Azure Linux 命令
apt -- list installed rpm -qa
apt autoclean tdnf clean all
apt autoremove dnf autoremove
apt dist-upgrade dnf distro-sync
apt download tdnf download
apt install tdnf install
apt install --reinstall tdnf reinstall
apt list - upgradable dnf list updates
apt remove tdnf remove
apt search tdnf search
apt show tdnf list
apt upgrade tdnf upgrade
apt cache dump tdnf list available
apt-cache dumpavail tdnf list available
apt-cache policy tdnf list
apt-cache rdepends dnf repoquery -- alldeps - whatrequires
apt-cache search tdnf search
apt-cache show tdnf info
apt-cache stats (沒有確切的對等專案;讀取封裝 /var/lib/rpm 資料夾中的檔案)
apt-config shell dnf shell
apt-file list dnf repoquery -l
apt-file search tdnf provides
apt-get autoremove dnf autoremove
apt-get install tdnf install
apt-get remove tdnf remove
apt-get update dnf clean expire-cache dnf check-update
apt-mark auto tdnf install dnf mark remove
apt-mark manual dnf mark install
apt-mark showmanual dnf history userinstalled

步驟 2:檢查 Azure Linux 版本

請確定您使用的是正確的 Azure Linux 版本。 支援的 Azure Linux 取用版本是 Azure Linux 2.0。 在下列 az aks nodepool list 命令的輸出中, osSKU 屬性應該會讀取 AzureLinux

az aks nodepool list --resource-group <resource-group-name> --cluster-name <aks-cluster-name>

雖然此命令可能無法解決您遇到的問題,但回報代理程式或擴充功能無法在 Azure Linux 上運作的使用者,版本設定是常見的問題。

步驟 3:了解憑證檔案路徑的差異

Azure Linux(和其他 RPM 散發套件)會以不同於 Ubuntu 的方式儲存憑證。

在 Azure Linux 上,/etc/ssl/certs 路徑是 /etc/pki/tls/certs 的符號連結。 如果容器預期將 /etc/ssl/certs 對應Azure Linux 上的 ca-certificates.crt 憑證檔案,容器會改為取得指向無處的符號連結。 此行為會導致容器中的憑證相關錯誤。 容器也必須對應 /etc/pki ,讓容器可以遵循符號鏈結。 如果容器必須同時在 Ubuntu 和 Azure Linux 主機上運作,您可以使用 hostPath 磁碟區中的類型來對應 /etc/pkiDirectoryOrCreate

步驟 4:更新 Azure CLI 和 AKS 預覽延伸模組

如果您嘗試使用 Azure CLI 部署 Azure Linux AKS 叢集,您可能會收到錯誤訊息,指出 AzureLinux 參數不支援 OSSku 該選項。 此訊息表示您可能使用過時版本的 Azure CLI 或 AKS 預覽延伸模組。 若要修正此問題,請採取下列兩個動作的一或兩個動作:

  • 如果 Azure CLI 不是最新的,請安裝最新版本。 若要升級 Azure CLI,請執行下列 az upgrade 命令:

    az upgrade
    
  • 如果您已安裝舊版的 aks-preview 擴充功能,請安裝較新版本, OSSku 讓 參數具有的值 AzureLinux。 若要升級擴充功能,請執行下列 az extension update 命令:

    az extension update --name aks-preview
    

協力廠商資訊免責聲明

本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。

協力廠商連絡資訊免責聲明

Microsoft 提供協力廠商連絡資訊,以協助您尋找有關此主題的其他資訊。 此連絡資訊可能會變更而不另行通知。 Microsoft 不保證協力廠商連絡資訊的準確性。

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。