Dalam skenario kolaborasi cloud-edge, layanan unit edge harus menangani lalu lintas secara lokal di dalam kelompok nodenya sendiri, bukan mengarahkannya melalui cloud. Deploy ack-ingress-nginx-v1 secara terpisah di kelompok node cloud dan kelompok node edge sehingga masing-masing memiliki Ingress controller-nya sendiri dan menangani lalu lintas secara independen.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster ACK Edge yang menjalankan Kubernetes 1.19 atau versi lebih baru
Akses ke Konsol ACK
ID kelompok node untuk kelompok node cloud dan edge yang ingin ditargetkan
Untuk menemukan ID kelompok node, buka halaman detail kluster di Konsol ACK, lalu pilih Nodes > Node Pools pada panel navigasi kiri.
Catatan penggunaan
Anda dapat melakukan deploy
ack-ingress-nginx-v1beberapa kali dalam kluster ACK Edge yang sama. Berikan nama release unik untuk setiap deployment dan gunakan namespace terpisah per deployment untuk mengisolasi operasi.Jika Anda menggunakan pengaturan default untuk deployment pertama,
ack-ingress-nginx-v1akan dideploy di kelompok node default kluster.
Cara kerja
Setiap deployment ack-ingress-nginx-v1 menargetkan satu kelompok node tunggal, yang diidentifikasi oleh ID kelompok node yang ditetapkan pada parameter nodeSelector. Deploy controller ini sekali di kelompok node cloud dan sekali di kelompok node edge agar masing-masing mengarahkan lalu lintas secara lokal.
Untuk kelompok node edge, menyetel global.edgeNodePool ke true akan membuat dua perubahan otomatis:
Tipe Service berubah dari
LoadBalancermenjadiNodePort, karena node edge tidak memiliki akses ke infrastruktur load balancer cloud.NGINX Ingress controller menggunakan alamat gambar kontainer publik, sehingga mencegah kegagalan pull saat kluster tidak dapat mengakses registry gambar privat Alibaba Cloud.
Untuk mengekspos aplikasi edge ke internet publik setelah deployment, konfigurasikan load balancer dengan Alamat IP publik secara terpisah.
Deploy the NGINX Ingress controller
Deploy ack-ingress-nginx-v1 dari ACK Marketplace sekali untuk setiap kelompok node target. Gunakan nama release unik dan nilai ingressClassResource unik untuk setiap deployment guna menghindari konflik dalam kluster yang sama.
Deploy in a cloud node pool
Login ke Konsol ACK. Pada panel navigasi kiri, pilih Marketplace > Marketplace.
Pada tab App Catalog, temukan dan klik ack-ingress-nginx-v1.
Pada halaman ack-ingress-nginx-v1, klik Deploy di pojok kanan atas.
Pada wizard Deploy, atur Cluster, Namespace, dan Release Name. Gunakan format
ack-ingress-nginx-v1-{node pool name}untuk nama release. Contohnya:ack-ingress-nginx-v1-cloud-hangzhou.Klik Next untuk membuka halaman Parameters, lalu konfigurasikan hal berikut:
Pada parameter
nodeSelector, tambahkan labelalibabacloud.com/nodepool-id: {Node pool ID}. Ini adalah satu-satunya label yang diperlukan.
Pada parameter
ingressClassResource, aturnamedancontrollerValueke nilai unik agar beberapa deployment dalam kluster yang sama tidak saling bertabrakan:
name: gunakan formatack-nginx-{node pool name}. Contohnya:ack-nginx-cloud-hangzhou.controllerValue: gunakan format"k8s.io/ack-ingress-nginx-{node pool name}". Contohnya:"k8s.io/ack-ingress-nginx-cloud-hangzhou".
Klik OK.
Deploy in an edge node pool
Login ke Konsol ACK. Pada panel navigasi kiri, pilih Marketplace > Marketplace.
Pada tab App Catalog, temukan dan klik ack-ingress-nginx-v1.
Pada halaman ack-ingress-nginx-v1, klik Deploy di pojok kanan atas.
Pada wizard Deploy, atur Cluster, Namespace, dan Release Name. Gunakan format
ack-ingress-nginx-v1-{node pool name}untuk nama release. Contohnya:ack-ingress-nginx-v1-edge-hangzhou.Klik Next untuk membuka halaman Parameters, lalu konfigurasikan hal berikut:
Pada parameter
nodeSelector, tambahkan labelalibabacloud.com/nodepool-id: {edge node pool ID}. Ini adalah satu-satunya label yang diperlukan.
Atur
global.edgeNodePoolketrue. Node edge tidak dapat menggunakan layananLoadBalancerkarena infrastruktur load balancer cloud tidak tersedia di edge. Menyetel parameter ini mengubah tipe Service menjadiNodePortdan mengonfigurasi alamat gambar kontainer publik untuk controller. Untuk mengekspos aplikasi edge ke internet publik setelah deployment, konfigurasikan load balancer dengan Alamat IP publik.
Pada parameter
ingressClassResource, aturnamedancontrollerValueke nilai unik:
name: gunakan formatack-nginx-{node pool name}. Contohnya:ack-nginx-edge-hangzhou.controllerValue: gunakan format"k8s.io/ack-ingress-nginx-{node pool name}". Contohnya:"k8s.io/ack-ingress-nginx-edge-hangzhou".
Klik OK.
Verifikasi deployment
Setelah deployment selesai, pastikan NGINX Ingress controller berjalan di kelompok node target.
Pada panel navigasi kiri halaman detail kluster, pilih Applications > Helm. Pastikan rilis Helm yang Anda buat muncul dalam daftar.