All Products
Search
Document Center

Container Service for Kubernetes:Gunakan gerbang ALB di Knative untuk distribusi traffic

Last Updated:Aug 21, 2026

Application Load Balancer (ALB) menyediakan load balancing lapisan 7 ber-throughput tinggi. Gunakan gerbang ALB—gerbang yang sepenuhnya dikelola dengan elastisitas otomatis dan dukungan rilis canary—untuk mendistribusikan traffic ke Knative Services yang memerlukan routing kompleks, pemisahan traffic detail halus, atau skalabilitas otomatis.

Prasyarat

  • Knative telah diterapkan di kluster Anda. Untuk informasi selengkapnya, lihat Deploy Knative.

  • ALB Ingress Controller telah diterapkan.

  • Pada kluster yang menggunakan plugin jaringan Flannel, konfigurasikan Kubernetes Service yang sesuai dengan Knative sebagai tipe NodePort. Tambahkan parameter eni: false ke ConfigMap config-network.

    1. Edit file config-network.yaml.

      kubectl -n knative-serving edit configmap config-network
    2. Ubah dan simpan file sebagai berikut.

      apiVersion: v1
      data:
        ...
        eni: false  # Tambahkan konfigurasi ini.
        ...
      kind: ConfigMap
      metadata:
        name: config-network
        namespace: knative-serving
        ...

Langkah 1: Deploy gerbang ALB

Saat menerapkan gerbang ALB di Knative, Anda dapat menggunakan instans ALB yang dibuat secara otomatis oleh Knative atau menentukan instans ALB yang sudah ada.

Metode 1: Buat ALB secara otomatis saat menerapkan gerbang ALB

Jika Knative telah diterapkan, Anda dapat mengonfigurasi gerbang ALB dengan mengubah file konfigurasi Knative.

Konfigurasi gerbang ALB saat menerapkan Knative

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

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Applications > Knative.

  3. Di tab Komponen, klik Menyebarkan. Pilih ALB sebagai gerbang layanan, pilih minimal dua vSwitch, lalu ikuti petunjuk di layar untuk menyelesaikan penerapan Knative.

    Untuk detail cara membuat vSwitch, lihat Create VPC and vSwitch.

Terapkan gerbang ALB dengan mengubah file konfigurasi Knative

Untuk penerapan Knative yang telah dibuat sebelumnya, Anda dapat mengonfigurasi gerbang ALB dengan mengubah file konfigurasi Knative. Untuk informasi tentang cara menerapkan Knative, lihat Deploy Knative in an ACK cluster dan Deploy Knative in an ACK Serverless cluster.

  1. Jalankan perintah berikut untuk mengedit file config-network.yaml.

    kubectl -n knative-serving edit configmap config-network
  2. Ubah dan simpan file config-network.yaml sebagai berikut:

    Ubah ingress.class: alb.ingress.networking.knative.dev dan atur vswitch-ids, lalu simpan dan tutup file config-network untuk menyelesaikan konfigurasi gerbang ALB. Untuk informasi wilayah dan zona yang didukung ALB, lihat Regions and zones supported by ALB.

    apiVersion: v1
    data:
      ...
      ingress.class: alb.ingress.networking.knative.dev # Menunjukkan bahwa ALB digunakan sebagai controller Ingress.
      vswitch-ids: vsw-uf6kbvc7mccqia2pi****,vsw-uf66scyuw2fncpn38**** # Ganti dengan ID dua vSwitch yang telah Anda buat di zona berbeda. Sistem akan secara otomatis mengikat vSwitch ini saat membuat ALB.
      intranet: "true" # Juga membuat instans ALB akses internal.
      internet: "true" # Default: true, menunjukkan bahwa instans ALB akses internet dibuat. Jika diatur ke false, tidak ada ALB akses internet yang dibuat.
      ...
    kind: ConfigMap
    metadata:
      name: config-network
      namespace: knative-serving
      ...
    Penting

    Jika hanya ALB akses internal yang diaktifkan, Knative Service harus diatur hanya untuk akses internal. Untuk melakukannya, atur label networking.knative.dev/visibility: cluster-local.

Metode 2: Gunakan gerbang ALB yang sudah ada

Anda dapat menggunakan instans ALB yang sudah ada dengan memodifikasi file konfigurasi Knative.

  1. Jalankan perintah berikut untuk mengedit file config-network.yaml.

    kubectl -n knative-serving edit configmap config-network
  2. Ubah dan simpan file config-network.yaml sebagai berikut.

    Dalam file konfigurasi, ubah ingress.class: alb.ingress.networking.knative.dev dan atur albconfig ke ALB yang sudah ada. Dalam kasus ini, vswitch-ids tidak perlu dikonfigurasi.

    apiVersion: v1
    data:
      ...
      ingress.class: alb.ingress.networking.knative.dev # Menunjukkan bahwa ALB digunakan sebagai controller Ingress.
      albconfig: alb-dev-albconfig # Tentukan dan gunakan kembali nama ALBConfig akses internet yang sudah ada.
      intranet-albconfig: alb-dev-intranet-albconfig # Tentukan dan gunakan kembali nama ALBConfig akses internal yang sudah ada.
    ...
    kind: ConfigMap
    metadata:
      name: config-network
      namespace: knative-serving
      ...

Langkah 2: Akses layanan yang telah diterapkan melalui gerbang ALB

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

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Applications > Knative.

  3. Di halaman Knative, klik tab Services, pilih default dari Namespace, klik Create from Template, tempel contoh YAML berikut ke dalam templat, lalu klik Create.

    Contoh YAML berikut membuat Knative Service bernama helloworld-go.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
    spec:
      template:
        spec:
          containers:
          - image: registry-vpc.cn-beijing.aliyuncs.com/knative-sample/helloworld-go:73fbdd56 # Ganti wilayah dengan wilayah aktual yang Anda gunakan.
            env:
            - name: TARGET
              value: "Knative"
  4. Di halaman Services, dapatkan domain dan alamat gerbang layanan helloworld-go dari kolom Default Domain dan Access Gateway, masing-masing.

  5. Jalankan perintah berikut untuk mengakses layanan helloworld-go.

    curl -H "Host: helloworld-go.default.example.com" http://alb-******.cn-beijing.alb.aliyuncs.com	 # Ganti dengan IP gerbang dan domain aktual.

    Output yang diharapkan:

    Hello Knative!

(Opsional) Langkah 3: Lihat data pemantauan layanan

Knative menyediakan observabilitas siap pakai. Di halaman Knative, klik tab Monitoring Dashboards untuk melihat data pemantauan Knative Service yang dituju. Lihat View the Knative service monitoring dashboard.

Operasi terkait

Konfigurasi akses HTTPS

Tentukan sertifikat di ALBConfig dan aktifkan akses TLS di Knative Service menggunakan anotasi knative.k8s.alibabacloud/tls: "true". Contoh:

Catatan

Untuk mengelola dan mengaitkan sertifikat menggunakan Secret, lihat Configure HTTPS access.

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld
  namespace: default
  annotations:
    knative.k8s.alibabacloud/tls: "true"
spec:
  template:
    spec:
      containers:
      - image: registry-vpc.cn-shenzhen.aliyuncs.com/knative-sample/helloworld-go:73fbdd56  # Ganti wilayah dengan wilayah aktual yang Anda gunakan.
        env:
        - name: TARGET
          value: "Knative"

Jalankan perintah berikut untuk mengakses layanan HTTPS.

curl -H "Host: helloworld.default.knative.top" https://alb-ppcate4ox6ge9m1wik.cn-shenzhen.alb.aliyuncs.com -k

Output yang diharapkan:

Hello Knative!

Arahkan permintaan HTTP ke Port HTTPS 443

Anda dapat mengarahkan permintaan HTTP ke Port HTTPS 443 di Knative Service menggunakan anotasi networking.knative.dev/http-protocol. Contoh:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: helloworld-go
  annotations:
    networking.knative.dev/http-protocol: redirected
spec:
  template:
    spec:
      containers:
      - image: registry-vpc.cn-beijing.aliyuncs.com/knative-sample/helloworld-go:73fbdd56  # Ganti wilayah dengan wilayah aktual yang Anda gunakan.
        env:
        - name: TARGET
          value: "Knative"

Konfigurasi resolusi domain CNAME

ALB mendukung resolusi domain CNAME, yang memungkinkan Anda mengarahkan domain kustom ke domain layanan publik instans ALB untuk mengakses berbagai sumber daya jaringan. Untuk detailnya, lihat Configure a CNAME record for an ALB instance.

Dokumen terkait