設定Amazon Web Services
您必須先採取幾個步驟來準備Amazon Web Services專案、才能使用Astra Control Service管理Amazon Elastic Kubernetes Service(EKS)叢集。
設定Amazon Web Services的快速入門
EKS叢集需求
Kubernetes叢集必須符合下列需求、才能從Astra Control Service進行探索和管理。
- Kubernetes版本
-
叢集必須執行 1.25 至 1.28 範圍內的 Kubernetes 版本。
- 映像類型
-
每個工作節點的映像類型必須是Linux。
- 叢集狀態
-
叢集必須以正常狀態執行、且至少有一個線上工作者節點、且在故障狀態下沒有工作節點。
- Astra Control 資源配置程式
-
Astra Control Provisioner 和外部快照控制器是儲存後端作業所需的。若要啟用這些作業、請執行下列步驟:
Details
- Amazon Elastic Block Store(EBS)適用的SCSI驅動程式
-
如果您使用Amazon EBS儲存後端、則需要安裝EBS的Container Storage Interface(Container Storage Interface、簡稱csi)驅動程式(不會自動安裝)。
如需安裝 CSI 驅動程式的說明、請參閱步驟。
Details
安裝外部快照如果您尚未這麼做、 "安裝 Snapshot CRD 和 Snapshot 控制器"。
將csi驅動程式安裝為Amazon EKS附加元件-
為服務帳戶建立Amazon EBS SCSI驅動程式IAM角色。請依照指示操作 "在Amazon文件中"、使用說明中的AWS CLI命令。
-
使用下列AWS CLI命令新增Amazon EBS csi附加元件、將方括弧<>中的資訊取代為您環境的特定值。將<driver_role(驅動程式角色)>取代為您在上一個步驟中建立的EBS csi驅動程式角色名稱:
aws eks create-addon \ --cluster-name <CLUSTER_NAME> \ --addon-name aws-ebs-csi-driver \ --service-account-role-arn arn:aws:iam::<ACCOUNT_ID>:role/<DRIVER_ROLE>
設定EBS儲存類別-
將Amazon EBS SCSI驅動程式GitHub儲存庫複製到您的系統。
git clone https://github.com/kubernetes-sigs/aws-ebs-csi-driver.git
-
瀏覽至動態資源配置範例目錄。
cd aws-ebs-csi-driver/examples/kubernetes/dynamic-provisioning/
-
從清單目錄部署EBS SC儲存類別和EBS宣告持續磁碟區宣告。
kubectl apply -f manifests/storageclass.yaml kubectl apply -f manifests/claim.yaml
-
說明EBS SC儲存類別。
kubectl describe storageclass ebs-sc
您應該會看到說明儲存類別屬性的輸出。
-
建立Amazon帳戶
如果您尚未擁有Amazon帳戶、則需要建立帳戶、才能啟用Amazon EKS的帳單。
-
前往 "Amazon首頁" ,選擇右上角的* Sign In(登入)、然後選取 Start Here(開始於此處)*。
-
依照提示建立帳戶。
安裝Amazon Web Services CLI
安裝AWS CLI、以便從命令列管理AWS資源。
-
前往 "AWS CLI快速入門" 並依照指示安裝CLI。
選用:建立IAM使用者
建立IAM使用者、讓您以更高的安全性來使用及管理AWS服務和資源。您也可以跳過此步驟、將現有的IAM使用者與Astra Control Service搭配使用。
-
前往 "建立IAM使用者" 並依照指示建立IAM使用者。
建立及附加權限原則
建立具有Astra Control Service與AWS帳戶互動所需權限的原則。
-
建立名為「policy.json」的新檔案。
-
將下列Json內容複製到檔案中:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "cloudwatch:GetMetricData", "fsx:DescribeVolumes", "ec2:DescribeRegions", "s3:CreateBucket", "s3:ListBucket", "s3:PutObject", "s3:GetObject", "iam:SimulatePrincipalPolicy", "s3:ListAllMyBuckets", "eks:DescribeCluster", "eks:ListNodegroups", "eks:DescribeNodegroup", "eks:ListClusters", "iam:GetUser", "s3:DeleteObject", "s3:DeleteBucket", "autoscaling:DescribeAutoScalingGroups" ], "Resource": "*" } ] }
-
建立原則:
POLICY_ARN=$(aws iam create-policy --policy-name <policy-name> --policy-document file://policy.json --query='Policy.Arn' --output=text)
-
將原則附加至IAM使用者。將「<IAM使用者名稱>」取代為您所建立IAM使用者的使用者名稱、或是現有IAM使用者的使用者名稱:
aws iam attach-user-policy --user-name <IAM-USER-NAME> --policy-arn=$POLICY_ARN
儲存IAM使用者的認證資料
儲存IAM使用者的認證資料、讓Astra Control Service能夠感知使用者。
-
下載認證資料。將「<IAM使用者名稱>」取代為您要使用的IAM使用者的使用者名稱:
aws iam create-access-key --user-name <IAM-USER-NAME> --output json > credential.json
隨即建立「認證資料.json」檔案、您可以將認證資料匯入Astra Control Service。