如何快速驗證您的Kubernetes配置文件?
譯文【51CTO.com快譯】如果您一直在試用Kubernetes,就知道這有多難。不僅有許多活動組件,pod和容器配置文件也會相當復(fù)雜。這些清單文件變龐大后,您可能很容易忽略某個重要的配置選項。
這么說吧:配置錯誤的Kubernetes清單文件可能會導(dǎo)致安全問題,甚至可能害您多花錢,尤其是將pod部署在像AWS或谷歌云這些云托管服務(wù)上時,您需要為使用的服務(wù)付費。如果pod配置不當,會過多地使用一種或多種資源,因而耗用您的每月預(yù)算。
何不花時間檢查一下配置文件?因為那很耗時。
不過有一種較簡單的方法。借助kube-score工具,您可以測試YAML文件,檢查以下方面:
- 入站針對服務(wù)
- CronJobs有已配置的截止日期
- 所有pod都已設(shè)置資源限制和請求
- 所有pod都已設(shè)置與資源限制同樣的資源請求
- 所有pod都已設(shè)置與限制同樣的CPU請求
- 使用顯式的非最新標簽
- pullPolicy被設(shè)置為Always
- 所有StatefulSet都由PDB規(guī)定了指標
完整的檢查列表可以在這里找到:https://github.com/zegl/kube-score/blob/master/README_CHECKS.md。
這款工具非常易于使用,輸出將幫助您加強YAML文件的規(guī)范,以便沒有明顯的安全漏洞或畸形的資源。
您如何使用這個方便的工具?下面介紹一下。
您需要什么?
- Kubernetes的運行中實例
- 擁有sudo特權(quán)的用戶
如何安裝kube-score?
這很容易,因為kube-score是個簡單的二進制文件。我將在Ubuntu Server 20.04上進行演示。要在該平臺上安裝kube-score,請登錄進入到服務(wù)器,使用以下命令下載必要的文件:
- wget https://github.com/zegl/kube-score/releases/download/v1.10.1/kube-score_1.10.1_linux_amd64.tar.gz
注意:請確保檢查kube-score版本頁面,確保下載的是最新版本。
使用以下命令解壓縮tar文件:
- tar xvzf kube-score_1.10.1_linux_amd64.tar.gz
現(xiàn)在,您應(yīng)該在當前工作目錄中看到kube-score文件。不妨用以下命令移動它:
- sudo mv kube-score / usr / local / bin
您已準備好檢查清單文件了。
如何使用kube-score?
使用kube-score異常簡單。假設(shè)您想要檢查文件test.yaml。轉(zhuǎn)入到含有test.yaml文件的目錄,然后執(zhí)行以下命令:
- kube-score test.yaml
對于發(fā)現(xiàn)的任何問題,輸出結(jié)果會列出WARNING或CRITICAL(圖A)。
圖A. 檢查測試YAML文件的kube-score輸出
這時,您可以清楚地看到Y(jié)AML文件中哪些配置需要注意。確保部署之前解決了那些問題。
如果您有運行中的容器或pod,可以使用以下命令對它們運行kube-score:
- kubectl api-resources --verbs=list --namespaced -o name | xargs -n1 -I{} bash -c "kubectl get {} --all-namespaces -oyaml && echo ---" | kube-score score -
這樣一來,您可能會發(fā)現(xiàn)內(nèi)容多得多的輸出(圖B)。
圖B. 對Kubernetes集群內(nèi)的運行中容器使用kube-score
當然,kube-score并非完美,它可能無法運行您需要的特定檢查——確保查看完整的檢查列表,看看它的檢查對您來說是否足夠完整。即使它無法檢查您需要的內(nèi)容,kube-score在驗證YAML文件方面也要比手動檢查好得多,尤其是在您有眾多復(fù)雜清單文件的情況下。
試一下kube-score,看看它是不是使您部署的Kubernetes更安全可靠一點。
原文標題:How to quickly validate your Kubernetes configuration files,作者:Jack Wallen
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】