k8s集群新增节点

如何动态的为k8s集群增加worknode节点?本文将详细介绍,kubeadm搭建k8集群详见 https://blog.csdn.net/wangqiubo2010/article/details/101203625

一、VMWare(xSphere) 安装Censtos7虚拟机。

具体安装步骤 请谷歌百度。

二、确定外网、与K8S集群网络是通的。

#1、测试与K8S集群的网络是否会互通,例如master节点的ip地址为 172.16.8.31。
ping 172.16.8.31

#2、测试与网络的互通性
ping www.baidu.com

三、安装yum、vim、wget。(如已安装,则跳过此步奏)

yum version
yum install -y vim
yum install -y wget

四、设置hosts、hostname。

  1. vim /etc/hostname,设置当前节点的hostname为 worknode6
  2. 修改当前节点的hosts文件,对集群hosts进行配置,如下图所示。
    vim /etc/hosts

  3. 重启当前主机,一定要重启才行。
     

    reboot
  4. 修改之前的k8s集群的主机hosts文件(所有的主机hosts均需要修改),增加当前加入的集群节点 即是 172.16.8.36 worknode6

四、关闭防火墙。

systemctl stop firewalld
setenforce 0

五、设置yum源。

#!/bin/bash
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sed -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo
yum makecache fast
yum install -y vim wget net-tools lrzsz
cd /etc/yum.repos.d
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

六、关闭Swap。

swapoff -a

注释掉配置

vim /etc/fstab

七、配置镜像源。

# 配置源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

八、安装kubeadm、kubectl、kubelet。

yum install -y kubelet-1.16.15-0 kubeadm-1.16.15-0 kubectl-1.16.15-0

测试kubectl 安装是否成功:

kubectl version

九、开机启动kubelet。

systemctl enable kubelet

 

十、安装docker。

  1. 查看当前可安装的docker版本。
    # 安装需要的软件包
    # yum-util 提供 yum-config-manager 功能, 另外两个是 devicemapper 驱动依赖
    yum install -y yum-utils device-mapper-persistent-data lvm2
    
    # 设置 yum 源
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
    yum list docker-ce --showduplicates | sort -r
  2. 安装docker。
    yum -y install docker-ce-18.06.3.ce-3.el7
  3. 检查docker安装是否成功。
    docker version
  4. 启动docker.
    #启动docker
    systemctl start docker 
    #设置开机启动docker
    systemctl enable docker

设置dockerd的镜像源。

#vim /etc/docker/daemon.json
{
        #"registry-mirrors":["https://m9r2r2uj.mirror.aliyuncs.com"],(阿里源)
        "registry-mirrors": ["http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn"],
        "insecure-registries" : [ "172.16.8.112:5000","172.16.8.139:5000" ]
}

其中 insecure-registries 定义的为私有镜像仓库的地址,例如172.16.8.112:5000是本人的私有registry,如下图所示。关于registry的的部署安装配置后续会单独用1个章节来讲解。

十一、设置网桥,以下命令必须执行,否则安装master和work节点会报错。

echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables
 

十二、拉取k8s在worknode节点所需要的镜像。

#查看k8s需要的插件信息
kubeadm config images list
#!/bash/bin
#worknode节点只拉取kube-proxy、coredns、pause,少于master
k8sversion=v1.16.15
dnsversion=1.6.2
# k8s
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:$k8sversion
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:$k8sversion k8s.gcr.io/kube-proxy:$k8sversion
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:$k8sversion

# coredns
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:$dnsversion
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:$dnsversion k8s.gcr.io/coredns:$dnsversion
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:$dnsversion

# pause
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1
docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1

十三、此节点加入集群。

  1. 获取加入集群的命令,以下 指令在master节点执行
    #token会过期,有效期为5分钟,以下指令在master节点执行
    kubeadm token create --print-join-command

此节点加入集群。

kubeadm join 172.16.8.31:6443 --token whihg6.utknhvj4dg3ndsv1     --discovery-token-ca-cert-hash sha256:5d2939c6d23cde6507e621cf21d550a7e083efd4331a245c2250209bdb110b89

十四、查看节点是否加入成功(master节点执行)。

kubectl get pod -nsit -owide

如果出现OnReady状态,则执行第 十五,即安装flannel插件。

十五、安装flannel插件(网络插件),执行前提详见 第 十四。

  1. 因flanneld的国外地址可能拉取部下来,则在hosts中增加以下数据。
    vim /etc/hosts
     
     
    #以下是增加的配置数据
    #199.232.4.133 raw.githubusercontent.com
    #199.232.68.133 raw.githubusercontent.com
  2. 安装flannel插件。
    # 获取flannel部署文件.
    wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    # 部署: 
    kubectl apply -f kube-flannel.yml
  3. 执行第 十四 步。

十六、worknode加入集群成功,如下图所示。

十七、k8s集群应用部署。(k8s集群搭建完毕,只是第一部,更重要的是在集群上部署应用,因此系统是Spring Cloud的微服务框架,以下只做简单介绍,关于k8s集群部署应用则将另外开几个篇幅进行系统介绍)。

  1. 执行部署的YAML文件。
    #切换到应用部署目录
    cd  /hostname/myself/k8s/ass
    #执行应用部署,此部署的为sit环境
    kubectl apply -k sit
  2. 如下图所示,ass系统已经成功部署在上面所新增的worknode节点worknode6上。

猜你喜欢

转载自blog.csdn.net/wangqiubo2010/article/details/113735285