当前位置:主页 > 查看内容

如何快速验证您的Kubernetes配置文件?

发布时间:2021-04-28 00:00| 位朋友查看

简介:【51CTO.com快译】如果您一直在试用Kubernetes,就知道这有多难。不仅有许多活动组件,pod和容器配置文件也会相当复杂。这些清单文件变庞大后,您可能很容易忽略某个重要的配置选项。 这么说吧:配置错误的Kubernetes清单文件可能会导致安全问题,甚至可能害……

【51CTO.com快译】如果您一直在试用Kubernetes,就知道这有多难。不仅有许多活动组件,pod和容器配置文件也会相当复杂。这些清单文件变庞大后,您可能很容易忽略某个重要的配置选项。

这么说吧:配置错误的Kubernetes清单文件可能会导致安全问题,甚至可能害您多花钱,尤其是将pod部署在像AWS或谷歌云这些云托管服务上时,您需要为使用的服务付费。如果pod配置不当,会过多地使用一种或多种资源,因而耗用您的每月预算。

何不花时间检查一下配置文件?因为那很耗时。

不过有一种较简单的方法。借助kube-score工具,您可以测试YAML文件,检查以下方面:

  • 入站针对服务
  • CronJobs有已配置的截止日期
  • 所有pod都已设置资源限制和请求
  • 所有pod都已设置与资源限制同样的资源请求
  • 所有pod都已设置与限制同样的CPU请求
  • 使用显式的非最新标签
  • pullPolicy被设置为Always
  • 所有StatefulSet都由PDB规定了指标

完整的检查列表可以在这里找到:https://github.com/zegl/kube-score/blob/master/README_CHECKS.md。

这款工具非常易于使用,输出将帮助您加强YAML文件的规范,以便没有明显的安全漏洞或畸形的资源。

您如何使用这个方便的工具?下面介绍一下。

您需要什么?

  • Kubernetes的运行中实例
  • 拥有sudo特权的用户

如何安装kube-score?

这很容易,因为kube-score是个简单的二进制文件。我将在Ubuntu Server 20.04上进行演示。要在该平台上安装kube-score,请登录进入到服务器,使用以下命令下载必要的文件:

  1. wget https://github.com/zegl/kube-score/releases/download/v1.10.1/kube-score_1.10.1_linux_amd64.tar.gz 

注意:请确保检查kube-score版本页面,确保下载的是最新版本。

使用以下命令解压缩tar文件:

  1. tar xvzf kube-score_1.10.1_linux_amd64.tar.gz 

现在,您应该在当前工作目录中看到kube-score文件。不妨用以下命令移动它:

  1. sudo mv kube-score / usr / local / bin 

您已准备好检查清单文件了。

如何使用kube-score?

使用kube-score异常简单。假设您想要检查文件test.yaml。转入到含有test.yaml文件的目录,然后执行以下命令:

  1. kube-score test.yaml 

对于发现的任何问题,输出结果会列出WARNING或CRITICAL(图A)。 

图A. 检查测试YAML文件的kube-score输出

这时,您可以清楚地看到YAML文件中哪些配置需要注意。确保部署之前解决了那些问题。

如果您有运行中的容器或pod,可以使用以下命令对它们运行kube-score:

  1. 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更安全可靠一点。

原文标题:How to quickly validate your Kubernetes configuration files,作者:Jack Wallen

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】


本文转载自网络,原文链接:https://www.51cto.com/
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐