Isolasi Service diperlukan dalam skenario komputasi edge. Sebagai contoh, ketika menggunakan NodePort Service, Anda dapat mendengarkan port yang diekspos hanya pada node di node pool tertentu untuk menghindari konflik port. Topik ini menjelaskan cara mengonfigurasi NodePort listening berdasarkan node pool.
Desain arsitektur
Komponen edge-hub memanfaatkan kerangka kerja penyaringan data terprogram bawaan untuk mengubah respons dari kube-apiserver di cloud setelah menerima permintaan dari edge. Respons ini dimodifikasi secara transparan sesuai kebutuhan untuk memenuhi persyaratan dalam skenario kolaborasi cloud-edge. Gambar berikut menunjukkan desain arsitektur komponen edge-hub.
Filter bernama nodeportisolation diperkenalkan ke komponen edge-hub. Filter ini dapat digunakan bersama dengan anotasi nodeport.openyurt.io/listen dari NodePort Services untuk mendengarkan port yang diekspos pada node di node pool tertentu.
Catatan penggunaan
Pastikan versi komponen edge-hub adalah 0.11.0 atau lebih baru.
Saat membuat Service, tentukan apakah akan menambahkan anotasi
nodeport.openyurt.io/listen. Jika anotasi ditambahkan setelah Service dibuat, mulai ulang semua proxy jaringan Kubernetes (kube-proxy) agar fitur ini berlaku.Setelah menambahkan node pool, tentukan node pool yang baru dibuat dalam anotasi NodePort Service sebelum menambahkan node ke node pool. Dengan cara ini, NodePort listening berlaku untuk semua node yang ditambahkan ke node pool.
Nama node pool dapat disesuaikan. Oleh karena itu, disarankan untuk menentukan node pool berdasarkan ID-nya. Anda dapat melihat ID node pool di Container Service for Kubernetes (ACK) console. ID node pool berformat npxxxx.
Prosedur
Anda dapat menambahkan anotasi nodeport.openyurt.io/listen ke NodePort dan LoadBalancer Services.
Kunci Anotasi:
nodeport.openyurt.io/listen.Nilai Anotasi: nama node pool yang dipisahkan oleh koma (,).
foo: mendengarkan port yang diekspos pada node di node pool bernamafoo.-foo: tidak mendengarkan port yang diekspos pada node di node pool bernamafoo.*: mendengarkan port yang diekspos pada node di semua node pool.
Jika nama node pool ditentukan dalam beberapa anotasi, hanya nama node pool di anotasi pertama yang berlaku.
NodePort listening dinonaktifkan untuk node di node pool yang belum ditentukan.
Secara default, sistem mendengarkan port yang diekspos pada node yatim (node yang tidak termasuk dalam node pool manapun) dengan cara yang sama seperti Kubernetes open source.
Contoh anotasi
Anotasi | Deskripsi |
nodeport.openyurt.io/listen=foo,bar | Mendengarkan port yang diekspos oleh NodePort Service pada node di node pool bernama foo dan bar. |
nodeport.openyurt.io/listen=foo,* | Mendengarkan port yang diekspos oleh NodePort Service pada node di semua node pool. |
nodeport.openyurt.io/listen=-foo,-bar | Tidak mendengarkan port yang diekspos oleh NodePort Service pada node di semua node pool. |
nodeport.openyurt.io/listen=-foo,* | Tidak mendengarkan port yang diekspos oleh NodePort Service pada node di node pool bernama foo. |
nodeport.openyurt.io/listen=foo,-foo | Mendengarkan port yang diekspos oleh NodePort Service pada node di node pool bernama foo. |
nodeport.openyurt.io/listen=-foo | Tidak mendengarkan port yang diekspos oleh NodePort Service pada node di semua node pool, termasuk node pool bernama foo. |