全部产品
Search
文档中心

Container Service for Kubernetes:Menggunakan nama domain kustom dan path di Knative

更新时间:Nov 11, 2025

Nama domain default untuk layanan Knative memiliki format {route}.{namespace}.{default-example.com}. Bagian {default-example.com} adalah akhiran default, yang biasanya berupa `example.com`. Untuk menggunakan nama domain kustom guna mendapatkan routing yang lebih fleksibel, Anda dapat mengikuti langkah-langkah dalam topik ini. ACK Knative memungkinkan Anda mengubah nama domain kustom global untuk semua layanan Knative menggunakan ConfigMap. Anda juga dapat menggunakan DomainMapping untuk menetapkan nama domain kustom bagi satu layanan Knative tertentu.

Prasyarat

Konfigurasi nama domain kustom global

Untuk menggunakan akhiran nama domain yang sama untuk semua layanan Knative di ACK Knative tanpa menyetel nama domain untuk setiap layanan secara individual, Anda dapat mengikuti langkah-langkah berikut.

  1. Jalankan perintah berikut untuk mengedit objek ConfigMap bernama config-domain di namespace knative-serving.

    kubectl edit cm config-domain --namespace knative-serving
  2. Modifikasi berkas konfigurasi.

    Ubah nama domain default dari example.com menjadi nama domain kustom Anda dan simpan berkas tersebut. Contoh ini menetapkan nama domain kustom menjadi mydomain.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: config-domain
      namespace: knative-serving
    data:
      mydomain.com: "" # Ganti example.com dengan mydomain.com. Gunakan nama domain layanan sebenarnya Anda.
  3. Jalankan perintah berikut untuk memeriksa apakah nama domain telah berlaku.

    # Ganti helloworld-go dengan nama layanan Knative Anda.
    kubectl get route helloworld-go --output jsonpath="{.status.url}" | awk -F/ '{print $3}'

    Keluaran yang diharapkan:

    helloworld-go.default.mydomain.com

    Keluaran tersebut menunjukkan bahwa nama domain kustom telah berlaku.

  4. Tambahkan rekaman DNS untuk memetakan nama domain kustom ke alamat IP gerbang Knative.

  5. Jalankan perintah berikut untuk mengakses layanan Knative menggunakan nama domain kustom.

    curl http://helloworld-go.default.mydomain.com

    Keluaran yang diharapkan:

    Hello Knative!

    Keluaran tersebut menunjukkan bahwa nama domain kustom telah dikonfigurasi dan layanan Knative berhasil merespons permintaan.

Konfigurasi nama domain kustom untuk satu layanan

Untuk menetapkan nama domain tertentu bagi layanan Knative, Anda dapat mengikuti langkah-langkah berikut.

Konsol

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

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

  3. Pada halaman Knative, klik tab Services lalu klik nama layanan target.

  4. Pada halaman detail layanan, klik Access Settings di pojok kanan atas untuk mengonfigurasi nama domain kustom bagi layanan tersebut.

kubectl

Untuk menetapkan nama domain tertentu bagi sebuah Service dan menggunakan pengontrol Ingress untuk routing yang fleksibel, Anda dapat menggunakan DomainMapping.

  1. Jalankan perintah berikut untuk membuat berkas helloworld.knative.top.yaml.

    vi helloworld.knative.top.yaml
  2. Tambahkan konten YAML berikut ke dalam berkas tersebut. Kemudian, simpan dan tutup berkas.

    apiVersion: serving.knative.dev/v1beta1
    kind: DomainMapping
    metadata:
      name: helloworld.knative.top.mydomain.com # Tetapkan nama domain layanan. Gunakan nama domain layanan sebenarnya Anda.
      namespace: default # Tetapkan namespace ke namespace tempat layanan berada.
    spec:
      ref:
        name: helloworld-go # Nama layanan target.
        kind: Service
        apiVersion: serving.knative.dev/v1
  3. Jalankan perintah berikut untuk menerapkan sumber daya yang didefinisikan dalam helloworld.knative.top.yaml ke kluster Kubernetes.

    kubectl apply -f helloworld.knative.top.yaml

    Keluaran yang diharapkan:

    domainmapping.serving.knative.dev/helloworld.knative.top created
  4. Jalankan perintah berikut untuk memverifikasi DomainMapping.

    kubectl get domainmapping helloworld.knative.top

    Keluaran yang diharapkan:

    NAME                          URL                                      READY   REASON
    helloworld.knative.top       http://helloworld.knative.top            True

    Keluaran tersebut menunjukkan bahwa nama domain kustom telah berlaku.

  5. Tambahkan rekaman DNS untuk memetakan nama domain kustom ke alamat IP gerbang Knative.

  6. Jalankan perintah berikut untuk mengakses layanan Knative menggunakan nama domain kustom.

    curl http://helloworld.knative.top.mydomain.com

    Keluaran yang diharapkan:

    Hello Knative!

    Keluaran tersebut menunjukkan bahwa nama domain kustom telah dikonfigurasi dan layanan Knative berhasil merespons permintaan.

Konfigurasi path kustom untuk satu layanan

Untuk menetapkan path tertentu bagi layanan Knative, Anda dapat menggunakan anotasi knative.aliyun.com/serving-ingress untuk menentukan nama domain kustom dan path-nya. Misalnya, knative.aliyun.com/serving-ingress: cafe.mydomain.com/coffee menentukan nama domain cafe.mydomain.com dan path /coffee.

Contoh path tunggal:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: coffee-mydomain
  annotations:
    knative.aliyun.com/serving-ingress: cafe.mydomain.com/coffee
spec:
  template:
    spec:
      containers:
      - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8

Contoh beberapa path:

Gunakan koma (,) untuk memisahkan beberapa path.
apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: coffee-mydomain
  annotations:
    knative.aliyun.com/serving-ingress: cafe.mydomain.com/coffee,cafe.mydomain.com/tea
spec:
  template:
    spec:
      containers:
      - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8

Menulis ulang path

Gerbang Application Load Balancer (ALB) mendukung penulisan ulang path. Untuk menulis ulang path bagi layanan Knative, Anda dapat mengonfigurasi anotasi alb.ingress.kubernetes.io/rewrite-target: . Kode berikut menunjukkan contohnya.

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: coffee-mydomain
  annotations:
    knative.aliyun.com/serving-ingress: cafe.mydomain.com/api/coffee
    alb.ingress.kubernetes.io/rewrite-target: /coffee
spec:
  template:
    spec:
      containers:
      - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8

Tetapkan nama domain wildcard

Untuk menetapkan nama domain wildcard bagi layanan Knative, Anda dapat mengatur nilai anotasi knative.aliyun.com/serving-ingress menjadi /. Misalnya, knative.aliyun.com/serving-ingress: / menentukan nama domain wildcard. Kode berikut menunjukkan contohnya.

Hanya gerbang ALB yang didukung.

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  name: coffee-mydomain
  annotations:
    knative.aliyun.com/serving-ingress: "/"
spec:
  template:
    spec:
      containers:
      - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:160e4dc8

Referensi