Jika Anda ingin menggunakan nama domain kustom untuk mengekspos Layanan Knative, disarankan untuk mengonfigurasi sertifikat guna mengamankan transmisi data. Knative memungkinkan Anda menggunakan DomainMapping untuk mengonfigurasi sertifikat dan mengakses Layanan melalui HTTPS.
Prasyarat
Knative telah diterapkan di kluster ACS. Untuk informasi lebih lanjut, lihat Terapkan Knative.
Langkah 1: Buat Layanan Knative
Masuk ke Konsol ACS. Di panel navigasi sebelah kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang ingin Anda kelola dan klik ID-nya. Di panel navigasi sebelah kiri halaman detail kluster, pilih .
Pada tab Services di halaman Knative, atur Namespace ke default dan klik Create from Template. Buat Layanan Knative bernama helloworld-go dari Sample Template yang disediakan di konsol, lalu klik Create. Sebuah 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. Contoh ini menggunakan OpenSSL untuk membuat sertifikat tanda tangan sendiri. File sertifikat dan kunci privat dienkripsi menggunakan Base64 dan disimpan dalam Secret di kluster. Berikut adalah 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 mengenkripsi file
knativetop-key.pemdanknativetop-cert.pemdi Langkah 1.Jalankan perintah berikut untuk menggunakan Base64 mengenkripsi file
knativetop-key.pem:cat knativetop-key.pem | base64Output yang diharapkan:
a25hdGl2ZXRvcC1r******Jalankan perintah berikut untuk menggunakan Base64 mengenkripsi file
knativetop-cert.pem:cat knativetop-cert.pem | base64Output yang diharapkan:
a25hdGl2ZXRvcC1jZ******==
Jalankan perintah berikut untuk membuat Secret:
Secret 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
DomainMappings adalah objek sumber daya di Knative. DomainMapping 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 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 # blok tls menentukan secret yang akan digunakan tls: secretName: secret-tlsJalankan perintah berikut untuk menerapkan sumber daya yang didefinisikan di 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 pendengar pada port 443 di AlbConfig. Kode berikut memberikan contoh penambahan pendengar pada port 443 untuk knative-internet:
apiVersion: alibabacloud.com/v1
kind: AlbConfig
metadata:
name: knative-internet
spec:
config:
...
listeners:
- port: 443
protocol: HTTPS # Nilai valid untuk protokol: HTTP, HTTPS, dan QUIC.
...Jalankan perintah berikut untuk melakukan uji akses:
# alb-ppcate4ox6******.cn-beijing.alb.aliyuncs.com adalah alamat dari ALB Ingress.
curl -H "host: helloworld.knative.top" https://alb-ppcate4ox6******.cn-beijing.alb.aliyuncs.com -kMSE
# 8.141.XX.XX adalah alamat dari MSE Ingress.
curl -H "host: helloworld-go.default.example.com" https://8.141.XX.XX -kASM
# 8.141.XX.XX adalah alamat dari 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 kesehatan dan ketersediaan Layanan Knative. Untuk informasi lebih lanjut, lihat Konfigurasikan Pemindaian Port di Knative.