在本文中,您將瞭解如何使用 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-nfs和csi-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 命令將顯示
provisioningState為Failed。 這是已知問題。 - 若要更正
provisioningState,您可以執行 no-op 命令,例如更新受影響 Kubernetes 叢集特性上的標籤。 使用--tagsupdate 命令的參數來執行此操作。 此動作會將 重provisioningState設為Succeeded。