

 **協助改進此頁面** 

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 更新 Amazon VPC CNI (自我管理的附件元件)
<a name="vpc-add-on-self-managed-update"></a>

**重要**  
建議將附加元件的 Amazon EKS 類型新增到叢集，而不是使用附加元件的自我管理類型。如果您不熟悉類型之間的差異，則請參閱 [Amazon EKS 附加元件](eks-add-ons.md)。如需將 Amazon EKS 附加元件新增至叢集的詳細資訊，請參閱 [建立 Amazon EKS 附加元件](creating-an-add-on.md)。如果您無法使用 Amazon EKS 附加元件，我們建議您提交有關為何無法存取[容器藍圖 GitHub 儲存庫](https://github.com/aws/containers-roadmap/issues)的問題。

1. 確認您的叢集上已安裝 Amazon EKS 類型的附加元件。使用您叢集的名稱取代 *my-cluster*。

   ```
   aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query addon.addonVersion --output text
   ```

   如果傳回錯誤訊息，則表明沒有在叢集上安裝 Amazon EKS 類型的附加元件。若要自行管理附加元件，請完成此程序中的剩餘步驟來更新附加元件。如果傳回版本編號，則表明已在叢集上安裝附加元件的 Amazon EKS 類型。若要將其更新，請使用 [更新 Amazon EKS 附加元件](updating-an-add-on.md) 中的程序，而不是使用此程序。如果您不熟悉附加元件類型之間的差異，請參閱 [Amazon EKS 附加元件](eks-add-ons.md)。

1. 查看叢集上目前安裝了哪些容器映像版本。

   ```
   kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3
   ```

   範例輸出如下。

   ```
   v1.20.0-eksbuild.1
   ```

   您的輸出可能不包含建置編號。

1. 備份您目前的設定，以便在更新版本後進行相同的設定。

   ```
   kubectl get daemonset aws-node -n kube-system -o yaml > aws-k8s-cni-old.yaml
   ```

   若要檢閱可用版本並熟悉更新版本中的變更，請參閱 GitHub 上的[發布版本](https://github.com/aws/amazon-vpc-cni-k8s/releases)。請注意，建議您更新最新版本資料表中列出的相同 `major`.`minor`.`patch` 版本，即使 GitHub 上有更新的版本也是如此。若要查看最新提供的版本資料表，請參閱 [Amazon VPC CNI 版本](managing-vpc-cni.md#vpc-cni-latest-available-version)。資料表中列出的建置版本並未在 GitHub 上列出的自我管理版本中指定。透過以下列其中一種選項完成任務來更新您的版本：
   + 如果沒有附加元件的任何自訂設定，則請執行 GitHub 上 `To apply this release:` 標題下的命令，以獲取正在更新到的[發行版本](https://github.com/aws/amazon-vpc-cni-k8s/releases)。
   + 如果有自訂設定，則請使用以下命令下載清單檔案。將 *https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.20.0/config/master/aws-k8s-cni.yaml* 變更為您要更新之 GitHub 發行版本的 URL。

     ```
     curl -O https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.20.3/config/master/aws-k8s-cni.yaml
     ```

     如有必要，請使用您在前一步所建立備份中的自訂設定修改清單檔案，然後將修改後的清單檔案套用至叢集。如果您的節點無法存取從中提取映像的私有 Amazon EKS Amazon ECR 儲存庫 (請參閱資訊清單中開頭為 `image:` 的資料行)，則您必須下載映像，將其複製到您自己的儲存庫，然後修改資訊清單以便從儲存庫中提取映像。如需詳細資訊，請參閱[將容器映像從一個儲存庫複製到另一個儲存庫](copy-image-to-repository.md)。

     ```
     kubectl apply -f aws-k8s-cni.yaml
     ```

1. 確認您的叢集上現在已安裝新版本。

   ```
   kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3
   ```

   範例輸出如下。

   ```
   v1.20.3
   ```

1. (選用) 安裝 `cni-metrics-helper` 到您的叢集。它湊集彈性網路介面和 IP 地址資訊，匯總叢集層級的指標，並將指標發佈至 Amazon CloudWatch。如需詳細資訊，請參閱 GitHub 上的 [cni-metrics-helper](https://github.com/aws/amazon-vpc-cni-k8s/blob/master/cmd/cni-metrics-helper/README.md)。