

 **Bantu tingkatkan 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 **Edit halaman ini pada GitHub** tautan 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.

# Pelajari tentang IPv6 alamat ke klaster, Pod, dan layanan
<a name="cni-ipv6"></a>

 **Berlaku untuk**: Pod dengan EC2 instans Amazon dan Pod Fargate

Secara default, Kubernetes memberikan `IPv4` alamat ke Pod dan layanan Anda. Alih-alih menetapkan `IPv4` alamat ke Pod dan layanan Anda, Anda dapat mengonfigurasi klaster untuk menetapkan `IPv6` alamat ke Pod dan layanan Anda. Amazon EKS tidak mendukung Pod atau layanan bertumpuk ganda, meskipun Kubernetes melakukannya. Akibatnya, Anda tidak dapat menetapkan keduanya `IPv4` dan `IPv6` alamat ke Pod dan layanan Anda.

Anda memilih keluarga IP mana yang ingin Anda gunakan untuk cluster Anda saat Anda membuatnya. Anda tidak dapat mengubah keluarga setelah membuat cluster.

Untuk tutorial menerapkan `IPv6` kluster Amazon EKS, lihat[Menyebarkan `IPv6` kluster Amazon EKS dan mengelola node Amazon Linux](deploy-ipv6-cluster.md).

Berikut ini adalah pertimbangan untuk menggunakan fitur ini:

## `IPv6`Dukungan fitur
<a name="_ipv6_feature_support"></a>
+  **Tidak ada dukungan Windows**: Pod dan layanan Windows tidak didukung.
+  **Diperlukan EC2 node berbasis Nitro**: Anda hanya dapat menggunakan `IPv6` dengan node AWS Amazon atau EC2 Fargate berbasis Nitro.
+  **EC2 dan node Fargate didukung**: Anda dapat menggunakan `IPv6` dengan dengan EC2 node [Menetapkan grup keamanan ke Pod individual](security-groups-for-pods.md) Amazon dan node Fargate.
+  **Outposts tidak didukung**: Anda tidak dapat menggunakan `IPv6` dengan. [Menerapkan Amazon EKS lokal dengan Outposts AWS](eks-outposts.md)
+  **FSx untuk Lustre tidak didukung**: Tidak [Gunakan penyimpanan aplikasi berkinerja tinggi dengan Amazon FSx untuk Lustre](fsx-csi.md) didukung.
+  **Jaringan khusus tidak didukung**: Jika sebelumnya Anda digunakan [Menerapkan Pod di subnet alternatif dengan jaringan khusus](cni-custom-network.md) untuk membantu mengurangi kelelahan alamat IP, Anda dapat menggunakannya sebagai gantinya. `IPv6` Anda tidak dapat menggunakan jaringan khusus dengan`IPv6`. Jika Anda menggunakan jaringan khusus untuk isolasi jaringan, maka Anda mungkin perlu terus menggunakan jaringan khusus dan `IPv4` keluarga untuk cluster Anda.

## Penugasan alamat IP
<a name="_ip_address_assignments"></a>
+  Layanan **Kubernetes: Layanan** Kubernetes hanya diberi alamat. `IPv6` Mereka tidak diberi IPv4 alamat.
+  **Pod**: Pod diberi IPv6 alamat dan alamat host-lokal IPv4 . IPv4 Alamat host-lokal ditetapkan dengan menggunakan plugin CNI host-lokal yang dirantai dengan VPC CNI dan alamatnya tidak dilaporkan ke bidang kontrol Kubernetes. Ini hanya digunakan ketika pod perlu berkomunikasi dengan IPv4 sumber daya eksternal di VPC Amazon lain atau internet. IPv4 Alamat host-lokal mendapat SNATed (oleh VPC CNI) ke IPv4 alamat utama ENI primer dari node pekerja.
+  **Pod dan layanan**: Pod dan layanan hanya menerima `IPv6` alamat, bukan `IPv4` alamat. Ketika Pod perlu berkomunikasi dengan `IPv4` endpoint eksternal, mereka menggunakan NAT pada node itu sendiri. Kemampuan NAT bawaan ini menghilangkan kebutuhan untuk [DNS64 dan NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html#nat-gateway-nat64-dns64). Untuk lalu lintas yang membutuhkan akses internet publik, lalu lintas Pod adalah alamat jaringan sumber yang diterjemahkan ke alamat IP publik.
+  **Alamat perutean**: Ketika sebuah Pod berkomunikasi di luar VPC, `IPv6` alamat aslinya dipertahankan (tidak diterjemahkan ke alamat node). `IPv6` Lalu lintas ini diarahkan langsung melalui gateway internet atau gateway internet khusus egres.
+  **Node**: Semua node diberi `IPv6` alamat `IPv4` dan.
+  **Pod Fargate**: Setiap Pod Fargate menerima `IPv6` alamat dari CIDR yang ditentukan untuk subnet yang digunakan. Unit perangkat keras dasar yang menjalankan Fargate Pods mendapatkan `IPv6` alamat unik `IPv4` dan dari CIDRs yang ditetapkan ke subnet tempat unit perangkat keras digunakan.

## Cara menggunakan `IPv6` EKS
<a name="_how_to_use_ipv6_with_eks"></a>
+  **Buat cluster baru**: Anda harus membuat cluster baru dan menentukan bahwa Anda ingin menggunakan `IPv6` keluarga untuk cluster itu. Anda tidak dapat mengaktifkan `IPv6` keluarga untuk klaster yang Anda perbarui dari versi sebelumnya. Untuk petunjuk tentang cara membuat klaster baru, lihat Pertimbangan.
+  **Gunakan VPC CNI terbaru: Terapkan versi Amazon VPC CNI** atau yang lebih baru. `1.10.1` Versi ini atau yang lebih baru digunakan secara default. Setelah menerapkan add-on, Anda tidak dapat menurunkan versi add-on Amazon VPC CNI ke versi yang lebih rendah daripada `1.10.1` tanpa terlebih dahulu menghapus semua node di semua grup node di cluster Anda.
+  **Konfigurasikan CNI VPC untuk `IPv6`**: Jika Anda menggunakan EC2 node Amazon, Anda harus mengonfigurasi add-on Amazon VPC CNI dengan delegasi awalan IP dan. `IPv6` Jika Anda memilih `IPv6` keluarga saat membuat cluster Anda, `1.10.1` versi add-on default ke konfigurasi ini. Ini adalah kasus untuk add-on Amazon EKS yang dikelola sendiri atau Amazon. Untuk informasi selengkapnya tentang delegasi awalan IP, lihat. [Tetapkan lebih banyak alamat IP ke node Amazon EKS dengan awalan](cni-increase-ip-addresses.md)
+  **Konfigurasi `IPv4` dan `IPv6` alamat**: Saat Anda membuat cluster, VPC dan subnet yang Anda tentukan harus memiliki blok `IPv6` CIDR yang ditetapkan ke VPC dan subnet yang Anda tentukan. Mereka juga harus memiliki blok `IPv4` CIDR yang ditugaskan untuk mereka. Ini karena, meskipun Anda hanya ingin menggunakan`IPv6`, VPC masih memerlukan blok `IPv4` CIDR untuk berfungsi. Untuk informasi selengkapnya, lihat [Mengaitkan blok IPv6 CIDR dengan VPC Anda](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#vpc-associate-ipv6-cidr) di Panduan Pengguna Amazon VPC.
+  **Tetapkan IPv6 alamat otomatis ke node:** Saat Anda membuat node, Anda harus menentukan subnet yang dikonfigurasi untuk menetapkan alamat secara otomatis. `IPv6` Jika tidak, Anda tidak dapat menyebarkan node Anda. Secara default, konfigurasi ini dinonaktifkan. Untuk informasi selengkapnya, lihat [Memodifikasi atribut IPv6 pengalamatan untuk subnet Anda](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-ipv6) di Panduan Pengguna Amazon VPC.
+  **Atur tabel rute yang akan digunakan `IPv6`**: Tabel rute yang ditetapkan ke subnet Anda harus memiliki rute untuk `IPv6` alamat. Untuk informasi selengkapnya, lihat [Memigrasi ke IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html) dalam Panduan Pengguna Amazon VPC.
+  **Tetapkan grup keamanan untuk `IPv6`**: Grup keamanan Anda harus mengizinkan `IPv6` alamat. Untuk informasi selengkapnya, lihat [Memigrasi ke IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html) dalam Panduan Pengguna Amazon VPC.
+  **Mengatur load balancer**: Gunakan versi `2.3.1` atau yang lebih baru dari AWS Load Balancer Controller untuk memuat keseimbangan aplikasi HTTP menggunakan [Rute aplikasi dan lalu lintas HTTP dengan Application Load Balancers](alb-ingress.md) [Rute lalu lintas TCP dan UDP dengan Network Load Balancers](network-load-balancing.md) lalu lintas jaringan atau `IPv6` ke Pod dengan penyeimbang beban dalam mode IP, tetapi bukan mode instance. Untuk informasi selengkapnya, lihat [Rute lalu lintas internet dengan AWS Load Balancer Controller](aws-load-balancer-controller.md).
+  **Tambahkan kebijakan `IPv6` IAM**: Anda harus melampirkan kebijakan `IPv6` IAM ke node IAM atau peran IAM CNI Anda. Di antara keduanya, kami sarankan Anda melampirkannya ke peran IAM CNI. Untuk informasi selengkapnya, lihat [Buat kebijakan IAM untuk cluster yang menggunakan keluarga `IPv6`](cni-iam-role.md#cni-iam-role-create-ipv6-policy) dan [Langkah 1: Buat plugin Amazon VPC CNI untuk peran IAM Kubernetes](cni-iam-role.md#cni-iam-role-create-role).
+  **Evaluasi semua komponen**: Lakukan evaluasi menyeluruh terhadap aplikasi, add-on Amazon EKS, dan AWS layanan yang Anda integrasikan sebelum menerapkan cluster`IPv6`. Ini untuk memastikan bahwa semuanya berfungsi seperti yang diharapkan`IPv6`.

# Menyebarkan `IPv6` kluster Amazon EKS dan mengelola node Amazon Linux
<a name="deploy-ipv6-cluster"></a>

Dalam tutorial ini, Anda menerapkan VPC `IPv6` Amazon, cluster Amazon EKS bersama keluarga, dan `IPv6` grup node terkelola dengan node Amazon EC2 Amazon Linux. Anda tidak dapat menyebarkan node Amazon EC2 Windows dalam sebuah `IPv6` cluster. Anda juga dapat menerapkan node Fargate ke cluster Anda, meskipun instruksi tersebut tidak disediakan dalam topik ini untuk kesederhanaan.

## Prasyarat
<a name="_prerequisites"></a>

Selesaikan yang berikut ini sebelum Anda memulai tutorial:

Instal dan konfigurasikan alat dan sumber daya berikut yang Anda perlukan untuk membuat dan mengelola klaster Amazon EKS.
+ Kami menyarankan Anda membiasakan diri dengan semua pengaturan dan menyebarkan cluster dengan pengaturan yang memenuhi kebutuhan Anda. Untuk informasi lebih lanjut, lihat [Buat kluster Amazon EKS](create-cluster.md)[Sederhanakan siklus hidup node dengan grup node terkelola](managed-node-groups.md),, dan [Pertimbangan](cni-ipv6.md) untuk topik ini. Anda hanya dapat mengaktifkan beberapa pengaturan saat membuat cluster Anda.
+ Alat baris `kubectl` perintah diinstal pada perangkat Anda atau AWS CloudShell. Versinya bisa sama dengan atau hingga satu versi minor lebih awal atau lebih lambat dari versi Kubernetes dari klaster Anda. Misalnya, jika versi cluster Anda`1.29`, Anda dapat menggunakan `kubectl` versi`1.28`,`1.29`, atau `1.30` dengan itu. Untuk menginstal atau memutakhirkan `kubectl`, lihat [Mengatur `kubectl` dan `eksctl`](install-kubectl.md).
+ Prinsip keamanan IAM yang Anda gunakan harus memiliki izin untuk bekerja dengan peran Amazon EKS IAM, peran terkait layanan,, VPC, AWS CloudFormation dan sumber daya terkait. Untuk informasi selengkapnya, lihat [Tindakan](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html) dan [Menggunakan peran terkait layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) di Panduan Pengguna IAM.
+ Jika Anda menggunakan eksctl, instal versi `0.215.0` atau yang lebih baru di komputer Anda. Untuk menginstal atau memperbaruinya, lihat [Instalasi](https://eksctl.io/installation) di `eksctl` dokumentasi.
+ Versi `2.12.3` atau yang lebih baru atau versi `1.27.160` atau yang lebih baru dari AWS Command Line Interface (AWS CLI) diinstal dan dikonfigurasi pada perangkat Anda atau. AWS CloudShell Untuk memeriksa versi Anda saat ini, gunakan`aws --version | cut -d / -f2 | cut -d ' ' -f1`. Package manager seperti `yum``apt-get`,, atau Homebrew untuk macOS seringkali merupakan beberapa versi di belakang versi terbaru CLI. AWS Untuk menginstal versi terbaru, lihat [Menginstal](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) dan [Konfigurasi cepat dengan aws configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) di *Panduan Pengguna Antarmuka Baris AWS Perintah*. Versi AWS CLI yang diinstal AWS CloudShell mungkin juga beberapa versi di belakang versi terbaru. Untuk memperbaruinya, lihat [Menginstal AWS CLI ke direktori home Anda](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software) di * AWS CloudShell Panduan Pengguna*. Jika Anda menggunakan AWS CloudShell, Anda mungkin perlu [menginstal versi 2.12.3 atau yang lebih baru atau 1.27.160 atau yang lebih baru dari CLI AWS , karena versi AWS CLI](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software) default yang diinstal di mungkin versi sebelumnya. AWS CloudShell 

Anda dapat menggunakan eksctl atau CLI untuk menyebarkan cluster. `IPv6`

## Menyebarkan IPv6 cluster dengan eksctl
<a name="_deploy_an_ipv6_cluster_with_eksctl"></a>

1. Buat file `ipv6-cluster.yaml`. Salin perintah yang mengikuti ke perangkat Anda. Buat modifikasi berikut pada perintah sesuai kebutuhan dan kemudian jalankan perintah yang dimodifikasi:
   + Ganti *my-cluster* dengan nama untuk cluster Anda. Nama hanya dapat berisi karakter alfanumerik (peka huruf besar/kecil) dan tanda hubung. Itu harus dimulai dengan karakter alfanumerik dan tidak boleh lebih dari 100 karakter. Nama harus unik di dalam AWS Wilayah dan AWS akun tempat Anda membuat cluster.
   + Ganti *region-code* dengan AWS Wilayah apa pun yang didukung oleh Amazon EKS. Untuk daftar AWS Wilayah, lihat [titik akhir dan kuota Amazon EKS di panduan](https://docs.aws.amazon.com/general/latest/gr/eks.html) Referensi AWS Umum.
   + Nilai untuk `version` dengan versi cluster Anda. Untuk informasi selengkapnya, lihat [versi yang didukung Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html).
   + Ganti *my-nodegroup* dengan nama untuk grup node Anda. Nama grup node tidak boleh lebih dari 63 karakter. Itu harus dimulai dengan huruf atau digit, tetapi juga dapat menyertakan tanda hubung dan garis bawah untuk karakter yang tersisa.
   + Ganti *t3.medium* dengan [jenis instans Sistem AWS Nitro](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances) apa pun.

     ```
     cat >ipv6-cluster.yaml <<EOF
     ---
     apiVersion: eksctl.io/v1alpha5
     kind: ClusterConfig
     
     metadata:
       name: my-cluster
       region: region-code
       version: "X.XX"
     
     kubernetesNetworkConfig:
       ipFamily: IPv6
     
     addons:
       - name: vpc-cni
         version: latest
       - name: coredns
         version: latest
       - name: kube-proxy
         version: latest
     
     iam:
       withOIDC: true
     
     managedNodeGroups:
       - name: my-nodegroup
         instanceType: t3.medium
     EOF
     ```

1. Buat cluster Anda.

   ```
   eksctl create cluster -f ipv6-cluster.yaml
   ```

   Pembuatan cluster membutuhkan waktu beberapa menit. Jangan lanjutkan sampai Anda melihat baris output terakhir, yang terlihat mirip dengan output berikut.

   ```
   [...]
   [✓]  EKS cluster "my-cluster" in "region-code" region is ready
   ```

1. Konfirmasikan bahwa Pod default adalah `IPv6` alamat yang ditetapkan.

   ```
   kubectl get pods -n kube-system -o wide
   ```

   Contoh output adalah sebagai berikut.

   ```
   NAME                       READY   STATUS    RESTARTS   AGE     IP                                       NODE                                            NOMINATED NODE   READINESS GATES
   aws-node-rslts             1/1     Running   1          5m36s   2600:1f13:b66:8200:11a5:ade0:c590:6ac8   ip-192-168-34-75.region-code.compute.internal   <none>           <none>
   aws-node-t74jh             1/1     Running   0          5m32s   2600:1f13:b66:8203:4516:2080:8ced:1ca9   ip-192-168-253-70.region-code.compute.internal  <none>           <none>
   coredns-85d5b4454c-cw7w2   1/1     Running   0          56m     2600:1f13:b66:8203:34e5::                ip-192-168-253-70.region-code.compute.internal  <none>           <none>
   coredns-85d5b4454c-tx6n8   1/1     Running   0          56m     2600:1f13:b66:8203:34e5::1               ip-192-168-253-70.region-code.compute.internal  <none>           <none>
   kube-proxy-btpbk           1/1     Running   0          5m36s   2600:1f13:b66:8200:11a5:ade0:c590:6ac8   ip-192-168-34-75.region-code.compute.internal   <none>           <none>
   kube-proxy-jjk2g           1/1     Running   0          5m33s   2600:1f13:b66:8203:4516:2080:8ced:1ca9   ip-192-168-253-70.region-code.compute.internal  <none>           <none>
   ```

1. Konfirmasikan bahwa layanan default adalah `IPv6` alamat yang ditetapkan.

   ```
   kubectl get services -n kube-system -o wide
   ```

   Contoh output adalah sebagai berikut.

   ```
   NAME       TYPE        CLUSTER-IP          EXTERNAL-IP   PORT(S)         AGE   SELECTOR
   kube-dns   ClusterIP   fd30:3087:b6c2::a   <none>        53/UDP,53/TCP   57m   k8s-app=kube-dns
   ```

1. (Opsional) [Menerapkan aplikasi sampel](sample-deployment.md) atau menerapkan [Load AWS Balancer](aws-load-balancer-controller.md) Controller dan aplikasi sampel untuk memuat aplikasi HTTP [Rute aplikasi dan lalu lintas HTTP dengan Application Load Balancers](alb-ingress.md) dengan atau lalu lintas [Rute lalu lintas TCP dan UDP dengan Network Load Balancers](network-load-balancing.md) jaringan dengan Pod. `IPv6`

1. Setelah Anda selesai dengan cluster dan node yang Anda buat untuk tutorial ini, Anda harus membersihkan sumber daya yang Anda buat dengan perintah berikut.

   ```
   eksctl delete cluster my-cluster
   ```

## Menerapkan IPv6 cluster dengan CLI AWS
<a name="deploy_an_ipv6_cluster_with_shared_aws_cli"></a>

**penting**  
Anda harus menyelesaikan semua langkah dalam prosedur ini sebagai pengguna yang sama. Untuk memeriksa pengguna saat ini, jalankan perintah berikut:  

  ```
  aws sts get-caller-identity
  ```
Anda harus menyelesaikan semua langkah dalam prosedur ini di shell yang sama. Beberapa langkah menggunakan variabel yang diatur dalam langkah sebelumnya. Langkah-langkah yang menggunakan variabel tidak akan berfungsi dengan baik jika nilai variabel diatur dalam shell yang berbeda. Jika Anda menggunakan [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)untuk menyelesaikan prosedur berikut, ingatlah bahwa jika Anda tidak berinteraksi dengannya menggunakan keyboard atau pointer selama kurang lebih 20-30 menit, sesi shell Anda berakhir. Proses yang berjalan tidak dihitung sebagai interaksi.
Instruksi ditulis untuk cangkang Bash, dan mungkin perlu disesuaikan dengan cangkang lainnya.

Ganti semua nilai contoh dalam langkah-langkah prosedur ini dengan nilai Anda sendiri.

1. Jalankan perintah berikut untuk mengatur beberapa variabel yang digunakan dalam langkah-langkah selanjutnya. Ganti *region-code* dengan AWS Wilayah tempat Anda ingin menyebarkan sumber daya Anda. Nilainya dapat berupa AWS Wilayah apa pun yang didukung oleh Amazon EKS. Untuk daftar AWS Wilayah, lihat [titik akhir dan kuota Amazon EKS di panduan](https://docs.aws.amazon.com/general/latest/gr/eks.html) Referensi AWS Umum. Ganti *my-cluster* dengan nama untuk cluster Anda. Nama hanya dapat berisi karakter alfanumerik (peka huruf besar/kecil) dan tanda hubung. Itu harus dimulai dengan karakter alfanumerik dan tidak boleh lebih dari 100 karakter. Nama harus unik di dalam AWS Wilayah dan AWS akun tempat Anda membuat cluster. Ganti *my-nodegroup* dengan nama untuk grup node Anda. Nama grup node tidak boleh lebih dari 63 karakter. Itu harus dimulai dengan huruf atau digit, tetapi juga dapat menyertakan tanda hubung dan garis bawah untuk karakter yang tersisa. Ganti *111122223333* dengan ID akun Anda.

   ```
   export region_code=region-code
   export cluster_name=my-cluster
   export nodegroup_name=my-nodegroup
   export account_id=111122223333
   ```

1. Buat VPC Amazon dengan subnet publik dan pribadi yang memenuhi Amazon EKS dan persyaratan. `IPv6`

   1. Jalankan perintah berikut untuk mengatur variabel untuk nama AWS CloudFormation tumpukan Anda. Anda dapat mengganti *my-eks-ipv6-vpc* dengan nama apa pun yang Anda pilih.

      ```
      export vpc_stack_name=my-eks-ipv6-vpc
      ```

   1. Buat `IPv6` VPC menggunakan template. AWS CloudFormation 

      ```
      aws cloudformation create-stack --region $region_code --stack-name $vpc_stack_name \
        --template-url https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-ipv6-vpc-public-private-subnets.yaml
      ```

      Tumpukan membutuhkan waktu beberapa menit untuk membuatnya. Jalankan perintah berikut. Jangan melanjutkan ke langkah berikutnya sampai output dari perintah tersebut`CREATE_COMPLETE`.

      ```
      aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name --query Stacks[].StackStatus --output text
      ```

   1. Ambil subnet publik yang dibuat. IDs 

      ```
      aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name \
          --query='Stacks[].Outputs[?OutputKey==`SubnetsPublic`].OutputValue' --output text
      ```

      Contoh output adalah sebagai berikut.

      ```
      subnet-0a1a56c486EXAMPLE,subnet-099e6ca77aEXAMPLE
      ```

   1. Aktifkan opsi `IPv6` alamat tetapkan otomatis untuk subnet publik yang dibuat.

      ```
      aws ec2 modify-subnet-attribute --region $region_code --subnet-id subnet-0a1a56c486EXAMPLE --assign-ipv6-address-on-creation
      aws ec2 modify-subnet-attribute --region $region_code --subnet-id subnet-099e6ca77aEXAMPLE --assign-ipv6-address-on-creation
      ```

   1. Ambil nama subnet dan grup keamanan yang dibuat oleh template dari AWS CloudFormation tumpukan yang digunakan dan simpan dalam variabel untuk digunakan di langkah selanjutnya.

      ```
      security_groups=$(aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name \
          --query='Stacks[].Outputs[?OutputKey==`SecurityGroups`].OutputValue' --output text)
      
      public_subnets=$(aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name \
          --query='Stacks[].Outputs[?OutputKey==`SubnetsPublic`].OutputValue' --output text)
      
      private_subnets=$(aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name \
          --query='Stacks[].Outputs[?OutputKey==`SubnetsPrivate`].OutputValue' --output text)
      
      subnets=${public_subnets},${private_subnets}
      ```

1. Membuat IAM role klaster dan lampirkan kebijakan terkelola Amazon EKS IAM ke dalam peran itu. Cluster Kubernetes yang dikelola oleh Amazon EKS melakukan panggilan ke AWS layanan lain atas nama Anda untuk mengelola sumber daya yang Anda gunakan dengan layanan.

   1. Jalankan perintah berikut untuk membuat `eks-cluster-role-trust-policy.json` file.

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

   1. Jalankan perintah berikut untuk menetapkan variabel untuk nama peran Anda. Anda dapat mengganti *myAmazonEKSClusterRole* dengan nama apa pun yang Anda pilih.

      ```
      export cluster_role_name=myAmazonEKSClusterRole
      ```

   1. Buat peran.

      ```
      aws iam create-role --role-name $cluster_role_name --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
      ```

   1. Ambil ARN dari peran IAM dan simpan dalam variabel untuk langkah selanjutnya.

      ```
      CLUSTER_IAM_ROLE=$(aws iam get-role --role-name $cluster_role_name --query="Role.Arn" --output text)
      ```

   1. Lampirkan kebijakan terkelola IAM Amazon EKS yang diperlukan untuk peran tersebut.

      ```
      aws iam attach-role-policy --policy-arn arn:aws: iam::aws:policy/AmazonEKSClusterPolicy --role-name $cluster_role_name
      ```

1. Buat cluster Anda.

   ```
   aws eks create-cluster --region $region_code --name $cluster_name --kubernetes-version 1.XX \
      --role-arn $CLUSTER_IAM_ROLE --resources-vpc-config subnetIds=$subnets,securityGroupIds=$security_groups \
      --kubernetes-network-config ipFamily=ipv6
   ```

   1. CATATAN: Anda mungkin menerima kesalahan bahwa salah satu Availability Zone dalam permintaan Anda tidak memiliki kapasitas yang cukup untuk membuat klaster Amazon EKS. Jika hal ini terjadi, output galat berisi Availability Zones yang dapat mendukung klaster baru. Cobalah untuk kembali membuat klaster dengan setidaknya dua subnet yang terletak di Availability Zones yang didukung untuk akun Anda. Untuk informasi selengkapnya, lihat [Kapasitas tidak mencukupi](troubleshooting.md#ice).

      Cluster membutuhkan beberapa menit untuk membuatnya. Jalankan perintah berikut. Jangan melanjutkan ke langkah berikutnya sampai output dari perintah`ACTIVE`.

      ```
      aws eks describe-cluster --region $region_code --name $cluster_name --query cluster.status
      ```

1. Buat atau perbarui `kubeconfig` file untuk cluster Anda sehingga Anda dapat berkomunikasi dengan cluster Anda.

   ```
   aws eks update-kubeconfig --region $region_code --name $cluster_name
   ```

   Secara default, `config` file dibuat `~/.kube` atau konfigurasi cluster baru ditambahkan ke `config` file yang ada di`~/.kube`.

1. Buat peran IAM node.

   1. Jalankan perintah berikut untuk membuat `vpc-cni-ipv6-policy.json` file.

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "ec2:AssignIpv6Addresses",
                      "ec2:DescribeInstances",
                      "ec2:DescribeTags",
                      "ec2:DescribeNetworkInterfaces",
                      "ec2:DescribeInstanceTypes"
                  ],
                  "Resource": "*"
              },
              {
                  "Effect": "Allow",
                  "Action": [
                      "ec2:CreateTags"
                  ],
                  "Resource": [
                      "arn:aws:ec2:*:*:network-interface/*"
                  ]
              }
          ]
      }
      ```

   1. Buat kebijakan IAM.

      ```
      aws iam create-policy --policy-name AmazonEKS_CNI_IPv6_Policy --policy-document file://vpc-cni-ipv6-policy.json
      ```

   1. Jalankan perintah berikut untuk membuat `node-role-trust-relationship.json` file.

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

   1. Jalankan perintah berikut untuk menetapkan variabel untuk nama peran Anda. Anda dapat mengganti *AmazonEKSNodeRole* dengan nama apa pun yang Anda pilih.

      ```
      export node_role_name=AmazonEKSNodeRole
      ```

   1. Buat peran IAM.

      ```
      aws iam create-role --role-name $node_role_name --assume-role-policy-document file://"node-role-trust-relationship.json"
      ```

   1. Lampirkan kebijakan IAM ke peran IAM.

      ```
      aws iam attach-role-policy --policy-arn arn:aws: iam::$account_id:policy/AmazonEKS_CNI_IPv6_Policy \
          --role-name $node_role_name
      ```
**penting**  
Untuk kesederhanaan dalam tutorial ini, kebijakan dilampirkan ke peran IAM ini. Namun, dalam klaster produksi, kami merekomendasikan untuk melampirkan kebijakan ke peran IAM yang terpisah. Untuk informasi selengkapnya, lihat [Konfigurasikan plugin Amazon VPC CNI untuk menggunakan IRSA](cni-iam-role.md).

   1. Lampirkan dua kebijakan yang dikelola IAM yang diperlukan ke peran IAM.

      ```
      aws iam attach-role-policy --policy-arn arn:aws: iam::aws:policy/AmazonEKSWorkerNodePolicy \
        --role-name $node_role_name
      aws iam attach-role-policy --policy-arn arn:aws: iam::aws:policy/AmazonEC2ContainerRegistryReadOnly \
        --role-name $node_role_name
      ```

   1. Ambil ARN dari peran IAM dan simpan dalam variabel untuk langkah selanjutnya.

      ```
      node_iam_role=$(aws iam get-role --role-name $node_role_name --query="Role.Arn" --output text)
      ```

1. Buat grup node terkelola.

   1. Lihat subnet yang Anda buat pada langkah sebelumnya. IDs 

      ```
      echo $subnets
      ```

      Contoh output adalah sebagai berikut.

      ```
      subnet-0a1a56c486EXAMPLE,subnet-099e6ca77aEXAMPLE,subnet-0377963d69EXAMPLE,subnet-0c05f819d5EXAMPLE
      ```

   1. Buat grup node. Ganti *0a1a56c486EXAMPLE**099e6ca77aEXAMPLE*,*0377963d69EXAMPLE*,, dan *0c05f819d5EXAMPLE* dengan nilai yang dikembalikan dalam output dari langkah sebelumnya. Pastikan untuk menghapus koma antara subnet IDs dari output sebelumnya dalam perintah berikut. Anda dapat mengganti *t3.medium* dengan [jenis instans Sistem AWS Nitro](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances) apa pun.

      ```
      aws eks create-nodegroup --region $region_code --cluster-name $cluster_name --nodegroup-name $nodegroup_name \
          --subnets subnet-0a1a56c486EXAMPLE subnet-099e6ca77aEXAMPLE subnet-0377963d69EXAMPLE subnet-0c05f819d5EXAMPLE \
          --instance-types t3.medium --node-role $node_iam_role
      ```

      Grup node membutuhkan waktu beberapa menit untuk membuatnya. Jalankan perintah berikut. Jangan lanjutkan ke langkah berikutnya sampai output yang dikembalikan`ACTIVE`.

      ```
      aws eks describe-nodegroup --region $region_code --cluster-name $cluster_name --nodegroup-name $nodegroup_name \
          --query nodegroup.status --output text
      ```

1. Konfirmasikan bahwa Pod default adalah `IPv6` alamat yang ditetapkan di `IP` kolom.

   ```
   kubectl get pods -n kube-system -o wide
   ```

   Contoh output adalah sebagai berikut.

   ```
   NAME                       READY   STATUS    RESTARTS   AGE     IP                                       NODE                                            NOMINATED NODE   READINESS GATES
   aws-node-rslts             1/1     Running   1          5m36s   2600:1f13:b66:8200:11a5:ade0:c590:6ac8   ip-192-168-34-75.region-code.compute.internal   <none>           <none>
   aws-node-t74jh             1/1     Running   0          5m32s   2600:1f13:b66:8203:4516:2080:8ced:1ca9   ip-192-168-253-70.region-code.compute.internal  <none>           <none>
   coredns-85d5b4454c-cw7w2   1/1     Running   0          56m     2600:1f13:b66:8203:34e5::                ip-192-168-253-70.region-code.compute.internal  <none>           <none>
   coredns-85d5b4454c-tx6n8   1/1     Running   0          56m     2600:1f13:b66:8203:34e5::1               ip-192-168-253-70.region-code.compute.internal  <none>           <none>
   kube-proxy-btpbk           1/1     Running   0          5m36s   2600:1f13:b66:8200:11a5:ade0:c590:6ac8   ip-192-168-34-75.region-code.compute.internal   <none>           <none>
   kube-proxy-jjk2g           1/1     Running   0          5m33s   2600:1f13:b66:8203:4516:2080:8ced:1ca9   ip-192-168-253-70.region-code.compute.internal  <none>           <none>
   ```

1. Konfirmasikan bahwa layanan default diberikan `IPv6` alamat di `IP` kolom.

   ```
   kubectl get services -n kube-system -o wide
   ```

   Contoh output adalah sebagai berikut.

   ```
   NAME       TYPE        CLUSTER-IP          EXTERNAL-IP   PORT(S)         AGE   SELECTOR
   kube-dns   ClusterIP   fd30:3087:b6c2::a   <none>        53/UDP,53/TCP   57m   k8s-app=kube-dns
   ```

1. (Opsional) [Menerapkan aplikasi sampel](sample-deployment.md) atau menerapkan [Load AWS Balancer](aws-load-balancer-controller.md) Controller dan aplikasi sampel untuk memuat aplikasi HTTP [Rute aplikasi dan lalu lintas HTTP dengan Application Load Balancers](alb-ingress.md) dengan atau lalu lintas [Rute lalu lintas TCP dan UDP dengan Network Load Balancers](network-load-balancing.md) jaringan dengan Pod. `IPv6`

1. Setelah Anda selesai dengan cluster dan node yang Anda buat untuk tutorial ini, Anda harus membersihkan sumber daya yang Anda buat dengan perintah berikut. Pastikan Anda tidak menggunakan sumber daya apa pun di luar tutorial ini sebelum menghapusnya.

   1. Jika Anda menyelesaikan langkah ini di shell yang berbeda dari saat Anda menyelesaikan langkah sebelumnya, tetapkan nilai semua variabel yang digunakan pada langkah sebelumnya, ganti nilai contoh dengan nilai yang Anda tentukan saat Anda menyelesaikan langkah sebelumnya. Jika Anda menyelesaikan langkah ini di shell yang sama dengan tempat Anda menyelesaikan langkah sebelumnya, lewati ke langkah berikutnya.

      ```
      export region_code=region-code
      export vpc_stack_name=my-eks-ipv6-vpc
      export cluster_name=my-cluster
      export nodegroup_name=my-nodegroup
      export account_id=111122223333
      export node_role_name=AmazonEKSNodeRole
      export cluster_role_name=myAmazonEKSClusterRole
      ```

   1. Hapus grup node Anda.

      ```
      aws eks delete-nodegroup --region $region_code --cluster-name $cluster_name --nodegroup-name $nodegroup_name
      ```

      Penghapusan membutuhkan waktu beberapa menit. Jalankan perintah berikut. Jangan melanjutkan ke langkah berikutnya jika ada output yang dikembalikan.

      ```
      aws eks list-nodegroups --region $region_code --cluster-name $cluster_name --query nodegroups --output text
      ```

   1. Hapus klaster .

      ```
      aws eks delete-cluster --region $region_code --name $cluster_name
      ```

      Cluster membutuhkan beberapa menit untuk menghapus. Sebelum melanjutkan pastikan bahwa cluster dihapus dengan perintah berikut.

      ```
      aws eks describe-cluster --region $region_code --name $cluster_name
      ```

      Jangan melanjutkan ke langkah berikutnya sampai output Anda mirip dengan output berikut.

      ```
      An error occurred (ResourceNotFoundException) when calling the DescribeCluster operation: No cluster found for name: my-cluster.
      ```

   1. Hapus sumber daya IAM yang Anda buat. Ganti *AmazonEKS\$1CNI\$1IPv6\$1Policy* dengan nama yang Anda pilih, jika Anda memilih nama yang berbeda dari yang digunakan pada langkah sebelumnya.

      ```
      aws iam detach-role-policy --role-name $cluster_role_name --policy-arn arn:aws: iam::aws:policy/AmazonEKSClusterPolicy
      aws iam detach-role-policy --role-name $node_role_name --policy-arn arn:aws: iam::aws:policy/AmazonEKSWorkerNodePolicy
      aws iam detach-role-policy --role-name $node_role_name --policy-arn arn:aws: iam::aws:policy/AmazonEC2ContainerRegistryReadOnly
      aws iam detach-role-policy --role-name $node_role_name --policy-arn arn:aws: iam::$account_id:policy/AmazonEKS_CNI_IPv6_Policy
      aws iam delete-policy --policy-arn arn:aws: iam::$account_id:policy/AmazonEKS_CNI_IPv6_Policy
      aws iam delete-role --role-name $cluster_role_name
      aws iam delete-role --role-name $node_role_name
      ```

   1. Hapus AWS CloudFormation tumpukan yang membuat VPC.

      ```
      aws cloudformation delete-stack --region $region_code --stack-name $vpc_stack_name
      ```