

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

# 在 AWS 雪上使用 Amazon EKS Anywhere
<a name="using-eksa"></a>

 AWS Snow 上的 Amazon EKS Anywhere 可協助您在 Snowball Edge 上建立和操作 Kubernetes 叢集。Kubernetes 是開放原始碼軟體，用於自動化容器化應用程式的部署、擴展和管理。您可以在具有或沒有外部網路連線的 Snowball Edge 裝置上使用 Amazon EKS Anywhere。若要在沒有外部網路連線的裝置上使用 Amazon EKS Anywhere，請提供容器登錄檔以在 Snowball Edge 裝置上執行。如需 Amazon EKS Anywhere 的一般資訊，請參閱 [Amazon EKS Anywhere 文件](https://anywhere.eks.amazonaws.com/docs/)。

在 AWS Snow 上使用 Amazon EKS Anywhere 可為您提供下列功能：
+ 在 Snowball Edge 運算最佳化裝置上使用 Amazon EKS Anywhere CLI (eksctl anywhere) 佈建 Kubernetes (K8s) 叢集。您可以在單一 Snowball Edge 裝置或三個或多個裝置上佈建 Amazon EKS Anywhere，以獲得高可用性。
+ 支援 Cilium Container Network Interface (CNI)。
+ 支援 Ubuntu 20.04 作為節點作業系統。

此圖說明部署在 Snowball Edge 裝置上的 Amazon EKS Anywhere 叢集。

![\[描述部署在 Snowball Edge 裝置上 AWS 之 Snow 叢集上的 Amazon EKS Anywhere 和元件之間的關係的圖表。\]](http://docs.aws.amazon.com/zh_tw/snowball/latest/developer-guide/images/eskaarch.jpg)


建議您使用 Amazon EKS Anywhere 支援的最新可用 Kubernetes 版本來建立 Kubernetes 叢集。如需詳細資訊，請參閱 [Amazon EKS-Anywhere 版本控制](https://anywhere.eks.amazonaws.com/docs/concepts/support-versions/)。如果您的應用程式需要特定版本的 Kubernetes，請使用 Amazon EKS 在標準或延伸支援中提供的任何 Kubernetes 版本。在規劃部署的生命週期時，請考慮 Kubernetes 版本的發行和支援日期。這可協助您避免對您打算使用的 Kubernetes 版本失去潛在支援。如需詳細資訊，請參閱 [Amazon EKS Kubernetes 發行行事曆](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html#kubernetes-release-calendar)。

如需 Amazon EKS Anywhere on AWS Snow 的詳細資訊，請參閱 [Amazon EKS Anywhere 文件](https://anywhere.eks.amazonaws.com/docs/)。

**Topics**
+ [

# 在 Snow 上為 Amazon EKS Anywhere 訂購 AWS Snowball Edge 裝置之前要完成的動作
](eksa-gettingstarted.md)
+ [

# 訂購 Snowball Edge 裝置以搭配 Snow 上的 Amazon EKS Anywhere AWS 使用
](order-sbe.md)
+ [

# 在 Snowball Edge 裝置上設定和執行 Amazon EKS Anywhere
](eksa-configuration.md)
+ [

# 在 AWS Snow 上設定 Amazon EKS Anywhere 進行中斷連線操作
](configure-disconnected.md)
+ [

# 在 Snowball Edge 裝置上建立和維護叢集
](maintain-eks-a-clusters-snow.md)

# 在 Snow 上為 Amazon EKS Anywhere 訂購 AWS Snowball Edge 裝置之前要完成的動作
<a name="eksa-gettingstarted"></a>

目前，Amazon EKS Anywhere 與 Snowball Edge 運算最佳化裝置相容。在您訂購 Snowball Edge 裝置之前，您應該先準備幾件事。
+ 建置並提供作業系統映像，以用來在裝置上建立虛擬機器。
+ 您的網路必須具有可用於 K8s 控制平面端點的靜態 IP 地址，並允許地址解析通訊協定 (ARP)。
+ 您的 Snowball Edge 裝置必須開啟特定連接埠。如需連接埠的詳細資訊，請參閱 Amazon EKS Anywhere 文件中的[連接埠和通訊協定](https://anywhere.eks.amazonaws.com/docs/reference/ports/)。

**Topics**
+ [

## 為 Snowball Edge 建立 Ubuntu EKS Distro AMI
](#create-eksd-ami)
+ [

## 為 Snowball Edge 建置 Harbor AMI
](#existing-private-registry)

## 為 Snowball Edge 建立 Ubuntu EKS Distro AMI
<a name="create-eksd-ami"></a>

若要建立 Ubuntu EKS Distro AMI，請參閱[建置雪節點映像](https://anywhere.eks.amazonaws.com/docs/reference/artifacts/#build-snow-node-images)。

產生的 AMI 名稱將遵循模式 `capa-ami-ubuntu-20.04-version-timestamp`。例如 `capa-ami-ubuntu-20.04-v1.24-1672424524`。

## 為 Snowball Edge 建置 Harbor AMI
<a name="existing-private-registry"></a>

設定要包含在 Snowball Edge 裝置上的 Harbor 私有登錄檔 AMI，讓您可以在裝置上使用 Amazon EKS Anywhere，而無需外部網路連線。如果您在 Snowball Edge 裝置與外部網路中斷連線時不會使用 Amazon EKS Anywhere，或者如果您在 AMI 中有私有 Kubernetes 登錄檔可在裝置上使用，則可以略過本節。

若要建立 Harbor 本機登錄檔 AMI，請參閱[建置 Harbor AMI](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/container-registry-ami-builder#build-harbor-ami)。

# 訂購 Snowball Edge 裝置以搭配 Snow 上的 Amazon EKS Anywhere AWS 使用
<a name="order-sbe"></a>

若要訂購 Snowball Edge 運算最佳化，請參閱本指南[建立任務以訂購 Snowball Edge 裝置](create-job-common.md)中的 ，並在訂購過程中記住這些項目：
+ 在步驟 1 中，選擇**僅限本機運算和儲存**的任務類型。
+ 在步驟 2 中，選擇 **Snowball Edge Compute Optimized** 裝置類型。
+ 在步驟 3 中，選擇 ** AWS Snow 上的 Amazon EKS Anywhere**，然後選擇您需要的 Kubernetes 版本。
**注意**  
為了提供最新的軟體，我們可能會使用比目前可用版本更新的 ESK Anywhere 來設定裝置。如需詳細資訊，請參閱《*Amazon EKS 使用者指南*》中的[版本控制](https://anywhere.eks.amazonaws.com/docs/concepts/support-versions/)。  
我們建議您使用 Amazon EKS Anywhere 支援的最新可用 Kubernetes 版本來建立 Kubernetes 叢集。如需詳細資訊，請參閱 [Amazon EKS-Anywhere 版本控制](https://anywhere.eks.amazonaws.com/docs/concepts/support-versions/)。如果您的應用程式需要特定版本的 Kubernetes，請使用 Amazon EKS 在標準或延伸支援中提供的任何 Kubernetes 版本。在規劃部署的生命週期時，請考慮 Kubernetes 版本的發行和支援日期。這可協助您避免對您打算使用的 Kubernetes 版本失去潛在支援。如需詳細資訊，請參閱 [Amazon EKS Kubernetes 版本行事曆](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html#kubernetes-release-calendar)。
+ 選擇要包含在裝置上的 AMIs，包括 EKS Distro AMI （請參閱 [為 Snowball Edge 建立 Ubuntu EKS Distro AMI](eksa-gettingstarted.md#create-eksd-ami))，以及選擇性地包含您建置的 Harbor AMI （請參閱 [為 Snowball Edge 建置 Harbor AMI](eksa-gettingstarted.md#existing-private-registry))。
+ 如果您需要多個 Snowball Edge 裝置以獲得高可用性，請從**高可用性**中選擇您需要的裝置數量。

收到 Snowball Edge 裝置後，請根據 設定 Amazon EKS Anywhere[在 Snowball Edge 裝置上設定和執行 Amazon EKS Anywhere](eksa-configuration.md)。

# 在 Snowball Edge 裝置上設定和執行 Amazon EKS Anywhere
<a name="eksa-configuration"></a>

請依照這些程序，在 Snowball Edge 裝置上設定和啟動 Amazon EKS Anywhere。然後，若要設定 Amazon EKS Anywhere 在中斷連線的裝置上操作，請先完成其他程序，再中斷這些裝置與外部網路的連線。如需詳細資訊，請參閱[在 AWS Snow 上設定 Amazon EKS Anywhere 進行中斷連線操作](configure-disconnected.md)。

**Topics**
+ [

## Snowball Edge 上 Amazon EKS Anywhere 的初始設定
](#initial-setup)
+ [

## 在 Snowball Edge 裝置上自動設定和執行 Amazon EKS Anywhere
](#auto-eksa-configuration)
+ [

## 在 Snowball Edge 裝置上手動設定和執行 Amazon EKS Anywhere
](#manual-eksa-configuration)

## Snowball Edge 上 Amazon EKS Anywhere 的初始設定
<a name="initial-setup"></a>

將裝置連接到您的本機網路、下載 Snowball Edge 用戶端、取得登入資料以及解鎖裝置，以在每個 Snowball Edge 裝置上執行初始設定。

**執行初始設定**

1. 下載並安裝 Snowball Edge 用戶端。如需詳細資訊，請參閱[下載並安裝 Snowball Edge 用戶端](using-client-commands.md#download-the-client)。

1. 將裝置連接到您的本機網路。如需詳細資訊，請參閱[將 Snowball Edge 連接到您的本機網路](getting-started.md#getting-started-connect)。

1. 取得登入資料以解除鎖定您的裝置。如需詳細資訊，請參閱[取得登入資料以存取 Snowball Edge](getting-started.md#get-credentials)。

1. 解鎖裝置。如需詳細資訊，請參閱[解鎖 Snowball Edge](unlockdevice.md)。您也可以使用指令碼工具，而不是手動解鎖裝置。請參閱[解鎖裝置](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/setup-tools#Unlock-devices)。

## 在 Snowball Edge 裝置上自動設定和執行 Amazon EKS Anywhere
<a name="auto-eksa-configuration"></a>

您可以使用範例指令碼工具來設定環境並執行 Amazon EKS Anywhere 管理執行個體，也可以手動執行。若要使用指令碼工具，請參閱[解鎖 Amazon EKS Anywhere 的裝置和設定環境](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/setup-tools#Unlock-devices-and-setup-envorinment-for-EKS-Anywhere)。在環境設定且 Amazon EKS Anywhere 管理執行個體正在執行之後，如果您需要將 Amazon EKS Anywhere 設定為在與網路中斷連線時在 Snowball Edge 裝置上操作，請參閱 [在 AWS Snow 上設定 Amazon EKS Anywhere 進行中斷連線操作](configure-disconnected.md)。否則，請參閱 [在 Snowball Edge 裝置上建立和維護叢集](maintain-eks-a-clusters-snow.md)。

若要手動設定環境並執行 Amazon EKS Anywhere 管理執行個體，請參閱 [在 Snowball Edge 裝置上手動設定和執行 Amazon EKS Anywhere](#manual-eksa-configuration)。

## 在 Snowball Edge 裝置上手動設定和執行 Amazon EKS Anywhere
<a name="manual-eksa-configuration"></a>

在 Snowball Edge 裝置上設定 Amazon EKS Anywhere 之前，請設定 Snowball Edge 用戶端的設定檔。如需詳細資訊，請參閱[設定和使用 Snowball Edge 用戶端](using-client-commands.md)。

**Topics**
+ [

### 建立 Amazon EKS Anywhere IAM 本機使用者
](#create-role)
+ [

### （選用） 在 Snowball Edge 上建立和匯入 Secure Shell 金鑰
](#create-ssh-key)
+ [

### 在 Snowball Edge 上執行 Amazon EKS Anywhere 管理員執行個體，並將憑證和憑證檔案傳輸至其中
](#start-config-eksa-admin-instance)

### 建立 Amazon EKS Anywhere IAM 本機使用者
<a name="create-role"></a>

如需最佳安全實務，請在 Snowball Edge 裝置上為 Amazon EKS Anywhere 建立本機 IAM 使用者。您可以使用下列程序手動執行此操作。

**注意**  
針對您使用的每個 Snowball Edge 裝置執行此操作。

#### 在 Snowball Edge 上建立本機使用者
<a name="create-eksa-iam-user"></a>

使用 `create-user`命令來建立 Amazon EKS Anywhere IAM 使用者。

```
aws iam create-user --user-name user-name --endpoint http://snowball-ip:6078 --profile profile-name
    {
        "User": {
            "Path": "/",
            "UserName": "eks-a-user",
            "UserId": "AIDACKCEVSQ6C2EXAMPLE",
            "Arn": "arn:aws:iam::123456789012:user/eks-a-user",
            "CreateDate": "2022-04-06T00:13:35.665000+00:00"
        }
    }
```

#### 在 Snowball Edge 上為本機使用者建立政策
<a name="create-eksa-iam-user-policy"></a>

建立政策文件，使用它來建立 IAM 政策，並將該政策連接到 Amazon EKS Anywhere 本機使用者。

**建立政策文件並將其連接至 Amazon EKS Anywhere 本機使用者**

1. 建立政策文件並將其儲存至您的電腦。將以下政策複製到 文件。

------
#### [ JSON ]

****  

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "snowball-device:DescribeDevice",
           "snowball-device:CreateDirectNetworkInterface",
           "snowball-device:DeleteDirectNetworkInterface",
           "snowball-device:DescribeDirectNetworkInterfaces",
           "snowball-device:DescribeDeviceSoftware"
         ],
         "Resource": ["*"]
       },
       {
         "Effect": "Allow",
         "Action": [
           "ec2:RunInstances",
           "ec2:DescribeInstances",
           "ec2:TerminateInstances",
           "ec2:ImportKeyPair",
           "ec2:DescribeKeyPairs",
           "ec2:DescribeInstanceTypes",
           "ec2:DescribeImages",
           "ec2:DeleteTags"
         ],
         "Resource": ["*"]
       }
     ]
   }
   ```

------

1. 使用 `create-policy`命令，根據政策文件建立 IAM 政策。`--policy-document` 參數的值應使用政策檔案的絕對路徑。例如 `file:///home/user/policy-name.json`

   ```
   aws iam create-policy --policy-name policy-name --policy-document file:///home/user/policy-name.json --endpoint http://snowball-ip:6078 --profile profile-name
   {
       "Policy": {
           "PolicyName": "policy-name",
           "PolicyId": "ANPACEMGEZDGNBVGY3TQOJQGEZAAAABP76TE5MKAAAABCCOTR2IJ43NBTJRZBU",
           "Arn": "arn:aws:iam::123456789012:policy/policy-name",
           "Path": "/",
           "DefaultVersionId": "v1",
           "AttachmentCount": 0,
           "IsAttachable": true,
           "CreateDate": "2022-04-06T04:46:56.907000+00:00",
           "UpdateDate": "2022-04-06T04:46:56.907000+00:00"
       }
   }
   ```

1. 使用 `attach-user-policy`命令將 IAM 政策連接至 Amazon EKS Anywhere 本機使用者。

   ```
   aws iam attach-user-policy --policy-arn policy-arn --user-name user-name --endpoint http://snowball-ip:6078 --profile profile-name     
   ```

#### 在 Snowball Edge 上建立存取金鑰和登入資料檔案
<a name="create-eksa-iam-user-access-key"></a>

為 Amazon EKS Anywhere IAM 本機使用者建立存取金鑰。然後，建立登入資料檔案，並在其中包含為本機使用者`SecretAccessKey`產生的 `AccessKeyId`和 值。登入資料檔案稍後將由 Amazon EKS Anywhere 管理員執行個體使用。

1. 使用 `create-access-key`命令為 Amazon EKS Anywhere 本機使用者建立存取金鑰。

   ```
   aws iam create-access-key --user-name user-name --endpoint http://snowball-ip:6078 --profile profile-name
       {
           "AccessKey": {
               "UserName": "eks-a-user",
               "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
               "Status": "Active",
               "SecretAccessKey": "RTT/wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
               "CreateDate": "2022-04-06T04:23:46.139000+00:00"
           }
       }
   ```

1. 建立登入資料檔案。在其中，以下列格式儲存 `AccessKeyId`和 `SecretAccessKey`值。

   ```
   [snowball-ip] 
   aws_access_key_id = ABCDEFGHIJKLMNOPQR2T
   aws_secret_access_key = AfSD7sYz/TBZtzkReBl6PuuISzJ2WtNkeePw+nNzJ
   region = snow
   ```
**注意**  
如果您使用的是多個 Snowball Edge 裝置， 檔案中的登入資料順序並不重要，但所有裝置的登入資料都需要在一個檔案中。

#### 在 Snowball Edge 上建立管理員執行個體的憑證檔案
<a name="create-credentials-for-admin-instance"></a>

Amazon EKS Anywhere 管理員執行個體需要 Snowball Edge 裝置的憑證，才能在其上執行。建立持有憑證的憑證檔案，以存取 Snowball Edge 裝置，以供 Amazon EKS Anywhere 管理員執行個體稍後使用。

**建立憑證檔案**

1. 使用 `list-certificates`命令來取得您計劃使用的每個 Snowball Edge 裝置的憑證。

   ```
   PATH_TO_Snowball_Edge_CLIENT/bin/snowballEdge list-certificates --endpoint https://snowball-ip --manifest-file path-to-manifest-file --unlock-code unlock-code
   {
     "Certificates" : [ {
       "CertificateArn" : "arn:aws:snowball-device:::certificate/xxx",
       "SubjectAlternativeNames" : [ "ID:JID-xxx" ]
     } ]
   }
   ```

1. 使用 的值`CertificateArn`做為 `get-certificate`命令`--certificate-arn`參數的值。

   ```
   PATH_TO_Snowball_Edge_CLIENT/bin/snowballEdge get-certificate --certificate-arn ARN --endpoint https://snowball-ip --manifest-file path-to-manifest-file --unlock-code unlock-code            
   ```

1. 建立裝置憑證檔案。將 的輸出`get-certificate`放入憑證檔案中。以下是如何儲存輸出的範例。
**注意**  
如果您使用的是多個 Snowball Edge 裝置， 檔案中的登入資料順序並不重要，但所有裝置的登入資料都需要在一個檔案中。

   ```
   -----BEGIN CERTIFICATE-----
   ZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGUgZWtzYSBzbm93IHRlc3QgY2VydGlm  
   aWNhdGVla3NhIHNub3cgdGVzdCBjZXJ0aWZpY2F0ZWVrc2Egc25vdyB0ZXN0IGNl  
   cnRpZmljYXRlZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGVla3NhIHNub3cgdGVz  
   dCBjZXJ0aWZpY2F0ZQMIIDXDCCAkSgAwIBAgIJAISM0nTVmbj+MA0GCSqGSIb3DQ  
   ...                                                               
   -----END CERTIFICATE-----
   ```

1. 在所有 Snowball Edge 裝置上[建立 Amazon EKS Anywhere IAM 本機使用者](#create-role)重複為 Amazon EKS Anywhere 建立 IAM 本機使用者。

### （選用） 在 Snowball Edge 上建立和匯入 Secure Shell 金鑰
<a name="create-ssh-key"></a>

使用此選用程序建立 Secure Shell (SSH) 金鑰來存取所有 Amazon EKS Anywhere 節點執行個體，並將公有金鑰匯入所有 Snowball Edge 裝置。保留並保護此金鑰檔案。

如果您略過此程序，Amazon EKS Anywhere 將視需要自動建立和匯入 SSH 金鑰。此金鑰將存放在 的管理員執行個體上`${PWD}/${CLUSTER_NAME}/eks-a-id_rsa`。

**建立 SSH 金鑰並將其匯入 Amazon EKS Anywhere 執行個體**

1. 使用 `ssh-keygen`命令來產生 SSH 金鑰。

   ```
   ssh-keygen -t rsa -C "key-name" -f path-to-key-file
   ```

1. 使用 `import-key-pair`命令將金鑰從您的電腦匯入 Snowball Edge 裝置。
**注意**  
當您將金鑰匯入所有裝置時， `key-name` 參數的值必須相同。

   ```
   aws ec2 import-key-pair --key-name key-name --public-key-material fileb:///path/to/key-file --endpoint http://snowball-ip:8008 --profile profile-name 
   {
       "KeyFingerprint": "5b:0c:fd:e1:a0:69:05:4c:aa:43:f3:3b:3e:04:7f:51",
       "KeyName": "default",
       "KeyPairId": "s.key-85edb5d820c92a6f8"
   }
   ```

### 在 Snowball Edge 上執行 Amazon EKS Anywhere 管理員執行個體，並將憑證和憑證檔案傳輸至其中
<a name="start-config-eksa-admin-instance"></a>

#### 在 Snowball Edge 上執行 Amazon EKS Anywhere 管理員執行個體
<a name="start-admin-instance"></a>

依照此程序手動執行 Amazon EKS Anywhere 管理員執行個體、設定管理員執行個體的虛擬網路界面 (VNI)、檢查執行個體的狀態、建立 SSH 金鑰，以及使用它連線到管理員執行個體。您可以使用範例指令碼工具自動建立 Amazon EKS Anywhere 管理執行個體，並將憑證和憑證檔案傳輸至此執行個體。請參閱[建立 Amazon EKS Anywhere 管理執行個體](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/setup-tools#Create-EKS-Anywhere-admin-instance)。指令碼工具完成後，您可以碎片化執行個體，並參考 建立叢集[在 Snowball Edge 裝置上建立和維護叢集](maintain-eks-a-clusters-snow.md)。如果您想要手動設定 Amazon EKS Anywhere 執行個體，請使用下列步驟。

**注意**  
如果您使用多個 Snowball Edge 裝置佈建叢集，您可以在任何 Snowball Edge 裝置上啟動 Amazon EKS Anywhere 管理員執行個體。

**執行 Amazon EKS Anywhere 管理員執行個體**

1. 使用 `create-key-pair`命令為 Amazon EKS Anywhere 管理執行個體建立 SSH 金鑰。命令會將金鑰儲存至 `$PWD/key-file-name`。

   ```
   aws ec2 create-key-pair --key-name key-name --query 'KeyMaterial' --output text --endpoint http://snowball ip:8008 > key-file-name --profile profile-name
   ```

1. 使用 `describe-images`命令從輸出尋找開頭為 `eks-anywhere-admin` 的映像名稱。

   ```
   aws ec2 describe-images --endpoint http://snowball-ip:8008 --profile profile-name
   ```

1. 使用 `run-instance`命令啟動具有 Amazon EKS Anywhere 管理映像的 eks-a 管理執行個體。

   ```
   aws ec2 run-instances --image-id eks-a-admin-image-id --key-name key-name --instance-type sbe-c.xlarge --endpoint http://snowball-ip:8008 --profile profile-name
   ```

1. 使用 `describe-instances`命令來檢查 Amazon EKS Anywhere 執行個體的狀態。請等到命令指出執行個體狀態為 `running`，再繼續。

   ```
   aws ec2 describe-instances --instance-id instance-id --endpoint http://snowball-ip:8008 --profile profile-name
   ```

1. 從 `describe-device`命令的輸出中，記下連線至您網路之實體網路界面`PhysicalNetworkInterfaceId`的 值。您將使用此項目來建立 VNI。

   ```
    
   PATH_TO_Snowball_Edge_CLIENT/bin/snowballEdge describe-device --endpoint https://snowball-ip --manifest-file path-to-manifest-file --unlock-code unlock-code
   ```

1. 為 Amazon EKS Anywhere 管理執行個體建立 VNI。使用 的值`PhysicalNetworkInterfaceId`做為 `physical-network-interface-id` 參數的值。

   ```
   PATH_TO_Snowball_Edge_CLIENT/bin/snowballEdge create-virtual-network-interface --ip-address-assignment dhcp --physical-network-interface-id PNI --endpoint https://snowball-ip --manifest-file path-to-manifest-file --unlock-code unlock-code
   ```

1. 使用 的值`IpAddress`做為 `associate-address`命令的 `public-ip` 參數值，將公有地址與 Amazon EKS Anywhere 管理執行個體建立關聯。

   ```
   aws ec2 associate-address --instance-id instance-id --public-ip VNI-IP --endpoint http://snowball-ip:8008 --profile profile-name 
   ```

1. 透過 SSH 連線至 Amazon EKS Anywhere 管理員執行個體。

   ```
   ssh -i path-to-key ec2-user@VNI-IP      
   ```

#### 將憑證和登入資料檔案傳輸到 Snowball Edge 上的管理員執行個體
<a name="transfer-cred-cert-files"></a>

執行 Amazon EKS Anywhere 管理員執行個體之後，請將 Snowball Edge 裝置的登入資料和憑證轉移至管理員執行個體。從您在 [在 Snowball Edge 上建立存取金鑰和登入資料檔案](#create-eksa-iam-user-access-key)和 中儲存憑證和憑證檔案的相同目錄執行下列命令[在 Snowball Edge 上建立管理員執行個體的憑證檔案](#create-credentials-for-admin-instance)。

```
scp -i path-to-key path-to-credentials-file path-to-certificates-file ec2-user@eks-admin-instance-ip:~        
```

驗證 Amazon EKS Anywhere 管理執行個體上的檔案內容。以下是登入資料和憑證檔案的範例。

```
[192.168.1.1] 
aws_access_key_id = EMGEZDGNBVGY3TQOJQGEZB5ULEAAIWHWUJDXEXAMPLE 
aws_secret_access_key = AUHpqjO0GZQHEYXDbN0neLNlfR0gEXAMPLE 
region = snow 

[192.168.1.2] 
aws_access_key_id = EMGEZDGNBVGY3TQOJQGEZG5O7F3FJUCMYRMI4KPIEXAMPLE 
aws_secret_access_key = kY4Cl8+RJAwq/bu28Y8fUJepwqhDEXAMPLE 
region = snow
```

```
-----BEGIN CERTIFICATE-----                                      
ZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGUgZWtzYSBzbm93IHRlc3QgY2VydGlm  
aWNhdGVla3NhIHNub3cgdGVzdCBjZXJ0aWZpY2F0ZWVrc2Egc25vdyB0ZXN0IGNl  
cnRpZmljYXRlZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGVla3NhIHNub3cgdGVz  
dCBjZXJ0aWZpY2F0ZQMIIDXDCCAkSgAwIBAgIJAISM0nTVmbj+MA0GCSqGSIb3DQ  
...                                                               
-----END CERTIFICATE-----                                         

-----BEGIN CERTIFICATE-----                                       
KJ0FPl2PAYPEjxr81/PoCXfZeARBzN9WLUH5yz1ta+sYUJouzhzWuLJYA1xqcCPY  
mhVlkRsN4hVdlBNRnCCpRF766yjdJeibKVzXQxoXoZBjrOkuGwqRy3d3ndjK77h4  
OR5Fv9mjGf7CjcaSjk/4iwmZvRSaQacb0YG5GVeb4mfUAuVtuFoMeYfnAgMBAAGj  
azBpMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFL/bRcnBRuSM5+FcYFa8HfIBomdF  
...                                                              
-----END CERTIFICATE-----
```

# 在 AWS Snow 上設定 Amazon EKS Anywhere 進行中斷連線操作
<a name="configure-disconnected"></a>

在 Snowball Edge 裝置上完成 Snowball Edge Amazon EKS Anywhere 裝置上的 Amazon EKS Anywhere 額外組態，以準備 Amazon EKS Anywhere 在沒有外部網路連線的環境中執行。

若要將 Amazon EKS Anywhere 設定為與您自己的本機私有 Kubernetes 登錄檔中斷連線，請參閱 EKS Anywhere 文件中的 [Registry Mirror 組態](https://anywhere.eks.amazonaws.com/docs/reference/clusterspec/optional/registrymirror/)。

如果您建立了 Harbor 私有登錄檔 AMI，請遵循本節中的程序。

**Topics**
+ [

## 在 Snowball Edge 裝置上設定 Harbor 登錄檔
](#configure-harbor-snow)
+ [

## 在 Snowball Edge 上的 Amazon EKS Anywhere 管理執行個體上使用 Harbor 登錄檔
](#use-local-registry-eksa-instance)

## 在 Snowball Edge 裝置上設定 Harbor 登錄檔
<a name="configure-harbor-snow"></a>

請參閱[在 Snowball Edge 裝置上設定 Harbor](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/container-registry-ami-builder#configure-harbor-on-a-snowball-edge-device)。

## 在 Snowball Edge 上的 Amazon EKS Anywhere 管理執行個體上使用 Harbor 登錄檔
<a name="use-local-registry-eksa-instance"></a>

請參閱[將 Amazon EKS Anywhere 容器映像匯入 Snowball Edge 裝置上的本機 Harbor 登錄](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/container-registry-ami-builder#import-eks-anywhere-container-images-to-the-local-harbor-registry-on-a-snowball-device)檔。

# 在 Snowball Edge 裝置上建立和維護叢集
<a name="maintain-eks-a-clusters-snow"></a>

## 在 Snowball Edge 上建立叢集的最佳實務
<a name="eks-a-cluster-snow-bestpractices"></a>

若要建立 Amazon EKS Anywhere 叢集，請參閱[建立雪叢集](https://anywhere.eks.amazonaws.com/docs/getting-started/production-environment/snow-getstarted/)。

在 Snowball Edge 裝置上建立 Amazon EKS Anywhere 叢集時，請記住下列最佳實務：
+ 在靜態 IP 地址範圍內建立叢集之前，請確定 Snowball Edge 裝置上沒有使用相同 IP 地址範圍的其他叢集。
+ 在 Snowball Edge 裝置上建立具有 DHCP 定址的叢集之前，請確定用於叢集的所有靜態 IP 地址範圍不在 DHCP 集區子網路中。
+ 建立多個叢集時，請等到一個叢集成功佈建並執行，再建立另一個叢集。

## 升級 Snowball Edge 上的叢集
<a name="updating-eks-a-clusters-snow"></a>

若要升級 Amazon EKS Anywhere 管理員 AMI 或 EKS Distro AMI，請聯絡 AWS 支援。 支援 將提供包含升級 AMI 的 Snowball Edge 更新。然後，下載並安裝 Snowball Edge 更新。請參閱 [下載 Snowball Edge 裝置的更新](download-updates.md) 和 [安裝 Snowball Edge 裝置的更新](install-updates.md)。

升級 Amazon EKS Anywhere AMI 之後，您需要啟動新的 Amazon EKS Anywhere 管理執行個體。請參閱 [在 Snowball Edge 上執行 Amazon EKS Anywhere 管理員執行個體](eksa-configuration.md#start-admin-instance)。然後，將金鑰檔案、叢集資料夾、登入資料和憑證從先前的管理員執行個體複製到升級的執行個體。這些位於為叢集命名的資料夾中。

## 清除 Snowball Edge 上的叢集資源
<a name="clean-up-resources-eks-a-clusters-snow"></a>

如果您在 Snowball Edge 裝置上建立多個叢集，但未正確刪除它們，或者如果叢集發生問題，且叢集在繼續後建立替換節點，則會發生資源洩漏。您可以使用範例指令碼工具來修改和使用 來清理 Amazon EKS Anywhere 管理員執行個體和 Snowball Edge 裝置。請參閱 [Amazon EKS Anywhere on AWS Snow 清理工具](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/cleanup-tools#eks-anywhere-on-snow-cleanup-tools)。