如果您始终在试用Kubernetes,就晓得这有多难。不仅有许多流动组件,pod和容器配置文件也会相当简单。这些清单文件变宏大后,您可能很容易疏忽某个重要的配置选项。
这么说吧:配置谬误的Kubernetes清单文件可能会导致平安问题,甚至可能害您多花钱,尤其是将pod部署在像AWS或谷歌云这些云托管服务上时,您须要为应用的服务付费。如果pod配置不当,会过多地应用一种或多种资源,因此耗用您的每月估算。
何不花工夫检查一下配置文件?因为那很耗时。
不过有一种较简略的办法。借助kube-score工具,您能够测试YAML文件,查看以下方面:
- 入站针对服务
- CronJobs有已配置的截止日期
- 所有pod都已设置资源限度和申请
- 所有pod都已设置与资源限度同样的资源申请
- 所有pod都已设置与限度同样的CPU申请
- 应用显式的非最新标签
- pullPolicy被设置为Always
- 所有StatefulSet都由PDB规定了指标
残缺的查看列表能够在这里找到:https://github.com/zegl/kube-...。
这款工具十分易于应用,输入将帮忙您增强YAML文件的标准,以便没有显著的安全漏洞或畸形的资源。
您如何应用这个不便的工具?上面介绍一下。
您须要什么?
- Kubernetes的运行中实例
- 领有sudo特权的用户
如何装置kube-score?
这很容易,因为kube-score是个简略的二进制文件。我将在Ubuntu Server 20.04上进行演示。要在该平台上装置kube-score,请登录进入到服务器,应用以下命令下载必要的文件:
- wget https://github.com/zegl/kube-...
留神:请确保查看kube-score版本页面,确保下载的是最新版本。
应用以下命令解压缩tar文件:
- tar xvzf kube-score_1.10.1_linux_amd64.tar.gz
当初,您应该在当前工作目录中看到kube-score文件。无妨用以下命令挪动它:
- sudo mv kube-score / usr / local / bin
您已筹备好查看清单文件了。
如何应用kube-score?
应用kube-score异样简略。假如您想要查看文件test.yaml。转入到含有test.yaml文件的目录,而后执行以下命令:
- kube-score test.yaml
对于发现的任何问题,输入后果会列出WARNING或CRITICAL(图A)。
图A. 查看测试YAML文件的kube-score输入
这时,您能够分明地看到YAML文件中哪些配置须要留神。确保部署之前解决了那些问题。
如果您有运行中的容器或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 -
这样一来,您可能会发现内容多得多的输入(图B)。
图B. 对Kubernetes集群内的运行中容器应用kube-score
当然,kube-score并非完满,它可能无奈运行您须要的特定查看——确保查看残缺的查看列表,看看它的查看对您来说是否足够残缺。即便它无奈查看您须要的内容,kube-score在验证YAML文件方面也要比手动查看好得多,尤其是在您有泛滥简单清单文件的状况下。
试一下kube-score,看看它是不是使您部署的Kubernetes更安全可靠一点。