溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

kubernetes1.4中怎么使用sysctl命令

發(fā)布時間:2022-02-19 12:03:15 來源:億速云 閱讀:382 作者:iii 欄目:開發(fā)技術

這篇文章主要講解了“kubernetes1.4中怎么使用sysctl命令”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“kubernetes1.4中怎么使用sysctl命令”吧!

sysctl是一個允許改變正在運行中的Linux系統(tǒng)內核參數(shù)的接口。可以通過sysctl修改Linux系統(tǒng)內核中的TCP/IP 堆棧和虛擬內存系統(tǒng)的高級選項,而且不需要重新啟動Linux系統(tǒng),就可以實現(xiàn)優(yōu)化Linux系統(tǒng)和提高應用進程運行性能。

kubernetes1.4中怎么使用sysctl命令

通過Linux系統(tǒng)中的/proc虛擬文件系統(tǒng)來實現(xiàn)動態(tài)配置Linux系統(tǒng)內核參數(shù),在/proc/sys目錄下有Linux系統(tǒng)絕大多數(shù)的內核參數(shù),這些內核參數(shù)可以在Linux系統(tǒng)運行時進行修改,并且不需要重新啟動Linux系統(tǒng)便可以立刻生效,但是這種修改在重新啟動Linux系統(tǒng)后便會失效,要是想永久生效的話,需要更改配置文件/etc/sysctl.conf中相應的內核參數(shù)配置項。

可以通過下面命令獲取sysctl可以操作的所有內核參數(shù)配置項和已經配置的數(shù)值:

# sysctl –a這些內核參數(shù)主要包括下面幾類配置項:

全局內核配置項:以“kernel.”為配置項前綴,舉例:
kernel.shmmax = 33554432(共享內存段的最大尺寸,以字節(jié)為單位)
kernel.threads-max = 139264(Linux內核所能使用的線程最大數(shù)量)
網絡配置項:以“net.”為配置項前綴,舉例:
net.ipv4.ipfrag_low_thresh = 196608(用于IP分片匯聚的最小內存用量)
net.ipv4.ipfrag_high_thresh = 262144(用于IP分片匯聚的最大內存用量)
虛擬內存配置項:以“vm.”為配置項前綴,舉例:
vm.swappiness = 60(減少系統(tǒng)對于swap頻繁的寫入,將加快應用程序之間的切換,有助于提升系統(tǒng)性能)
vm.dirty_ratio = 40(該文件表示如果進程產生的廢數(shù)據到達系統(tǒng)整體內存的百分比,此時進程自信把廢數(shù)據寫回磁盤)
設備專用配置項:以“dev.”為配置項前綴,舉例:
dev.raid.speed_limit_max = 200000(需要初始化同步RAID的同步最大速度限制)
dev.raid.speed_limit_min = 1000(需要初始化同步RAID的同步最小速度限制)
文件系統(tǒng)專用配置項:以“fs.”為配置項前綴
fs.file-max = 779703(可以分配的文件句柄的最大數(shù)目)
fs.file-nr = 3930 0 779703(已分配文件句柄的數(shù)目,已使用文件句柄的數(shù)目,文件句柄的最大數(shù)目,該文件是只讀的,僅用于顯示信息)

容器相關內核參數(shù)

上面介紹了通過sysctl可以操作Linux系統(tǒng)內核參數(shù),在這些內核參數(shù)中,有些不但是操作系統(tǒng)全局級別的內核參數(shù),還是命名空間級別的內核參數(shù)。對于容器來說,是通過命名空間實現(xiàn)隔離的,那么就意味著這些命名空間級別的參數(shù)是容器相關的內核參數(shù)。

Linux系統(tǒng)命名空間的分類如下:

命名空間級別的內核參數(shù)包括:
kernel.shm*(內核中共享內存相關參數(shù)),舉例:
kernel.shmall = 3774873(可以使用的共享內存的總量)
kernel.shmmax = 15461882265(單個共享內存段的最大值)
kernel.msg*(內核中SystemV消息隊列相關參數(shù))
kernel.msgmnb = 16384(每個消息隊列的最大字節(jié)限制)
kernel.msgmni = 128(同時運行的最大的消息隊列個數(shù))
kernel.sem(內核中信號量參數(shù))
kernel.sem = 250 32000 100 128(每個信號集中的最大信號量數(shù)目、系統(tǒng)范圍內的最大信號量總數(shù)目、每個信號發(fā)生時的最大系統(tǒng)操作數(shù)目、系統(tǒng)范圍內的最大信號集總數(shù)目)
fs.mqueue.*(內核中POSIX消息隊列相關參數(shù))
fs.mqueue. msg_max = 32678(隊列里緩存的軟最大消息數(shù)目)
fs.mqueue. msgsize_max = 8192(最大消息長度上限)
net.*(內核中網絡配置項相關參數(shù))
net.ipv4.ipfrag_low_thresh = 196608(用于IP分片匯聚的最小內存用量)
net.ipv4.ipfrag_high_thresh = 262144(用于IP分片匯聚的最大內存用量)

新特性

因為sysctl可以修改命名空間級別的內核參數(shù),所以在Kubernetes1.4中通過sysctl來配置POD中Linux內核參數(shù)的功能,通過修改POD中Linux內核參數(shù),可以優(yōu)化POD性能,提升POD中容器運行效率。在Kubernetes1.4中這還是一個阿爾法特性。

修改Linux內核參數(shù)存在安全風險,修改錯誤很可能會降低系統(tǒng)性能,甚至會引起系統(tǒng)崩潰,所以需要謹慎對待。在Kubernetes1.4中將命名空間級別的內核參數(shù)分成了兩類,一類是安全的內核參數(shù),一類是不安全的內核參數(shù)。所謂安全的命名空間級別內核參數(shù),就是要能夠實現(xiàn)相同節(jié)點上不同POD之間的完全隔離,要滿足如下條件:

不能對相同節(jié)點上其他POD產生任何影響

不能對節(jié)點上操作系統(tǒng)健康造成影響

不能在POD資源限制以外獲取更多的CPU和內存資源

根據上面三個條件可以發(fā)現(xiàn),大多數(shù)的命名空間級別內核參數(shù)都不是安全的。在Kubernetes1.4中,認為下面的命名空間級別內核參數(shù)是安全的:

kernel.shm_rmid_forced = 1(表示是否強制將共享內存和一個進程聯(lián)系在一起,這樣的話可以通過殺死進程來釋放共享內存)

net.ipv4.ip_local_port_range =1024 65000(表示允許使用的端口范圍)

net.ipv4.tcp_syncookies = 1(表示是否打開TCP同步標簽,同步標簽可以防止一個套接字在有過多試圖連接時引起過載)

在Kubernetes以后的版本中,還會繼續(xù)擴充安全的命名空間級別內核參數(shù)。在Kubernetes中,所有安全的命名空間級別內核參數(shù)默認都是啟用狀態(tài)的,所有不安全的命名空間級別內核參數(shù)默認都是禁用狀態(tài)的,如果想設置不安全的內核參數(shù),需要Kubernetes管理員手工啟用。如果管理員沒有手工啟用不安全的內核參數(shù),那么Kubernetes仍然會進行調度,將這些帶有不安全內核參數(shù)的POD分配到節(jié)點上,但是這些POD在啟動時會失敗。

在啟動kubelet時通過增加參數(shù)“experimental-allowed-unsafe-sysctls”來啟用不安全的命名空間級別內核參數(shù):

可以在POD配置文件中設置已經被啟用的命名空間級別內核參數(shù):

上面的配置文件在POD中設置了安全的命名空間級內核參數(shù):kernel.shm_rmid_forced,并且在POD中設置了兩個不安全的命名空間級內核參數(shù):net.ipv4.route.min_pmte和kernet.msgmax。

在annotations中的“security.alpha.kubernetes.io/sysctls”參數(shù)上設置安全的命名空間級內核參數(shù),在annotations中的“security.alpha.kubernetes.io/unsafe-sysctls”參數(shù)上設置不安全的命名空間級內核參數(shù)。

感謝各位的閱讀,以上就是“kubernetes1.4中怎么使用sysctl命令”的內容了,經過本文的學習后,相信大家對kubernetes1.4中怎么使用sysctl命令這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI