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

译文
开发 前端
您的Kubernetes YAML文件需要验证。本文介绍了一款非常简单的工具,可大大简化这项任务。

【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】

 

责任编辑:华轩 来源: 51CTO
相关推荐

2011-03-28 15:52:16

Nagios配置文件

2010-03-25 17:46:27

nginx配置文件

2021-06-15 18:42:53

Rollup配置 JavaScript

2010-01-11 17:47:30

交换机配置文件

2022-08-21 16:50:36

Kubeadm​Kubernetes

2018-03-12 09:02:33

KubernetesSaaS容器

2011-03-25 17:13:37

Nagios配置文件

2011-02-25 16:39:34

proftpd配置文件

2021-07-08 21:19:04

BashLinux

2021-11-07 14:00:16

JekyllBashAPI后端

2019-11-22 10:00:53

ICC配置文件Windows 10

2009-11-09 17:17:31

WCF元数据交换

2009-06-08 16:44:00

Struts配置文件

2010-03-25 19:01:43

ngnix配置文件

2011-01-19 14:00:21

2024-01-17 07:12:26

MySQL配置文件数据库

2011-03-23 15:13:08

Nagios配置文件

2010-08-25 10:24:55

DHCP配置文件

2011-01-13 16:27:26

Linux配置文件

2010-02-03 09:19:31

Python模块
点赞
收藏

51CTO技术栈公众号