溫馨提示×

溫馨提示×

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

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

如何進(jìn)行Kubernetes中準(zhǔn)入控制器的分析

發(fā)布時間:2021-12-17 17:17:34 來源:億速云 閱讀:88 作者:柒染 欄目:云計算

如何進(jìn)行Kubernetes中準(zhǔn)入控制器的分析,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

什么是準(zhǔn)入控制器

每個針對Kubernetes資源對象的操作請求,都要經(jīng)過kube-apiserver的層層審查才會被放行。對于讀操作而言,需要經(jīng)過認(rèn)證(是否是合法用戶)和鑒權(quán)(是否擁有權(quán)限);而對于寫操作而言,除了要經(jīng)過認(rèn)證和鑒權(quán)外,還要檢查請求是合乎要求,只有順利通過這些審查才會被持久化到etcd存儲中。

準(zhǔn)入控制器(Admission Controller)是用于審查請求的組件,它會劫持發(fā)往kube-apiserver的請求,對請求進(jìn)行審查(必要時也會修改請求內(nèi)容),它是kube-apiserver審查鏈中重要的一環(huán),不合理的請求會被拒絕。

kube-apiserver支持配置多個準(zhǔn)入控制器,準(zhǔn)入控制器分為修改型(Mutating)控制器和校驗型(Validating)控制器。修改型控制器會自動根據(jù)指定的策略對請求進(jìn)行修改,而校驗型控制器則只是單純地檢查請求是否合乎要求,充當(dāng)“看門狗”的角色。

多個準(zhǔn)入控制器以插件(Webhook Plugin)的形式被組織起來,kube-apiserver在審查請求時會先把請求交給修改型控制器對請求進(jìn)行必要的修改,然后再將請求交給校驗型控制器進(jìn)行審查。下圖展示了請求的審查完整路徑,以及準(zhǔn)入控制器所在的位置:

如何進(jìn)行Kubernetes中準(zhǔn)入控制器的分析

API請求到達(dá)kube-apiserver后會先進(jìn)行認(rèn)證(Authentication)和鑒權(quán)(Authorization),然后把請求交給修改型準(zhǔn)入控制器進(jìn)行必要的修改(多個修改型準(zhǔn)入控制器串行執(zhí)行),當(dāng)所有修改型準(zhǔn)入控制器執(zhí)行完畢后,再使用OpenAPI 校驗功能進(jìn)行初步的語法校驗,接著再把請求交給校驗型準(zhǔn)入控制器進(jìn)行語法或語義的校驗(多個修改型準(zhǔn)入控制器并行執(zhí)行),最后再寫入etcd。上面中的任何一個審查環(huán)節(jié)、任何一個準(zhǔn)入控制器返回失敗,都會造成請求被拒絕。

準(zhǔn)入控制器配置

準(zhǔn)入控制器根據(jù)其部署形式可分為內(nèi)置控制器和動態(tài)控制器兩種。內(nèi)置控制器集成在kube-apiserver中,以插件的形式提供,每個插件都可以通過參數(shù)控制啟用或禁止;而動態(tài)控制器則是按一定標(biāo)準(zhǔn)實現(xiàn)的服務(wù)。關(guān)于動態(tài)控制器的更多內(nèi)容將會在后續(xù)章節(jié)中展開介紹,本節(jié)主要介紹內(nèi)置控制器的配置方法。

kube-apiserver提供了數(shù)十個準(zhǔn)入控制器插件,其中一些是默認(rèn)開啟的,也可以通過參數(shù)顯式地控制啟用或禁用的插件。

開啟控制器插件

通過kube-apiserver--enable-admission-plugins參數(shù)可以設(shè)置除默認(rèn)啟用的控制器插件以外需要額外啟用的插件,多個插件名字以逗號分隔,例如以下參數(shù)開啟NodeRestrictionResourceQuota兩個插件。

--enable-admission-plugins=NodeRestriction,ResourceQuota

該參數(shù)主要在需要啟用默認(rèn)禁用的插件時使用。

關(guān)閉控制插件

通過kube-apiserver--disable-admission-plugins參數(shù)可以設(shè)置禁用的控制器插件,同樣多個插件名字以逗號分隔,例如以下參數(shù)關(guān)閉PodNodeSelectorAlwaysDeny兩個插件。

--disable-admission-plugins=PodNodeSelector,AlwaysDeny

該參數(shù)主要在需要禁用默認(rèn)啟用的插件時使用。

看完上述內(nèi)容,你們掌握如何進(jìn)行Kubernetes中準(zhǔn)入控制器的分析的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

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

AI