View a markdown version of this page

Buat Cluster Mode Otomatis EKS dengan AWS CLI - Amazon EKS

Bantu meningkatkan halaman ini

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Untuk berkontribusi pada panduan pengguna ini, pilih GitHub tautan Edit halaman ini di yang terletak di panel kanan setiap halaman.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat Cluster Mode Otomatis EKS dengan AWS CLI

EKS Auto Mode Clusters mengotomatiskan tugas manajemen cluster rutin untuk komputasi, penyimpanan, dan jaringan. Misalnya, Cluster Mode Otomatis EKS secara otomatis mendeteksi kapan node tambahan diperlukan dan menyediakan instans EC2 baru untuk memenuhi tuntutan beban kerja.

Topik ini memandu Anda melalui pembuatan Cluster Mode Otomatis EKS baru menggunakan AWS CLI dan secara opsional menerapkan beban kerja sampel.

Prasyarat

  • Versi terbaru dari AWS Command Line Interface (AWS CLI) diinstal dan dikonfigurasi pada perangkat Anda. Untuk memeriksa versi Anda saat ini, gunakanaws --version. Untuk menginstal versi terbaru, lihat Meng instal dan konfigurasi cepat dengan aws configure di Panduan Pengguna Antar AWS muka Baris Perintah.

    • Masuk ke CLI dengan izin IAM yang memadai untuk membuat AWS sumber daya termasuk Kebijakan IAM, Peran IAM, dan Kluster EKS.

  • Alat baris perintah kubectl diinstal pada perangkat Anda. AWS menyarankan Anda menggunakan versi kubectl yang sama dengan versi Kubernetes dari Cluster EKS Anda. Untuk menginstal atau meng-upgrade kubectl, lihat. Siapkan kubectl dan eksctl

Tentukan subnet VPC

Mode Otomatis Amazon EKS menyebarkan node ke subnet VPC. Saat membuat cluster EKS, Anda harus menentukan subnet VPC tempat node akan digunakan. Anda dapat menggunakan subnet VPC default di AWS akun Anda atau membuat VPC khusus untuk beban kerja kritis.

Menggunakan AWS CLI:

  1. Jalankan perintah berikut untuk mencantumkan VPC default dan subnetnya:

    aws ec2 describe-subnets --filters "Name=vpc-id,Values=$(aws ec2 describe-vpcs --query 'Vpcs[?IsDefault==`true`].VpcId' --output text)" --query 'Subnets[*].{ID:SubnetId,AZ:AvailabilityZone}' --output table
  2. Simpan output dan catat ID Subnet.

    Contoh output:

    ----------------------------------------
    |             DescribeSubnets          |
    ----------------------------------------
    |   SubnetId        |   AvailabilityZone  |
    |--------------------|---------------------|
    |   subnet-012345678 |   us-west-2a        |
    |   subnet-234567890 |   us-west-2b        |
    |   subnet-345678901 |   us-west-2c        |
    ----------------------------------------

Peran IAM untuk Cluster Mode Otomatis EKS

Peran Cluster IAM

Mode Otomatis EKS memerlukan Peran IAM Cluster untuk melakukan tindakan di AWS akun Anda, seperti menyediakan instans EC2 baru. Anda harus membuat peran ini untuk memberikan izin yang diperlukan kepada EKS. AWS merekomendasikan melampirkan kebijakan terkel AWS ola berikut ke Peran IAM Cluster:

Peran Node IAM

Saat Anda membuat cluster Mode Otomatis EKS, Anda menentukan Peran IAM Node. Ketika Mode Otomatis EKS membuat node untuk memproses beban kerja yang tertunda, setiap node instans EC2 baru diberi Peran IAM Node. Peran ini memungkinkan node untuk berkomunikasi dengan EKS tetapi umumnya tidak diakses oleh beban kerja yang berjalan pada node.

Jika Anda ingin memberikan izin untuk beban kerja yang berjalan pada node, gunakan EKS Pod Identity. Untuk informasi selengkapnya, lihat Pelajari cara EKS Pod Identity memberikan akses Pod AWS layanan.

Anda harus membuat peran ini dan melampirkan kebijakan terkel AWS ola berikut:

Service-Linked Peran

Mode Otomatis EKS juga memerlukan Service-Linked Peran, yang secara otomatis dibuat dan dikonfigurasi oleh AWS. Untuk informasi selengkapnya, lihat AWSServiceRoleForAmazonEKS.

Membuat Peran IAM Cluster Mode Otomatis EKS

Langkah 1: Buat Kebijakan Kepercayaan

Buat kebijakan kepercayaan yang memungkinkan layanan Amazon EKS untuk mengambil peran tersebut. Simpan kebijakan sebagaitrust-policy.json:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] }

Langkah 2: Buat Peran IAM

Gunakan kebijakan kepercayaan untuk membuat Peran IAM Cluster:

aws iam create-role \
    --role-name AmazonEKSAutoClusterRole \
    --assume-role-policy-document file://trust-policy.json

Langkah 3: Perhatikan Peran ARN

Ambil dan simpan ARN dari peran baru untuk digunakan dalam langkah-langkah selanjutnya:

aws iam get-role --role-name AmazonEKSAutoClusterRole --query "Role.Arn" --output text

Langkah 4: Lampirkan Kebijakan yang Diperlukan

Lampirkan kebijakan ter AWS kelola berikut ke Peran IAM Cluster untuk memberikan izin yang diperlukan:

AmazonEKSClusterPolicy:

aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSClusterPolicy

AmazonEKSComputePolicy:

aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSComputePolicy

AmazonEKSBlockStoragePolicyV2:

aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSBlockStoragePolicyV2

AmazonEKSLoadBalancingPolicy:

aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSLoadBalancingPolicy

AmazonEKSNetworkingPolicy:

aws iam attach-role-policy \ --role-name AmazonEKSAutoClusterRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSNetworkingPolicy

Membuat Peran IAM Node Mode Otomatis EKS

Langkah 1: Buat Kebijakan Kepercayaan

Buat kebijakan kepercayaan yang memungkinkan layanan Amazon EKS untuk mengambil peran tersebut. Simpan kebijakan sebagainode-trust-policy.json:

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Langkah 2: Buat Peran IAM Node

Gunakan file node-trust-policy. json dari langkah sebelumnya untuk menentukan entitas mana yang dapat mengambil peran tersebut. Jalankan perintah berikut untuk membuat Node IAM Role:

aws iam create-role \
    --role-name AmazonEKSAutoNodeRole \
    --assume-role-policy-document file://node-trust-policy.json

Langkah 3: Perhatikan Peran ARN

Setelah membuat peran, ambil dan simpan ARN dari Node IAM Role. Anda akan membutuhkan ARN ini dalam langkah-langkah selanjutnya. Gunakan perintah berikut untuk mendapatkan ARN:

aws iam get-role --role-name AmazonEKSAutoNodeRole --query "Role.Arn" --output text

Langkah 4: Lampirkan Kebijakan yang Diperlukan

Lampirkan kebijakan ter AWS kelola berikut ke Peran IAM Node untuk memberikan izin yang diperlukan:

AmazonEKSWorkerNodeMinimalPolicy:

aws iam attach-role-policy \ --role-name AmazonEKSAutoNodeRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEKSWorkerNodeMinimalPolicy

AmazonEC2ContainerRegistryPullOnly:

aws iam attach-role-policy \ --role-name AmazonEKSAutoNodeRole \ --policy-arn arn:aws: iam::aws:policy/AmazonEC2ContainerRegistryPullOnly

Membuat Cluster Mode Otomatis EKS

Gambaran umum

Untuk membuat Cluster Mode Otomatis EKS menggunakan AWS CLI, Anda memerlukan parameter berikut:

  • cluster-name: Nama cluster.

  • k8s-version: Versi Kubernetes (misalnya, 1.31).

  • subnet-ids: ID subnet diidentifikasi pada langkah sebelumnya.

  • cluster-role-arn: ARN dari Peran IAM Cluster.

  • node-role-arn: ARN dari Peran IAM Node.

Konfigurasi Cluster Default

Tinjau nilai dan fitur default ini sebelum membuat cluster:

  • nodePools: Mode Otomatis EKS mencakup Pools Node tujuan umum dan default sistem. Pelajari lebih lanjut tentang Pools Node.

Catatan: Kum pulan Node dalam Mode Otomatis EKS berbeda dari Grup Node Terkelola Amazon EKS tetapi dapat hidup berdampingan di cluster yang sama.

  • computeConfig.enabled: Mengotomatiskan tugas komputasi rutin, seperti membuat dan menghapus instans EC2.

  • kubernetesNetworkConfig.elasticLoadBalancing.enabled: Mengotomatiskan tugas penyeimbangan beban, termasuk membuat dan menghapus Elastic Load Balancers.

  • storageConfig.blockStorage.enabled: Mengotomatiskan tugas penyimpanan, seperti membuat dan menghapus volume Amazon EBS.

  • accessConfig.authenticationMode: Membutuhkan entri akses EKS. Pelajari lebih lanjut tentang mode otentikasi EKS.

Tetapkan Variabel Lingkungan

Sebelum menjalankan create-cluster perintah, atur variabel lingkungan berikut. Ganti nilai placeholder dengan milik Anda sendiri:

export AWS_REGION=us-east-1
export CLUSTER_NAME=my-auto-cluster
export K8S_VERSION=1.35
export CLUSTER_ROLE_ARN=arn:aws:iam::111122223333:role/AmazonEKSAutoClusterRole
export NODE_ROLE_ARN=arn:aws:iam::111122223333:role/AmazonEKSAutoNodeRole
export SUBNETS_JSON='["subnet-ExampleID1","subnet-ExampleID2","subnet-ExampleID3"]'
catatan

Atur SUBNETS_JSON variabel dengan ID subnet dari langkah sebelumnya. Anda harus membungkus nilai dalam tanda kutip tunggal untuk mencegah shell menafsirkan tanda kurung dan tanda kutip sebagai karakter khusus.

Verifikasi Variabel (Opsional)

Konfirmasikan variabel Anda diatur dengan benar:

echo "Region: ${AWS_REGION}"
echo "Cluster Name: ${CLUSTER_NAME}"
echo "K8s Version: ${K8S_VERSION}"
echo "Cluster Role ARN: ${CLUSTER_ROLE_ARN}"
echo "Node Role ARN: ${NODE_ROLE_ARN}"
echo "Subnets JSON: ${SUBNETS_JSON}"

Jalankan Perintah

Gunakan perintah berikut untuk membuat cluster:

aws eks create-cluster \
  --region ${AWS_REGION} \
  --cli-input-json \
  "{
      \"name\": \"${CLUSTER_NAME}\",
      \"version\": \"${K8S_VERSION}\",
      \"roleArn\": \"${CLUSTER_ROLE_ARN}\",
      \"resourcesVpcConfig\": {
        \"subnetIds\": ${SUBNETS_JSON},
        \"endpointPublicAccess\": true,
        \"endpointPrivateAccess\": true
      },
      \"computeConfig\": {
        \"enabled\": true,
        \"nodeRoleArn\":\"${NODE_ROLE_ARN}\",
        \"nodePools\": [\"general-purpose\", \"system\"]
      },
      \"kubernetesNetworkConfig\": {
        \"elasticLoadBalancing\": {
          \"enabled\": true
        }
      },
      \"storageConfig\": {
        \"blockStorage\": {
          \"enabled\": true
        }
      },
      \"accessConfig\": {
        \"authenticationMode\": \"API\"
      }
    }"

Periksa Status Cluster

Langkah 1: Verifikasi Pembuatan Cluster

Jalankan perintah berikut untuk memeriksa status cluster Anda. Pembuatan cluster biasanya memakan waktu sekitar 15 menit:

aws eks describe-cluster --name "${CLUSTER_NAME}" --output json

Langkah 2: Perbarui kubeconfig

Setelah cluster siap, perbarui file kubeconfig lokal Anda kubectl untuk memungkinkan berkomunikasi dengan cluster. Konfigurasi ini menggunakan AWS CLI untuk otentikasi.

aws eks update-kubeconfig --name "${CLUSTER_NAME}"

Langkah 3: Verifikasi Pools Node

Buat daftar Pools Node di cluster Anda menggunakan perintah berikut:

kubectl get nodepools

Langkah Berikutnya