使用Kubernetes的挑战和应对技巧

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 使用Kubernetes的挑战和应对技巧

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


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

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


Kubernetes挑战

掌握复杂性

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

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


加强安全性

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

  1. 镜像的安全
  2. 节点访问控制
  3. 网络隔离
  4. API管理
  5. 统一身份认证服务

集成以上这些元素所涉及的复杂性也常常被低估,并导致许多安全漏洞。根据2020年有关“Kubernetes安全状态”的研究“ ,94%的受访者在过去12个月内在其Kubernetes和容器环境中经历了安全事件。

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


Kubernetes 最佳实践

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

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


译文链接: https://dzone.com/articles/the-challenges-of-adopting-k8s-for-production-and


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
6月前
|
Kubernetes Cloud Native 应用服务中间件
云原生|kubernetes|networkPolicy网络策略详解
云原生|kubernetes|networkPolicy网络策略详解
103 0
|
3月前
|
Kubernetes 安全 数据安全/隐私保护
Kubernetes 安全性最佳实践
【8月更文第29天】随着容器化和微服务架构的普及,Kubernetes 已成为管理容器化应用的标准平台。然而,随着 Kubernetes 的广泛采用,其安全性问题也日益受到关注。本文将深入探讨 Kubernetes 的安全最佳实践,并通过具体的代码示例来展示如何保护 Kubernetes 集群免受攻击。
169 2
|
3月前
|
Kubernetes Cloud Native API
Kubernetes云原生问题之Kubernetes帮助业务应用较少关注底层基础设施差异如何解决
Kubernetes云原生问题之Kubernetes帮助业务应用较少关注底层基础设施差异如何解决
41 1
|
6月前
|
运维 Kubernetes 监控
Kubernetes 集群的持续性能优化实践
【5月更文挑战第30天】 在动态且日益复杂的云原生环境中,维持 Kubernetes 集群的高性能运行是一个持续的挑战。本文将探讨一系列针对性能监控、问题定位及优化措施的实践方法,旨在帮助运维专家确保其 Kubernetes 环境能够高效、稳定地服务于不断变化的业务需求。通过深入分析系统瓶颈,我们不仅提供即时的性能提升方案,同时给出长期维护的策略建议,确保集群性能的可持续性。
|
Kubernetes Cloud Native KVM
Kubernetes(k8s)部署模式发展
Kubernetes(k8s)部署模式发展
141 0
|
机器学习/深度学习 Kubernetes 监控
Kubernetes 企业如何落地
Kubernetes 企业如何落地
194 0
|
监控 Kubernetes 安全
如何为你的Kubernetes保驾护航
如何为你的Kubernetes保驾护航
如何为你的Kubernetes保驾护航
|
运维 Kubernetes 微服务
Kubernetes多租户策略的好处和挑战
Kubernetes多租户策略的好处和挑战
253 0
Kubernetes多租户策略的好处和挑战
|
自然语言处理 Kubernetes 监控
系统架构面临的三大挑战,看 Kubernetes 监控如何解决?
随着 Kubernetes 的不断实践落地,我们经常会遇到负载均衡、集群调度、水平扩展等问题。归根到底,这些问题背后都暴露出流量分布不均的问题。那么,我们该如何发现资源使用,解决流量分布不均问题呢?今天,我们就借助三个具体场景聊聊这一问题以及相应的解决方案。
系统架构面临的三大挑战,看 Kubernetes 监控如何解决?
|
Kubernetes 负载均衡 数据可视化
如何化解 Kubernetes 网络的复杂性?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 本文将以带有两个 Linux 节点的标准 GKE 集群为例,通过跟踪 HTTP 请求被传送到集群服务的整个过程,深度拆解 Kubernetes 网络的复杂性。
如何化解 Kubernetes 网络的复杂性?

推荐镜像

更多