Secara default, alamat IPv6 hanya mendukung akses internal. Untuk mengizinkan pod mengakses alamat IPv6 publik, Anda harus mengonfigurasi bandwidth Internet IPv6 menggunakan gateway IPv6. Topik ini menjelaskan cara menetapkan paket bandwidth ke alamat IPv6 pod dan mengonfigurasi aturan egress.
Prasyarat
-
Anda telah membuat Kluster ACK yang dikelola atau Cluster khusus ACK. Untuk informasi selengkapnya, lihat Create an ACK managed cluster dan Create an ACK dedicated cluster (no longer available for new clusters). Kluster tersebut harus memenuhi persyaratan berikut:
-
Anda telah mengaktifkan dual-stack IPv6. Untuk informasi selengkapnya tentang gateway IPv6, lihat What is an IPv6 gateway?
-
Kluster menggunakan plug-in jaringan Terway.
-
-
Anda telah membuat gateway IPv6 di VPC Anda dan menerapkan controller ipv6gw. Untuk informasi selengkapnya, lihat Create and manage an IPv6 gateway.
Hanya beberapa instance ECS yang mendukung IPv6. Untuk informasi selengkapnya, lihat Instance families.
Batasan
-
Topik ini menjelaskan cara menggunakan komponen ack-extend-network-controller untuk mengaktifkan fitur gateway IPv6. Komponen ini mengonfigurasi bandwidth Internet IPv6 menggunakan anotasi seperti
k8s.aliyun.com/ipv6-bandwidth. Metode ini hanya mendukung node ECS standar dan pod, tetapi tidak mendukung instans ECI atau ACS. Untuk mengonfigurasi bandwidth Internet IPv6 pada instans ECI dan ACS, lihat Assign IPv6 addresses to ECI pods dan Assign IPv6 addresses to ACS pods. -
Bandwidth dan jumlah entri konfigurasi dibatasi oleh kemampuan gateway IPv6. Untuk informasi selengkapnya tentang batasan tersebut, lihat Limits.
Aktifkan fitur gateway IPv6 di ack-extend-network-controller
Komponen ack-extend-network-controller menggunakan OpenAPI Alibaba Cloud untuk membuat resource. Anda harus mengonfigurasi izin yang diperlukan di RAM, menginstal komponen ack-extend-network-controller dari Alibaba Cloud Marketplace, lalu menggunakan anotasi untuk membuat gateway IPv6 dan mengaitkannya dengan pod tertentu.
Langkah 1: Konfigurasikan izin RAM untuk IPv6
Masuk ke Container Service Management Console . Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi sebelah kiri, klik Cluster Information.
-
Pada halaman Cluster Information, buka tab Basic Information. Klik tautan di samping Worker RAM Role.
-
Buat kebijakan kustom yang berisi konten berikut. Untuk informasi selengkapnya, lihat Step 1: Create a custom policy.
{ "Effect": "Allow", "Action": [ "vpc:DescribeIpv6Addresses", "vpc:CreateIpv6EgressOnlyRule", "vpc:DeleteIpv6EgressOnlyRule", "vpc:DescribeIpv6EgressOnlyRules", "vpc:AllocateIpv6InternetBandwidth", "vpc:DeleteIpv6InternetBandwidth" ], "Resource": [ "*" ], "Condition": {} } -
Berikan kebijakan kustom tersebut kepada Worker RAM role kluster Anda. Untuk informasi selengkapnya, lihat Step 2: Grant permissions to the Worker RAM role of your cluster.
Langkah 2: Aktifkan controller ipv6gw untuk komponen ack-extend-network-controller
Instal komponen ack-extend-network-controller dari ACK Marketplace dan aktifkan controller ipv6gw. Untuk informasi selengkapnya, lihat Marketplace.
Parameter konfigurasi controller ipv6gw adalah sebagai berikut.
clusterID: "c11ba338192xxxxxxx" # Ganti dengan ID kluster aktual Anda.
regionID: "cn-hangzhou" # Ganti dengan ID wilayah aktual Anda.
vpcID: "vpc-bp1rkq0zxxxxxx" # Ganti dengan ID VPC aktual Anda.
enableControllers:
- ipv6gw # Aktifkan controller gateway IPv6.
networkController:
ipv6GatewayController:
maxConcurrentReconciles: 10 # Tetapkan jumlah maksimum reconciliations bersamaan.
credential: # Gunakan Pasangan Kunci Akses. Untuk Kluster ACK yang dikelola dan Cluster khusus ACK, kami merekomendasikan penggunaan Peran RAM.
accessKey: ""
accessSecret: ""
Konfigurasikan bandwidth dan aturan egress untuk jaringan IPv6 pada pod
Gunakan anotasi pod berikut untuk mengonfigurasi bandwidth, metode penagihan, dan aturan egress untuk jaringan IPv6:
|
Pod annotation |
Value |
|
k8s.aliyun.com/ipv6-bandwidth |
Bandwidth publik gateway IPv6, dalam Mbps. Nilai yang valid: 1 hingga 5000. Untuk informasi selengkapnya, lihat AllocateIpv6InternetBandwidth. |
|
k8s.aliyun.com/ipv6-internet-charge-type |
Metode penagihan untuk bandwidth Internet IPv6. Nilai yang valid:
Untuk informasi selengkapnya, lihat AllocateIpv6InternetBandwidth. |
|
k8s.aliyun.com/ipv6-egress-only |
Buat aturan egress-only. |
Prosedur melalui Konsol
Masuk ke Container Service Management Console . Di panel navigasi sebelah kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi sebelah kiri, klik .
-
Di pojok kanan atas halaman Deployments, klik Create from YAML. Tempel contoh YAML berikut ke editor Templates, lalu klik Create.
Contoh ini mengonfigurasi bandwidth IPv6 sebesar 10 Mbps untuk pod dan membuat aturan egress-only.
apiVersion: apps/v1 kind: Deployment metadata: name: example labels: app: example spec: replicas: 1 selector: matchLabels: app: example template: metadata: labels: app: example annotations: k8s.aliyun.com/ipv6-bandwidth: "10" # Tetapkan bandwidth publik gateway IPv6 menjadi 10 Mbps. k8s.aliyun.com/ipv6-egress-only: "" # Buat aturan egress-only. spec: containers: - name: example image: nginx -
Pada halaman Deployments, klik deployment bernama example. Pada halaman ikhtisar example, temukan nama pod yang dibuat.
-
Jalankan perintah berikut untuk mengkueri resource
podipv6gws.alibabacloud.comyang memiliki nama sama dengan pod tersebut. Anda dapat memeriksa status paket bandwidth yang ditetapkan dan aturan egress-only di output.kubectl get podipv6gws.alibabacloud.com -oyaml example-674b897446-q****Output yang diharapkan:
apiVersion: alibabacloud.com/v1beta1 kind: PodIPv6GW metadata: creationTimestamp: "2024-02-07T06:00:48Z" finalizers: - ipv6gw-controller.alibabacloud.com/finalizer generation: 1 name: example-674b897446-q**** namespace: default ownerReferences: - apiVersion: v1 kind: Pod name: example-674b897446-q**** uid: bdf86c45-7**5-4**4-b**3-9b**** resourceVersion: "11488" uid: 78747d60-9**8-4**e-b**8-f7f7c**** spec: bandwidth: 10 egressOnlyRule: true ipv6Address: 2408:4006:1115:xxxx:xxxx:xxxx:xxxx:xxxx status: ipv6AddressID: ipv6-xxx ipv6EgressOnlyRuleID: ipv6py-xxx ipv6GatewayID: ipv6gw-xxx ipv6InternetBandwidthID: ipv6bw-xxx
Prosedur melalui kubectl
-
Buat file bernama example.yaml yang berisi konten berikut.
Contoh ini mengonfigurasi bandwidth IPv6 sebesar 10 Mbps untuk pod dan membuat aturan egress-only.
apiVersion: apps/v1 kind: Deployment metadata: name: example labels: app: example spec: replicas: 1 selector: matchLabels: app: example template: metadata: labels: app: example annotations: k8s.aliyun.com/ipv6-bandwidth: "10" # Tetapkan bandwidth publik gateway IPv6 menjadi 10 Mbps. k8s.aliyun.com/ipv6-egress-only: "" # Buat aturan egress-only. spec: containers: - name: example image: nginx -
Jalankan perintah berikut untuk membuat resource.
kubectl apply -f example.yamlOutput yang diharapkan:
deployment.apps/example created -
Jalankan perintah berikut untuk melihat nama pod yang dibuat.
kubectl get podipv6gws -n <namespace tempat example diterapkan> -
Jalankan perintah berikut untuk mengkueri resource
podipv6gws.alibabacloud.comyang memiliki nama sama dengan pod tersebut. Anda dapat memeriksa status paket bandwidth yang ditetapkan dan aturan egress-only di output.kubectl get podipv6gws.alibabacloud.com -oyaml example-674b897446-q****Output yang diharapkan:
apiVersion: alibabacloud.com/v1beta1 kind: PodIPv6GW metadata: creationTimestamp: "2024-02-07T06:00:48Z" finalizers: - ipv6gw-controller.alibabacloud.com/finalizer generation: 1 name: example-674b897446-q**** namespace: default ownerReferences: - apiVersion: v1 kind: Pod name: example-674b897446-q**** uid: bdf86c45-7**5-4**4-b**3-9b**** resourceVersion: "11488" uid: 78747d60-9**8-4**e-b**8-f7f7c**** spec: bandwidth: 10 egressOnlyRule: true ipv6Address: 2408:4006:1115:xxxx:xxxx:xxxx:xxxx:xxxx status: ipv6AddressID: ipv6-xxx ipv6EgressOnlyRuleID: ipv6py-xxx ipv6GatewayID: ipv6gw-xxx ipv6InternetBandwidthID: ipv6bw-xxx
FAQ
Bagaimana cara menerapkan komponen ack-extend-network-controller di Kluster ACK Serverless?
Kami tidak merekomendasikan penerapan komponen ini di Kluster ACK Serverless. Jika Anda tetap harus menerapkannya, terlebih dahulu buat Pasangan Kunci Akses untuk Pengguna RAM. Untuk informasi selengkapnya, lihat Create a RAM user dan Create a custom policy. Kemudian, saat menerapkan komponen dari Marketplace, masukkan Pasangan Kunci Akses tersebut di bidang yang sesuai.
Referensi
Untuk informasi selengkapnya tentang mengakses jaringan eksternal dari pod, lihat Notes on accessing external networks from pods.