k8s 面試題

1. k8s的pause容器有什麼用?

 1.提供Pod在Linux中共享命名空間的基礎

 2.提供Pid Namespace並使用init進程

2. 簡述namespace機制

Namespace是對全局系統資源的一種封裝隔離,使得處於不同namespace的進程擁有獨立的全局系統資源,改變一個namespace中的系統資源只會影響當前namespace裏的進程,對其他namespace中的進程沒有影響。隔離的條目很多IPC、Network、Mount、PID、User、UTC,通過Cgroup還可以限制CPU、內存等。面試者能夠說明其中的所代表的含義即可。

Mount - isolate filesystem mount points

UTS - isolate hostname and domainname

IPC - isolate interprocess communication (IPC) resources

PID - isolate the PID number space

Network - isolate network interfaces

3.Kubernetes有哪些核心組件這些組件負責什麼工作?

etcd:提供數據庫服務保存了整個集羣的狀態

kube-apiserver:提供了資源操作的唯一入口,並提供認證、授權、訪問控制、API註冊和發現等機制

kube-controller-manager:負責維護集羣的狀態,比如故障檢測、自動擴展、滾動更新等

cloud-controller-manager:是與底層雲計算服務商交互的控制器

kube-scheduler:負責資源的調度,按照預定的調度策略將Pod調度到相應的機器上

kubelet:負責維護容器的生命週期,同時也負責Volume和網絡的管理

kube-proxy:負責爲Service提供內部的服務發現和負載均衡,並維護網絡規則

container-runtime:是負責管理運行容器的軟件,比如docker

4.kubenetes針對pod資源對象的健康監測機制

livenessProbe探針

可以根據用戶自定義規則來判定pod是否健康,如果livenessProbe探針探測到容器不健康,則kubelet會根據其重啓策略來決定是否重啓,如果一個容器不包含livenessProbe探針,則kubelet會認爲容器的livenessProbe探針的返回值永遠成功。

ReadinessProbe探針

同樣是可以根據用戶自定義規則來判斷pod是否健康,如果探測失敗,控制器會將此pod從對應service的endpoint列表中移除,從此不再將任何請求調度到此Pod上,直到下次探測成功。

5.探針支持探測方法有哪些

Exec:通過執行命令的方式來檢查服務是否正常,比如使用cat命令查看pod中的某個重要配置文件是否存在,若存在,則表示pod健康。

Httpget:通過發送http/htps請求檢查服務是否正常,返回的狀態碼爲200-399則表示容器健康(注http get類似於命令curl -I)。

tcpSocket:通過容器的IP和Port執行TCP檢查,如果能夠建立TCP連接,則表明容器健康,這種方式與HTTPget的探測機制有些類似,tcpsocket健康檢查適用於TCP業務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章