IPv6 menyediakan ruang alamat yang lebih besar dan keamanan yang lebih tinggi dibandingkan dengan IPv4. Topik ini menjelaskan cara membuat gateway ingress Service Mesh (ASM) yang menggunakan alamat IPv6 serta cara menambahkan alamat IPv6 ke gateway ingress yang sudah ada.
Prasyarat
Kluster telah ditambahkan ke instance ASM. Untuk informasi lebih lanjut, lihat Tambahkan Kluster ke Instance ASM.
Metode 1: Buat gateway ingress yang menggunakan alamat IPv6
Untuk membuat gateway ingress yang menggunakan alamat IPv6, tambahkan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "ipv6" ke kode YAML.
Masuk ke Konsol ASM. Di panel navigasi di sebelah kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi di sebelah kiri, pilih .
Di halaman Ingress Gateway, klik Create from YAML.
Di halaman Create, atur parameter Namespace menjadi istio-system, masukkan konten berikut di editor kode YAML, lalu klik Create.
Ganti nilai bidang
clusterIdsdengan ID kluster Anda di data plane.Bidang
Deskripsi
service.beta.kubernetes.io/alicloud-loadbalancer-address-type
Jenis instance Classic Load Balancer (CLB). Nilai valid:
internet: instance CLB yang menghadap Internet
intranet: instance CLB akses internal
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec
Spesifikasi instance CLB. Nilai valid: slb.s1.small, slb.s2.small, slb.s2.medium, slb.s3.small, slb.s3.medium, dan slb.s3.large.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
Versi alamat IP yang digunakan oleh instance CLB. Dalam contoh ini, parameter diatur ke
ipv6, yang menunjukkan bahwa instance CLB menggunakan alamat IPv6.Setelah gateway ingress dibuat, Anda dapat melihat bahwa Service address dari gateway ingress, yang ditampilkan di halaman Ingress Gateway, adalah alamat IPv6.
Metode 2: Tambahkan alamat IPv6 ke gateway ingress yang sudah ada
Jika Anda telah membuat gateway ingress yang menggunakan alamat IPv4, Anda dapat membuat instance CLB untuk menambahkan alamat IPv6 ke gateway ingress. Setelah itu, gateway ingress akan menggunakan alamat IPv4 dan IPv6.
Masuk ke Konsol ACK. Di panel navigasi di sebelah kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel di sebelah kiri, pilih .
Di bagian atas halaman Services, atur parameter Namespace menjadi istio-system dan klik Create from YAML di pojok kanan atas.
Di halaman Create, pilih Custom dari daftar drop-down Sample Template, salin konten berikut ke editor kode Template, lalu klik Create.
PentingNilai parameter nodePort tidak boleh sama dengan nomor port yang sudah ada.
Bidang
Deskripsi
service.beta.kubernetes.io/alicloud-loadbalancer-address-type
Jenis instance CLB. Nilai valid:
internet: instance CLB yang menghadap Internet
intranet: instance CLB akses internal
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec
Spesifikasi instance CLB. Nilai valid: slb.s1.small, slb.s2.small, slb.s2.medium, slb.s3.small, slb.s3.medium, dan slb.s3.large.
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
Versi alamat IP yang digunakan oleh instance CLB. Dalam contoh ini, parameter diatur ke
ipv6, yang menunjukkan bahwa instance CLB menggunakan alamat IPv6.Setelah instance CLB dibuat, alamat IPv4 dan IPv6 dari istio-ingressgateway dan istio-ingressgateway-2 ditampilkan di kolom External IP pada halaman Services. Alamat IPv4 dan IPv6 yang ditampilkan digunakan oleh gateway ingress.

FAQ
Bagaimana cara mendapatkan alamat IPv6 asli dari klien?
Konfigurasikan instance CLB yang menggunakan alamat IPv6. Aktifkan Proxy Protocol di bagian Advanced Settings untuk pendengar instance CLB pada port 80 dan 443. Untuk informasi lebih lanjut, lihat Aktifkan Pendengar Lapisan 4 untuk Melestarikan Alamat IP Klien.
Buat template filter Envoy.
Masuk ke Konsol ASM. Di panel navigasi di sebelah kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi di sebelah kiri, pilih . Di halaman yang muncul, klik Create EnvoyFilter Template.
Di halaman Create, masukkan nama template, klik Add an EnvoyFilter template for specific adapted istio version, pilih versi Istio, masukkan konten berikut di editor kode YAML, lalu klik Create.
apiVersion: networking.istio.io/v1alpha3 kind: EnvoyFilter metadata: name: proxy-protocol namespace: istio-system spec: configPatches: - applyTo: LISTENER patch: operation: MERGE value: listener_filters: - name: envoy.listener.proxy_protocol - name: envoy.listener.tls_inspector workloadSelector: labels: istio: ingressgateway
Terapkan template filter Envoy ke gateway ingress sehingga gateway ingress mendukung Proxy Protocol.
Di halaman EnvoyFilter Template, temukan template filter Envoy yang Anda buat di langkah sebelumnya dan klik Edit template di kolom Actions.
Di halaman Edit EnvoyFilter Template, klik tab Bind template to workloads dan klik Bind EnvoyFilter to Workloads.
Di kotak dialog Bind EnvoyFilter to Workloads, atur parameter Namespace menjadi istio-system dan parameter Workload Type menjadi Deployment, klik Bind di sebelah gateway ingress di bagian Not bound, lalu klik OK.
Akses URL yang menggunakan alamat IPv6 dan periksa log gateway ingress.
Dalam log sampel, nilai bidang
downstream_remote_addressmenunjukkan alamat IPv6 asli dari klien.{"upstream_cluster":null,"bytes_received":0,"downstream_local_address":"[2400:XXXX:1300::12d1]:80","upstream_service_time":null,"FILTER_CHAIN_NAME":null,"path":"/","x_forwarded_for":"2402:XXXX:1800:af00:0:9671:f00f:314b","upstream_host":null,"bytes_sent":0,"requested_server_name":null,"route_name":null,"response_flags":"NR","start_time":"2022-12-28T06:41:57.796Z","upstream_transport_failure_reason":null,"protocol":"HTTP/1.1","authority":"[2400:XXXX:1300::12d1]","LOCAL_REPLY_BODY":"","duration":0,"method":"GET","downstream_remote_address":"[2402:XXXX:1800:af00:0:9671:f00f:314b]:58272","request_id":"fee2b69a-b755-986b-91e4-5d228c81****","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36","trace_id":null,"authority_for":"[2400:XXXX:1300::12d1]","upstream_local_address":null,"istio_policy_status":null,"response_code":404}