Jika Anda ingin menggunakan nama domain kustom untuk mengekspos Layanan Knative, kami menyarankan agar Anda mengonfigurasi sertifikat untuk nama domain tersebut guna mengamankan transmisi data. Knative memungkinkan Anda menggunakan DomainMapping untuk mengonfigurasi sertifikat agar dapat mengakses Layanan melalui HTTPS.
Prasyarat
Knative telah dideploy di kluster Anda. Untuk informasi selengkapnya, lihat Deploy and manage Knative.
Langkah 1: Buat Layanan Knative
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
Pada halaman Clusters, klik nama kluster yang ingin Anda kelola, lalu pilih di panel navigasi sebelah kiri.
Pada tab Services di halaman Knative, atur Namespace menjadi default, lalu klik Create from Template. Buat Layanan Knative bernama helloworld-go dari Sample Template yang tersedia di Konsol, lalu klik Create. Setelah itu, Layanan bernama helloworld-go akan dibuat.

Langkah 2: Buat sertifikat yang dikelola sebagai Secret
Di Knative, Secret digunakan untuk menyimpan dan mengelola informasi sensitif, seperti kunci, kata sandi, dan sertifikat. Pada contoh ini, OpenSSL digunakan untuk membuat sertifikat tanda tangan sendiri. File sertifikat dan file kunci privat di-encode menggunakan Base64 dan disimpan dalam Secret di kluster. Contoh berikut menunjukkan cara membuat sertifikat tanda tangan sendiri yang dikelola sebagai Secret.
Jalankan perintah OpenSSL 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 keyGunakan Base64 untuk meng-encode file
knativetop-key.pemdanknativetop-cert.pemdi Langkah 1.Jalankan perintah berikut untuk meng-encode file
knativetop-key.pemmenggunakan Base64:cat knativetop-key.pem | base64Output yang diharapkan:
a25hdGl2ZXRvcC1r******Jalankan perintah berikut untuk meng-encode file
knativetop-cert.pemmenggunakan Base64:cat knativetop-cert.pem | base64Output yang diharapkan:
a25hdGl2ZXRvcC1jZ******==
Jalankan perintah berikut untuk membuat Secret:
Secret ini dapat digunakan dalam konfigurasi TLS Layanan Knative untuk mengakses nama domain
helloworld.knative.topsecara aman.kubectl create secret tls secret-tls --key knativetop-key.pem --cert knativetop-cert.pemOutput yang diharapkan:
secret/secret-tls created
Langkah 3: Buat DomainMapping
DomainMapping adalah objek resource di Knative yang memetakan nama domain ke satu atau beberapa Layanan Knative. Anda dapat membuat DomainMapping untuk memetakan nama domain kustom ke Layanan Knative sehingga aplikasi Anda dapat mengakses layanan tersebut melalui nama domain tersebut.
Jalankan perintah berikut untuk membuat file bernama
helloworld.knative.top.yaml:vim helloworld.knative.top.yamlBuka editor vi, tambahkan konten YAML berikut, simpan perubahan, lalu keluar:
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 # tls block specifies the secret to be used tls: secretName: secret-tlsJalankan perintah berikut untuk menerapkan resource yang didefinisikan dalam file
helloworld.knative.top.yamlke kluster ACK:kubectl apply -f helloworld.knative.top.yamlOutput yang diharapkan:
domainmapping.serving.knative.dev/helloworld.knative.top createdJalankan 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 Knative melalui HTTPS
Jalankan perintah berikut untuk mengakses Layanan Knative melalui HTTPS:
ALB
Tambahkan listener pada Port 443 di AlbConfig. Kode berikut merupakan contoh penambahan listener pada Port 443 untuk knative-internet:
apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
name: knative-internet
spec:
config:
...
listeners:
- port: 443
protocol: HTTPS # Valid values for protocol: HTTP, HTTPS, and QUIC.
...Jalankan perintah berikut untuk melakukan uji akses:
# alb-ppcate4ox6******.cn-beijing.alb.aliyuncs.com is the address of the ALB Ingress.
curl -H "host: helloworld.knative.top" https://alb-ppcate4ox6******.cn-beijing.alb.aliyuncs.com -kMSE
# 8.141.XX.XX is the address of the MSE Ingress.
curl -H "host: helloworld-go.default.example.com" https://8.141.XX.XX -kASM
# 8.141.XX.XX is the address of the ASM Ingress.
curl -H "host: helloworld-go.default.example.com" http://8.141.XX.XX -kOutput yang diharapkan:
Hello Knative!Referensi
Anda dapat mengonfigurasi probe untuk memantau status dan ketersediaan Layanan Knative. Untuk informasi selengkapnya, lihat Configure port probing in Knative.
Anda dapat mengaktifkan akses Internet untuk instans kontainer elastis dengan mengaitkannya ke alamat IP elastis (EIP). Untuk informasi selengkapnya, lihat Associate an EIP with the elastic container instance on which a Knative Service runs.