zoukankan      html  css  js  c++  java
  • kubespray部署升级K8S方案手册

    Kubespray

    1.   Kubespray版本介绍

    1.1 版本区别

    Kubespray版本

    默认支持最低K8S版本

    默认支持最高K8S版本

    kubernetes二进制文件

    release-2.12

    v1.15.0

    v1.17.0

    Kubeadm,kubelet,kubectl

    release-2.11

    v1.14.0

    v1.15.11

    Hyperkube,kubeadm

    release-2.10

    v1.12.0

    v1.14.6

    Hyperkube,kubeadm

    release-2.9

    v1.12.0

    v1.14.0

    Hyperkube,kubeadm

    release-2.8

    v1.10.0

    v1.12.7

    Hyperkube,kubeadm

    release-2.7

    v1.10.0

    v1.11.3

    Hyperkube,kubeadm

    1.2 总结

    Kubespray release-2.12 以下版本均需要下载hyperkube二进制文件。

    2. Kubespray国内在线部署K8S升级方案

    2.1 修改docker-ce Yum源

    目标部署主机上设置 docker-ce yum源

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    2.2 kubespray配置修改

    2.2.1 修改镜像下载与二进制文件下载地址

    由于镜像和二进制资源均为国外的资源,我们需要修改download下的资源地址。

    文件路径为:/root/kubespray/roles/download/defaults/main.yml

     

    2.2.1.1 修改镜像地址为Azure中国镜像

    原文件:

     

    修改后:

     

    2.2.2.2 修改二进制文件地址为本地HTTP服务器地址

    原文件:

     

    修改后:

     

    2.2.2 ETCD高可用配置修改

    yml文件路径:
    ~/kubespray/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml

     

    2.2.3 docker 本地yum安装源文件拷贝

    待处理

     

    2.3 K8S默认部署配置修改

    根据实际情况修改
    /root/kubespray/roles/kubespray-defaults/defaults/main.yml

    如kube_service_addresses,kube_pods_subnet

     

    2.4 配置inventory文件

    2.4.1 拷贝inventory.ini模板文件

    cp –r /root/kubespray/inventory/sample/inventory.ini /root/kubespray/

    2.4.2 根据要求修改inventory.ini文件

     

    2.5 Ansible主机上设置免密码操作其它主机

    2.5.1生成ssh公钥和私钥

    ssh-keygen

     

    2.5.2建立ssh通道,将秘钥分发给主机

    ssh-copy-id root@192.168.56.20

     

    2.6 k8s集群部署

    目标版本:v1.13.1

    Kubespray版本:2.10

    2.6.1 进入kubespray目录

    cd kubespray

    2.6.2 执行部署命令

    ansible-playbook cluster.yml -b -i inventory.ini -e kube_version=v1.13.1 -vvv

    2.7 k8s集群升级

    Kubespray 升级k8s是利用kubeadm进行升级,kubeadm目前支持跨越一个版本的,如1.13的只支持升到1.14,1.14只能升到1.15。

    可升级列表:

    a)   Docker

    b)   Etcd

    c)   kubelet and kube-proxy

    d)   network_plugin (Calico 或flannel)

    e)   kube-apiserver, kube-scheduler, and kube-controller-manager

    f)   Add-ons (KubeDNS)

    2.7.1 组件升级

    2.7.1.1 升级 docker

    ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=docker

    2.7.1.2 升级 etcd

    ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=etcd

    2.7.1.3 升级 vault

    ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=vault

    2.7.1.4 升级 kubelet

    ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=node --skip-tags=k8s-gen-certs,k8s-gen-tokens

    2.7.1.5 升级 Kubernetes master 组件

    ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=master

    2.7.1.6 升级 network plugins

    ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=network

    2.7.1.7 升级 all add-ons:

    ansible-playbook -b -i inventory/sample/hosts.ini cluster.yml --tags=apps

    2.7.2 k8s集群整体版本升级

    2.7.2.1 升级背景

    版本变化:v1.13.1 -> v1.15.3

    原始版本:v1.13.1  部署环境:kubespray2.12版本以下部署

    目标版本:v1.15.3  部署环境:kubespray所有版本应均可以部署(暂测试2.10,2.12)

    升级计划:使用kubespray2.10 将k8s v1.13.1 升至 v1.14.3

              使用kubespray2.12 将k8s v1.14.3 升至 v1.15.3

    2.7.2.2 具体步骤
    2.7.2.2.1 配置kubespray 2.10

    参考步骤2.2~2.4

    2.7.2.2.2 将K8S升级至v1.14.3
    1. cd kubespray-2.10
    2. ansible-playbook upgrade-cluster.yml -b -i inventory.ini -e kube_version=v1.14.3 –vvv
    2.7.2.2.3 配置kubespray 2.12

    参考步骤2.2~2.4

    2.7.2.2.4 将K8S升级至v1.15.3
    1. cd kubespray-2.12
    2. ansible-playbook upgrade-cluster.yml -b -i inventory.ini -e kube_version=v1.15.3 –vvv

    3.     Kubespray内网部署升级K8S方案

    3.1    docker-ce 本地yum源配置

    部署主机上配置本地的yum源

    3.2    kubespray配置修改

    参考2.2将各地址配置成本地docker镜像仓库,及本地的http文件下载服务器的地址

    3.2.1   目标部署主机配置docker镜像源

    vim /etc/docker/daemon.json

     

    3.2.2   ETCD高可用配置修改

    参考2.2.2

    3.3    K8S默认部署配置修改

    参考2.3

    3.4    配置inventory文件

    参考2.4

    3.5    Ansible主机上设置免密码操作其它主机

    参考2.5

    3.6    k8s集群部署

    参考2.6

    3.7    k8s集群升级

    参考2.7

  • 相关阅读:
    修改IIS下默认的ASP.NET版本。
    smo算法
    支持向量机通俗导论
    二次规划
    交叉熵
    机器学习中的维数灾难
    矩阵与线性变换
    l2正则化
    Matlab 的reshape函数
    matlab 等值线函数 contour
  • 原文地址:https://www.cnblogs.com/EthanSun/p/13652336.html
Copyright © 2011-2022 走看看