Cara Menggunakan Linux sysctls dalam Kubernetes

Cara Menggunakan Linux Sysctls Dalam Kubernetes



Siaran ini akan membincangkan tentang Linux sysctl dalam Kubernetes dan cara ia boleh digunakan dalam kelompok Kubernetes. Sysctl ialah antara muka dalam sistem pengendalian Linux yang membolehkan pentadbir mengubah suai parameter kernel semasa runtime. Di sini, kami akan menunjukkan cara menggunakan sysctls Linux dalam platform Kubernetes. Kami akan menunjukkan contoh mudah untuk membantu anda memahami jenis output yang anda boleh jangkakan semasa melaksanakan perintah kubectl untuk menggunakan sysctls dalam Kubernetes.

Apakah sysctls?

Sysctls ialah antara muka dalam Linux yang digunakan untuk melaraskan parameter kernel pada masa jalan untuk ruang nama dalam bekas. Parameter ini boleh didapati dalam fail proses maya /proc/sys/ dan ia meliputi pelbagai subsistem seperti memori maya, rangkaian, kernel, dsb. Hanya sysctl ruang nama boleh ditetapkan secara bebas pada pod dan Kubernetes mendedahkan tetapan sysctl. Sysctls tahap nod yang tidak diberi ruang nama perlu ditetapkan dengan kaedah tetapan sysctls lain seperti pengendali penalaan nod. Selain itu, hanya sysctl selamat disenarai putih secara lalai manakala sysctl tidak selamat perlu didayakan secara manual pada nod supaya ia boleh tersedia kepada pengguna. Sekarang, mari kita fahami cara menggunakan Linux sysctls dalam Kubernetes.







Prasyarat

Sebelum anda mula belajar cara menggunakan sysctls Linux dalam Kubernetes, pastikan anda mempunyai alatan berikut dipasang dalam sistem anda:



    • Kubernetes versi 1.23 atau mana-mana versi terkini yang lain
    • Ubuntu 20.04 atau mana-mana versi terkini yang lain
    • Sysctls untuk sokongan pod
    • Alat baris arahan Kubectl
    • Kelompok Minikube

Dengan mengandaikan bahawa sistem anda memenuhi keperluan prasyarat, kami akan beralih ke bahagian pelaksanaan.



Bagaimana untuk Menggunakan sysctls Linux dalam Kubernetes?

Sistem pengendalian Linux ialah platform yang membolehkan anda menala kernel melalui tombol sysctls dalam susunan rangkaian. Beberapa sysctl diberi ruang nama untuk pod dengan konfigurasinya sendiri manakala yang lain sah untuk keseluruhan sistem. Kubernetes telah mengumpulkan antara muka sysctls kepada dua kategori:





    • Namespaced vs nod-level sysctls
    • Sysctls selamat vs tidak selamat

Namespaced vs nod-level sysctls:

Dalam kernel Linux, kebanyakan sysctls diberi ruang nama yang membolehkan anda menetapkannya secara bebas antara pelbagai pod pada satu nod. Sysctls ruang nama boleh diakses dengan mudah dalam pod Kubernetes. Beberapa sysctls ruang nama adalah seperti berikut:



    • fs.mqueue.*
    • kernel .msg*
    • kernel.shm*
    • kernel.sem

Sysctls tahap nod tidak diberi ruang nama dan pentadbir kluster perlu menetapkannya secara manual. Pentadbir kluster sama ada menggunakan set syaitan dengan bekas istimewa atau boleh mengubah suai pengedaran Linux nod /etc/sysctls.conf. Operator Penalaan Nod juga boleh digunakan untuk menetapkan sysctls tahap nod.

Sysctls selamat vs tidak selamat:

Terdapat dua kumpulan sysctls: selamat dan tidak selamat. Sysctls selamat diberi ruang nama dengan betul dan ia diasingkan sepenuhnya dalam pod pada nod yang sama. Sysctls selamat didayakan secara lalai dan boleh digunakan dalam pod dengan mengubah suai spesifikasi pod. Walau bagaimanapun, sysctl yang tidak selamat dilumpuhkan secara lalai dan ia perlu didayakan secara manual oleh pentadbir kluster. Sistem selamat tidak mempengaruhi jiran mereka kerana mereka diberi ruang nama yang betul. Walaupun sysctl yang tidak selamat secara tidak dijangka boleh memberi kesan kepada jiran mereka seperti melebihkan sistem. Set selamat sysctls adalah seperti berikut:

    • net.ipv4.ping_group_range
    • net.ipv4.ip_local_port_range
    • kernel.shm_rmid_forced
    • net.ipv4.tcp_syncookies

Perkara yang perlu diperhatikan di sini ialah hanya diberi ruang nama sahaja tidak mencukupi untuk sysctl dianggap selamat.

Memandangkan kita telah memahami kedua-dua kategori sysctls, mari kita teruskan untuk mempelajari cara menggunakan sysctls ini dalam Kubernetes. Di sini, kami akan membimbing anda tentang cara menggunakan kedua-dua sysctls selamat dan tidak selamat dan cara mendayakan sysctls tidak selamat secara manual dalam Kubernetes.

Langkah # 1: Mulakan Kluster Minikube

Platform Kubernetes boleh digunakan melalui beberapa kluster dan kami menggunakan kluster minikube di sini. Untuk memulakan kluster minikube, anda boleh menggunakan arahan yang diberikan di bawah:

> mulakan minikube


Ini akan memulakan kluster minikube di mana anda boleh menjalankan perintah kubectl dan menggunakan sysctls Linux dalam platform Kubernetes. Apabila anda melaksanakan arahan ini, anda akan mendapat output yang serupa dengan yang diberikan di bawah:

Langkah # 2: Semak Parameter sysctls

Antara muka sysctls digunakan untuk mengubah suai parameter kernel yang terdapat dalam fail proses maya /proc/sys/. Untuk menyenaraikan semua parameter, arahan yang diberikan di bawah boleh digunakan:

> sudo sysctl -a


Perintah ini akan menyenaraikan semua parameter kernel daripada fail proses maya /proc/sys/. Lihat output sampel yang diberikan dalam petikan di bawah:

Langkah # 3: Dayakan sysctls tidak selamat

Sysctls yang tidak selamat perlu didayakan secara manual kerana ia dilumpuhkan secara lalai. Pentadbir kluster secara manual mendayakan sysctl yang tidak selamat pada asas per nod. Pod yang telah melumpuhkan sysctls tidak selamat tidak boleh dilancarkan tetapi hanya dijadualkan. Terdapat beberapa syarat khusus (seperti penalaan aplikasi masa berjalan, prestasi tinggi, dll.) apabila pentadbir kluster boleh membenarkan sysctls yang tidak selamat. Untuk mendayakan sysctl yang tidak selamat berdasarkan nod demi nod, anda boleh menggunakan arahan kubectl yang diberikan di bawah:

> kubectl –allowed-unsafe-sysctls \


Ini adalah cara yang sangat asas dan mudah untuk mendayakan sysctls tidak selamat dengan menggunakan arahan kubectl.


Selain itu, sysctls yang tidak selamat boleh didayakan dengan menggunakan bendera konfigurasi tambahan minikube. Ini boleh dilakukan menggunakan arahan yang diberikan di bawah:

> minikube start –extra-config=”kubectl.allowed-unsafe-sysctls=kernel.msg * ,net.core.somaxconn”...


Perintah ini membolehkan anda mendayakan sysctls yang tidak selamat melalui kluster minikube. Walau bagaimanapun, ia hanya boleh mendayakan sysctls ruang nama. Lihat output sampel yang diberikan dalam petikan di bawah:

Kesimpulan

Artikel ini memberikan kami gambaran keseluruhan antara muka sysctls Linux. Kami membincangkan apa itu sysctl Linux dan cara ia boleh digunakan dalam persekitaran Kubernetes. Terdapat dua kumpulan sysctls: selamat dan tidak selamat. Kumpulan sysctls selamat didayakan secara lalai, manakala kumpulan sysctls tidak selamat dinyahdayakan secara lalai. Dengan bantuan contoh yang ringkas dan mudah, kami mempelajari cara mendayakan sysctls yang tidak selamat menggunakan perintah kubectl dan bendera minikube –extra-config.