全部产品
Search
文档中心

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

更新时间:Nov 27, 2025

Untuk aplikasi web berskala besar, aplikasi yang memerlukan pengarahan traffic detail halus atau skalabilitas elastis otomatis, serta aplikasi dengan kebutuhan pengarahan kompleks terhadap permintaan HTTP/HTTPS, Anda dapat menggunakan gerbang Application Load Balancer (ALB) untuk mengarahkan traffic ke layanan Knative. ALB adalah layanan load balancing yang dirancang untuk protokol lapisan aplikasi seperti HTTP, HTTPS, dan QUIC. ALB menyediakan elastisitas tinggi dan mampu memproses volume besar traffic Lapisan 7. Gerbang ALB merupakan gerbang yang sepenuhnya dikelola dan tidak memerlukan operasi & pemeliharaan (O&M). Gerbang ini menyediakan skalabilitas elastis otomatis dan mendukung berbagai kebijakan rilis canary.

Prasyarat

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

  • Jika kluster Anda menggunakan plugin jaringan Flannel, Anda harus mengonfigurasi layanan Kubernetes untuk Knative sebagai layanan NodePort. Untuk melakukannya, tambahkan parameter eni: false ke ConfigMap config-network.

    1. Edit file config-network.yaml.

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

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

Langkah 1: Terapkan 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 instans ALB secara otomatis saat menerapkan gerbang ALB

Anda dapat mengonfigurasi gerbang ALB saat menerapkan Knative. Jika Knative sudah diterapkan sebelumnya, Anda dapat mengonfigurasi gerbang ALB dengan memodifikasi file konfigurasi Knative.

Konfigurasikan gerbang 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 Component Management, klik One-click Deploy Knative. Pada halaman Deploy Knative, pilih gerbang layanan ALB dan minimal dua virtual switch, lalu ikuti petunjuk di layar untuk menerapkan Knative.

    Untuk informasi selengkapnya, lihat Buat vSwitch.

Modifikasi file konfigurasi Knative untuk menerapkan gerbang ALB

Untuk penerapan Knative yang sudah ada, Anda dapat mengonfigurasi gerbang ALB dengan memodifikasi file konfigurasi Knative. Untuk informasi selengkapnya, lihat Terapkan Knative di kluster ACK atau Terapkan Knative di kluster ACK Serverless.

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

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

    Untuk mengonfigurasi gerbang ALB, ubah ingress.class: alb.ingress.networking.knative.dev dan atur vswitch-ids dalam file config-network, lalu simpan dan keluar. Untuk informasi selengkapnya tentang wilayah dan zona yang didukung oleh ALB, lihat Wilayah dan zona yang didukung oleh ALB.

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

Metode 2: Gunakan instans ALB yang sudah ada

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

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

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

    Dalam file konfigurasi, atur ingress.class menjadi alb.ingress.networking.knative.dev dan albconfig ke instans ALB yang sudah ada. Anda tidak perlu mengonfigurasi vswitch-ids.

    apiVersion: v1
    data:
      ...
      ingress.class: alb.ingress.networking.knative.dev # Menentukan bahwa kontroler ALB Ingress digunakan.
      albconfig: alb-dev-albconfig # Menentukan nama instans ALB akses Internet yang sudah ada untuk digunakan kembali.
    ...
    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. Pada halaman Clusters, temukan kluster yang diinginkan lalu klik namanya. Di panel navigasi kiri, pilih Applications > Knative.

  3. Pada tab Service Management di halaman Knative, atur Namespace menjadi default, klik Create From Template, tempel contoh YAML berikut ke dalam templat, lalu klik Create.

    Contoh YAML berikut membuat layanan Knative 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.
            env:
            - name: TARGET
              value: "Knative"
  4. Pada halaman Services, temukan layanan helloworld-go dan peroleh nama domain-nya dari kolom Default Domain serta alamat gerbangnya dari kolom Gateway.

  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 alamat IP gerbang dan nama domain dengan nilai aktual.

    Output yang diharapkan:

    Hello Knative!

(Opsional) Langkah 3: Lihat data pemantauan layanan

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

Operasi terkait

Konfigurasikan akses HTTPS

Anda dapat menentukan sertifikat dalam ALBConfig dan mengaktifkan akses Transport Layer Security (TLS) untuk layanan Knative menggunakan anotasi knative.k8s.alibabacloud/tls: "true". Contoh kode berikut menunjukkan caranya.

Catatan

Untuk informasi selengkapnya tentang cara mengelola dan mengaitkan sertifikat menggunakan Secret, lihat Langkah 2: Buat sertifikat 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 dengan wilayah aktual.
        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 ulang permintaan HTTP ke Port HTTPS 443

Anda dapat mengarahkan ulang permintaan HTTP ke Port HTTPS 443 untuk layanan Knative menggunakan anotasi networking.knative.dev/http-protocol. Contoh kode berikut menunjukkan caranya.

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.
        env:
        - name: TARGET
          value: "Knative"

Tambahkan rekaman CNAME

ALB mendukung resolusi CNAME untuk memetakan nama domain kustom ke nama domain layanan publik instans ALB. Hal ini memungkinkan Anda mengakses berbagai sumber daya jaringan. Untuk informasi selengkapnya, lihat Konfigurasikan resolusi CNAME untuk ALB.

Referensi