Kubernetes 在生产环境中的复杂性已经成为常态,在2023年这个平台工程盛行的时代,容器管理的最大亮点可能在于其灵活性,然而在运维政策和治理等方面仍然存在诸多挑战。八年过去了,在生产环境中使用 Kubernetes 仍然需要面临许多挑战。

Spectro Cloud 刚刚与 Dimensional Research 合作发布了2023年 Kubernetes 生产状态报告文末查看报告获取方式)。Spectro Cloud 的项目负责人 Ant Newman 强调,要在当前的IT环境下实现标准化,为所有应用程序提供相同的堆栈是不切实际的。相反,我们应该关注如何管理多样性。

Kubernetes 最大的吸引力之一在于其可扩展性和跨环境的广泛用例。但是,强大的灵活性也带来了复杂性。用户面临的挑战包括企业护栏、运营技术人才的短缺以及不一致性等方面。在处理这些挑战时,Kubernetes 用户需要同时考虑灵活性和复杂性,这两者都会对内部开发人员的体验产生重要影响。

本文将带你一起看看 2023年 Kubernetes 生产状态报告中的关键发现。

K8s 的复杂性

无论是在云端、裸机还是虚拟机上,甚至是在边缘设备上,DevOps 团队希望能够以一种灵活的方式管理容器。然而,要以安全可扩展的方式来应对这种复杂性却并不容易。大多数受访企业在一个以上的托管环境中拥有 10 个以上的 K8s 集群,14% 的企业拥有 100 个以上的 K8s 集群。根据报告结果,多个数量的 Kubernetes 发行版增加了复杂性,每个发行版的使用模式和功能都略有不同,复杂性也随之升级。

同时调查还发现,83% 的受访者拥有两个到 10 个以上的发行版,包括服务发行版(如 AWS 的 EKS-D)、自托管发行版(如 RedHat OpenShift)、边缘专用发行版(如 K3s 和 MicroK8s)等。这样,在一个企业中就有大约 20 种不同的路径,而这些差异大多是由于监管或行业要求产生的。

Newman 表示,通过采访发现开发人员越来越倾向于使用自助服务,以便更好地掌控和加速工作进程。Kubernetes 在过去几年中极大地促进了开发人员的自主性。然而,这种做法也带来了问题,即开发人员需要将相当一部分时间花在文档和配置维护上,随之他们花在写代码的时间上越来越少。Newman 表示,各种规模的公司都在努力确定最适合自己的平衡点。不同企业在生产中使用 Kubernetes 方式不同,但每个企业都在积极探讨如何在开发人员自助服务的速度与必要的运营控制之间实现平衡。

K8s 的运维困境

为了解决 Kubernetes 复杂性问题,许多团队不断尝试各种工具,但尝试过程就好像是在问题上不停堆砌工具但并未能解决核心问题,无法控制与自助服务之间的平衡。根据调查,14% 的受访者曾试用过至少一种开发人员体验工具但后来都放弃了。

报告显示另一大挑战是无法获得能够应对不断发展的 Kubernetes 环境的运维人才。由于要满足定期升级和修补大量解决方案的需求,运维人员无法避免地产生倦怠。他们需要不断花费时间来排除故障和修补漏洞,因此没有足够的时间来构建最优路径以及自动化,并研究如何简化工作流程。

此外,报告还发现,开发人员仍然不习惯为他们的代码日后如何运行负责,并认为这会分散他们对传统开发思维的注意力。“左移”转移了开发人员对流程状态的注意力,也因此增加了对工具的需求,62% 的受访企业表示他们的开发人员已经或正准备采用工具加强或提高 Kubernetes 的利用。

调查结果显示 92% 的人认为开发人员应该把时间花在编码功能上而不是管理基础架构上,但 82% 的人表示运维团队很难为每个开发团队提供符合其偏好的集群。很明显,Kubernetes 需要一条通往生产的黄金通道,或者说是多条通道。标准化将成为一个巨大的推动力,以助于提高成本效益和安全性。

建立企业护栏也成为此次调研中多次被提及的挑战。根据结果显示,48% 的受访者面临这一挑战,并且该挑战在今年首次位居榜首。这表明 Kubernetes 的采用已成熟,当企业开始在关键业务影响使用案例中管理容器时,复杂性就会增加。

互操作性仍是一项挑战

随着 Kubernetes 战略的扩展,互操作性也成为一个更大的挑战。调查中四分之三的受访者表示,他们会遇到互操作性问题,如服务网格、持久存储和机密之间的互操作性问题。并且在生产中拥有 20 个或更多集群的企业因互操作性而出现问题的可能性是其他企业的三倍。

受访的企业表示对基于平台的方法十分有信心,他们中有86%的受访者希望能够将容器化工作负载和虚拟机工作负载整合到同一个基础架构平台上。值得注意的是,这种复杂性呈指数级增长,拥有 20 个以上生产集群的公司所报告的复杂性指标明显更高。这些公司更有可能报告说,他们有五个以上的分配器,以及另一项超过 15 个不同软件元素的挑战,其中包括:

  • Ingress

  • 负载平衡器

  • 机密管理

  • 安全工具

  • 服务网格

  • 监控和可观测性

Newman 说:“我们一直认为,Kubernetes 生产集群不仅仅是对分布式系统、CNI、CSI 和操作系统的选择。80%的价值和80%的复杂性都来自于对集群中支持应用的内容所做的选择。这些内容也都大大增加了 Kubernetes 互操作性的难度。”调查发现,集群越多,构成堆栈的不同元素就越多,这反过来又增加了在整个组织内实现标准化的难度

元素越多,出现互操作性问题的机会就越多。企业需要配置和保护的工具就越多。需要打补丁和更新的东西就越多,这就是全栈式声明管理十分重要的原因。

自动化降低复杂性

那如何解决像 Kubernetes 复杂性这样大规模的问题?运维团队如何解决开发、暂存和生产环境各不相同的问题?怎样才能花更少的时间排除故障,花更多的时间维护可用性和应用程序性能?

超过半数的受访者认为自动化将显著提高运营效率。然而,该调查发现,企业在开发自动化脚本但不将其视为基础设施重要组成部分,可能会在人员变动和脚本维护信息丢失时难以应对。因此简化软件堆栈成为对上述挑战——无法获得能够应对不断发展的 Kubernetes 环境的运维人才的解决方案。

但企业需要为许多不同的团队、许多不同的应用程序和许多不同的环境提供服务。企业无法简化所有的堆栈。每个团队选择不同的工具或环境都是有原因的,若企业能够完善自动化工作,并为未来的操作人员记载自动化的缘由和步骤,就能保持软件堆栈的多样性,同时还能拓展运营覆盖的范围。

关注gzh——“Seal软件”,在gzh内回复关键词“K8S23”即可获取报告。

参考链接:

https://thenewstack.io/the-2023-state-of-kubernetes-in-production/

平台工程时代的 Kubernetes 揭秘:2023年生产状况报告深度剖析的更多相关文章

  1. Seal AppManager发布:基于平台工程理念的全新应用部署管理体验

    4月12日,数澈软件Seal(以下简称"Seal")宣布推出新一代应用统一部署管理平台 Seal AppManager,采用平台工程的理念,降低基础设施操作的复杂度为研发和运维团队 ...

  2. 平台工程101:Dev、Sec和Ops的自动化黏合剂

    国际权威知名调研机构 Gartner 在<2023年最重要的10个技术趋势>报告中将平台工程(Platform Engineering)列为高速发展的技术趋势之一,并预测到2026年80% ...

  3. 研发效能|DevOps 已死平台工程永存带来的焦虑

    最近某位大神在推特上发了一个帖子,结果引来了国内众多卖课机构.培训机构的狂欢,开始贩卖焦虑,其实「平台工程」也不是什么特别高深莫测的东西.闲得无聊,把这位大神的几个帖子薅了下来,你看过之后就会觉得没啥 ...

  4. DevOps、SRE、平台工程的区别

    DevOps.SRE和平台工程的概念在不同时期出现,并由不同的个人和组织开发. DevOps作为一个概念是由Patrick Debois和Andrew Shafer在2009年的敏捷会议上提出的.他们 ...

  5. ITTC数据挖掘平台介绍(五) 数据导入导出向导和报告生成

    一. 前言 经过了一个多月的努力,软件系统又添加了不少新功能.这些功能包括非常实用的数据导入导出,对触摸进行优化的画布和画笔工具,以及对一些智能分析的报告生成模块等.进一步加强了平台系统级的功能. 马 ...

  6. 大众点评开源分布式监控平台 CAT 深度剖析

    一.CAT介绍 CAT系统原型和理念来源于eBay的CAL的系统,CAT系统第一代设计者吴其敏在eBay工作长达十几年,对CAL系统有深刻的理解.CAT不仅增强了CAL系统核心模型,还添加了更丰富的报 ...

  7. 云原生时代, Kubernetes 多集群架构初探

    为什么我们需要多集群? 近年来,多集群架构已经成为“老生常谈”.我们喜欢高可用,喜欢异地多可用区,而多集群架构天生就具备了这样的能力.另一方面我们也希望通过多集群混合云来降低成本,利用到不同集群各自的 ...

  8. 云原生时代之Kubernetes容器编排初步探索及部署、使用实战-v1.22

    概述 **本人博客网站 **IT小神 www.itxiaoshen.com Kubernetes官网地址 https://kubernetes.io Kubernetes GitHub源码地址 htt ...

  9. 剑指Kubernetes 揭秘腾讯云的PaaS技术选型策略

    1.前言 Kubernetes 很火,一大批互联网公司早已领先一步,搭建起专有的 PaaS平台,传统企业们看到的 Kubernetes的趋势,亦不甘落后,在试水的道上一路狂奔-- 虽然,Kuberne ...

  10. SAP云平台,Netweaver,Kubernetes和C4C的用户和角色关系

    SAP云平台 Netweaver 同SAP云平台一样,在事务码PFCG里维护角色: 然后在事务码SU01里将多个角色分配给用户: Kubernetes Kubernetes在1.3版本中发布了alph ...

随机推荐

  1. error: failed to push some refs to 'https://gitee.com/xxxxxxxxx/xxxxxxxt'

    原因是ReadMe文件不在本地中, 此时我们要执行git pull --rebase origin master命令README.md拉到本地, 任何然后执行git push origin maste ...

  2. [ABC150E] Change a Little Bit

    2023-03-10 题目 题目传送门 翻译 翻译 难度&重要性(1~10):7 题目来源 AtCoder 题目算法 数学,贪心 解题思路 显然 \(C_i\) 越小的位越早被修改越好.所以我 ...

  3. java学习阶段一

    扩展名默认没有打开 FIRST APP public class HelloWorld { public static void main (String[] args){ System.out.pr ...

  4. 使用Java Xpath 爬取某易云歌曲

    本文使用Java xpath 爬取某易云歌曲,并下载至本地. 代码仅用于个人学习使用,欢迎各位大佬提出建议. 1.添加依赖 <dependency> <groupId>cn.w ...

  5. Linux-源码安装软件

    一.源码安装步骤 源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install). 1.配置(configure) Configure是一个可执行脚本,它 ...

  6. 商品详情api接口的应用方向有哪些?

    ​ 商品详情API接口的应用方向非常广泛,可以应用于以下领域: 电子商务平台:商品详情API接口可以提供商品的基本信息,如名称.描述.价格.图片等,帮助电子商务平台展示和推荐商品.此外,还可以提供商品 ...

  7. CodeForces 1388D Captain Flint and Treasure

    题意 给长度为\(n\)的序列\(a[n]\)和\(b[n]\),初始时\(ans=0\),有以下操作: \(ans=ans+a[i]\) 如果\(b[i]\neq-1\),则\(a[b[i]]=a[ ...

  8. Paddle图神经网络训练-PGLBox代码阅读笔记

    图存储部分 paddle/fluid/framework/fleet/heter_ps graph_gpu_wrapper.h GPU图主入口 graph_gpu_ps_table.h GPU图的主要 ...

  9. 二叉树(binary tree)

    二叉树(binary tree) 二叉树(Binary Tree)是一种常见的树状数据结构,它由一组节点组成,每个节点最多有两个子节点,分别称为左子节点和右子节点.二叉树具有以下特点: 每个节点最多有 ...

  10. PYQT5学习(13):QMidArea同时显示多个窗口,创建多个独立的窗口

    QMidArea  参考文章:https://blog.csdn.net/jia666666/article/details/81670569 一种同时显示多个窗口的方法,创建多个独立的窗口,这些独立 ...