Cách sử dụng hệ thống Linux trong Kubernetes

Cach Su Dung He Thong Linux Trong Kubernetes



Bài đăng này sẽ thảo luận về Linux sysctl trong Kubernetes là gì và cách nó có thể được sử dụng trong một cụm Kubernetes. Sysctl là một giao diện trong hệ điều hành Linux cho phép quản trị viên sửa đổi các tham số của kernel khi chạy. Ở đây, chúng tôi sẽ trình bày cách sử dụng các hệ thống Linux trong nền tảng Kubernetes. Chúng tôi sẽ trình bày một ví dụ đơn giản để giúp bạn hiểu loại đầu ra mà bạn có thể mong đợi trong khi triển khai các lệnh kubectl để sử dụng các sysctls trong Kubernetes.

sysctls là gì?

Sysctls là một giao diện trong Linux được sử dụng để điều chỉnh các tham số kernel trong thời gian chạy cho không gian tên trong vùng chứa. Có thể tìm thấy các tham số này trong tệp quy trình ảo /proc/sys/ và chúng bao gồm nhiều hệ thống con khác nhau như bộ nhớ ảo, mạng, kernel, v.v. Chỉ có thể đặt độc lập các sysctl được đặt tên trên các nhóm và Kubernetes hiển thị các cài đặt sysctl. Các sysctls cấp nút không được đặt tên cần phải được đặt bằng phương pháp cài đặt sysctls khác như toán tử điều chỉnh nút. Hơn nữa, chỉ những hệ thống an toàn mới được đưa vào danh sách trắng theo mặc định trong khi những hệ thống không an toàn cần được kích hoạt thủ công trên nút để chúng có thể khả dụng cho người dùng. Bây giờ, hãy để chúng tôi hiểu cách sử dụng các hệ thống Linux trong Kubernetes.







điều kiện tiên quyết

Trước khi bạn bắt đầu tìm hiểu cách sử dụng các hệ thống Linux trong Kubernetes, hãy đảm bảo rằng bạn đã cài đặt các công cụ sau trong hệ thống của mình:



    • Kubernetes phiên bản 1.23 hoặc bất kỳ phiên bản mới nhất nào khác
    • Ubuntu 20.04 hoặc bất kỳ phiên bản mới nhất nào khác
    • Sysctls để hỗ trợ nhóm
    • Công cụ dòng lệnh Kubectl
    • Cụm minikube

Giả sử rằng hệ thống của bạn đang đáp ứng các nhu cầu tiên quyết, chúng tôi sẽ chuyển sang phần triển khai.



Làm cách nào để sử dụng hệ thống Linux trong Kubernetes?

Hệ điều hành Linux là một nền tảng cho phép bạn điều chỉnh các hạt nhân thông qua các nút sysctls trong ngăn xếp mạng. Một số hệ thống được đặt tên cho một nhóm có cấu hình riêng trong khi những hệ thống khác có giá trị cho toàn bộ hệ thống. Kubernetes đã nhóm giao diện sysctls thành hai loại:





    • Các hệ thống được đặt tên so với các hệ thống cấp nút
    • Hệ thống an toàn và không an toàn

Các hệ thống được đặt tên so với các hệ thống cấp nút:

Trong nhân Linux, hầu hết các sysctl đều được đặt tên cho phép bạn đặt chúng độc lập giữa các nhóm khác nhau trên một nút. Có thể dễ dàng truy cập các hệ thống được đặt tên trong nhóm Kubernetes. Một số sysctls được đặt tên như sau:



    • fs.mqueue.*
    • hạt nhân .msg*
    • kernel.shm*
    • hạt nhân.sem

Các hệ thống cấp nút không được đặt tên và quản trị viên cụm cần đặt chúng theo cách thủ công. Quản trị viên cụm có thể sử dụng bộ quỷ với vùng chứa đặc quyền hoặc có thể sửa đổi bản phân phối Linux của nút /etc/sysctls.conf. Toán tử điều chỉnh nút cũng có thể được sử dụng để đặt các hệ thống cấp nút.

Hệ thống an toàn và không an toàn:

Có hai nhóm sysctls: an toàn và không an toàn. Các hệ thống an toàn được đặt tên đúng cách và chúng hoàn toàn bị cô lập trong các nhóm trên cùng một nút. Các hệ thống an toàn được bật theo mặc định và có thể được sử dụng trong nhóm bằng cách sửa đổi thông số kỹ thuật của nhóm. Tuy nhiên, các hệ thống không an toàn bị tắt theo mặc định và chúng cần được người quản trị cụm kích hoạt theo cách thủ công. Các hệ thống an toàn không ảnh hưởng đến hàng xóm của chúng vì chúng được đặt tên đúng cách. Trong khi các hệ thống không an toàn có thể tác động bất ngờ đến hàng xóm của chúng như làm quá tải hệ thống. Bộ sysctls an toàn như sau:

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

Điểm cần lưu ý ở đây là chỉ được đặt tên riêng thôi là không đủ để sysctl được coi là an toàn.

Bây giờ chúng ta đã hiểu cả hai loại sysctls, chúng ta hãy chuyển sang tìm hiểu cách sử dụng các sysctls này trong Kubernetes. Tại đây, chúng tôi sẽ hướng dẫn bạn cách sử dụng cả sysctls an toàn và không an toàn cũng như cách kích hoạt thủ công các sysctls không an toàn trong Kubernetes.

Bước # 1: Bắt đầu cụm Minikube

Nền tảng Kubernetes có thể được sử dụng thông qua một số cụm và chúng tôi đang sử dụng cụm minikube tại đây. Để bắt đầu cụm minikube, bạn có thể sử dụng lệnh dưới đây:

> bắt đầu minikube


Điều này sẽ bắt đầu cụm minikube nơi bạn có thể chạy các lệnh kubectl và sử dụng các hệ thống Linux trong nền tảng Kubernetes. Khi bạn thực hiện lệnh này, bạn sẽ nhận được một đầu ra tương tự như dưới đây:

Bước #2: Kiểm tra các thông số của sysctls

Giao diện sysctls được sử dụng để sửa đổi các tham số hạt nhân được tìm thấy trong tệp quy trình ảo /proc/sys/. Để liệt kê tất cả các tham số, có thể sử dụng lệnh dưới đây:

> sudo hệ thống -một


Lệnh này sẽ liệt kê tất cả các tham số kernel từ tệp tiến trình ảo /proc/sys/. Xem đầu ra mẫu được đưa ra trong ảnh chụp nhanh bên dưới:

Bước # 3: Kích hoạt hệ thống không an toàn

Hệ thống không an toàn cần được bật thủ công vì chúng bị tắt theo mặc định. Quản trị viên cụm kích hoạt thủ công các hệ thống không an toàn trên cơ sở mỗi nút. Không thể khởi chạy các nhóm đã tắt hệ thống không an toàn mà chỉ được lên lịch. Có một số điều kiện cụ thể (như điều chỉnh ứng dụng thời gian chạy, hiệu suất cao, v.v.) khi quản trị viên cụm có thể cho phép sysctls không an toàn. Để kích hoạt các hệ thống không an toàn trên cơ sở từng nút, bạn có thể sử dụng lệnh kubectl được cung cấp bên dưới:

> kubectl –allowed-unsafe-sysctls \


Đây là một cách rất cơ bản và đơn giản để kích hoạt các hệ thống không an toàn bằng cách sử dụng lệnh kubectl.


Ngoài ra, các sysctls không an toàn có thể được kích hoạt bằng cách sử dụng cờ minikube extra-config. Điều này có thể được thực hiện bằng cách sử dụng lệnh được đưa ra dưới đây:

> bắt đầu minikube –extra-config=”kubectl.allowed-unsafe-sysctls=kernel.msg * ,net.core.somaxconn”...


Lệnh này cho phép bạn kích hoạt các hệ thống không an toàn thông qua cụm minikube. Tuy nhiên, nó chỉ có thể kích hoạt các sysctls được đặt tên. Xem đầu ra mẫu được đưa ra trong ảnh chụp nhanh bên dưới:

Phần kết luận

Bài viết này cung cấp cho chúng ta một cái nhìn tổng quan về giao diện sysctls của Linux. Chúng ta đã thảo luận về Linux sysctl là gì và cách sử dụng nó trong môi trường Kubernetes. Có hai nhóm sysctls: an toàn và không an toàn. Nhóm sysctls an toàn được bật theo mặc định, trong khi nhóm sysctls không an toàn bị tắt theo mặc định. Với sự trợ giúp của một ví dụ đơn giản và dễ hiểu, chúng ta đã học cách kích hoạt các hệ thống không an toàn bằng cách sử dụng lệnh kubectl và cờ minikube –extra-config.