基于Helm和Operator的K8S应用管理的分享

三十、Helm和Operator Helm使用的包格式被称为Chart。Chart就是一个描述所有Kubernetes资源的文件集合。一个Chart用于部署一个完整的应用,例如数据库、缓存、Web服务等。本节对Chart的目录结构、主要文件和关键配置信息进行说明。 阅读详情

本文由3月7日晚李平辉,Rancher Labs 研发工程师所做的技术分享整理而成。
李平辉熟悉应用容器化解决方案设计和实施,熟悉持续集成方案,关注并参与K8S生态的发展,负责Rancher中国区持续集成服务研发。
搜索微信号RancherLabsChina,添加Rancher小助手为好友,可加入官方技术交流群,实时参加下一次分享~
  
  
   

大家好,今天我们分享的内容是基于Helm和Operator的K8S应用管理。我们知道,Kubernetes基于服务粒度提供了多种资源描述类型。描述一个应用系统尤其是微服务架构系统,需要组合使用大量的Kubernetes资源。针对有状态应用,常常还需要复杂的运维管理操作以及更多的领域知识。
  
今晚的分享就将介绍如何用Helm这一Kubernetes应用包管理的社区主导方案来简化应用的部署管理,如何制作应用模板以及打造Kubernetes版应用商店,以及如何利用operator自动化应用的运维。
    
我们知道在K8S社区里面,根据不同的领域,分成了不同的兴趣小组,英文叫SIG。今晚的话题属于APP这个领域。它们是为了解决K8S的应用管理里面的一些问题而生的。
    

一、Helm

   

让我们从零开始吧。比如说我们现在已经部署了一个K8S的集群。不管是用GKE或者是EKS,都不是难事,因为现在部署K8S已经不是以前那么麻烦的事情了。然后我们做了应用的容器化。接下来,我们要试着去把我们的应用部署到K8S上面去。
   
其实在K8S里面,资源对象是很多的:
 
基于Helm和Operator的K8S应用管理的分享

 
对于一些微服务架构来说,会有不同的服务在上面运行,你可能要管理诸如deployment、service、有状态的Statefulset、权限的控制等等。你会发现,部署应用后还会有很多其他关联的东西以及你需要考虑的点:比如说你的不同团队,要去管理这样一个应用,从开发到测试再到生产,在不同的环境中,同样一套东西可能都需要不同的配置。例如,你在开发的时候,不需要用到PV,而是用一些暂时的存储就行了;但是在生产环境中,你必须要持久存储;并且你可能会在团队之间做共享,然后去存档。
  
另外,你不仅仅要部署这个应用资源,你还要去管理其生命周期,包括升级、更新换代、后续的删除等。我们知道,K8S里面的deployment是有版本管理的,但是从整个应用或某个应用模块来考虑的话,除了deployment,可能还会有其他的configmap之类的去跟其关联。这时我们会想,是否有这样一个工具可以在更上层的维度去管理这些应用呢?这个时候我们就有了社区的一个包管理工具:Helm。
   
我们知道K8S的意思是舵手,即掌控船舵的那个人。而Helm其实就是那个舵。在Helm里面,它的一个应用包叫Charts,Charts其实是航海图的意思。它是什么东西呢?
   
它其实就是一个应用的定义描述。里面包括了这个应用的一些元数据,以及该应用的K8S资源定义的模板及其配置。其次,Charts还可以包括一些文档的说明,这些可以存储在chart的仓库里面。 
 
怎么用Helm这个工具呢?Helm其实就是一个二进制工具。你只要把它下载下来,已经配置好了kubeconfig的一些相关配置信息,就可以在K8S中做应用的部署和管理了。
用Helm可以做什么事情呢?其实Helm分为服务端跟客户端两部分,你在helm init之后,它会把一个叫做Tiller的服务端,部署在K8S里面。这个服务端可以帮你管理Helm Chart应用包的一个完整生命周期。
   
Release == Chart 的安装实例:

基于Helm和Operator的K8S应用管理的分享

接着说说Helm Chart。它本质上是一个应用包,你可以把它理解成dpkg或者像rpm这样的包。只不过,它是基于K8S领域的一个应用包的概念。你可以对同一个chart包进行多次部署,每次安装它都会产生一个Release。这个Release相当于一个chart中的安装实例。
   
现在我们已经把Tiller部署进去了,那么就可以去做我们应用的管理了:

$ helm install <chart>
# (stable/mariadb, ./nginx-1.2.3.tgz, ./nginx, https://example.com/charts/nginx-1.2.3.tgz)
$ helm upgrade <release>
$ helm delete <release>

关于一些常用的命令例如安装一个应用包,可以用install,它其实是可以支持不同格式的:比如说本地的一些chart包,或者说你的远程仓库路径。
对于应用的更新,用Helm upgrade。
如果要删除的话,就用Helm Delete。
  
Helm的一个Release会生成对应的Configmap,由它去存储这个Release的信息,并存在K8S里面。它相当于把应用的一个生命周期的迭代,直接跟K8S去做关联,哪怕Tiller挂了,但只要你的配置信息还在,这个应用的发布和迭代历程不会丢失:例如想回滚到以前的版本,或者是查看它的升级路径等。
  
接下来我们看一个chart的结构。
  
$ helm create demoapp

基于Helm和Operator的K8S应用管理的分享
用Helm create的话,它会提供一个大概的框架,你可以去创建自己的一个应用。比如说这个应用就叫做Demoapp,里面会有如下内容:

基于Helm和Operator的K8S应用管理的分享
其中最核心的是templates,即模板化的K8S manifests文件,这里面会包括资源的定义,例如deployment、service等。现在我们create出来的是一个默认的、用一个nginx deployment去部署的应用。
   
它本质上就是一个Go的template模板。Helm在Go template模板的基础上,还会增加很多东西。如一些自定义的元数据信息、扩展的库以及一些类似于编程形式的工作流,例如条件语句、管道等等。这些东西都会使得我们的模板变得非常丰富。
   
有了模板,我们怎么把我们的配置融入进去呢?用的就是这个values文件。这两部分内容其实就是chart的核心功能。

基于Helm和Operator的K8S应用管理的分享

基于Helm和Operator的K8S应用管理的分享
这个deployment,就是一个Go template的模板。里面可以定义一些预设的配置变量。这些变量就是从values文件中读取出来的。这样一来,我们就有了一个应用包的模板,可以用不同的配置将这个应用包部署在不同的环境中去。除此之外,在Helm install/upgrade时候,可以使用不同的value。
   
配置选项:
基于Helm和Operator的K8S应用管理的分享

基于Helm和Operator的K8S应用管理的分享

$ helm install --set image.tag=latest ./demoapp
$ helm install -f stagingvalues.yaml ./demoapp
  
比如说你可以set某个单独的变量,你可以用整个File去做一个部署,它会用你现在的配置覆盖掉它的默认配置。因此我们可以在不同的团队之间,直接用不同的配置文件,并用同样的应用包去做应用管理。Chart.yaml即chart的元数据,描述的就是这个chart包的信息。

基于Helm和Operator的K8S应用管理的分享

基于Helm和Operator的K8S应用管理的分享
另外还有一些文档的说明,例如NOTES.txt,一般放在templates里面,它是在你安装或者说你察看这个部署详情之时(helm status),自动列出来的。通常会放一些部署了的应用和如何访问等一些描述性的信息。
 
基于Helm和Operator的K8S应用管理的分享

 
除了模板以外,Helm chart的另一个作用就是管理依赖。

基于Helm和Operator的K8S应用管理的分享
基于Helm和Operator的K8S应用管理的分享
 
比如说你部署一个Wordpress,它可以依赖一些数据库服务。你可以把数据库服务作为一个chart形式,放在一个依赖的目录下面。这样的话应用之间的依赖管理就可以做的很方便了。
假如现在已经创建了我们自己的应用包,想要有一个仓库去管理这个包,在团队之间共享应该怎么做?
  
chart的仓库其实就是一个HTTP服务器。只要你把你的chart以及它的索引文件放到上面,在Helm install的时候,就可以通过上面的路径去拿。
  
Helm工具本身也提供一个简单的指令,叫Helm serve,帮你去做一个开发调试用的仓库。
  
例如 https://example.com/charts 的仓库目录结构:
基于Helm和Operator的K8S应用管理的分享

  
关于 Helm,社区版其实已经有了很多的应用包,一般放在K8S下面的一些项目中,比如安装Helm时候,它默认就有一个Stable的项目。里面会有各种各样的应用包。Stable和incubator chart 仓库:https://github.com/kubernetes/charts
  
另外,社区版还会提供类似于Rancher Catalog应用商店的这样一个概念的UI,你可以在这上面做管理。它叫Monocular,即单筒望远镜的意思,这些项目的开发都非常的活跃,一直在随着K8S的迭代做着更新。
  
Monocular: chart的UI管理项目:https://github.com/kubernetes-helm/monocular

基于Helm和Operator的K8S应用管理的分享

 
那么怎么去部署K8S版的应用商店呢?其实也非常简单。因为有了Helm之后,你只要使用Helm install这个Monocular,先把它的仓库加进来,再install一下,就可以把这个应用部署到你的K8S集群之中了。它其实也是利用了Helm Tiller去做部署。我们可以在上面去搜索一些chart,管理你的仓库,例如官方的stable,或者是incubator里面的一些项目。

基于Helm和Operator的K8S应用管理的分享

  
你也可以管理一些已经部署的应用。比如说你要搜索一个应用,点一下部署,就可以把它部署上去了。不过这其中还有很多亟待完善的东西,比如这里的部署不能配置各种不同的参数,它只能输入namespace。其次,里面的一些管理依然存在局限性,比如不能很方便地在UI上做更新。
  
围绕Helm chart我们也会跟一些公有云厂商有相关的合作。因为Helm chart的好处就是:一个应用包可以在多个地方部署。比如公有云的服务,可以基于它去实现应用的编排和管理,把一个服务便利地提供给不同的用户。Rancher也会在2.0的应用商店中加入对helm chart的支持,希望帮助用户在方便利用已有模板的同时提供良好的体验。
  
在stable的仓库里面已经有很多chart,其实并不是特别完善,还有很多应用是可以补充和增强的。就我们的实践经验来说,什么都可以chart化,不管是分布式的数据库集群,还是并行计算框架,都可以以这样的形式在K8S上部署和管理起来。
  
另外一点就是Helm是插件化的,helm的插件有Helm-templates, helm-github,等等。
  
比如你在Helm install的时候,它可以调用插件去做扩展。它没有官方的仓库,但是已经有一些功能可用。其实是把Restless/release的信息以及你的chart信息以及Tiller的连接信息交给插件去处理。Helm本身不管插件是用什么形式去实现的,只要它是应用包,则对传入的这些参数做它自己的处理就行。
  
Helm的好处,大概就有这些:
• 利用已有的Chart快速部署进行实验
• 创建自定义Chart,方便地在团队间共享
• 便于管理应用的生命周期
• 便于应用的依赖管理和重用
• 将K8S集群作为应用发布协作中心
  

二、Operator

  
我们接下来说说Operator。为什么讲Operator呢?Operator其实并不是一个工具,而是为了解决一个问题而存在的一个思路。什么问题?就是我们在管理应用时,会遇到无状态和有状态的应用。管理无状态的应用是相对来说比较简单的,但是有状态的应用则比较复杂。在Helm chart的stable仓库里面,很多数据库的chart其实是单节点的,因为分布式的数据库做起来会较为麻烦。
  
Operator的理念是希望注入领域知识,用软件管理复杂的应用。例如对于有状态应用来说,每一个东西都不一样,都可能需要你有专业的知识去处理。对于不同的数据库服务,扩容缩容以及备份等方式各有区别。能不能利用K8S便捷的特性去把这些复杂的东西简单化呢?这就是Operator想做的事情。
  
以无状态应用来说,把它做成一个Scale UP的话是比较简单的:扩充一下它的数量就行了。
 
基于Helm和Operator的K8S应用管理的分享
基于Helm和Operator的K8S应用管理的分享

   

接着在deployment或者是说ReplicaSet的controller中,会去判断它当前的状态,并向目标状态进行迁移。对有状态的应用来说,我们常常需要考虑很多复杂的事情,包括升级、配置更新、备份、灾难恢复、Scale调整数量等等,有时相当于将整个配置刷一遍,甚至可能要重启一些服务。
   
比如像Zookeeper315以前不能实时更新集群状态,想要扩容非常麻烦,可能需要把整个节点重启一轮。有些数据库可能方便一点,到master那里注册一下就好。因此每个服务都会有它自己的特点。
  
拿etcd来说,它是K8S里面主要的存储。如果对它做一个Scale up的话,需要往集群中添加一些新节点的连接信息,从而获取到集群的不同Member的配置连接。然后用它的集群信息去启动一个新的etcd节点。
  
如果有了etcd Operator,会怎么样?Operator其实是CoreOS布道的东西。CoreOS给社区出了几个开源的Operator,包括etcd,那么如何在这种情况下去扩容一个etcd集群?
  
首先可以以deployment的形式把etcd Operator部署到K8S中。部署完这个Operator之后,想要部署一个etcd的集群,其实很方便。因为不需要再去管理这个集群的配置信息了,你只要告诉我,你需要多少的节点,你需要什么版本的etcd,然后创建这样一个自定义的资源,Operator会监听你的需求,帮你创建出配置信息来。
  
$ kubectl create –f etcd-cluster.yaml
基于Helm和Operator的K8S应用管理的分享
 
 
要扩容的话也很简单,只要更新数量(比如从3改到5),再apply一下,它同样会监听这个自定义资源的变动,去做对应的更新。
  
$ kubectl apply -f upgrade-example.yaml

基于Helm和Operator的K8S应用管理的分享

这样就相当于把以前需要运维人员去处理集群的一些工作全部都交付给Operator去完成了。如何做到的呢?即应用了K8S的一个扩展性的API——CRD(在以前称为第三方资源)。
  
在部署了一个etcd Operator之后,通过kubernetes API去管理和维护目标的应用状态。本质上走的就是K8S里面的Controller的模式。K8S Controller会对它的resource做这样的一个管理:去监听或者是说检查它预期的状态,然后跟当前的状态作对比。如果其中它会有一些差异的话,它会去做对应的更新。
  
Kubernetes Controller 模式:

基于Helm和Operator的K8S应用管理的分享

  
etcd的做法是在拉起一个etcd Operator的时候,创建一个叫etcd cluster的自定义资源,监听应用的变化。比如你的声明你的更新,它都会去产生对应的一个事件,去做对应的更新,将你的etcd集群维护在这样的状态。
  
除了etcd以外,社区比如还有普罗米修斯Operator都可以以这种方便的形式,去帮你管理一些有状态的应用。
  
值得一提的是,Rancher2.0广泛采用了Kubernetes-native的Controller模式,去管理应用负载乃至K8S集群,调侃地说,是个Kubernetes operator。
 

三、Helm和Operator的对比

  
这两个东西讲完了,我们来对比一下二者吧。
   
Operator本质上是针对特定的场景去做有状态服务,或者说针对拥有复杂应用的应用场景去简化其运维管理的工具。Helm的话,它其实是一个比较普适的工具,想法也很简单,就是把你的K8S资源模板化,方便共享,然后在不同的配置中重用。
  
其实Operator做的东西Helm大部分也可以做。用Operator去监控更新etcd的集群状态,也可以用定制的Chart做同样的事情。只不过你可能需要一些更复杂的处理而已,例如在etcd没有建立起来时候,你可能需要一些init Container去做配置的更新,去检查状态,然后把这个节点用对应的信息给拉起来。删除的时候,则加一些PostHook去做一些处理。所以说Helm是一个更加普适的工具。两者甚至可以结合使用,比如stable仓库里就有etcd-operator chart。
  
就个人理解来说,在K8S这个庞然大物之上,他们两者都诞生于简单但自然的想法,helm是为了配置分离,operator则是针对复杂应用的自动化管理。

helm-operator入门:使用Flux Helm Operator管理Helm版本 立即下载

相关推荐

ads传统功放设计笔记(3)

传统功放设计的流程一般包括以下这些步骤: 1、明确设计目标 2、选择功放管子 3、确定静态工作点 4、设计偏置电路 5、判断稳定性 6、负载与源牵引 7、输入输出阻抗匹配 8、原理图优化 9、大信号仿真 10、版图设计 11、版图联合仿真 12、pcb设计 第二节我们设计仿真了功放的原理图。之后我们需要对版图进行设计和仿真。 10、版图设计 首先将S参数控件都打叉,还要去掉电源、源负载阻抗、地、芯片、电容。在原先电容和芯片的位置加上gap,设置好长度和间隔。之后在电源引脚、输入输出引脚和隔离的两端加上端口。

qq_40995480的博客 6025

helm和operator 含十分钟弄懂

原文链接:https://zhuanlan.zhihu.com/p/151306450 HELM 是干什么的 ? 在K8S CLUSTER里安装一个应用比较麻烦,需要定义POD YAML, Deployment YAML, SeviceAccount, Secret, Configmap等等很麻烦, HELM通过一个叫HELM CHART的东西把这些打包了,方便部署应用。HELM 是K8S的包管理工具,类似 apt与ubuntu的关系。 Operator则是更加高级的自定义controller资源等

yuezhilangniao的博客 3052

Mooncake架构:基于KVCache解耦的LLM推理优化方案

在大语言模型推理中,KVCache是Transformer解码过程中用于缓存历史Key/Value向量的核心数据结构,它避免了序列重复计算,但会随上下文长度线性增长,成为显存占用的主要部分。其原理是在自回归生成时,将已计算过的注意力键值对存储下来,供后续Token生成时直接使用,从而提升计算效率。这项技术的核心价值在于,通过高效管理KVCache,可以显著降低长序列推理时的显存压力,提升GPU资源利用率。在实际应用场景中,尤其是在处理长上下文对话、高并发请求时,KVCache的管理策略直接决定了服务的吞吐量

weixin_35753431的博客 530

k8s笔记——helm chat与k8s Operator区别

Kubernetes 中的自定义资源是对 Kubernetes API 的扩展,它使向 Kubernetes 集群添加默认情况下不可用的功能成为可能。您可以通过创建自定义资源定义(CRD)来实现这一点。如果要使用 Kubernetes Operator 来安装或管理应用程序,您可以创建实现该应用程序所需功能的 CRD。如果您随后将 CRD 与 Operator 的控制器组合,Kubernetes 控制器例程将检测并部署它。有时,使用 Operator 而不是 Helm 并没有明确的优势,反之亦然。

mirana的专栏 1968

基于CANoe的车载以太网测试

以太网测试 CANoe

Yafet 4547

Seafile搭建以及onlyoffice在线办公

部署seafile docker-compose.yml 如下: 参考此篇文章 version: '2.0' services: db: image: mariadb:10.1 container_name: seafile-mysql environment: - MYSQL_ROOT_PASSWORD=db_dev # mysql root的密码,同时修改 seafile的DB_ROOT_PASSWD与这个一致 - MYSQL_LOG_CONSOLE

dwdcth的专栏 4656

基于Helm和Operator的K8S应用管理

大家好,今天我们分享的内容是基于Helm和Operator的K8S应用管理。我们知道,Kubernetes基于服务粒度提供了多种资源描述类型。描述一个应用系统尤其是微服务架构系统,需要组合使用大量的Kubernetes资源。针对有状态应用,常常还需要复杂的运维管理操作以及更多的领域知识。今晚的分享就将介绍如何用Helm这一Kubernetes应用包管理的社区主导方案来简化应用的部署管理,如何制作应...

Rancher 700

艾德克斯电子负载IT8510维修

2年前从朋友那收了这台艾德克斯电子负载,收来的时候上面的编码器就不好用,就是旋转的时候一会增加一会减小这种现象,不过其他功能都是正常的,自己也就将就用这。直到昨天,电子负载开机发现空载的时候电压不是0,开始有mV级的跳动,心想这个不正常。又测试了一下恒流功能,已经不能正常工作了。

mainbanp 4650

Helm vs Operator

Helm vs Operator Kubernetes提供声明式API对标准对象进行生命周期管理,例如Deployment,Pod,Service以及ConfigMap等。基于这种原子能力,开发人员可以自由组合各种对象,以Yaml,Json等格式文件进行定义,构建自己的业务应用。 随着应用自身的复杂度增加,依赖条件变多,部署环境的多样性,这种原始的声明式API使用方式显得低效且不够灵活;另外,在应用与声明式API之间缺少一个构建标准,也不利于应用的共享,分发,以及应用市场的发展。Helm和Operator应

u013291525的博客 2742

基于粒子群算法的PID控制器优化设计

粒子群算法、PID、寻优

qq_46107700的博客 2万+

医疗AI知识库更新慢?提示工程架构师用Agentic AI自动更新的策略

我们的目标是用Agentic AI替代传统更新流程中的“重复劳动”,让医疗知识库(以知识图谱为例)能自动跟踪最新医学进展,把“更新周期从数月缩短到数天”。从PubMed/指南数据库自动抓取新文献;用提示工程从文本中提取结构化医学知识;自动校验新知识与旧知识的冲突;将通过校验的知识写入知识图谱。拆问题:先讲医疗知识库更新慢的3大根源;给方案:用Agentic AI设计4个“小助手”解决问题;讲原理:每个小助手的工作逻辑+提示工程技巧;做实战。

AI 原生应用开发的博客 1061

圣诞专场回顾 | “K8S Sail!”系列技术沙龙深圳站

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33856370的博客 146

【腾讯小龙虾WorkBuddy专栏01】初识WorkBuddy!定位、核心优势、功能界面全解析

【腾讯小龙虾WorkBuddy专栏01】初识WorkBuddy!定位、核心优势、功能界面全解析

AI人人懂 3817

Kubernetes 进阶与实战

1. Kubernetes 高级概念自定义资源定义(Custom Resource Definitions, CRDs):CRDs 允许用户扩展 Kubernetes API,定义新的资源类型。这对于需要管理非标准资源(如数据库实例、CI/CD 管道等)的场景非常有用。通过定义 CRD,可以创建、读取、更新和删除这些自定义...

weixin_41542222的博客 184

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Operator SDK Helm Operator 实战:memcached Helm Chart 部署、配置与升级指南

本指南围绕 Operator SDK 仓库中随 Helm Operator 示例一并提供的 memcached Helm Chart(位于 [testdata/helm/memcached-operator/helm-charts/memcached](https://link.gitcode.com/i/58a648a34c162e844f33ef0542705c7d)),完整讲解其安装、卸载、

gitblog_00971的博客 752

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Meshery Operator 深度解析:Meshery 中管理 Broker 与 MeshSync 的 Kubernetes Operator

本文以 Meshery 官方架构文档 `concepts/architecture/operator` 为核心,系统讲解 Meshery Operator 的定位、与 Meshery Server 的安装/升级协作机制、两个核心 CRD 的调和(Reconcile)模型、Broker/MeshSync 控制器的实现细节、Broker 端点推导规则,以及日常运维命令与故障排查路径。结合仓库内的 He

gitblog_00676的博客 987

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Prometheus Operator Admission Webhook Helm Chart 实战指南:校验、变更与证书管理全解析

本文以 Prometheus Community 的 `prometheus-operator-admission-webhook` Helm Chart(当前仓库版本 0.44.2,应用版本 0.94.1)为对象,系统讲解该 Webhook 如何为 PrometheusRule 与 AlertmanagerConfig 提供语义校验、注解类型变更与版本转换能力,并深入剖析 Chart 的三种证书

gitblog_00752的博客 924

Operator SDK Helm Operator 设计解析:从 Proposal 到实现的 Helm 类型 Operator 框架

Helm Operator 是 Operator SDK 三大 Operator 类型(Go、Ansible、Helm)之一,它把 Helm 的模板引擎与发布管理能力内嵌进 operator 的常驻调谐循环(reconciliation loop),让 Chart 开发者无需编写 Go 代码即可把任意 Helm Chart 包装成生产可用的 Operator。本文以仓库内设计提案 [proposa

gitblog_01112的博客 454

Bitnami Helm Chart 实战:kube-arangodb Operator 在 Kubernetes 中部署与管理 ArangoDB 集群

本文基于当前仓库 [bitnami/kube-arangodb](https://link.gitcode.com/i/68f4ee93006a0e0890503cb4159a94c3) 的 Bitnami Secure Images Helm Chart 文档,系统讲解如何通过 Helm 将 ArangoDB Kubernetes Operator(kube-arangodb)部署到 Kuber

gitblog_00839的博客 344

Kubernetes 上的 MinIO 部署实战:Helm + MinIO Operator v6.0.3全流程指南

在k8s 1.30+ 使用helm部署最新版minio operator v6.0.3

游走在技术边缘 1935

基于 Operator SDK 构建 Helm Operator 实战指南:从项目初始化到 CR 驱动的应用编排

Helm Operator 是 Operator SDK 支持的一种 Operator 形态:它不要求你手写控制器代码,而是把每个自定义资源(CR)当作一次 Helm Release 的“实例化”,用 CR 的 `spec` 直接覆盖 Helm Chart 的 `values`。本文以官方教程([tutorial.md](https://link.gitcode.com/i/d3f032c116d

gitblog_06849的博客 204
上一篇: Helm Hooks 的使用
下一篇: Helm 命名模板的使用
hxpjava1
博客等级 码龄19年 1365粉丝 511原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值