共用方式為


在Nexus Kubernetes叢集中使用Kubernetes叢集功能

在本文中,您將瞭解如何使用 Nexus Kubernetes 叢集功能。 Nexus Kubernetes 叢集功能是 Nexus 平台的一項功能,可讓客戶透過新增額外的套件或功能來增強其 Nexus Kubernetes 叢集。

先決條件

在繼續本操作指南之前,建議您:

  • 請參閱 “Nexus Kubernetes 叢集 快速入門指南 ”,以取得完整的概觀和所涉及的步驟。
  • 確保您符合概述的先決條件,以確保指南順利實施。
  • 必要的 networkcloud 最低 az-cli 延伸模組版本: 2.0.b3

局限性

  • 您只能建立、刪除或更新欄位設定為 Required的 Kubernetes 叢集功能False
  • 第一次安裝 Kubernetes 叢集功能時,功能的名稱應該是表格中列出的功能名稱之一。 對於更新或刪除等後續操作,應使用命令 az networkcloud kubernetescluster feature list 獲取特徵的名稱。
  • 如果叢集內正在使用水平 Pod 自動調整器 (HPA),則無法刪除 metrics-server 功能。
  • 如果叢集中有任何儲存類別(StorageClass)仍在使用,則無法刪除儲存相關的 Kubernetes 叢集功能,例如 csi-nfscsi-volume

預設設定值

部署Nexus Kubernetes叢集時,系統會自動安裝所需的Kubernetes叢集功能清單。 部署之後,您可以安裝或解除安裝 (從叢集中刪除) 來管理選用的 Kubernetes 叢集功能。

您無法控制標示為「必要」的 Kubernetes 叢集功能的安裝。但是,您可以對將「必要」欄位設定為「False」的功能執行建立、更新和刪除操作。您也可以選擇透過更新命令更新任何 Kubernetes 叢集功能。

下列 Kubernetes 叢集功能可供每個 Nexus Kubernetes 叢集使用。 預設情況下,將「必要」設定為「True」的功能一律會安裝,且無法刪除。

名稱 Description 為必填項目 預設安裝
azure-arc-k8sagents Arc 連結 Nexus Kubernetes 叢集
calico 提供容器網路介面 (CNI) 支援
cloud-provider-kubevirt 支援叢集 API (CAPI) KubeVirt 提供者,用於管理 Kubernetes 中虛擬機器型工作負載
ipam-cni-plugin 當設定為 True 時 ipamEnabled ,為連線至工作負載容器的第 3 層網路配置 IP 位址
metallb 為 LoadBalancer 服務提供外部 IP 位址,以在 Kubernetes 中進行流量的負載平衡。
multus 支持將多個網路介面附加到 Kubernetes Pod
node-local-dns 部署 NodeLocal DNSCache 以提高 Kubernetes 叢集內的 DNS 效能和可靠性
sriov-dp 部署用於單根 I/O 虛擬化 (SR-IOV) 的選用 CNI 外掛程式,以增強網路效能
azure-arc-servers 在每個控制平面和代理集區節點上部署 Azure Arc 啟用的伺服器,允許同時管理非 Azure 資源和 Azure 資源。
csi-nfs 提供 NFS(網路檔案系統)的容器儲存介面 (CSI) 驅動程式,以支援 Kubernetes 中基於 NFS 的儲存
csi-volume 支援 csi-nexus-volume 儲存類別,用於 Kubernetes 內的持續性磁碟區宣告
metrics-server 部署指標伺服器,為 Kubernetes 叢集提供資源使用量度量,例如 CPU 和記憶體用量

備註

  • 對於每個叢集,您只能為每個 Kubernetes 叢集功能類型建立一個功能。
  • 如果您刪除將「必要」屬性設定為「False」的 Kubernetes 叢集功能,則會從叢集中移除相關圖表。

如何管理 Kubernetes 叢集功能

下列互動可讓您建立和管理 Kubernetes 叢集功能組態。

安裝 Kubernetes 叢集功能

若要在叢集中安裝 Kubernetes 叢集功能,請使用命令 az networkcloud kubernetescluster feature create 。 如果您有多個 Azure 訂用帳戶,則必須使用 --subscription CLI 命令中的旗標,或使用 az account set 命令選取適當的訂用帳戶識別碼來指定訂用帳戶識別碼。

az networkcloud kubernetescluster feature create \
    --name "<FEATURE_NAME>" \
    --kubernetes-cluster-name "<KUBERNETES_CLUSTER_NAME>" \
    --resource-group "<RESOURCE_GROUP>" \
    --location "<LOCATION>" \
    --tags "<KEY1>=<VALUE1>" "<KEY2>=<VALUE2>"
  • 將預留位置(<FEATURE_NAME><KUBERNETES_CLUSTER_NAME><RESOURCE_GROUP><LOCATION><KEY1>=<VALUE1><KEY2>=<VALUE2>)替換為您的特定資訊。

若要查看所有可用的參數及其說明,請執行下列命令:

az networkcloud kubernetescluster feature create --help

Kubernetes 叢集功能組態參數

參數名稱 Description
FEATURE_NAME Kubernetes 叢集名稱 feature
KUBERNETES_CLUSTER_NAME 叢集名稱
位置 部署叢集的 Azure 區域
資源群組 叢集資源群組名稱
關鍵1 可選的 tag1 以傳遞到 Kubernetes 叢集的功能創建
價值1 要傳遞至 Kubernetes 叢集功能以進行建立的選擇性 tag1 值
KEY2 選擇性 tag2 用於傳遞至 Kubernetes 叢集功能創建過程中
VALUE2 可選 tag2 值要傳送至 Kubernetes 叢集功能創建

在 az 命令中指定 --no-wait --debug 選項會導致此命令的非同步執行。 如需詳細資訊,請參閱如何追蹤非同步作業

列出 Kubernetes 叢集功能

您可以使用命令 az networkcloud kubernetescluster feature list 檢查特定叢集的 Kubernetes 叢集特性資源。 此命令會顯示與指定 Kubernetes 叢集相關聯的所有功能清單:

az networkcloud kubernetescluster feature list \
  --kubernetes-cluster-name  "<KUBERNETES_CLUSTER_NAME>" \
  --resource-group "<RESOURCE_GROUP>"

取得 Kubernetes 叢集的特性

建立 Kubernetes 叢集之後,您可以使用命令 networkcloud kubernetescluster feature show 檢查特定 Kubernetes 叢集功能的詳細資料。 這提供了有關該功能的詳細資訊:

az networkcloud kubernetescluster feature show \
 --cluster-name "<KUBERNETES_CLUSTER_NAME>" \
 --resource-group "<RESOURCE_GROUP>"

此命令會傳回 Kubernetes 叢集功能組態的 JSON 表示法。

更新 Kubernetes 叢集功能

就像建立 Kubernetes 叢集功能一樣,您可以執行更新動作來修改指派給 Kubernetes 叢集功能的標籤。 使用下列命令來更新標籤:

這很重要

  • 參數 name 應與從命令輸出 az networkcloud kubernetescluster feature list 取得的「名稱」相符。 雖然安裝期間提供的功能名稱一開始可以使用,但安裝功能後,會為其指派唯一的名稱。 因此,請務必使用指令來 list 取得更新和刪除作業的實際資源名稱,而不是依賴表格中顯示的初始功能名稱。
az networkcloud kubernetescluster feature update \
  --name "<FEATURE_NAME>"   \
  --kubernetes-cluster-name "<KUBERNETES_CLUSTER_NAME>"  \
  --resource-group "<RESOURCE_GROUP>" \
  --tags <KEY1>="<VALUE1>" \
        <KEy2>="<VALUE2>"

指定 az 命令中的 --no-wait --debug 選項會導致該命令非同步執行。 如需詳細資訊,請參閱如何追蹤非同步作業

刪除 Kubernetes 叢集功能

刪除 Kubernetes 叢集功能會從叢集中移除資源。 若要刪除 Kubernetes 叢集功能,請使用下列命令:

這很重要

  • 參數 name 應與從命令輸出 az networkcloud kubernetescluster feature list 取得的「名稱」相符。 雖然安裝期間提供的功能名稱一開始可以使用,但安裝功能後,會為其指派唯一的名稱。 因此,請務必使用指令來 list 取得更新和刪除作業的實際資源名稱,而不是依賴表格中顯示的初始功能名稱。
az networkcloud kubernetescluster feature delete  \
   --name "<FEATURE_NAME>"  \
   --kubernetes-cluster-name "<KUBERNETES_CLUSTER_NAME>" \
   --resource-group "<RESOURCE_GROUP>"

在 az 命令中指定 --no-wait --debug 選項會導致此命令被非同步執行。 如需詳細資訊,請參閱如何追蹤非同步作業

備註

  • 如果您嘗試刪除具有 Required=True的 Kubernetes 叢集功能,命令將會失敗,並產生錯誤訊息,指出「不允許刪除...特徵,因為它是必需的功能。
  • 在這種情況下,後續的 show/list 命令將顯示 provisioningStateFailed。 這是已知問題。
  • 若要更正 provisioningState,您可以執行 no-op 命令,例如更新受影響 Kubernetes 叢集特性上的標籤。 使用 --tags update 命令的參數來執行此操作。 此動作會將 重 provisioningState 設為 Succeeded