All Products
Search
Document Center

Container Service for Kubernetes:Gunakan nama domain kustom di Knative

Last Updated:Mar 26, 2026

Secara default, ACK Knative menetapkan nama domain dalam format {route}.{namespace}.example.com. Untuk menggunakan domain Anda sendiri, ACK Knative mendukung empat pendekatan konfigurasi tergantung pada kasus penggunaan Anda.

KonfigurasiGunakan saatMetode
Akhiran domain globalAkhiran domain yang sama untuk semua layanan dalam klusterEdit ConfigMap config-domain
Domain layanan tunggalDomain spesifik untuk satu layananKonsol atau resource DomainMapping
Jalur KustomMengarahkan traffic ke path tertentu pada sebuah domainknative.aliyun.com/serving-ingress Anotasi
Nama domain wildcardMencocokkan semua subdomain (hanya untuk gerbang ALB)knative.aliyun.com/serving-ingress: "/"

Prasyarat

Sebelum memulai, pastikan Anda telah:

Tetapkan nama domain kustom global

Edit ConfigMap config-domain di namespace knative-serving untuk menerapkan akhiran domain yang sama ke semua layanan Knative sekaligus.

  1. Buka ConfigMap untuk diedit.

    kubectl edit cm config-domain --namespace knative-serving
  2. Ganti example.com dengan nama domain Anda, lalu simpan dan tutup file tersebut.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: config-domain
      namespace: knative-serving
    data:
      mydomain.com: "" # Ganti dengan nama domain aktual Anda.
  3. Verifikasi bahwa perubahan telah diterapkan.

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

    Output yang diharapkan:

    helloworld-go.default.mydomain.com
  4. Tambahkan rekaman DNS yang memetakan nama domain kustom Anda ke alamat IP gerbang Knative.

  5. Akses layanan Knative menggunakan nama domain kustom.

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

    Output yang diharapkan:

    Hello Knative!

Tetapkan nama domain kustom untuk satu layanan

Untuk mengikat nama domain tertentu ke satu layanan Knative, gunakan Konsol ACK atau resource DomainMapping.

Konsol

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

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

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

  4. Di halaman detail layanan, klik Access Control di pojok kanan atas untuk mengonfigurasi nama domain kustom.

kubectl

Gunakan resource DomainMapping untuk memetakan nama domain tertentu ke layanan Knative.

  1. Buat file bernama helloworld.knative.top.yaml.

    vi helloworld.knative.top.yaml
  2. Tambahkan konten berikut ke file tersebut, lalu simpan dan tutup.

    apiVersion: serving.knative.dev/v1beta1
    kind: DomainMapping
    metadata:
      name: helloworld.knative.top.mydomain.com # Tetapkan ke nama domain aktual Anda.
      namespace: default # Tetapkan ke namespace tempat layanan target berada.
    spec:
      ref:
        name: helloworld-go # Nama layanan Knative target.
        kind: Service
        apiVersion: serving.knative.dev/v1
  3. Terapkan DomainMapping ke kluster.

    kubectl apply -f helloworld.knative.top.yaml

    Output yang diharapkan:

    domainmapping.serving.knative.dev/helloworld.knative.top created
  4. Verifikasi DomainMapping.

    kubectl get domainmapping helloworld.knative.top

    Output yang diharapkan:

    NAME                     URL                             READY   REASON
    helloworld.knative.top   http://helloworld.knative.top   True
  5. Tambahkan rekaman DNS yang memetakan nama domain kustom Anda ke alamat IP gerbang Knative.

  6. Akses layanan Knative menggunakan nama domain kustom.

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

    Output yang diharapkan:

    Hello Knative!

Tetapkan path kustom untuk satu layanan

Gunakan anotasi knative.aliyun.com/serving-ingress untuk mengarahkan traffic ke path tertentu pada domain kustom. Misalnya, knative.aliyun.com/serving-ingress: cafe.mydomain.com/coffee mengarahkan traffic ke path /coffee pada cafe.mydomain.com.

Untuk mengarahkan traffic dari beberapa path ke layanan yang sama, pisahkan path-path tersebut dengan koma.

Jalur 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

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. Tambahkan anotasi alb.ingress.kubernetes.io/rewrite-target bersamaan dengan knative.aliyun.com/serving-ingress untuk menulis ulang path masuk sebelum mencapai layanan Anda.

Contoh berikut mengarahkan traffic dari /api/coffee pada Ingress ke /coffee pada layanan:

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 mencocokkan semua subdomain di bawah domain kustom Anda, tetapkan anotasi knative.aliyun.com/serving-ingress ke /.

Nama domain wildcard hanya didukung dengan gerbang ALB.
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

Langkah selanjutnya