Cara Mengkonfigurasi IP Luaran Nafi Perkhidmatan dalam Kubernetes

Cara Mengkonfigurasi Ip Luaran Nafi Perkhidmatan Dalam Kubernetes



Anda mungkin menghadapi masalah semasa menyediakan kluster Kubernetes apabila anda hanya tahu cara menggunakan NodePort untuk menjadikan perkhidmatan Kubernetes anda boleh diakses melalui Internet. Apabila menggunakan jenis perkhidmatan NodePort, nombor port yang tinggi akan diberikan dan anda mesti membenarkan sambungan ke port tersebut dalam peraturan firewall anda. Ia memudaratkan infrastruktur anda terutamanya jika pelayan boleh diakses melalui Internet terbuka. Anda boleh menetapkan blok alamat IP di luar kluster sebagai pentadbir kluster yang boleh menghantar trafik ke perkhidmatan di sana. Inilah sebenarnya yang akan kita bincangkan dalam artikel ini: untuk mencari semua maklumat penting tentang cara mengkonfigurasi menafikan IP luaran perkhidmatan dalam Kubernetes.

Apakah Perkhidmatan IP Luaran?

Salah satu titik akhir Perkhidmatan akan menerima trafik yang memasuki kluster menggunakan IP luaran (sebagai IP destinasi) dan port Perkhidmatan. Kubernetes tidak bertanggungjawab untuk mengurus IP luaran.







Memastikan IP mana yang digunakan untuk mengakses gugusan Kubernetes adalah penting dalam situasi ini. Menggunakan jenis perkhidmatan IP luaran, kami mungkin mengikat perkhidmatan kepada alamat IP yang digunakan untuk mengakses kluster.



Hakikat bahawa rangkaian Kubernetes berinteraksi dengan rangkaian Overlay adalah penting untuk memahami situasi ini. Ini menunjukkan bahawa anda boleh mengakses hampir setiap nod dalam kelompok sebaik sahaja anda mencapai mana-mana nod (nod induk atau pekerja).



Rangkaian ditunjukkan dengan cara ini:






Kedua-dua Nod 1 dan 2 dalam rajah berkongsi alamat IP tunggal. Pod sebenar hidup pada Node 1 tetapi alamat IP 1.2.3.6 terikat pada perkhidmatan Nginx pada Node 1. Alamat IP Node 1, 1.2.3.4, terikat pada perkhidmatan httpd dan Pod sebenar Node 2 terletak di sana.

Ini dimungkinkan oleh asas rangkaian Overlay. Apabila kami melengkungkan alamat IP 1.2.3.4, perkhidmatan httpd harus bertindak balas; apabila kita curl 1.2.3.5, perkhidmatan Nginx harus bertindak balas.



Kebaikan dan Keburukan IP Luaran

Berikut adalah kelebihan dan kekurangan IP Luaran:

Adalah Berfaedah Menggunakan IP Luaran kerana:

    • IP anda berada dalam kawalan anda sepenuhnya. Daripada menggunakan ASN pembekal awan, anda mungkin menggunakan IP kepunyaan ASN anda sendiri.

Kelemahan IP Luaran Termasuk yang Berikut:

    • Persediaan mudah yang akan kami lalui sekarang TIDAK begitu mudah didapati. Ini menunjukkan bahawa jika nod gagal, perkhidmatan tidak lagi boleh diakses dan anda perlu menyelesaikan masalah secara manual.
    • Untuk mengendalikan IP, tenaga manusia yang banyak diperlukan. Memandangkan IP tidak diperuntukkan secara dinamik untuk anda, anda perlu melakukannya secara manual.

Apakah itu Default Deny/Allow Gelagat?

' Lalai membenarkan menunjukkan bahawa semua lalu lintas dibenarkan secara lalai. Melainkan dibenarkan secara khusus, semua trafik ditolak secara lalai apabila menggunakan istilah “ lalai menafikan .” kecuali apabila dasar rangkaian ditentukan.

    • Semua trafik ke dan dari pod dibenarkan jika tiada dasar rangkaian berkuat kuasa untuk Pod tersebut.
    • Jika satu atau lebih dasar rangkaian berkuat kuasa untuk pod jenis kemasukan, hanya trafik masuk yang dibenarkan secara eksplisit oleh dasar tersebut dibenarkan.
    • Apabila satu atau lebih dasar rangkaian digunakan pada pod jenis jalan keluar, maka hanya trafik jalan keluar yang dibenarkan oleh dasar tersebut dibenarkan.

Tetapan lalai untuk jenis titik akhir lain (VM, antara muka hos) adalah untuk menyekat trafik. Hanya trafik yang dibenarkan secara khusus oleh dasar rangkaian dibenarkan, walaupun tiada dasar rangkaian digunakan pada titik akhir.

Amalan Terbaik: Dasar Penafian Lalai Tersirat

Anda mesti mengkonfigurasi dasar penafian lalai tersirat yang dibuat untuk pod Kubernetes anda. Ini memastikan trafik yang tidak diingini disekat secara automatik. Ingat bahawa lalai tersirat menafikan dasar sentiasa berkuat kuasa terakhir; jika mana-mana dasar lain membenarkan trafik, penafian tidak terpakai. Penafian hanya dilaksanakan selepas semua dasar lain telah dipertimbangkan.

Bagaimana untuk Mencipta Dasar Penafian Lalai untuk Pod Kubernetes?

Kami menasihati anda untuk menggunakan dasar rangkaian global walaupun mana-mana peraturan berikut boleh digunakan untuk membina dasar penafian lalai untuk pod Kubernetes. Dasar rangkaian global digunakan pada semua beban kerja (VM dan bekas) merentas semua ruang nama dan hos. Dasar rangkaian global menggalakkan pendekatan berhati-hati terhadap keselamatan sambil mempertahankan sumber.

    • Dayakan lalai untuk menafikan dasar rangkaian global, bukan ruang nama
    • Dayakan lalai untuk menafikan dasar rangkaian, ruang nama
    • Dayakan lalai untuk menafikan dasar Kubernetes, ruang nama

Apakah Blok IP?

Dengan ini, julat IP CIDR tertentu dipilih untuk dibenarkan sebagai sumber kemasukan atau destinasi keluar. Memandangkan IP Pod bersifat sementara dan tidak dapat diramalkan, ini mestilah IP luaran kluster.

IP sumber atau destinasi paket mesti kerap ditulis semula apabila menggunakan kaedah masuk dan keluar kelompok. Bergantung pada pemalam rangkaian tertentu (penyedia perkhidmatan awan, pelaksanaan perkhidmatan, dll.) yang digunakan, tingkah laku mungkin berubah.

Ini adalah benar untuk kemasukan dan ini bermakna bahawa dalam beberapa kes anda mesti menapis paket masuk yang berdasarkan IP sumber sebenar. Sebaliknya, 'IP sumber' yang NetworkPolicy berfungsi mungkin IP LoadBalancer atau bahkan nod Pod, dsb.

Ini menunjukkan bahawa sambungan antara pod dan IP Perkhidmatan yang ditulis semula kepada IP luaran kluster mungkin tertakluk kepada sekatan berasaskan ipBlock dari segi jalan keluar.

Apakah Dasar Lalai?

Semua trafik masuk dan keluar ke dan dari pod dalam ruang nama, secara lalai, dibenarkan jika tiada kawalan untuk ruang nama itu. Anda boleh mengubah tingkah laku lalai ruang nama dengan menggunakan contoh berikut.

Lalai Tolak Semua Trafik kemasukan

Apabila membuat Dasar Rangkaian yang memilih semua pod tetapi tidak menyertakan sebarang trafik masuk ke pod tersebut, anda boleh membina dasar pengasingan kemasukan 'lalai' dan itu adalah untuk ruang nama.


Ini memastikan bahawa semua pod, tidak kira sama ada mana-mana NetworkPolicy memilihnya, diasingkan untuk kemasukan. Peraturan ini tidak digunakan untuk pengasingan untuk keluar dari mana-mana pod.

Lalai Tolak Semua Trafik Keluar

Apabila anda membuat NetworkPolicy yang memilih semua pod tetapi melarang trafik keluar daripada pod tersebut, anda boleh membina dasar pengasingan keluar 'lalai' dan itu juga untuk ruang nama.

Kesimpulan

Panduan ini adalah mengenai penggunaan DenyServiceExternalIPs. Kami telah mereka bentuk perwakilan rajah juga untuk membuat pengguna kami memahami ia berfungsi. Kami telah menyediakan konfigurasi sampel juga.