ASM Gateway mendukung HTTPS dan memungkinkan pemuatan sertifikat secara dinamis. Untuk mengakses layanan mikro yang dibangun menggunakan Knative secara aman, Anda dapat menggunakan ASM Gateway untuk membatasi akses ke Layanan Knative hanya melalui HTTPS. Selain itu, Anda dapat mengonfigurasi transmisi terenkripsi pada titik akhir layanan guna melindungi komunikasi antar layanan, meningkatkan keamanan dan keandalan arsitektur secara keseluruhan.
Prasyarat
Layanan Knative telah dibuat menggunakan Knative pada ASM. Untuk informasi lebih lanjut, lihat Gunakan Knative pada ASM untuk Menerapkan Aplikasi Tanpa Server.
Nama domain kustom aliyun.com telah digunakan dalam Knative pada ASM. Untuk informasi lebih lanjut, lihat Tetapkan Nama Domain Kustom dalam Knative pada ASM.
Buat sertifikat dan kunci privat
Sebelum menggunakan nama domain aliyun.com, Anda harus mendaftarkan Penyedia Konten Internet (ICP) untuk nama domain tersebut. Dalam contoh ini, nama domain aliyun.com digunakan untuk menghasilkan sertifikat dan kunci privat. Simpan sertifikat dan kunci privat sebagai rahasia (secret).
Jika Anda memiliki sertifikat dan kunci privat untuk nama domain aliyun.com, ubah nama sertifikat menjadi aliyun.com.crt dan kunci privat menjadi aliyun.com.key.
Jika Anda tidak memiliki sertifikat dan kunci privat untuk nama domain aliyun.com, Anda dapat menggunakan OpenSSL dan ikuti langkah-langkah berikut untuk menghasilkan sertifikat dan kunci privat.
Jalankan perintah berikut untuk membuat sertifikat root dan kunci privat:
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -subj '/O=myexample Inc./CN=aliyun.com' -keyout aliyun.root.key -out aliyun.root.crtJalankan perintah berikut untuk menghasilkan sertifikat dan kunci privat untuk server aliyun.com:
openssl req -out aliyun.com.csr -newkey rsa:2048 -nodes -keyout aliyun.com.key -subj "/CN=aliyun.com/O=myexample organization" openssl x509 -req -days 365 -CA aliyun.root.crt -CAkey aliyun.root.key -set_serial 0 -in aliyun.com.csr -out aliyun.com.crt
Setelah sertifikat dan kunci privat dihasilkan, jalankan perintah berikut di file KubeConfig kluster tempat pod ingress gateway berada untuk membuat rahasia yang berisi sertifikat dan kunci privat di namespace istio-system dan simpan nama rahasia tersebut.
kubectl create -n istio-system secret tls myexample-credential --key=aliyun.com.key --cert=aliyun.com.crtAktifkan HTTPS
Simpan konten berikut sebagai file default.yaml:
apiVersion: istio.alibabacloud.com/v1beta1 kind: ASMKnativeConfig metadata: name: default spec: enabled: true useExisting: true tag: 1.4.0 domainConfig: domainName: aliyun.com # Ganti aliyun.com dengan nama domain yang Anda gunakan. credentialName: myexample-credential # Ganti myexample-credential dengan nama rahasia Anda.Gunakan kubectl untuk terhubung ke Service Mesh dan jalankan perintah berikut:
kubectl apply -f default.yaml
Akses Layanan Knative melalui HTTPS
Tambahkan informasi tentang nama domain baru yang ingin Anda kunjungi ke file hosts.
Kode sampel berikut menunjukkan konten yang ingin Anda tambahkan ke file hosts.
CatatanGanti
xx.xx.xxx.xxdengan alamat gateway yang sebenarnya Anda akses. Untuk informasi lebih lanjut tentang cara mendapatkan alamat gateway, lihat Langkah 3: Kueri Alamat Gateway dalam Gunakan Knative pada ASM untuk Menerapkan Aplikasi Tanpa Server.xx.xx.xxx.xx helloworld-go.default.aliyun.comAkses Layanan Knative melalui HTTPS.
Akses Layanan Knative dengan menjalankan perintah berikut:
Jalankan perintah berikut untuk mengakses Knative Service melalui HTTPS:
curl -k --cert aliyun.com.crt --key aliyun.com.key https://helloworld-go.default.aliyun.com # Output yang diharapkan: Hello Knative!Akses Layanan Knative dengan mengunjungi situs web berikut:
Masukkan
https://helloworld-go.default.aliyun.comdi browser untuk langsung mengakses Layanan Knative.CatatanSaat mengakses Layanan Knative menggunakan browser, sistem mungkin memperingatkan bahwa URL yang Anda masukkan berisiko karena sertifikat tanda tangan sendiri digunakan. Jangan khawatir.
Operasi terkait
Knative pada ASM memungkinkan Anda melakukan rilis canary berdasarkan pemisahan lalu lintas untuk Layanan Knative. Saat membuat Layanan Knative, Knative secara otomatis membuat Revisi pertama untuk Layanan tersebut. Setiap kali konfigurasi Layanan Knative berubah, Knative membuat Revisi baru dan memodifikasi persentase lalu lintas yang didistribusikan ke Revisi yang berbeda untuk mengimplementasikan rilis canary. Untuk informasi lebih lanjut, lihat Lakukan Rilis Canary Berdasarkan Pemisahan Lalu Lintas untuk Layanan Knative Menggunakan Knative pada ASM.
Knative Serving menambahkan kontainer Queue Proxy ke setiap pod. Kontainer Queue Proxy mengirim metrik konkurensi dari kontainer aplikasi ke Knative Pod Autoscaler (KPA). Setelah KPA menerima metrik, KPA secara otomatis menyesuaikan jumlah pod yang disediakan untuk Deployment berdasarkan jumlah permintaan bersamaan dan algoritma penskalaan otomatis terkait. Untuk informasi lebih lanjut, lihat Aktifkan Penskalaan Otomatis Pod Berdasarkan Jumlah Permintaan.