全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Buat gateway ingress yang menggunakan alamat IPv6

更新时间:Jun 28, 2025

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.

  1. Masuk ke Konsol ASM. Di panel navigasi di sebelah kiri, pilih Service Mesh > Mesh Management.

  2. Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi di sebelah kiri, pilih ASM Gateways > Ingress Gateway.

  3. Di halaman Ingress Gateway, klik Create from YAML.

  4. Di halaman Create, atur parameter Namespace menjadi istio-system, masukkan konten berikut di editor kode YAML, lalu klik Create.

    Ganti nilai bidang clusterIds dengan ID kluster Anda di data plane.

    Tampilkan Contoh Kode YAML

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: IstioGateway
    metadata:
      name: ingressgateway
      namespace: istio-system
    spec:
      gatewayType: ingress
      clusterIds:
        -c808cdd6abd854d5ba6764da5ca2e**** # Ganti nilai dengan ID kluster Anda di data plane.
      ports:
        - name: http-0
          port: 80
          targetPort: 80
          protocol: HTTP
        - name: https-1
          port: 443
          targetPort: 443
          protocol: HTTPS
      serviceAnnotations:
        service.beta.kubernetes.io/alicloud-loadbalancer-address-type: internet
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: slb.s1.small
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "ipv6"
      replicaCount: 1
      resources:
        limits:
          cpu: '2'
          memory: 4G
        requests:
          cpu: 200m
          memory: 256Mi
      serviceType: LoadBalancer
      autoCreateGatewayYaml: true                      

    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.

  1. Masuk ke Konsol ACK. Di panel navigasi di sebelah kiri, klik Clusters.

  2. Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel di sebelah kiri, pilih Network > Services.

  3. Di bagian atas halaman Services, atur parameter Namespace menjadi istio-system dan klik Create from YAML di pojok kanan atas.

  4. Di halaman Create, pilih Custom dari daftar drop-down Sample Template, salin konten berikut ke editor kode Template, lalu klik Create.

    Penting

    Nilai parameter nodePort tidak boleh sama dengan nomor port yang sudah ada.

    Tampilkan Contoh Kode YAML

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/alicloud-loadbalancer-address-type: internet
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: slb.s1.small
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "ipv6"
      labels:
        app: istio-ingressgateway
        asm-system: 'true'
        istio: ingressgateway
      name: istio-ingressgateway-2
      namespace: istio-system
    spec:
      externalTrafficPolicy: Cluster
      ports:
        - name: http-0
          nodePort: 30544
          port: 80
          protocol: TCP
          targetPort: 80
        - name: https-2
          nodePort: 30682
          port: 443
          protocol: TCP
          targetPort: 443
      selector:
        app: istio-ingressgateway
        asm-system: 'true'
        istio: ingressgateway
        provider: asm
      sessionAffinity: None
      type: LoadBalancer
                            

    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.

    image

FAQ

Bagaimana cara mendapatkan alamat IPv6 asli dari klien?

  1. 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.

  2. Buat template filter Envoy.

    1. Masuk ke Konsol ASM. Di panel navigasi di sebelah kiri, pilih Service Mesh > Mesh Management.

    2. Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi di sebelah kiri, pilih Plugin Extension Center > EnvoyFilter Template. Di halaman yang muncul, klik Create EnvoyFilter Template.

    3. 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
  3. Terapkan template filter Envoy ke gateway ingress sehingga gateway ingress mendukung Proxy Protocol.

    1. Di halaman EnvoyFilter Template, temukan template filter Envoy yang Anda buat di langkah sebelumnya dan klik Edit template di kolom Actions.

    2. Di halaman Edit EnvoyFilter Template, klik tab Bind template to workloads dan klik Bind EnvoyFilter to Workloads.

    3. 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.

  4. Akses URL yang menggunakan alamat IPv6 dan periksa log gateway ingress.

    Dalam log sampel, nilai bidang downstream_remote_address menunjukkan 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}