All Products
Search
Document Center

Container Compute Service:Gunakan Kourier Ingresses di Knative

Last Updated:Jun 28, 2025

Kourier Ingresses adalah gateway ringan berbasis proyek Envoy. Ini merupakan Ingress sumber terbuka yang disediakan oleh Knative. Anda dapat menggunakan Kourier Ingresses untuk mendistribusikan lalu lintas ke revisi Knative serta mengonfigurasi layanan gRPC, batas waktu dan pengulangan, sertifikat Transport Layer Security (TLS), dan layanan otorisasi eksternal.

Prasyarat

  • Knative telah diterapkan di kluster ACS. Untuk informasi lebih lanjut, lihat Terapkan Knative.

  • Penemuan layanan berbasis DNS harus diaktifkan untuk kluster ACS. Untuk informasi lebih lanjut, lihat Ikhtisar DNS dan CoreDNS.

Langkah 1: Terapkan Kourier Ingress

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

  2. Di halaman Clusters, temukan kluster yang ingin dikelola dan klik ID-nya. Di panel navigasi kiri halaman detail kluster, pilih Applications > Knative.

  3. Pada tab Components, klik Deploy Knative, pilih Kourier, lalu ikuti petunjuk di layar untuk menyelesaikan penyebaran.

Langkah 2: Gunakan Kourier Ingress untuk mengakses Layanan

Bagian ini menjelaskan cara membuat Layanan Knative bernama helloworld-go untuk menunjukkan cara menggunakan Kourier Ingress dalam mengakses Layanan Knative melalui HTTP atau HTTPS.

Gunakan Kourier Ingress untuk mengakses Layanan Knative melalui HTTP

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

  2. Di halaman Clusters, temukan kluster yang ingin dikelola dan klik ID-nya. Di panel navigasi kiri halaman detail kluster, pilih Applications > Knative.

  3. Pada tab Services di halaman Knative, atur Namespace menjadi default, klik Create from Template, salin konten YAML berikut ke editor template, lalu klik Create.

    Template ini 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 kolom Status dari Layanan menampilkan Created, Layanan tersebut berhasil diterapkan.

  4. Di halaman Services, catat nama domain dan alamat IP gateway dari Layanan helloworld-go pada kolom Default Domain dan Gateway.

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

    curl -H "Host: helloworld-go.default.example.com" http://8.141.XX.XX # Tentukan alamat IP gateway dan nama domain aktual yang Anda peroleh.

    Output yang Diharapkan:

    Hello Knative!

    Output ini menunjukkan bahwa Layanan Knative dapat diakses melalui HTTP.

Gunakan Kourier Ingress untuk mengakses Layanan Knative melalui HTTPS

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

  2. Di halaman Clusters, temukan kluster yang ingin dikelola dan klik ID-nya. Di panel navigasi kiri halaman detail kluster, pilih Applications > Knative.

  3. Pada tab Services di halaman Knative, atur Namespace menjadi default, klik Create from Template, salin konten YAML berikut ke editor template, lalu klik Create.

    Template ini 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 kolom Status dari Layanan menampilkan Created, Layanan tersebut berhasil diterapkan.

  4. 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 berdasarkan sertifikat TLS yang dihasilkan:

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

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

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

    Di halaman konfigurasi net-kourier-controller, tentukan parameter berikut:

    • CERTS_SECRET_NAMESPACE: Atur nilainya ke namespace tempat Secret yang dibuat berada.

    • CERTS_SECRET_NAME: Atur nilainya ke nama Secret yang dibuat.

    ...
       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
  7. Jalankan perintah berikut untuk mengakses Layanan Knative melalui HTTPS:

    curl -H "Host: helloworld-go.default.example.com" -k --cert tls.crt --key tls.key //8.141.XX.XX # Tentukan alamat IP gateway dan nama domain aktual yang Anda peroleh.

    Output yang Diharapkan:

    Hello Knative!

    Output ini menunjukkan bahwa Layanan Knative dapat diakses melalui HTTPS.

(Opsional) Langkah 3: Lihat dashboard pemantauan Knative

Knative menyediakan fitur pemantauan siap pakai. Di halaman Knative, klik tab Monitoring Dashboards untuk melihat data pemantauan Layanan tertentu. Untuk informasi lebih lanjut tentang dashboard Knative, lihat Lihat dashboard Knative.

image.png

Referensi