云和安全管理服务专家新钛云服祝祥翻译

云与安全管理服务专家新钛云服务朱翔翻译

Kubernetes 其实并不简单。尤其是当应用程序崩溃需要救援时,用户正在执行日常审计验证操作,管理员正在更新集群配置或负载均衡器配置以及与工作负载相关的权限,或者微服务需要安全退役。首先要做的是找到一个符合您需求的 YAML 文件。

一旦确定了确切的资源,kubectl 使用户能够查看和编辑配置。虽然 kubectl 允许您执行精确的标签过滤,但有时使用起来并不那么简单。

实际上,更大的挑战是在应用程序和相关 YAML 的上下文中找到配置,例如pvc参数自动搜索失败,在使用 Ingress 公开的服务中搜索特定的 AWS ELB 负载均衡器注释?或者搜索加载到使用超过 4GB 内存并被授予集群 API 写入访问权限的工作负载中的 Configmap。

跨多个集群执行此操作会使 Kubernetes 操作员(用户)的工作复杂化。本文将介绍我们是如何解决这个问题的,Kubevious 搜索引擎中涉及的功能以及如何使用它。

Kubevious 搜索

Kubevious() 是一个开源的 Kubernetes Dashboard,但是和我们主流的 Dashboard 不太一样。可以说是很有特色了。它集中了所有与应用相关的配置,可以大大节省操作人员的时间。这不是主要的事情,主要是他有一个TimeMachine(时间机器)功能,可以让我们回到之前的时间查看应用程序的错误信息。

我们研究了旅游、租车、汽车销售网站的应用场景,然后根据相应的场景来解决这个问题。这通常涉及基于允许部分和模糊匹配的文本进行搜索。然后,使用预定义的过滤器缩小搜索结果的范围。最后,我们添加了任意编程过滤器的功能(参见下面的标记)。

正如您可能已经猜到的那样,所有这些都适用于在 Kubevious 中注册的所有集群。

上下文感知文本搜索 – 上下文感知文本搜索

顾名思义,这是一个类似谷歌的搜索,用于扫描 YAML 配置。Kubevious 浏览器中可见的任何术语都可以用作搜索条件。搜索操作是层次结构和应用程序感知的,因此可以使用应用程序或服务的名称(例如部署、pod、服务、configmap 等)来返回上下文结果。部分和近似结果也是可以接受的。

在下面的示例中,我们正在搜索“redis”。搜索引擎从“test-cluster-6”返回了 16 个结果,从“saas-prod”集群返回了 84 个结果。

单击任何搜索结果将导航到集群浏览器屏幕以进行进一步检查。

我们可以扩展搜索查询以查找 redis 主节点正在侦听的端口,并使用“redis 端口主”等附加术语:

或者使用“redis pvc”搜索条件来搜索附加到所有 redis 节点的持久卷:

Kubevious Search 允许您使用左侧的附加过滤器来缩小搜索结果的范围。一次可以使用多个过滤器来帮助您找到需要注意的资源。

种类过滤器 – 种类过滤器

您可能已经注意到,只要有文本匹配,结果就会包括各种资源。Kind Fileter 有助于将结果简化为特定 Kind 的对象,例如 Cluster Role、Configmap,甚至是合成对象 Kinds,例如 Application、Initialization Container 等。

下面我们正在搜索所有“redis”相关的配置映射。

可以在不提供搜索词的情况下使用种类过滤器。例如,我们可以搜索所有以 Init Containers 开头的应用程序。

标签过滤器 – 标签过滤器

标签过滤器是不言自明的。它可以像 kubectl 一样过滤配置。但与 kube 控件不同的是,标签过滤器带有标签自动补全(是的,部分并使用近似字符串匹配!)。

还要注意自动完成。请注意,标签值自动完成结果与提供的标签相关。

就像在文本搜索结果中包含各种条目一样。

您可以使用其他标签过滤器、类别过滤器或搜索词来进一步缩小范围。下面我们使用“addonmanager.kubernetes.io/mode=Reconcile”标签集搜索“heapster”相关工作负载。

注释过滤器 – 注释过滤器

注释过滤器的工作方式与标签过滤器完全一样,包括键和值自动完成,除了搜索是跨注释条目执行的。注释过滤器可以与其他过滤器结合使用。

在下面的示例中,我们正在寻找具有“service.beta.kubernetes.io/aws-load-balancer-backend-protocol=http”注释集的资源。

警告和错误过滤器 – 警告和错误过滤器

Kubevious 识别错误配置、冲突和违反最佳实践的行为,并用警告和错误标记资源。Kubevious 还配备了一个规则引擎pvc参数自动搜索失败,允许编写自定义规则来引发自定义错误和资源警告。

Kubevious Search 还允许将结果过滤到有(或没有)错误和/或警告的资源。

单击搜索结果将导航到集群浏览器,可以在其中进一步检查错误的其他详细信息。

就像其他过滤器一样,警告和错误过滤器可以与文本条件和其他条件结合使用。

标记过滤器 – 标记过滤器

标签过滤器可能是查找需要注意的 YAML 的最有效方法。在我们开始按标签过滤之前,我们应该退后一步,快速介绍一下“标签”。使用规则引擎,用户可以编写自己的自定义脚本来关联用户定义的图标(标记)。

在下面的示例规则中,如果相应地关联了“ingress-network-policy-not-defined”,我们将检查是否为应用程序定义了任何网络策略。

这些标记在集群浏览器中可见。它本身是一个完全独立的主题,因此您可以在此处了解有关规则引擎的更多信息()。

回到标签过滤器。搜索引擎还允许按标签进行额外过滤。在下面的示例中,我们正在寻找一个没有应用任何网络策略(标签过滤器)的 redis(标签过滤器)应用程序(种类过滤器)。可以选择多个标记过滤器。

最后的想法

这种类型的搜索功能在 kubectl 或其他工具中不可用。但对于在 Kubernetes 上成功部署和管理应用程序至关重要。Kubevious 有助于快速识别需要紧急关注的资源。这在应用程序运行状况下降时很重要,尤其是当用户需要跨多个集群执行搜索和救援时。

*原来的:

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论