All Products
Search
Document Center

Container Service for Kubernetes:Gunakan gerbang Kourier di Knative

Last Updated:Mar 26, 2026

Kourier adalah gerbang masuk (ingress gateway) ringan dan open-source yang native untuk Knative, dibangun di atas Envoy dan disediakan oleh komunitas Knative. Terapkan gerbang ini untuk mengarahkan traffic HTTP dan HTTPS antar revisi Knative, mengonfigurasi layanan gRPC, mengatur timeout dan retry, mengelola sertifikat Transport Layer Security (TLS), serta mengintegrasikan layanan otorisasi eksternal.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Terapkan gerbang Kourier

Anda dapat menerapkan Kourier baik saat pengaturan awal Knative (menggunakan Konsol ACK) maupun setelah penerapan (menggunakan kubectl).

Untuk instalasi Knative baru

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

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

  3. Pada tab Components, temukan Kourier di bagian Add-on Component dan klik Deploy di kolom Actions. Pada dialog yang muncul, klik Confirm. Kolom Status untuk Kourier berubah menjadi Deployed.

Untuk instalasi Knative yang sudah ada

  1. Jalankan perintah berikut untuk membuka ConfigMap config-network di editor default Anda:

    kubectl -n knative-serving edit configmap config-network
  2. Di editor, cari kunci ingress.class di bawah bagian data dan ubah nilainya menjadi kourier.ingress.networking.knative.dev, seperti yang ditunjukkan di bawah ini:

    apiVersion: v1
    data:
      ...
      ingress.class: kourier.ingress.networking.knative.dev # Gunakan gerbang Kourier
      ...
    kind: ConfigMap
    metadata:
      name: config-network
      namespace: knative-serving
  3. Simpan dan tutup file tersebut. Kubernetes menerapkan perubahan tersebut secara otomatis.

(Opsional) Konfigurasikan CLB akses internal

Secara default, Kourier membuat Classic Load Balancer (CLB) yang menghadap Internet. Untuk menggunakan CLB akses internal sebagai gantinya, tambahkan anotasi service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet" ke manifes Service Kourier:

apiVersion: v1
kind: Service
metadata:
  name: kourier
  namespace: knative-serving
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
  ...
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
Nilai anotasi default adalah internet. Atur menjadi intranet untuk beralih ke CLB akses internal.

Akses Layanan Knative melalui gerbang Kourier

Langkah-langkah berikut menggunakan contoh Layanan Knative bernama helloworld-go untuk menunjukkan akses HTTP dan HTTPS. Terapkan Layanan terlebih dahulu, lalu pilih protokol yang Anda butuhkan.

Perintah curl di bawah ini meneruskan nama domain dalam Header Host karena DNS tidak dikonfigurasi secara default. Jika Anda mengonfigurasi DNS untuk gerbang, Anda dapat menghilangkan flag -H "Host:".

Terapkan layanan contoh

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

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

  3. Pada tab Services, atur Namespace ke default, klik Create from Template, tempel YAML berikut ke editor, lalu klik Create.

    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"

    Saat Status menampilkan Created, Layanan siap digunakan.

  4. Pada tab Services, catat nama domain di kolom Default Domain dan alamat IP gerbang di kolom Gateway untuk Layanan helloworld-go. Anda memerlukan nilai-nilai ini pada langkah selanjutnya.

Akses melalui HTTP

Jalankan perintah berikut, ganti alamat IP gerbang dan nama domain dengan nilai yang telah Anda catat:

curl -H "Host: helloworld-go.default.example.com" http://8.141.XX.XX

Output yang diharapkan:

Hello Knative!

Akses melalui HTTPS

Langkah 1: Hasilkan sertifikat TLS.

Jalankan perintah berikut untuk membuat sertifikat tanda tangan sendiri:

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

Ini menghasilkan kunci RSA 4096-bit dan sertifikat yang berlaku selama 3650 hari, dengan Subject Alternative Names untuk helloworld-go.default.example.com dan helloworld-go.default.example.cn.

Langkah 2: Buat Secret dari sertifikat.

kubectl -n knative-serving create secret tls kourier-cert --key tls.key --cert tls.crt

Langkah 3: Verifikasi bahwa Penyebaran `net-kourier-controller` tersedia.

kubectl get deployments -n knative-serving

Langkah 4: Konfigurasikan sertifikat di controller.

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

Di bawah spec.containers[].env, tambahkan dua variabel lingkungan berikut:

...
spec:
  containers:
  - env:
    - name: CERTS_SECRET_NAMESPACE
      value: knative-serving
    - name: CERTS_SECRET_NAME
      value: kourier-cert
...
ParameterDeskripsi
CERTS_SECRET_NAMESPACENamespace tempat Secret dibuat (knative-serving)
CERTS_SECRET_NAMENama Secret (kourier-cert)

Langkah 5: Verifikasi bahwa Pod controller sedang Berjalan.

kubectl -n knative-serving get po

Output yang diharapkan:

NAME                               READY   STATUS    RESTARTS   AGE
net-kourier-controller-******      1/1     Running   0          10s

Langkah 6: Akses Layanan melalui HTTPS.

curl -H "Host: helloworld-go.default.example.com" -k --cert tls.crt --key tls.key https://8.141.XX.XX

Output yang diharapkan:

Hello Knative!

(Opsional) Tampilkan Dasbor pemantauan Knative

Knative mencakup pemantauan bawaan. Pada halaman Knative, klik tab Monitoring Dashboards untuk melihat metrik layanan Anda. Untuk petunjuk pengaturan, lihat View the Knative monitoring dashboard.

Langkah berikutnya