使用Kubernetes的挑战和应对技巧

2023年 7月 9日 22.3k 0

从2000年FREEBSD( 一种可免费使用的UNIX操作系统 ) 亮相,容器技术不断发展,到如今,容器已牢牢占据着现代软件交付的中心地位。Kubernetes是当今容器编排的事实上的标准,并且是容器化领域中最好的。正如预测的那样,到2023年,全球70%以上的企业将运行两个或多个容器化应用程序。

但是,Kubernetes目前仍然很复杂。即使Kubernetes在测试环境中运行平稳,在生产环境中也需要谨慎地运行它,以避免出现陷阱。

如果考虑在你的环境中使用Kubernetes,请注意以下几个方面:

Kubernetes挑战

掌握复杂性

部署完整的K8S基础架构时,需要配置的组件数量众多,使得部署过程变得复杂艰巨:

  • DNS设置:需要考虑和某些Linux发行版是否发生冲突,还有DNS搜索限制等。
  • 负载均衡:需要考虑许多因素,例如在托管的K8S或外部负载均衡器之间进行选择。
  • 资源约束:可以在容器,节点甚至命名空间级别定义资源约束,每种约束都有其优缺点。
  • 基于角色的访问控制(RBAC):跨多个Pod,节点和名称空间的“角色”和“集群角色”需要进行认真规划和实施。
  • 监测指标:尽管K8S提供了有关容器,pod,服务和集群级别的应用程序资源使用的详细信息,但是应用程序监视分散在多个应用程序和工具中,汇总起来比较麻烦。
  • 加强安全性

    在K8S环境中实施安全性,需要考虑到由于部署微服务而导致软件的攻击面增加。K8S虽然易于部署,但无法严格管理和控制它们会产生新的漏洞。需要考虑的一些要素是:

  • 镜像的安全
  • 节点访问控制
  • 网络隔离
  • API管理
  • 统一身份认证服务
  • 集成以上这些元素所涉及的复杂性也常常被低估,并导致许多安全漏洞。根据2020年有关“Kubernetes安全状态”的研究“ ,94%的受访者在过去12个月内在其Kubernetes和容器环境中经历了安全事件。

  • K8S漏洞–在容器化环境中,攻击者可以使用“特权容器( privileged containers )”来获得特权。特权容器是指具有主机所有功能的容器。因此,获得对此类容器的访问权限可以授予攻击者权限,并可以访问所有主机资源。
  • 扩展实例– K8S的生产环境中经常需要快速扩展数百个Pod,如果无效的监视和日志记录可能会导致无法诊断故障。
  • 自动伸缩–配置垂直,水平或组合的自动伸缩过程需要对所需资源范围(节点的最小和最大CPU和内存)进行深入评估。
  • 更新:当社区发布K8S的新版本时,如果需要升级生产集群,最好不要导致应用程序宕机。
  • 资源管理–没有设置资源限制,会带来宕机的风险。
  • 监视–有效监视系统运行信息,对于故障诊断至关重要。
  • Kubernetes 最佳实践

    但是,我们可以采用一些最佳实践,来在生产环境中安全地操作K8S:

  • 使用非Root权限运行容器:如果容器发生破坏,Root权限的容器会扩大风险。
  • 实施RBAC:正确配置RBAC策略,以确保它们至少满足K8S的最低要求,并且最好根据特定的角色访问资源,以最大程度地提高安全性。
  • 实施全面的测试:在部署生产环境之前,必须系统地运行包括功能测试,用户测试和负载测试在内的全面测试。
  • 滚动升级避免使用latest 标签。
  • 配置CI/CD-流水线:正确配置CI/CD流水线对于提高软件质量和安全性,以及加快发布速度至关重要。自动化的集成和部署工具可以帮助实现这一点。
  • 镜像仓库和部署管理:确保将Docker镜像安全地存储在镜像仓库中,可以启用镜像管理工作流。适当的管理,可确保镜像签名,安全性,LDAP集成等方面的一致性。使用部署管理器(例如Helm)可以简化基于K8S的应用程序定义,安装和升级阶段的管理。
  • 使用Pod安全策略(PSP):Pod Security Policies(PSP)是集群级的Pod安全策略,自动为集群内的Pod和Volume设置Security Context。。
  • 镜像扫描:尤其是在使用外部镜像之前,首先需要对其进行扫描可降低引入漏洞的风险。另外,Kubei是一个不错的新工具,它“仅扫描在运行时部署的镜像,它取代了扫描整个镜像仓库。”
  • 使用Service Mesh(服务网格):服务网格有助于确保服务交互经过授权,认证,从而确保通信安全。
  • 使用指标,CPU状态和仪表板来衡量运行状况:无效的监视和日志记录可能导致无法诊断软件故障。
  • 译文链接: https://dzone.com/articles/the-challenges-of-adopting-k8s-for-production-and

    相关文章

    KubeSphere 部署向量数据库 Milvus 实战指南
    探索 Kubernetes 持久化存储之 Longhorn 初窥门径
    征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
    那些年在 Terraform 上吃到的糖和踩过的坑
    无需 Kubernetes 测试 Kubernetes 网络实现
    Kubernetes v1.31 中的移除和主要变更

    发布评论