K8s Clinic:如何安全高效地运行 K8s

简介: 随着容器的应用,软件打包越来越左移,这意味着(取决于我们的团队组织)开发人员正在承担应用程序容器化的责任。开发人员可能还负责 Kubernetes 配置的某些部分。随着该流程向左转移,开发人员需要支持才能为组织做出正确的决策,以便安全高效地运行 Kubernetes。

作者 | Joe Pelletier

译者 | Luga Lee

策划 | Luga Lee


如何在生产环境中安全、高效地运行 Kubernetes 集群平台,是一个至关重要的 Topic ~


为什么选择 Kubernetes ?

    随着容器的应用,软件打包越来越左移,这意味着(取决于我们的团队组织)开发人员正在承担应用程序容器化的责任。开发人员可能还负责 Kubernetes 配置的某些部分。随着该流程向左转移,开发人员需要支持才能为组织做出正确的决策,以便安全高效地运行 Kubernetes。

    许多公司正在采用云原生技术来加快上市速度。对于寻求在当今市场上竞争的企业而言,重要的是发布新功能并满足客户需求——而且这些需求正越来越多地通过软件得到满足。

关键挑战

    尽管从云原生技术中获得了大多数好处,但迁移到容器和 Kubernetes 并非没有潜在的挑战。根据云原生计算基金会 (CNCF) 最近的一项调查,在这种转型过程中通常会出现三个关键挑战。

来源: CNCF SURVEY 2020

    与复杂性并列第一,迁移到云原生技术所涉及的文化变化。这些类型的变化通常意味着开发过程的变化,并可能将部分责任转移到不同的团队,迫使工程师学习新概念以及运维工程师需要适应“一切皆为代码”的心态。

    第三个挑战与云原生技术的安全考虑有关。我们正在处理改变大家对安全性看法的新概念和技术注意事项,尤其是当我们在云中运行容器和 Kubernetes 技术时,或者如果我们在多云或混合云场景中使用它时。所有这一切的复杂性导致安全团队退后一步,真正了解云原生技术的新威胁形势。

    安全需要成为开发和 DevOps 的合作伙伴,因此他们不仅必须跟上新的变化,还必须了解这些风险可能存在的位置。涉及实际容器技术本身时出现的新型问题,例如了解这些容器中存在哪些已知漏洞(常见漏洞和暴露 (CVE),以及了解 Kubernetes 可以配置为不安全、不可靠或低效。

新的决策点和复杂性

    迁移到 Kubernetes 和容器引入了许多新的决策点:去年,一篇文章强调 69% 的 Kubernetes 事件报告实际上与错误配置有关。要成功地将产品推向市场,我们需要有一个协作环境来快速解决配置错误问题。请记住:Kubernetes 中的一切都是配置驱动的,默认情况下没有内置安全性。

    组织的复杂性是另一个重要的因素。整个流程上涉及不同的角色,他们每个人都有不同的问题需要回答,所以让我们站在他们的立场上:

    1、开发人员:编写代码、构建新功能并将应用程序交付到生产环境的费用。他们需要对 Kubernetes 和容器有足够的了解,才能继续做好他们的工作并将应用程序提供给客户。

    2、站点可靠性工程师 (SRE):需要确保应用程序可靠且稳定。SRE 还需要确保使用最佳实践配置应用程序并启用健康探测和健康检查,以便应用程序能够在生产中可靠地运行。

    3、安全团队:需要知道组织是否正在运行易受攻击的容器版本,以及应用程序是否配置为安全的。

    4、工程副总裁:需要安全、可靠的基础设施来支持下一波业务增长。


    在这些环境中,我们需要构建流程并设置防护栏,以满足这些不同角色的需求。

对安全性和效率的技术影响

    对于所有这些团队来说,在他们寻求构建应用程序和服务并将其交付给市场时,配置是一个考虑因素。对于迁移到容器和 Kubernetes 的组织来说,什么样的技术会影响安全性和效率?堆栈中有几个不同的层,我们需要注意错误配置。

    1、容器:我们的应用程序与操作系统打包在一起的地方。注意正在打包的已知漏洞,无论是在操作系统级别还是在放入该容器的应用程序内部。

    2、部署配置:这可能是 Kubernetes YAML 或 Helm 图表。注意此级别的错误配置。确保设置了 CPU 和内存设置,为应用程序设置了活跃度和就绪度探测,并且没有向这些部署添加不必要的安全权限。

    3、Kubernetes 集群:在 Internet 上公开访问提供可能的错误配置。确保我们有基于角色的访问控制。还有许多附加组件需要保持最新,例如入口和证书管理。

政策和治理帮助

    我们可以通过使用策略和治理来帮助防止部署常见的错误配置。实施策略以检查安全配置错误,例如,底层 Kubernetes 集群和附加组件中的漏洞。不断扫描和监控基础设施以根据需要查找和修补新漏洞非常重要。策略和治理还可以通过确保资源使用效率来帮助我们优化成本,例如,检查 CPU 和内存设置以确保我们的应用程序具有足够的计算资源,但不会消耗过多的资源。

    当我们创建防止错误推送到生产的边界规则时,我们还可以在正确的时间向正在做出这些配置决策的开发人员和服务所有者提供反馈。我们可以使用策略创建边界规则的一些方法示例包括仅允许来自受信任存储库的图像、确保设置 CPU 和内存请求,以及需要健康探测。有多种方法可以实施策略和治理并使我们的策略保持不变,我们的选择可能取决于组织规模、Kubernetes 环境的成熟度以及其他考虑因素。无论如何进行,我们都需要跨团队和集群的可见性以及一种有效且一致地管理策略的方法,以便安全高效地运行 Kubernetes。

    了解更多信息,按需观看网络研讨会:https://www.fairwinds.com/kube-clinic-how-to-run-kubernetes-securely-and-efficiently-0?submissionGuid=1d0bf274-f046-43cb-9687-ccda4671e7f8


    原文🔗:

    https://medium.com/uptime-99/k8s-clinic-how-to-run-kubernetes-securely-and-efficiently-4a874a570630


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
3月前
|
JSON Kubernetes Shell
【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小
【Azure K8S | AKS】在不丢失文件/不影响POD运行的情况下增加PVC的大小
|
6月前
|
Kubernetes 搜索推荐 Docker
K8S容器运行时弃用Docker转型Containerd
K8S容器运行时弃用Docker转型Containerd
1110 0
|
6月前
|
Kubernetes 安全 Cloud Native
云原生|kubernetes|pod或容器的安全上下文配置解析
云原生|kubernetes|pod或容器的安全上下文配置解析
538 0
|
1月前
|
Kubernetes 监控 Cloud Native
|
1月前
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
本文介绍了云原生环境下Kubernetes集群的安全问题及攻击方法。首先概述了云环境下的新型攻击路径,如通过虚拟机攻击云管理平台、容器逃逸控制宿主机等。接着详细解释了Kubernetes集群架构,并列举了常见组件的默认端口及其安全隐患。文章通过具体案例演示了API Server 8080和6443端口未授权访问的攻击过程,以及Kubelet 10250端口未授权访问的利用方法,展示了如何通过这些漏洞实现权限提升和横向渗透。
159 0
云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
|
3月前
|
Kubernetes API Perl
在K8S中,如何让Pod运行一次?如何解决一次性任务?
在K8S中,如何让Pod运行一次?如何解决一次性任务?
|
3月前
|
Kubernetes 安全 Serverless
Kubernetes云原生问题之在Serverless Container中,Pod运行如何解决
Kubernetes云原生问题之在Serverless Container中,Pod运行如何解决
73 5
|
3月前
|
Rust Kubernetes 前端开发
在kubernetes上运行WASM负载
在kubernetes上运行WASM负载
42 4
|
3月前
|
Kubernetes 容器 Perl
Kubernetes(K8S) Node NotReady 节点资源不足 Pod无法运行
Kubernetes(K8S) Node NotReady 节点资源不足 Pod无法运行
74 0
|
5月前
|
存储 Kubernetes 安全
云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露
云上攻防-云原生篇&K8s安全&Config泄漏&Etcd存储&Dashboard鉴权&Proxy暴露
129 5
下一篇
无影云桌面