Administrator
Published on 2022-03-04 / 65 Visits
0
0

K8S搭建02-新增node节点

※1、基础机器内核检查升级

检查内核版本: uname -r

#上传kernel-4.9.220-37.el7.x86_64.rpm 更新包直接执行
  rpm -Uvh kernel-4.9.220-37.el7.x86_64.rpm
  grub2-set-default CentOS Linux (4.9.220-37.el7.x86_64) 7 (Core)
#安装完成reboot重启机器
 
#重启完机器删除旧的内核(如下为示例,以实际查出来的为准)
rpm -qa | grep kernel*
yum remove kernel-3.10.0-1160* -y

※2、检查机器是否安装过docker或kubernetes服务并卸载

# 2-1、卸载服务
kubeadm reset
 
# 2-2、删除rpm包
rpm -qa|grep kube*|xargs rpm --nodeps -e
 
# 2-3、删除容器及镜像
docker images -qa|xargs docker rmi -f
 
#2-4、移除dockr
sudo systemctl stop docker
yum list installed | grep docker
yum -y remove  docker****
rm -rf /var/lib/docker

※3、Install Docker By~18.09.5

#3-1、使用 root 权限登录 Centos。确保 yum 包更新到最新
sudo yum update
#3-2、卸载旧版本(如果安装过旧版本的话)
sudo yum remove docker  docker-common docker-selinux docker-engine
#3-3、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#3-4、设置yum源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#3-5、可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
#3-6、安装docker
yum -y install docker-ce-18.09.7 docker-ce-cli-18.09.7 containerd.io
#3-7、启动并加入开机启动
sudo systemctl start docker
sudo systemctl enable docker
#3-8、验证安装是否成功(有Client和Server两部分表示docker安装启动都成功了)
docker version

※4、配置docker 镜像加速下载源

#4-1、配置docker 镜像加速源并修改docker cgroup driver为systemd(驱动程序)
 
vim /etc/docker/daemon.json
 
{
 "exec-opts": ["native.cgroupdriver=systemd"],
 "registry-mirrors": ["http://f1361db2.m.daocloud.io"],
 "log-driver": "json-file",
 "log-opts": {
 "max-size": "10m",
 "max-file": "5"
}
}
 
#4-2、重新加载配置:
systemctl daemon-reload
 
#4-3、设置docker开启自启:
systemctl enable docker
 
#4-4、重启docker:
systemctl restart docker

※5、机器基础环境配置

#5-1、设置主机名并刷新环境变量(请根据实际信息进行修改)
hostnamectl set-hostname kube-master***  && bash
 
#5-2、注意:每台k8s集群机器添加如下hosts信息 (请根据实际信息进行修改,并核对主机名与ip信息)
cat <<EOF >> /etc/hosts
192.168.168.194 k8s-master01
192.168.168.195 k8s-master02
192.168.168.196 k8s-master03
EOF
 
#5-3、时间同步,请根据机器使用设定NTP
略
 
#5-4、关闭selinux与设置开机不启动
setenforce 0  && sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
 
#5-5、关闭swap交换分区
swapoff -a &&  sed -i '/swap/s/^\(.*\)$/#\1/g'  /etc/fstab  
             
#5-6、设置内核参数net.bridge.bridge-nf-call-iptables  将桥接的IPv4流量传递到iptables的链(请核对配置信息是否有重复,并以本分配置为准进行修改)
vim /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_nonlocal_bind = 1
vm.swappiness=0
vm.max_map_count = 300000
 
#5-7、刷新系统参数
sysctl --system
 
#5-8、效验系统参数是生效
lsmod | grep br_netfilter
 
#5-9、安装ipvs 管理工具
yum install ipvsadm ipset -y
 
#5-10、 添加ipvs开启脚本,防止重启机器不生效
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
 #!/bin/bash
 modprobe — ip_vs
 modprobe — ip_vs_rr
 modprobe — ip_vs_wrr
 modprobe — ip_vs_sh
 modprobe — nf_conntrack_ipv4
 EOF
 
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
 
#5-11、验证ipvs模块是否开启
 lsmod | grep -e ip_vs -e nf_conntrack_ipv4

※6、Install k8s Command(每台机器都安装)

#6-1、配置kubenetes的yum仓库(阿里yum源)
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
EOF
 
#6-2、生成yum源缓存
yum makecache
 
#6-3、安装kubelat、kubectl、kubeadm
yum -y install kubelet-1.18.2 kubeadm-1.18.2 kubectl-1.18.2 --nogpgcheck #(kubectl可选)
rpm -aq kubelet kubectl kubeadm (查看安装软件)
systemctl enable kubelet (kubelet开机启动)
 
#6-4、验证信息
kubectl version  #校验是否安装成功

※7、 Node   Images pull

#7-1、node机器生成镜像拉取脚本 (国内机器请复制如下脚本执行,海外机器则直接docker pull 拉取  kube-proxy:v1.18.2 pause:3.2 coredns:1.6.7 三个镜像)
###注意此处为Node机器安装使用
cat <<EOF >for.sh
#!/bin/bash
images=(kube-proxy:v1.18.2 pause:3.2 coredns:1.6.7)
for imageName in ${images[@]} ; do
docker pull registry.aliyuncs.com/google_containers/$imageName
docker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
docker rmi registry.aliyuncs.com/google_containers/$imageName
done
EOF
 
#7-2、执行镜像拉取脚本
sh for.sh
 
#7-3、添加docker 支持80端口访问白名单,docker默认支持443协议仓库登入,请根据实际情况进行修改
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --insecure-registry=192.168.168.241 
 
#7-4、加载配置
systemctl daemon-reload
 
#7-5、重启docker 生效配置
systemctl restart docker 
 
#7-6、验证登入信息(此步骤为已安装好Harbor仓库使用)
docker login 192.168.168.241 -u k8s -p DDM54321ddm
 
#7-7、在master节点生成添加工作节点token 
kubeadm token create --print-join-command

#7-8、在机器运行节点加入如遇到失败则使用  kubeadm reset -f 重置节点

#7-9、在master验证节点是否正常
kubectl get nodes

Comment