基于python3实现对k8s服务的更新发布

本篇目录链接


在这里插入图片描述

前置条件

1、已安装python3
2、k8s服务已发布
3、将k8s集群的认证配置文件拷贝到当前目录下

实现方法

cat k8s_svc_deploy.py

#!/usr/bin/env python3
# Description:update k8s service
# Author: wangkx
import sys
import subprocess
import yaml
import os
#前置条件,判断输入的参数是否满足脚本传参
if len(sys.argv) != 5:
    print('参数不匹配,请输入合理的参数,格式如下: %s ns_name svc_name image_version pod_replicats_num' % (__file__))
    sys.exit(51)
#传参
ns = str(sys.argv[1])
deploy = str(sys.argv[2])
image = str(sys.argv[3])
rs = int(sys.argv[4])
#导出svc的yaml文件生成模板
def cmd(cmd):
    code,result = subprocess.getstatusoutput(cmd)
    if code != 0:
        print("command not find")
        sys.exit(51)
    return code,result
code,result = cmd('kubectl --kubeconfig ./config  get deployment -n ' + ns + ' ' + deploy + ' -o yaml > deploy.tmp')

#读取yaml文件,根据传入的参数进行替换yaml模板中的参数
with open('deploy.tmp','r') as f:
    datas = yaml.load(f,Loader=yaml.FullLoader)
    datas['spec']['template']['spec']['containers'][0]['image'] = image
    datas['spec']['replicas'] = rs
#    datas['metadata']['namespace'] = ns
#    datas['metadata']['name'] = deploy
#将传入的参数写入到yaml模板中
with open('deploy.tmp','w') as f1:
    yaml.dump(datas,f1)
    
#部署到k8s
codes,result = cmd('kubectl --kubeconfig ./config apply -f  deploy.tmp')
if codes != 0:
    print('部署pod失败,请检查')
else:
    print('部署pod成功')

验证

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值