k8s滚动升级_利用Operator技术打包Helm图表并部署到K8S集群中

前言

在“使用helm将复杂应用打包并部署到k8s集群中”这篇文章中我们用helm将应用打包为图表,而后通过其简化了部署流程,然而,helm对于基础安装(Basic Install)在行,虽支持无状态应用的无缝升级(Seamless Upgrades):替换镜像版本以利用K8S RC控制器的滚动升级特性,但其对于有状态应用却无能为力。

如若升级MySQL数据库,其是有状态的,故没法简单的替换程序版本来完成数据库升级,需执行一系列复杂的操作:使用mysqldump导出导入到新版本数据库,或采用原地升级方式执行脚本以更新数据库字典信息,这些复杂的逻辑对于helm来说无能为力,鉴于此,我们可将复杂的逻辑操作包装到operator中。

b345b4f4b6458e3d129b009108ec68c9.png

Operator提供了如上5个维度能力,其提供了”第一天“应用安装能力,也支持”第二天“应用升级维护、备份等全生命周期、深度分析、自巡航等特性。利用operator-sdk我们可将helm图表制成operator,使用ansible制作operator,亦或者用go语言开发operator。

为Helm图表创建Operator

当将helm图表制作为operator后,其并没有具备超出helm图表的能力,换言之,若helm图表支持基础安装与无缝升级,那么制作成operator后不会多出备份~~~~等全生命周期等特性,但operator具有一些额外的能力。

首先安装SDK客户端,可参考文档Install the Operator SDK CLI。

 RELEASE_VERSION=v0.18.1$ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu$ chmod +x operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu &&   sudo mkdir -p /usr/local/bin/ &&   sudo cp operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu        /usr/local/bin/operator-sdk &&   rm operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu$ operator-sdk versionoperator-sdk version: "v0.18.1"

若读者按照“使用helm将复杂应用打包并部署到k8s集群中”这篇文章配置并创建了helm图表与仓库,则执行如下命令对图表hello创建operator:

operator-sdk new hello-ope
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值