# -*- coding: utf-8 -*-
# !/usr/bin/python
# 更新k8s系統
# https://github.com/kubernetes/kubernetes/releases
# 下载新的二进制包
# 參考: http://www.cnblogs.com/iors/p/9803015.html
# 适用于版本跨度不大,最好在第一个节点上先装一次,然后再批量操作
# 如果感到有用务必点个赞,如果遇到问题可以在此留言

import paramiko
import threading


def ssh2(ip, username, passwd, cmd):
    try:
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(ip, 22, username, passwd, timeout=5)
        for m in cmd:
            stdin, stdout, stderr = ssh.exec_command(m)
            #           stdin.write("Y")   #简单交互,输入 ‘Y’
            out = stdout.readlines()
            # 屏幕输出
            for o in out:
                print(o),
        print('%s\tOK\n' % (ip))
        ssh.close()
    except:
        print('%s\tError\n' % (ip))


def upgrade_k8s_master():
    cmd = ['echo hello!',
           "systemctl stop kube-apiserver",
           "systemctl stop kube-scheduler",
           "systemctl stop kube-controller-manager",
           "sleep 10",

           "wget -O /usr/local/kubernetes/bin/kube-apiserver http://10.110.18.92:8090/kube-apiserver",
           "wget -O /usr/local/kubernetes/bin/kube-controller-manager http://10.110.18.92:8090/kube-controller-manager",
           "wget -O /usr/local/kubernetes/bin/kube-scheduler http://10.110.18.92:8090/kube-scheduler",
           "wget -O /usr/local/kubernetes/bin/kubectl http://10.110.18.92:8090/kubectl",

           "sleep 10",

           "systemctl start kube-apiserver",
           "systemctl start kube-scheduler",
           "systemctl start kube-controller-manager",

           "systemctl status kube-apiserver",
           "systemctl status kube-scheduler",
           "systemctl status kube-controller-manager",

           ]  # 你要执行的命令列表
    username = "root"  # 用户名
    passwd = "123456"  # 密码
    print("Begin......")
    for i in range(12,19):
        ip = '10.10.10.' + str(i)
        a = threading.Thread(target=ssh2, args=(ip, username, passwd, cmd))
        a.start()


def upgrade_k8s_client():
    cmd = ['echo hello!',
           "systemctl stop kubelet",
           "systemctl stop kube-proxy",
           "sleep 10",

           "wget -O /usr/local/kubernetes/bin/kubelet http://10.110.18.92:8090/kubelet",
           "wget -O /usr/local/kubernetes/bin/kube-proxy http://10.110.18.92:8090/kube-proxy",

           "sleep 10",

           "systemctl start kubelet",
           "systemctl start kube-proxy",

           "systemctl status kubelet",
           "systemctl status kube-proxy"

           ]  # 你要执行的命令列表
    username = "root"  # 用户名
    passwd = "654321"  # 密码
    print("Begin......")
    for i in range(132, 197):
        if i in [141, 143, 133]:
            continue
        ip = '10.10.10.' + str(i)
        print(ip)
        a = threading.Thread(target=ssh2, args=(ip, username, passwd, cmd))
        a.start()


if __name__ == '__main__':
    upgrade_k8s_master()
    upgrade_k8s_client()

转载于:https://my.oschina.net/ois/blog/2878924

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐