本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
請遵循這些程序,在 Snowball Edge 裝置上設定和啟動 Amazon EKS Anywhere。然後,若要將 Amazon EKS Anywhere 設定為在中斷連線的裝置上操作,請先完成其他程序,再中斷這些裝置與外部網路的連線。如需詳細資訊,請參閱在 AWS Snow 上設定 Amazon EKS Anywhere 進行中斷連線操作。
主題
Snowball Edge 上 Amazon EKS Anywhere 的初始設定
將裝置連接到本機網路、下載 Snowball Edge 用戶端、取得登入資料,以及解鎖裝置,以在每個 Snowball Edge 裝置上執行初始設定。
執行初始設定
-
下載並安裝 Snowball Edge 用戶端。如需詳細資訊,請參閱下載並安裝 Snowball Edge 用戶端。
-
將裝置連接到您的本機網路。如需詳細資訊,請參閱將 Snowball Edge 連接到您的本機網路。
-
取得登入資料以解除鎖定您的裝置。如需詳細資訊,請參閱取得登入資料以存取 Snowball Edge。
-
解鎖裝置。如需詳細資訊,請參閱解鎖 Snowball Edge。您也可以使用指令碼工具,而不是手動解鎖裝置。請參閱解鎖裝置
。
在 Snowball Edge 裝置上自動設定和執行 Amazon EKS Anywhere
您可以使用範例指令碼工具來設定環境並執行 Amazon EKS Anywhere 管理執行個體,也可以手動執行。若要使用指令碼工具,請參閱解鎖 Amazon EKS Anywhere 的裝置和設定環境
若要手動設定環境並執行 Amazon EKS Anywhere 管理執行個體,請參閱 在 Snowball Edge 裝置上手動設定和執行 Amazon EKS Anywhere 。
在 Snowball Edge 裝置上手動設定和執行 Amazon EKS Anywhere
在 Snowball Edge 裝置上設定 Amazon EKS Anywhere 之前,請設定 Snowball Edge 用戶端的設定檔。如需詳細資訊,請參閱設定和使用 Snowball Edge 用戶端。
主題
建立 Amazon EKS Anywhere IAM 本機使用者
如需最佳安全實務,請在 Snowball Edge 裝置上為 Amazon EKS Anywhere 建立本機 IAM 使用者。您可以使用下列程序手動執行此操作。
注意
針對您使用的每個 Snowball Edge 裝置執行此操作。
在 Snowball Edge 上建立本機使用者
使用 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 上為本機使用者建立政策
建立政策文件,使用它來建立 IAM 政策,並將該政策連接到 Amazon EKS Anywhere 本機使用者。
建立政策文件並將其連接至 Amazon EKS Anywhere 本機使用者
建立政策文件並將其儲存至您的電腦。將以下政策複製到 文件。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "snowballdevice:DescribeDevice", "snowballdevice:CreateDirectNetworkInterface", "snowballdevice:DeleteDirectNetworkInterface", "snowballdevice:DescribeDirectNetworkInterfaces", "snowballdevice:DescribeDeviceSoftware" ], "Resource": ["*"] }, { "Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:DescribeInstances", "ec2:TerminateInstances", "ec2:ImportKeyPair", "ec2:DescribeKeyPairs", "ec2:DescribeInstanceTypes", "ec2:DescribeImages", "ec2:DeleteTags" ], "Resource": ["*"] } ] }
-
使用
create-policy
命令,根據政策文件建立 IAM 政策。--policy-document
參數的值應使用政策檔案的絕對路徑。例如file:///home/user/policy-name.json
aws iam create-policy --policy-name
policy-name
--policy-documentfile:///home/user/policy-name.json
--endpoint http://snowball-ip
:6078 --profileprofile-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" } } 使用
attach-user-policy
命令將 IAM 政策連接至 Amazon EKS Anywhere 本機使用者。aws iam attach-user-policy --policy-arn
policy-arn
--user-nameuser-name
--endpoint http://snowball-ip
:6078 --profileprofile-name
在 Snowball Edge 上建立存取金鑰和登入資料檔案
為 Amazon EKS Anywhere IAM 本機使用者建立存取金鑰。然後,建立登入資料檔案,並在其中包含為本機使用者SecretAccessKey
產生的 AccessKeyId
和 值。Amazon EKS Anywhere 管理員執行個體稍後將使用登入資料檔案。
使用
create-access-key
命令為 Amazon EKS Anywhere 本機使用者建立存取金鑰。aws iam create-access-key --user-name
user-name
--endpoint http://snowball-ip
:6078 --profileprofile-name
{ "AccessKey": { "UserName": "eks-a-user", "AccessKeyId": "AKIAIOSFODNN7EXAMPLE", "Status": "Active", "SecretAccessKey": "RTT/wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "CreateDate": "2022-04-06T04:23:46.139000+00:00" } }建立登入資料檔案。在其中,以下列格式儲存
AccessKeyId
和SecretAccessKey
值。[snowball-ip] aws_access_key_id = ABCDEFGHIJKLMNOPQR2T aws_secret_access_key = AfSD7sYz/TBZtzkReBl6PuuISzJ2WtNkeePw+nNzJ region = snow
注意
如果您使用的是多個 Snowball Edge 裝置,檔案中的登入資料順序並不重要,但所有裝置的登入資料都必須在一個檔案中。
在 Snowball Edge 上為管理員執行個體建立憑證檔案
Amazon EKS Anywhere 管理執行個體需要 Snowball Edge 裝置的憑證,才能在它們上執行。建立持有憑證的憑證檔案,以存取 Snowball Edge 裝置,以供 Amazon EKS Anywhere 管理員執行個體稍後使用。
建立憑證檔案
-
使用
list-certificates
命令來取得您計劃使用的每個 Snowball Edge 裝置的憑證。PATH_TO_Snowball_Edge_CLIENT
/bin/snowballEdge list-certificates --endpoint https://snowball-ip
--manifest-filepath-to-manifest-file
--unlock-codeunlock-code
{ "Certificates" : [ { "CertificateArn" : "arn:aws:snowball-device:::certificate/xxx", "SubjectAlternativeNames" : [ "ID:JID-xxx" ] } ] } 使用 的值
CertificateArn
做為get-certificate
命令--certificate-arn
參數的值。PATH_TO_Snowball_Edge_CLIENT
/bin/snowballEdge get-certificate --certificate-arnARN
--endpoint https://snowball-ip
--manifest-filepath-to-manifest-file
--unlock-codeunlock-code
建立裝置憑證檔案。將 的輸出
get-certificate
放入憑證檔案中。以下是如何儲存輸出的範例。注意
如果您使用的是多個 Snowball Edge 裝置,檔案中的登入資料順序並不重要,但所有裝置的登入資料都必須在一個檔案中。
-----BEGIN CERTIFICATE----- ZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGUgZWtzYSBzbm93IHRlc3QgY2VydGlm aWNhdGVla3NhIHNub3cgdGVzdCBjZXJ0aWZpY2F0ZWVrc2Egc25vdyB0ZXN0IGNl cnRpZmljYXRlZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGVla3NhIHNub3cgdGVz dCBjZXJ0aWZpY2F0ZQMIIDXDCCAkSgAwIBAgIJAISM0nTVmbj+MA0GCSqGSIb3DQ ... -----END CERTIFICATE-----
在所有 Snowball Edge 裝置上建立 Amazon EKS Anywhere IAM 本機使用者重複為 Amazon EKS Anywhere 建立 IAM 本機使用者。
(選用) 在 Snowball Edge 上建立和匯入 Secure Shell 金鑰
使用此選用程序建立 Secure Shell (SSH) 金鑰來存取所有 Amazon EKS Anywhere 節點執行個體,並將公有金鑰匯入所有 Snowball Edge 裝置。保留並保護此金鑰檔案。
如果您略過此程序,Amazon EKS Anywhere 將視需要自動建立和匯入 SSH 金鑰。此金鑰將存放在 的管理員執行個體上${PWD}/${CLUSTER_NAME}/eks-a-id_rsa
。
建立 SSH 金鑰並將其匯入 Amazon EKS Anywhere 執行個體
使用
ssh-keygen
命令來產生 SSH 金鑰。ssh-keygen -t rsa -C "
key-name
" -fpath-to-key-file
-
使用
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 --profileprofile-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 管理員執行個體,並將憑證和憑證檔案傳輸至其中
在 Snowball Edge 上執行 Amazon EKS Anywhere 管理員執行個體
依照此程序手動執行 Amazon EKS Anywhere 管理執行個體、設定管理執行個體的虛擬網路界面 (VNI)、檢查執行個體的狀態、建立 SSH 金鑰,以及使用它連線到管理執行個體。您可以使用範例指令碼工具,自動建立 Amazon EKS Anywhere 管理執行個體,並將憑證和憑證檔案傳輸至此執行個體。請參閱建立 Amazon EKS Anywhere 管理執行個體
注意
如果您使用多個 Snowball Edge 裝置來佈建叢集,您可以在任何 Snowball Edge 裝置上啟動 Amazon EKS Anywhere 管理員執行個體。
執行 Amazon EKS Anywhere 管理執行個體
使用
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
--profileprofile-name
使用
describe-images
命令從輸出尋找開頭為eks-anywhere-admin
的映像名稱。aws ec2 describe-images --endpoint http://
snowball-ip
:8008 --profileprofile-name
使用
run-instance
命令啟動具有 Amazon EKS Anywhere 管理映像的 eks-a 管理執行個體。aws ec2 run-instances --image-id
eks-a-admin-image-id
--key-namekey-name
--instance-type sbe-c.xlarge --endpoint http://snowball-ip
:8008 --profileprofile-name
使用
describe-instances
命令來檢查 Amazon EKS Anywhere 執行個體的狀態。等待命令指出執行個體狀態為running
,再繼續。aws ec2 describe-instances --instance-id
instance-id
--endpoint http://snowball-ip
:8008 --profileprofile-name
從
describe-device
命令的輸出中,記下連線至您網路PhysicalNetworkInterfaceId
之實體網路界面的 值。您將使用此項目來建立 VNI。PATH_TO_Snowball_Edge_CLIENT
/bin/snowballEdge describe-device --endpoint https://snowball-ip
--manifest-filepath-to-manifest-file
--unlock-codeunlock-code
為 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-idPNI
--endpoint https://snowball-ip
--manifest-filepath-to-manifest-file
--unlock-codeunlock-code
使用 的值
IpAddress
做為associate-address
命令的public-ip
參數值,將公有地址與 Amazon EKS Anywhere 管理執行個體建立關聯。aws ec2 associate-address --instance-id
instance-id
--public-ipVNI-IP
--endpoint http://snowball-ip
:8008 --profileprofile-name
透過 SSH 連線至 Amazon EKS Anywhere 管理員執行個體。
ssh -i
path-to-key
ec2-user@VNI-IP
將憑證和登入資料檔案傳輸到 Snowball Edge 上的管理員執行個體
執行 Amazon EKS Anywhere 管理執行個體之後,請將 Snowball Edge 裝置的登入資料和憑證轉移至管理員執行個體。從您在 在 Snowball Edge 上建立存取金鑰和登入資料檔案和 中儲存憑證和憑證檔案的相同目錄執行下列命令在 Snowball Edge 上為管理員執行個體建立憑證檔案。
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-----