全部产品
Search
文档中心

Container Service for Kubernetes:Gunakan gerbang Kourier di Knative

更新时间:Jan 09, 2026

Kourier adalah gerbang ringan berbasis arsitektur Envoy yang disediakan oleh komunitas Knative sebagai gateway open source. Gerbang ini mendistribusikan traffic ke revisi Knative dan mendukung fitur-fitur seperti layanan gRPC, timeout, retry, sertifikat TLS, serta autentikasi dan otorisasi eksternal.

Prasyarat

  • Service discovery menggunakan DNS telah diaktifkan untuk Kluster ACK Serverless. Untuk informasi selengkapnya, lihat Service discovery menggunakan DNS.

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

Langkah 1: Deploy gerbang Kourier

Anda dapat memilih gerbang Kourier saat deployment awal Knative atau mengubah file konfigurasi setelah deployment.

Untuk instalasi Knative baru

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

  2. Pada tab Component Management, di bagian Add-on Components, klik Deploy pada kolom Actions untuk Kourier. Pada kotak dialog yang muncul, klik OK.

    Jika Status dari Kourier berubah menjadi Deployed, deployment berhasil.

Knative yang sudah terinstal

  1. Anda dapat mengedit file config-network.

    kubectl -n knative-serving edit configmap config-network
  2. Ubah nilai ingress.class menjadi kourier.ingress.networking.knative.dev dan simpan file config-network.

    apiVersion: v1
    data:
      ...
      ingress.class: kourier.ingress.networking.knative.dev # Use the Kourier service gateway.
      ...
    kind: ConfigMap
    metadata:
      name: config-network
      namespace: knative-serving

Anda juga dapat mengonfigurasi Classic Load Balancer (CLB) jaringan pribadi untuk gerbang Kourier. Untuk melakukannya, tambahkan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type ke Service Kourier seperti pada contoh berikut.

Gerbang Kourier secara default membuat CLB jaringan publik (nilai anotasi adalah internet). Untuk mengonfigurasi CLB jaringan pribadi, atur nilai anotasi menjadi intranet.
apiVersion: v1
kind: Service
metadata:
  name: kourier
  namespace: knative-serving
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"   # Change the value to intranet to create a private network CLB.
  ...
spec:
  ports:
    - name: http2
      port: 80
      protocol: TCP
      targetPort: 8080
    - name: https
      port: 443
      protocol: TCP
      targetPort: 8443
  selector:
    app: 3scale-kourier-gateway
  type: LoadBalancer

Langkah 2: Akses layanan melalui gerbang Kourier

Bagian ini menjelaskan cara membuat layanan helloworld-go dan mengaksesnya melalui HTTP atau HTTPS melalui gerbang Kourier.

Akses layanan HTTP

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

  2. Pada halaman Knative, di tab Service Management, atur Namespace ke default. Klik Create from Template, tempel contoh YAML berikut ke dalam templat, lalu klik Create.

    Ini akan membuat layanan bernama helloworld-go.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
    spec:
      template:
        spec:
          containers:
          - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
            env:
            - name: TARGET
              value: "Knative"

    Jika Succeeded ditampilkan di kolom Status layanan, layanan berhasil diterapkan.

  3. Pada halaman Service Management, peroleh nama domain dan alamat gateway layanan helloworld-go dari kolom Default Domain Name dan Access Gateway.

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

    curl -H "Host: helloworld-go.default.example.com" http://8.141.XX.XX # Replace the gateway IP address and domain name with your actual information.

    Output yang diharapkan:

    Hello Knative!

    Output tersebut menunjukkan bahwa layanan HTTP berhasil diakses.

Akses layanan HTTPS

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

  2. Pada halaman Knative, di tab Service Management, atur Namespace ke default. Klik Create from Template, tempel contoh YAML berikut ke dalam templat, lalu klik Create.

    Ini akan membuat layanan bernama helloworld-go.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
    spec:
      template:
        spec:
          containers:
          - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
            env:
            - name: TARGET
              value: "Knative"

    Jika Succeeded ditampilkan di kolom Status layanan, layanan berhasil diterapkan.

  3. Buat sertifikat.

    1. Jalankan perintah berikut untuk menghasilkan sertifikat TLS.

      openssl genrsa -out tls.key 4096
      openssl req -subj "/CN=*.example.com/L=*.example.com" -sha256  -new -key tls.key -out tls.csr
      echo subjectAltName = DNS:helloworld-go.default.example.com,DNS:helloworld-go.default.example.cn > extfile.cnf
      openssl x509 -req -days 3650 -sha256 -in tls.csr -signkey tls.key -out tls.crt -extfile extfile.cnf
    2. Jalankan perintah berikut untuk membuat Secret di kluster dari file sertifikat TLS yang dihasilkan.

      kubectl -n knative-serving create secret tls kourier-cert --key tls.key --cert tls.crt
  4. Jalankan perintah berikut untuk memeriksa apakah deployment bernama net-kourier-controller ada di namespace knative-serving.

    kubectl get deployments -n knative-serving
  5. Jalankan perintah berikut untuk mengonfigurasi sertifikat.

    kubectl -n knative-serving edit deployment net-kourier-controller

    Pada halaman konfigurasi net-kourier-controller, atur parameter berikut.

    • CERTS_SECRET_NAMESPACE: Namespace yang berisi Secret sertifikat.

    • CERTS_SECRET_NAME: Nama Secret sertifikat.

    ...
       spec:
          containers:
          - env:
            - name: CERTS_SECRET_NAMESPACE
              value: knative-serving 
            - name: CERTS_SECRET_NAME
              value: kourier-cert
    ...

    Setelah konfigurasi selesai, jalankan perintah berikut untuk memeriksa status net-kourier-controller.

    kubectl -n knative-serving get po

    Output yang diharapkan:

    NAME                               READY   STATUS    RESTARTS   AGE
    net-kourier-controller-******   1/1     Running   0          10s
  6. Jalankan perintah berikut untuk mengakses layanan HTTPS menggunakan sertifikat.

    curl -H "Host: helloworld-go.default.example.com" -k --cert tls.crt --key tls.key https://8.141.XX.XX # Replace the gateway IP address and domain name with your actual information.

    Output yang diharapkan:

    Hello Knative!

    Output tersebut menunjukkan bahwa layanan HTTPS berhasil diakses.

(Opsional) Langkah 3: Tampilkan Dasbor Pemantauan Knative

Knative menyediakan fitur pemantauan siap pakai. Pada halaman Knative, klik tab Monitoring Dashboards untuk melihat data pemantauan dari Service tertentu. Untuk informasi selengkapnya tentang cara mengaktifkan dasbor pemantauan Knative, lihat View the Knative monitoring dashboard.

Referensi