kubernetes系列之七:一些将legacy应用迁移到kubernetes的经验

基于Kubernetes和Kubernetes集群的数据迁移 本文介绍了如何基于Kubernetes和Kubernetes集群实现数据迁移,包括数据预处理、数据迁移和模型部署流程。Kubernetes集群在数据迁移中具有强大的可扩展性、可靠性和高效性,尤其适用于需要弹性伸缩和多云部署的场景。数据预处理是数据迁移的第一步,主要包括数据清洗、数据转换、数据规约等步骤。我们将实现一个简单的数据预处理、数据迁移和模型部署流程,以满足实际业务需求。未来,随着容器化和Kubernetes技术的发展,基于Kubernetes和Kubernetes集群的数据迁移将面临更多的挑战。 阅读详情

一、前言

基于kubernetes的应用实际上是微服务在container方向的实例,所以很多微服务的设计原则在kubernetes框架内依然具有参考价值,比如The Twelve Factors。

在legacy应用从基于VM的部署向基于kubernetes部署的迁移过程中,需要根据container和微服务的特点,对legacy系统的诸多方面进行调整,满足kubernetes平台微服务的一些基本要求和模式:

  • 功能实现
  • 服务分割
  • 配置管理
  • 集群状态管理
  • 日志监控报警
  • 负载均衡和数据流
  • 集成发布
  • 服务资源配置
  • 规模部署和管理

转载自https://blog.youkuaiyun.com/cloudvtech

二、legacy系统

原有的系统状态:
  • 具有一个专有的平台进行计算网络资源管理和应用配置的管理,资源管理是基于VMWare的vSphere而应用配置管理子系统使用脚本语言编写
  • 集群的通信和状态管理使用zookeeper和API
  • 使用发布的ova进行软件安装和配置之后,生成不同功能的虚拟机节点
  • 日志经本地收集之后转发到ELK
  • 使用IPVS进行请求接入负载均衡
  • 该系统具有动态组合的配置信息,但是没有持久化的需求


转载自https://blog.youkuaiyun.com/cloudvtech


三、向kubernetes迁移:容器化

1.系统拆分:将松耦合的子系统拆分成独立的服务,不同的服务由一系列的容器组合而成,这样便于和后面kubernetes的service和POD的概念进行对应。

2.容器镜像:选择合适的based镜像,对现有系统的RPM依赖进行分析,去掉不必要的模块,以减少构建出来的应用镜像的大小,中间经过优化,从2.5GB减少到700MB。

3.进程管理:在VM里面,应用程序进程的状态由supervisord进行维护;但是在容器中,kubernetes管理框架需要直接感知容器里面进程的状态,所以需要直接让应用程序作为容器里面的一号进程,使得容器的状态和应用程序的状态保持一致。这里其实也有另外一个选择,就是使用一个脚本管理应用程序进程的生命周期并通过检测程序状态并向外暴露来代理程序的运行状态向容器外部暴露;如果应用程序本身是面向微服务架构设计的,则应用程序可以作为主程序直接对外暴露,对于一些legacy的系统,可能需要这样一个代理机制以能够更好的对外反馈容器内服务的状态。

4.CICD:建立独立的pipeline对镜像进行自动建构和sanity测试。

5.镜像安全性:对于使用的基础镜像,需要遵循内部安全性测试的流程,或者使用公司基础设施部门发布的可信基础镜像。

转载自https://blog.youkuaiyun.com/cloudvtech

四、向kubernetes迁移:定义kubernetes服务

在容器化的过程中,已经将系统进行根据松耦合进行拆分,然后对于拆分之后的子系统服务,需要按照kubernetes的原则封装成POD并且通过定义kubernetes的service进行暴露。这里需要说明的是在容器化的过程中,我们只是将应用程序对应的业务服务模块进行容器化,而对于原有系统中计算网络资源管理和应用配置的管理的功能,并没有迁移过来;计算网络资源管理将代理给kubernetes,而应用配置的管理的功能就需要定义和开发新的kubernetes服务了。

所以在系统迁移到kubernetes之后,核心的应用程序被拆分成了三个服务,其中两个应用程序业务逻辑服务只是将原有程序容器化,而应用程序配置管理程序需要开发新的基于kubernetes的服务。

而对于日志监控,将使用运维kubernetes平台的部门提供的基础设施服务。

另外,对于应用程序在容器化之后额外需要的一些服务比如redis或者etcd,可以根据数据存储和访问的需求自行部署或者使用平台提供的服务。这里需要说明的是使用平台服务和使用自定义的服务,在部署、维护、管理和使用各方面各有利弊,需要进行权衡。

转载自https://blog.youkuaiyun.com/cloudvtech

五、向kubernetes迁移:应用程序配置管理

原有平台的应用程序配置管理服务是基于虚拟机和多应用进行混合部署的,所以配置管理是在主机和应用,是较粗级别的管理,使用的是zookeeper进行配置和状态的交互。我们并没有将这套和基于VMWare虚拟化平台和基于主机应用程序架构的配置方案迁移到kubernetes,而是重新开发了一套可以使用kubernetes和容器化配置管理功能的新的配置管理系统。

对于基于容器的应用程序配置管理,如果是基于微服务的概念进行开发的,比较好的策略是使用immutable模式,所有的配置在kubernetes的deployment部署和容器启动的时候加载,任何配置的更新其实都是deployment版本的更新,deployment对应的POD都会删除旧的容器并启动带有新的配置的容器。但是在lagecy的系统中,对配置可能具有动态组合、动态增减等复杂需求,需要对应服务的后端POD根据新的配置在不重启的情况下调整配置。

对于配置的管理,这边需要考虑的是配置如何从kubernetes外部传输给容器内部的应用程序。一种方案是使用kubernetes自带的ConfigMap服务,将配置数据作为文件直接mount到容器内部,由应用程序或者配置agent感知并加载,这种方案实现简单,并借助kubernetes存储配置,缺点在于ConfigMap的数据传输存在时延不可控和扩展性的问题。另一种方案是使用etcd等具有事件通知功能的中间件作为消息存储和通知的媒介,由API接受外部的配置、存储到etcd并触动容器内部的监听模块进行配置更新;这个方案具有时效性强、扩展性好等特点,缺点在于实现比较复杂,需要前端API和etcd模块、容器内要有agent跟踪etcd节点状态。


在实际应用场景中,不同规模和部署方式的客户,可能需要不同的配置方式,所以我们在实现过程中对两种方式都进行了支持。

转载自https://blog.youkuaiyun.com/cloudvtech

六、向kubernetes迁移:负载均衡和数据流

在kubernetes service里面,提供了基于iptabels的针对service后端POD的简单负载均衡方案,见文章《Kubernetes如何利用iptables对外暴露service》。这个负载均衡的方案仅仅是保证将数据和请求能在不同节点上的POD中间通信,并没有考虑精细控制和性能效率的问题。

对于提供互联网服务的大规模分布式系统,上行流量一本都会远远小于下行流量,对于提供视频流服务的系统而言,这个规律会更加明显(可能在100K:10MB这个级别)。所以在这样的系统中,负载均衡需要考虑更多的是使用三角模式的负载均衡(IPVS的DR模式是一个很好的例子,请求、转发和返回三个路径连接client、IPVS director和后端real server组成一个三角形)来控制数据流。我们的应用系统恰恰是这样一个小请求返回比的系统,所以基于七层的kubernetes Ingress代理方案和默认的基于iptables的kube-porxy负载均衡方案(这个方案存在cross node traffic,对于小请求返回比的系统几乎是灾难)都不能满足系统大流量和线性扩展的需求:


基于kubernetes Ingress的七层负载均衡


基于kubernetes service的四层负载均衡

所以在我们的系统向kubernetes迁移的过程中,基于kubernetes的基础能力和IPVS开发了这样一套负载均衡系统:

  • 作为kubernetes的service进行部署
  • 动态感知kubernetes service后端的能力变化而调整负载均衡权重
  • 没有cross node traffic
  • 跟随node增减能达到流量支持的线性扩展

在这个的解决方案中,数据流从IPVS服务进入,然后根据负载均衡路由方案进入特定的kubernetes节点和节点上的POD进行请求响应,之后直接返回客户,是典型的三角数据传输模型,具有很强的接入能力和扩展能力。

转载自https://blog.youkuaiyun.com/cloudvtech

七、向kubernetes迁移:日志监控报警

1.日志

使用由于lagecy系统依赖于td-agent进行log的格式转换,所以加入了一个log处理的side car进行日志的各式处理和向Fluentd导出并转发至ELK,至于新开发的配置管理服务,则直接使用Fluentd对于POD的STD输出向ELK导出日志。

2.监控

对于不同的POD,有不同的metrics exporter翻译并导出,虽然这些exporter都有开源的实现,但是还是有必要根据应用和业务的特点定制一些导出数据。我们使用promethes汇聚数据并根据监控需求对这些数据进行关联计算,prometheus可以通过API向exporter pull数据或者由exporter向prometheus push数据。最后,使用grafana将监控数据在基于Web的GUI上进行展示,并且可以设立简单的告警。


3.报警

应用程序使用sensu client收集不同服务的POD的运行状态数据或者进程直接上报的告警信息,这些信息经由平台的RabbitMQ消息总线服务传送至sensu server,由uchiwa进行展示或者使用pageduty等将告警信息导出至外部通知系统。

转载自https://blog.youkuaiyun.com/cloudvtech

八、向kubernetes迁移:集群状态管理

在kubernetes迁移之后,我们的应用程序服务被分割成了几个kubernetes的service,而service实际上是一个虚拟的概念,实际支撑service的是一系列后端POD,这些POD根据service的定义被选为某个service的后端。同时,service会根据POD的状态来决定是否将POD加入到服务可达的列表里面。所以我们需要定义好POD里面每个container的liveness和rediness检测接口,如果rediness通过了,POD便会被加入service的服务列表,如果liveness失败了,POD就会被kubernetes删掉重新启动。

所以先抓整个集群的服务状态和进程状态本质上都是由kubernetes进行管理,我们唯一需要关注的是一些检测接口的实现,以保证liveness和rediness检测接口能准确反应单个服务进程的状态。同时,service后端是由一系列POD replica组成,这个replica数目代表了service的服务能力,如果某个节点或者一些POD出现问题,kubernetes会在其它节点启动新的POD replica来保证需求的服务能力。


转载自https://blog.youkuaiyun.com/cloudvtech

九、向kubernetes迁移:服务资源配置

我们的服务本身需要同时处理很大的上行和下行流量,所以对于不同业务层面的需求,需要为POD里面的容器配置不同的处理器和内存资源。为了满足这个需求,我们基于不同的资源配置对POD的能力进行测试,比如一个物理机node配置不同数目不同资源需求的POD,来查看并发服务能力、吞吐率和时延,以此决定不同业务需求场景下推荐的POD配置。



转载自https://blog.youkuaiyun.com/cloudvtech

十、向kubernetes迁移:规模部署和管理

在规模部署的时候,需要定义kubernetes的ConfigMap、service和POD deployment配置文件,同时还要定义业务逻辑上的参数,全部加起来应该在一百个参数以上,这些参数多数需要根据特定业务特定部署来设定,所以需要由一个强大的辅助工具对参数进行组合、生成相应配置文件并进行部署。

在生产环境,我们使用ansible来编排这些配置并进行部署。我们编写了众多的ansible role来编排不同的服务,从系统集成、配置转换到服务启动,都有对应的ansible role,这样的话,整个编排部署流程尽量解藕,降低了维护的复杂度。但是由于我们lagecy系统的复杂性,所以导致我们的配置最后集成了普通text、xml、json、yaml和j2 template,而这些不同格式的文件具有不同的文法需求,所以也带来了很多兼容性问题,因此在有条件的情况下,尽量使用一致的配置格式。

同时,在规模部署的时候,经过仔细测试,我们发现kubernetes在一个node上启动一系列POD的时候,是一个近乎线性的过程,并且由于大量读取容器镜像文件,所以存在巨大的disk负载。因此,我们也对于同时部署和扩展给出了一些指导,保证不会由于大量并发对系统服务造成影响。

转载自https://blog.youkuaiyun.com/cloudvtech

总的来说,应用向kubernetes迁移的过程中,有很多不适应容器云服务的技术点,需要一一梳理使用创造性的方案进行兼容和解决;但是只要有机会和条件,应该毫不犹豫的向容器云切换,因为现在很多客户都会有内部容器云平台,并且更倾向于统一的平台解决方案,所以应用应该及时拥抱这个趋势。

转载自https://blog.youkuaiyun.com/cloudvtech

DP接口详解:从主链路到AUX通道的完整解析(附常见问题排查) 本文深入解析DP接口的三大核心子系统:主链路的高速数据传输、AUX通道的智能协商以及HPD信号线的即时响应。详细介绍了DP接口的物理层设计要点、链路训练与均衡技术,并提供了常见故障排查指南,帮助工程师解决实际应用中的技术难题。 阅读详情

相关推荐

《计算机科学概论(第13版)》5-12章

定序是按给定语句的顺序应用每个算法步骤。(primitive):建立一组定义明确的构建块,利用它们来构造和执行算法的表示。可以消除歧义,不会引起误解,就像咱们传统的自然语言(用英语来沟通交流)。(programming language):原语的集合以及说明如何组合这些原语来表示比较复杂的想法的规则集合。用程序设计语言描述的算法可以在计算机上执行。每个原语都有自己的语法和语义,语法指的是原语的符号表示,语义是指该原语的含义。伪代码:用户开发过程中非正式表达想法的符号系统。

输入知识,消化知识,输出知识,分享知识,教人让我学习更好,业精于勤荒于嬉,行成于思毁于随 1036

k8s云原生环境搭建笔记——第二篇

考虑到文件查找步骤的描述较多,我本次直接给大家提供这些yaml文件的百度网盘链接,然后kube-state-metrics版本是。然后执行如下指令,该指令将会执行目录下的所有yaml文件。如果遇到问题了,可以查看上述几个容器的日志,尤其是看下。如果无法下载镜像,或者后续执行有问题,都可以使用。,大家可以寻找任何自己想要的内容,本次我选择的是。输入之后就可以修改密码了,比如我修改的密码是。然后确定镜像版本,比如我本次使用版本信息是。上,然后使用以下指定实现名称空间的更换。然后就可以登录grafana首页了。

qq_42449963的博客 7997

一文读懂:CAN总线Bus-Off的触发条件与自动恢复机制

本文详细解析CAN总线Bus-Off状态的触发条件与自动恢复机制。根据ISO 11898-1标准,当发送错误计数器(TEC)超过255时节点进入Bus-Off状态,并通过检测128次总线空闲条件实现自动恢复。文章结合实战案例,探讨硬件故障、软件配置及电磁干扰等常见触发场景,并提供快慢恢复策略与调试方法,帮助工程师快速定位并解决CAN网络故障。

rgv234567的博客 359

k8s部署rabbitMQ集群

一.使用statefulset部署rabbitmq集群 在部署集群之前需要为集群创建一个Storage Class(存储类)来作为集群数据的持久化后端。本例中使用ceph作为后端存储,在创建存储类之前需要先搭建好,并保证在k8s集群各个节点上均能挂载该ceph存储。 1.创建命名空间rabbit-mq # cat rabbit-mq.yaml --- apiVersion: v1 kind: Namespace metadata: name: rabbit-mq # kubectl app

xiaxia2022的博客 6093

从内参矩阵到归一化平面:揭秘相机成像的标准化核心

本文深入解析了相机成像中的核心概念——归一化平面。通过拆解内参矩阵(包含焦距、主点等参数)的作用,详细阐述了如何将像素坐标转换为与具体相机硬件无关的归一化坐标。这一标准化过程是计算机视觉算法(如多相机系统对齐、视觉SLAM)实现跨设备通用性的关键,能有效提升算法的鲁棒性和泛化能力。

opencv7vision的博客 449

三菱FX5U PLC与CCLINK模块通信配置全流程(附接线图与参数详解)

本文详细解析了三菱FX5U PLC与CCLINK模块的通信配置全流程,包括硬件接线规范、参数设置及软件编程方法。通过实战指南帮助工程师快速掌握FX5U与CCLINK模块的高效通信技术,提升工业自动化控制系统的稳定性和可靠性。

weixin_27014595的博客 427

kubernetes搭建RabbitMQ集群(基础版)

基础版版本说明一、RabbitMQ简介二、RabbitMQ集群部署三、部署验证四、官方源码 版本说明 k8s:v1.19.2 RabbitMQ 3.8.9 on Erlang 23.1.5 一、RabbitMQ简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。AMQP:Advanced Message Queue,高级消息队列协议。它是应用层协议的一个开放

weixin_39990804的博客 1246

详解一典型的反激式开关电源方案

如图,在某系统方案上看到下图所示的单端反激式开关电源方案。

alala120的博客 1万+

后端SpringBoot应用向云原生K8S平台迁移

本文主要介绍了在云原生时代K8S平台下如何更便捷的开发Spring应用,首先着重论述了3种不同的方式:Spring Cloud Alibaba、Spring Cloud K8S、SpringBoot+K8S,并给出了笔者认为的最佳实践,之后又简要论述了ServiceMesh方案的架构选型,最后在文末给出了一些关于云原生时代下的Devops平台的使用建议。

罗小爬的技术宝书 3213

CAPL学习之路-关键字

在capl中,关键字具有特殊的含义和用途,因此,不得将关键字用作变量或函数的名称 声明数据类型的关键字 可以用不同的关键字,声明或引用不同类型的数据 byte 声明一个字节的变量 word 声明两个字节的变量 dword 声明四个字节的变量 int 声明两个字节的整数 long 声明四个字节的变量 qword 声明八个字节的变量 char 声明一个字符串 float 声明一个浮点数,8个字节 double 声明一个浮点数,8个字节 定义一个结构体或枚举类型 struct struct Data { .

jasonj333 6107

S7-200SMART 中如何实现单按钮启停功能(两种方法)?

S7-200SMART 中如何实现单按钮启停功能(两种方法),Toggle库指令,状态翻转

Robot_PLC_HMI_Automation 1万+

Cobra CLI 项目的 Bash 补全如何从 legacy 脚本方案迁移到 V2?

如果你的 Go CLI 项目基于 Cobra 构建,并且早期采用了 legacy 动态补全方案(通过 `BashCompletionFunction` 往补全脚本里注入 bash 函数),那么现在可以把这些自定义补全逐个改写为 Go 侧的 `ValidArgsFunction` / `RegisterFlagCompletionFunc()`,并把脚本生成切换到 bash completion V

gitblog_01198的博客 642

华为OD机试真题 新系统【优化充电桩调度算法】

华为OD机试 新系统真题【优化充电桩调度算法】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【优化充电桩调度算法】

qq_45776114的博客 753

Multica 升级时迁移 103 报 refusing to drop legacy daily rollups 怎么恢复

自托管升级 Multica(典型场景是从 `v0.3.4` 升到 `v0.3.5+`)时,backend 启动日志里出现 `refusing to drop legacy daily rollups`,导致升级卡住、服务起不来。这个报错来自迁移 `103` 的 fail-closed 保护:它要删除两条旧的按天汇总管线(`task_usage_daily` 和 `task_usage_dashbo

gitblog_00171的博客 403

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

应用迁移方案_Kubernetes如何成为迁移旧版应用程序的解决方案

应用迁移方案 在互联网的早期,如果要启动应用程序,则必须购买或租用硬件。 这是一台物理服务器或服务器机架,并且每个应用程序需要一台服务器,因此非常昂贵。 在2001年,VMware推出了虚拟化软件,该软件允许用户在同一硬件上运行多个应用程序。 这意味着您可以将一个盒子拆分为多个虚拟盒子,每个虚拟盒子都运行自己的环境和应用程序。 为企业节省的成本是巨大的。 快进到2006年。Amazon通过A...

cuml0912的博客 425

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Velero深度指南:3大策略实现Kubernetes数据高效迁移与持久卷保护

Velero作为业界领先的Kubernetes备份与迁移解决方案,为容器化应用及其持久卷数据提供了企业级的保护机制。在复杂的Rook-Ceph存储环境中,Velero通过创新的架构设计解决了大规模数据迁移的关键挑战,确保业务连续性和数据完整性。本文将深入解析Velero的核心架构、数据迁移策略以及在生产环境中的最佳实践。 ## 挑战:现代Kubernetes环境中的数据保护复杂性 在云原生架构

gitblog_00977的博客 1217

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Twenty CRM 的 Kubernetes 部署实战:Helm Chart、Terraform 与原生清单三条路径全解析

本文围绕 Twenty 仓库中 `packages/twenty-docker/k8s/README.md` 所描述的 Kubernetes 部署体系展开,覆盖 Helm Chart 快速安装、Terraform 编排、原生 Manifests 手动部署三种落地方式的完整步骤与参数细节,并结合仓库中的 [Helm Chart 模板](https://link.gitcode.com/i/36e60

gitblog_00889的博客 403

Kubevirt实战:把Windows/Legacy应用‘装进’K8s Pod里运行,我是怎么做到的?

本文详细介绍了如何利用Kubevirt技术将Windows/Legacy应用无缝集成到Kubernetes生态中,实现统一编排。通过核心架构解析、生产级部署要点、Windows虚拟机配置及混合编排运维实践,帮助企业在现代化与遗留系统并存的环境中实现高效管理。特别适合需要将传统虚拟机应用迁移到K8s的技术团队参考。

weixin_42685438的博客 184

Kubernetes v1.6 版本深度解析与升级指南:etcd3 存储迁移、RBAC Beta、调度“注解迁移到字段“全景解读

本文以 Kubernetes 官方仓库中的历史发布记录 [CHANGELOG/CHANGELOG-1.6.md](https://link.gitcode.com/i/c4b9acb7cd2a1af8a599dc4dd65c61f7) 为主体素材,系统梳理 v1.6.0 正式版及其后 13 个补丁版本(v1.6.1~v1.6.13)的技术全貌,重点覆盖 etcd3 存储层切换与 protobuf

gitblog_00617的博客 352

ESS Helm 从 Synapse Legacy Auth 升级 MAS:syn2mas 迁移三步法与标记状态详解

**ESS Helm**(Element Server Suite Community Edition,位于 [charts/matrix-stack/](https://link.gitcode.com/i/21c100c1602c423f01627b2209ee8ef5))是部署 Element 消息服务器的 Helm Chart。如果你的部署还在用 Synapse 自带的 **Legacy

gitblog_01088的博客 5

Bitnami Kubernetes 应用库

一、关于 Bitnami Kubernetes 应用库 1、项目概览 2、相关链接资源 3、功能特性 二、安装配置 三、重要通知:Bitnami 目录即将变更 四、使用指南 1、准备工作 系统要求 集群搭建指南 2、Helm 常用命令 五、许可证

AI工程化、开源分享、文档翻译、代码笔记 1014

Kubernetes StatefulSet 场景下的 Peer Finder 守护进程:基于 Governing Service DNS 的分布式应用成员发现方案

在 Kubernetes 中以 StatefulSet 运行 ZooKeeper、Cassandra、CockroachDB 等有状态分布式应用时,每个 Pod 都需要动态获知"当前集群中有哪些兄弟节点",从而完成集群组建、成员加入与拓扑重配。`peer-finder` 正是 Kubernetes 官方为此类需求提供的一个轻量守护进程工具:它持续监听 StatefulSet 治理服务(Govern

gitblog_00664的博客 660

Postal 邮件投递平台配置完全指南:YAML 配置文件、环境变量双轨机制与 Legacy 兼容迁移

Postal 是一个功能完整的开源邮件投递平台,支持收件与发件场景。本文以 [doc/config/configuration.md](https://link.gitcode.com/i/358bfe764af31c659cf5ce5c8c6308d6) 为核心骨架,系统讲解 Postal 的两种配置方式(YAML 配置文件与环境变量)、配置文件查找路径规则、端口与绑定地址的控制、开发/测试/容

gitblog_00596的博客 967

从 Ingress NGINX Controller 迁移到 Traefik:零停机迁移完整实战指南

本文基于 Traefik 官方迁移文档《Migrate from Ingress NGINX Controller to Traefik》整理,面向需要在 Kubernetes 集群中完成入口控制器替换的运维与平台工程师。由于 Kubernetes Ingress NGINX Controller 项目已宣布于 2026 年 3 月退役(此后不再有版本更新、安全补丁和缺陷修复),这篇指南会带你走完

gitblog_00042的博客 427

Kubernetes v1.23 发布日志深度解读:从 1.23.0 到 1.23.17 的重大变更、安全修复与版本选择

本篇基于仓库中的 [CHANGELOG-1.23.md](https://link.gitcode.com/i/3e73a91b77203ed668b3bcc35effffce) 逐版本拆解 Kubernetes 1.23 版本线(v1.23.0 至 v1.23.17)的发布内容:v1.23.0 的十三个重大主题、升级前必读事项、各补丁版本修复的四个 CVE、Go 工具链演进与镜像仓库迁移时间线,

gitblog_00740的博客 779

Argo Workflows `argo convert` 命令详解:将旧版 Manifest 迁移为当前格式

`argo convert` 是 Argo Workflows CLI 提供的离线清单转换工具,用于将使用旧版单数字段的 Workflow、CronWorkflow、WorkflowTemplate 与 ClusterWorkflowTemplate 清单转换为当前版本支持的复数形式字段,并将结果输出到标准输出。读完本文,你将掌握该命令的完整语法、支持的四种资源类型、schedule/mutex/

gitblog_00774的博客 1063
上一篇: kubernetes系列之五:IPVS概览
下一篇: Openshift的网络之一:概览和基本配置
cloudvtech
博客等级 码龄9年 533粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值