All Products
Search
Document Center

Container Service for Kubernetes:Gunakan Ingress ALB untuk mengarahkan lalu lintas di Knative

Last Updated:Nov 12, 2025

Kami menyarankan penggunaan Ingress Application Load Balancer (ALB) untuk mengarahkan lalu lintas Layanan Knative pada aplikasi web berskala besar, aplikasi yang memerlukan pengarahan lalu lintas detail halus atau penskalaan otomatis, serta aplikasi dengan persyaratan pengarahan rute kompleks untuk permintaan HTTP/HTTPS. ALB beroperasi pada lapisan aplikasi dan mendukung protokol seperti HTTP, HTTPS, dan Quick UDP Internet Connections (QUIC). ALB menawarkan elastisitas tinggi serta mampu memproses volume besar lalu lintas jaringan pada Lapisan 7. Ingress ALB merupakan gerbang yang sepenuhnya dikelola dan bebas O&M, mendukung penskalaan otomatis serta beberapa aturan rilis canary.

Prasyarat

  • Knative telah diterapkan di kluster Anda. Untuk informasi selengkapnya, lihat Terapkan dan kelola Knative.

  • Kontroler Ingress ALB telah diinstal. Untuk informasi selengkapnya, lihat Kelola kontroler Ingress ALB.

  • Pada kluster yang menggunakan plugin jaringan Flannel, layanan Knative harus diekspos melalui tipe layanan NodePort. Untuk mengaktifkan perilaku ini, tambahkan parameter eni: false pada ConfigMap config-network.

    1. Buka file config-network.yaml untuk diedit.

      kubectl -n knative-serving edit configmap config-network
    2. Pada editor yang terbuka, tambahkan baris eni: false di bawah bagian data seperti yang ditunjukkan di bawah ini:

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

Langkah 1: Terapkan Ingress ALB

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

Metode 1: Membuat instans ALB secara otomatis saat menerapkan Ingress ALB

Anda dapat mengonfigurasi Ingress ALB selama penerapan Knative. Jika Knative sudah diterapkan, Anda dapat memodifikasi file konfigurasi Knative untuk mengonfigurasi Ingress ALB.

Konfigurasikan Ingress ALB saat menerapkan Knative

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

  2. Pada halaman Clusters, temukan kluster yang diinginkan lalu klik namanya. Di panel kiri, pilih Applications > Knative.

  3. Pada tab Components, klik Deploy Knative. Pada halaman Deploy Knative, pilih ALB dan pilih minimal dua vSwitch. Ikuti petunjuk pada halaman untuk menerapkan Knative.

    Untuk informasi selengkapnya tentang cara membuat vSwitch, lihat Buat dan kelola vSwitch.

Modifikasi file konfigurasi Knative untuk mengonfigurasi Ingress ALB

Jika Knative sudah diterapkan, Anda dapat memodifikasi file konfigurasi Knative untuk menentukan Ingress ALB. Untuk informasi selengkapnya tentang cara menerapkan Knative, lihat Terapkan Knative di kluster ACK dan Terapkan Knative di kluster ACK Serverless.

  1. Jalankan perintah berikut untuk memodifikasi file config-network.yaml:

    kubectl -n knative-serving edit configmap config-network
  2. Lihat templat berikut untuk memodifikasi dan menyimpan file config-network.yaml.

    Ubah ingress.class: alb.ingress.networking.knative.dev, konfigurasikan parameter vswitch-ids, lalu simpan file config-network dan keluar. Untuk informasi selengkapnya tentang wilayah dan zona yang mendukung Ingress ALB, lihat Wilayah dan zona yang mendukung ALB.

    apiVersion: v1
    data:
      ...
      ingress.class: alb.ingress.networking.knative.dev # Tentukan kontroler Ingress ALB. 
      vswitch-ids: vsw-uf6kbvc7mccqia2pi****,vsw-uf66scyuw2fncpn38**** # Ganti dengan ID dua vSwitch yang Anda buat di zona berbeda. Sistem akan secara otomatis mengikat vSwitch saat membuat instans ALB. 
      intranet: "true" # Buat instans ALB internal.
      ...
    kind: ConfigMap
    metadata:
      name: config-network
      namespace: knative-serving
      ...

Metode 2: Gunakan instans ALB yang sudah ada untuk mengonfigurasi Ingress ALB

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

  1. Jalankan perintah berikut untuk memodifikasi file config-network.yaml:

    kubectl -n knative-serving edit configmap config-network
  2. Modifikasi dan simpan file config-network.yaml berdasarkan templat berikut.

    Ubah ingress.class: alb.ingress.networking.knative.dev dalam file konfigurasi dan atur albconfig ke Ingress ALB yang sudah ada. Anda tidak perlu mengonfigurasi parameter vswitch-ids.

    apiVersion: v1
    data:
      ...
      ingress.class: alb.ingress.networking.knative.dev # Tentukan kontroler Ingress ALB. 
      albconfig: alb-dev-albconfig # Tentukan nama instans ALB publik yang sudah ada untuk digunakan kembali.
      ...
    kind: ConfigMap
    metadata:
      name: config-network
      namespace: knative-serving
      ...

Langkah 2: Gunakan Ingress ALB untuk mengakses Layanan

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

  2. Pada halaman Clusters, temukan kluster yang diinginkan lalu klik namanya. Di panel navigasi kiri, pilih Applications > Knative.

  3. Pada tab Services halaman Knative, pilih default dari daftar drop-down Namespace, klik Create from Template, salin konten YAML berikut ke editor kode, lalu klik Create.

    Templat ini membuat Layanan 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 contoh dengan wilayah aktual Anda.
            env:
            - name: TARGET
              value: "Knative"
  4. Pada halaman Services, catat nama domain dan alamat IP gateway Layanan helloworld-go di kolom Default Domain dan Gateway, masing-masing.

  5. Jalankan perintah berikut untuk mengakses Layanan bernama helloworld-go:

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

     

    Keluaran yang diharapkan:

    Hello Knative!

(Opsional) Langkah 3: Lihat dasbor pemantauan Knative

Knative menyediakan fitur pemantauan siap pakai. Pada halaman Knative, klik tab Monitoring Dashboards untuk melihat data pemantauan Layanan tertentu. Untuk informasi selengkapnya tentang cara mengaktifkan dasbor pemantauan Knative, lihat Lihat dasbor pemantauan Knative.

Langkah terkait

Konfigurasikan akses melalui HTTPS

Untuk mengamankan Layanan Knative Anda dengan Transport Layer Security (TLS), Anda dapat menentukan sertifikat dalam ALBConfig. Akses TLS dapat diaktifkan pada Layanan Knative dengan menggunakan anotasi knative.k8s.alibabacloud/tls: "true". Contoh:

Catatan

Untuk mengelola sertifikat sebagai Secret, lihat Langkah 2: Buat sertifikat yang dikelola sebagai Secret.

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 contoh dengan wilayah aktual Anda.
        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

Keluaran yang diharapkan:

Hello Knative!

Arahkan ulang permintaan HTTP ke Port HTTPS 443

Permintaan HTTP dapat diarahkan ulang ke Port HTTPS 443 pada Layanan Knative dengan 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 contoh dengan wilayah aktual Anda.
        env:
        - name: TARGET
          value: "Knative"

Tambahkan Rekaman CNAME

Untuk memudahkan akses ke sumber daya jaringan, Anda dapat menggunakan Rekaman CNAME untuk memetakan nama domain kustom ke nama domain instans ALB. Untuk informasi selengkapnya, lihat Konfigurasikan Rekaman CNAME untuk instans ALB.

Referensi