Jika Anda menggunakan domain kustom untuk layanan Knative, sebaiknya konfigurasikan sertifikat HTTPS untuk domain tersebut guna meningkatkan keamanan transmisi data. Knative memungkinkan Anda menentukan sertifikat HTTPS dengan mengonfigurasi resource DomainMapping, yang memetakan layanan Knative ke domain kustom.
Prasyarat
Langkah 1: Buat layanan Knative
Masuk ke Konsol ACK atau . Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster target Anda. Di panel navigasi sebelah kiri, pilih .
-
Pada halaman Knative, di tab Services, pilih default dari daftar drop-down Namespace, lalu klik Buat dengan Template. Gunakan templat contoh untuk membuat layanan helloworld-go, lalu ikuti petunjuk di layar.

Langkah 2: Buat rahasia TLS
Knative menggunakan rahasia (secret) untuk menyimpan dan mengelola informasi sensitif seperti kunci, kata sandi, dan sertifikat.
-
Jalankan perintah berikut untuk membuat sertifikat tanda tangan sendiri.
openssl genrsa -out knativetop-key.pem 4096 openssl req -subj "/CN=helloworld.knative.top" -sha256 -new -key knativetop-key.pem -out knativetop.csr echo subjectAltName = DNS:helloworld.knative.top > extfile.cnf openssl x509 -req -days 3650 -sha256 -in knativetop.csr -signkey knativetop-key.pem -out knativetop-cert.pem -extfile extfile.cnfOutput yang diharapkan:
Signature ok subject=CN = helloworld.knative.top Getting Private key -
Encode konten file
knativetop-key.pemdanknativetop-cert.pemdari Langkah 1 dengan encoding Base64.-
Jalankan perintah berikut untuk melakukan encode Base64 terhadap file
knativetop-key.pem.cat knativetop-key.pem | base64Output yang diharapkan:
a25hdGl2ZXRvcC1r****** -
Jalankan perintah berikut untuk melakukan encode Base64 terhadap file
knativetop-cert.pem.cat knativetop-cert.pem | base64Output yang diharapkan:
a25hdGl2ZXRvcC1jZ******==
-
-
Jalankan perintah berikut untuk membuat rahasia.
Rahasia ini digunakan dalam konfigurasi TLS layanan Knative untuk mengamankan domain
helloworld.knative.top.kubectl create secret tls secret-tls --key knativetop-key.pem --cert knativetop-cert.pemOutput yang diharapkan:
secret/secret-tls created
Langkah 3: Buat DomainMapping
Di Knative, DomainMapping adalah objek resource yang memetakan domain kustom ke layanan Knative, sehingga layanan tersebut dapat diakses melalui domain tersebut.
-
Jalankan perintah berikut untuk membuat file
helloworld.knative.top.yaml.vim helloworld.knative.top.yaml -
Tambahkan konten berikut ke file helloworld.knative.top.yaml. Kemudian, simpan dan tutup file tersebut.
apiVersion: serving.knative.dev/v1beta1 kind: DomainMapping metadata: name: helloworld.knative.top namespace: default spec: ref: name: helloworld-go kind: Service apiVersion: serving.knative.dev/v1 # blok tls menentukan rahasia yang akan digunakan tls: secretName: secret-tls -
Jalankan perintah berikut untuk menerapkan file
helloworld.knative.top.yamlke kluster Anda.kubectl apply -f helloworld.knative.top.yamlOutput yang diharapkan:
domainmapping.serving.knative.dev/helloworld.knative.top created -
Jalankan perintah berikut untuk memverifikasi DomainMapping.
kubectl get domainmapping helloworld.knative.topOutput yang diharapkan:
NAME URL READY REASON helloworld.knative.top https://helloworld.knative.top True
Langkah 4: Akses layanan HTTPS
Jalankan perintah berikut untuk mengakses layanan HTTPS.
ALB
Tambahkan pendengar pada Port 443 ke AlbConfig. Misalnya, tambahkan konfigurasi pendengar berikut ke knative-internet.
apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
name: knative-internet
spec:
config:
...
listeners:
- port: 443
protocol: HTTPS # Nilai yang valid untuk protokol: HTTP, HTTPS, dan QUIC.
...
Akses layanan:
# Ganti alb-ppcate4ox6******.cn-beijing.alb.aliyuncs.com dengan alamat ingress ALB.
curl -H "Host: helloworld.knative.top" https://alb-ppcate4ox6******.cn-beijing.alb.aliyuncs.com -k
ASM
# Ganti 8.141.XX.XX dengan alamat ingress ASM.
curl -H "Host: helloworld-go.default.example.com" http://8.141.XX.XX -k
Output yang diharapkan:
Hello Knative!
Dokumen terkait
-
Konfigurasikan probe untuk memantau kesehatan dan ketersediaan layanan Knative Anda. Untuk informasi selengkapnya, lihat Konfigurasikan probing port di Knative.
-
Jika Elastic Container Instance (ECI) Anda perlu terhubung ke internet, Anda harus mengaitkan Elastic IP Address (EIP) dengan instans tersebut. Untuk informasi selengkapnya, lihat Bind an EIP to an ECI for public access.