每個 Kubernetes 應聘者應該知道的 5 個面試題

2019-12-31 10:12:00

如果你是要面試 Kubernetes 相關職位的應聘者,這裡給出了要提問的問題以及這些問題的重要性。

面試對面試官及候選人來說都很不容易。最近,我發現面試 Kubernetes 相關工作的候選人似乎尤其困難。為什麼呢?一方面,很難找到可以回答他們問題的人。而且,不管回答者回答的怎樣,都很難確定他們是否有正確的經驗。

跳過這個問題,讓我們來看看面試 Kubernetes 求職者時應該提問的一些問題。

Kubernetes 是什麼?

我發現這個問題是面試中最好的問題之一。我經常聽到有人說“我用 Kubernetes 工作”,但是當我問道“Kubernetes 是什麼”時,從來都沒有得到過一個滿意答案。

我最喜歡 Chris Short 給出的答案:“Kubernetes 就是帶有一些 YAML 檔案的 API 。”

雖然他的回答沒有錯,但我會給你更詳細的解釋。 Kubernetes 是一個可移植容器的編排工具,用於自動執行管理、監控、擴充套件和部署容器化應用程式。

我認為“用於部署容器化應用程式的編排工具”這個回答可能與你期望的答案差不多了。能回答出這個,我覺得已經很不錯了。儘管許多人認為 Kubernetes 做了更多更棒的工作,但總的來說,它為其核心功能——容器編排——新增了許多 API。

我認為,這是你在面試中可以提問的最好的問題之一,因為它至少證明了候選人是否知道 Kubernetes 是什麼。

Kubernetes 的節點和 Pod 有什麼區別?

該問題揭示了候選人對 Kubernetes 複雜性的初步了解。它將面試對話轉換為對體系結構的概述,並可能導向許多有趣的後續細節問題。我已經聽到了無數次關於該問題的錯誤解釋了。

節點 是工作計算機。該計算機可以是虛擬機器(VM)或物理計算機,具體取決於你是在虛擬機器監控程式上執行還是在裸機上執行。該節點包含用於執行容器的服務,包括 kubelet、kube-proxy 和容器執行時。

Pod 包括:一個或多個容器、具有共用網路儲存,以及有關如何執行一起部署的容器的規範。這四個細節都很重要。更進一步,職位申請人應從技術層面解釋,Pod 是 Kubernetes 可以建立和管理的最小可部署單元,而不是容器。

對於這個問題,我聽到的最好的簡答是:“節點是計算機,而 Pod 是容器執行於其中的東西。”這個區別很重要。Kubernetes 管理員的大部分工作是知道什麼時間要部署什麼,而節點的部署成本可能非常非常高,具體取決於它們的執行位置。我不希望有人一遍又一遍地部署節點,他們需要做的就是部署一堆 Pod。

kubectl 是什麼?(你怎麼發音?)

這個問題是我優先順序較高的問題之一,但可能與你和你的團隊無關。在我的團隊中,我們不會使用圖形化介面來管理 Kubernetes 環境,我們使用命令列操作。

那麼什麼是 kubectl?它是 Kubernetes 的命令列介面。你可以從該介面獲取並設定任何內容,從收集紀錄檔和事件到編輯部署環境和機密檔案。隨機提問候選人關於如何使用此工具對測試候選人對 kubectl 的熟悉度是很有幫助的。

你是怎麼讀的?好吧,你隨便吧(對此有很大的分歧),但是我很高興向你介紹我朋友 Waldo 的精彩視訊演示。

名稱空間是什麼?

在多次面試中,我都沒有得到關於這個問題的答案。我不確定在其他環境中使用的名稱空間是否會在我所在的團隊經常使用。我在這裡給出一個簡短的答案:名稱空間是 Pod 中的虛擬叢集。這種抽象可以使你將多個虛擬集保留在多個環境中以此來進行隔離。

容器是什麼?

了解 Pod 中正在部署的內容總是有幫助的,因為如果都不知道其中部署的是什麼,何談部署?容器是打包程式碼及其所有依賴項的軟體的標準單元。我收到了兩個可以接受的答案,其中包括:a)精簡的作業系統映象,以及 b)在受限的作業系統環境中執行的應用程式。如果你可以叫得出使用 Docker 以外的其他容器的編排軟體(例如你最喜歡的公共雲的容器服務),則可以得到加分。

其他問題

如果你想知道為什麼我沒有在此問題列表中新增更多問題,那麼我可以給出一個簡單的答案:我所列出的這些問題是在面試候選人時應了解的最基本的問題。接下來的問題應該是基於具體的團隊、環境及組織。當你仔細研究這些內容時,嘗試尋找有關技術如何相互作用的有趣問題,以了解人們如何應對基礎架構挑戰。考慮一下你的團隊最近遇到的挑戰(中斷),要求逐步進行部署,或者考慮改善團隊積極想要改進的策略(例如減少部署時間)。問題越不抽象,對面試後真正重要的技能的詢問就越多。

沒有兩個環境是完全相同的。這也適用於面試中。我在每次面試中都會混合提問。我也有一個測試面試者的小環境。我經常發現回答問題是最容易的部分,而你所做的工作才是對你的真正的考驗。

我給面試官的最後一點建議是:如果你遇到一個很有潛力但沒有經驗的候選人時,請給他們一個證明自己的機會。如果當初沒有人看到我的潛力,沒有給我機會的話,我不會擁有今天的知識和經驗。

還有哪些重要的問題?請留言告訴我們。