如何动态的为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。
- vim /etc/hostname,设置当前节点的hostname为 worknode6
- 修改当前节点的hosts文件,对集群hosts进行配置,如下图所示。
vim /etc/hosts
-
重启当前主机,一定要重启才行。
reboot
-
修改之前的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。
- 查看当前可安装的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
- 安装docker。
yum -y install docker-ce-18.06.3.ce-3.el7
- 检查docker安装是否成功。
docker version
- 启动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
十三、此节点加入集群。
- 获取加入集群的命令,以下 指令在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插件(网络插件),执行前提详见 第 十四。
- 因flanneld的国外地址可能拉取部下来,则在hosts中增加以下数据。
vim /etc/hosts #以下是增加的配置数据 #199.232.4.133 raw.githubusercontent.com #199.232.68.133 raw.githubusercontent.com
- 安装flannel插件。
# 获取flannel部署文件. wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml # 部署: kubectl apply -f kube-flannel.yml
- 执行第 十四 步。
十六、worknode加入集群成功,如下图所示。
十七、k8s集群应用部署。(k8s集群搭建完毕,只是第一部,更重要的是在集群上部署应用,因此系统是Spring Cloud的微服务框架,以下只做简单介绍,关于k8s集群部署应用则将另外开几个篇幅进行系统介绍)。
- 执行部署的YAML文件。
#切换到应用部署目录 cd /hostname/myself/k8s/ass #执行应用部署,此部署的为sit环境 kubectl apply -k sit
- 如下图所示,ass系统已经成功部署在上面所新增的worknode节点worknode6上。