docker+jenkins+k8s集群搭建系列四、node节点安装k8s并加入集群

一、node节点配置前半部分和master的配置相同,我这里把命令列举出来,简单介绍,要看详细的解释可以翻看前两篇文章:
1、安装docker:

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io

2、设置镜像源,重启docker:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://i1el1i0w.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl start docker

3、修改主机名

hostnamectl set-hostname node01
more /etc/hostname

4、配置集群节点信息(集群搭建起来后所有节点包括master节点的这几行代码都是一模一样的):

cat >> /etc/hosts << EOF
101.201.***.235 master
39.105.***.167 node01
EOF

5、禁用swap,修改内核参数,

swapoff -a
sed -i.bak '/swap/s/^/#/' /etc/fstab
sysctl net.bridge.bridge-nf-call-iptables=1
sysctl net.bridge.bridge-nf-call-ip6tables=1
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf

6、设置k8s源(下面这是一行命令)

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

7、安装k8s

yum clean all
yum -y makecache
yum list kubelet --showduplicates | sort -r
yum install -y kubelet-1.18.1-0 kubeadm-1.18.1-0 kubectl-1.18.1-0

8、配置下载镜像的脚本:

cd /home/
mkdir k8s
cd k8s/
vim image.sh

9、打开的编辑器中贴入下面内容:

#!/bin/bash
url=registry.cn-hangzhou.aliyuncs.com/google_containers
version=v1.18.1
images=(`kubeadm config images list --kubernetes-version=$version|awk -F '/' '{print $2}'`)
for imagename in ${images[@]} ; do
docker pull $url/$imagename
docker tag $url/$imagename k8s.gcr.io/$imagename
docker rmi -f $url/$imagename
done

10、修改文件权限,下载镜像:

chmod 777 image.sh 
./image.sh

到这里就行了,node节点不需要初始化k8s
二、node节点加入集群
1、在master服务器上查看加入集群需要的令牌和加密串
①查看令牌:

kubeadm token list

红框圈起来的就是node节点加入master需要的令牌:
在这里插入图片描述
如果执行上面命令没有返回任何东西,请看这篇文章
②生成新的加密串

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
2、node节点加入集群

kubeadm join 172.***.***.216:6443 --token 令牌  --discovery-token-ca-cert-hash sha256:加密串

命令分析:
①包含星号的部分为你的master节点的内网IP(端口不用改)
②–token后面的是上一步在master服务器上查看到的令牌,注意令牌前后都有空格
③sha256后面的是上一步在master服务器生成的加密串sha256后面有个冒号(英文状态下的冒号)
命令执行完结果如下:在这里插入图片描述
这时候可以去master节点的服务器上执行命令:

kubectl  get node

看看node节点是否join到集群中,从下图可以看到,并不是在node节点执行完kubeadm join命令后,master节点上就能立即看到,我刷新了好多次,node节点一直是NotReady,然后我就耐不住性子在node节点上执行kubeadm reset重置节点信息了,刚重置完master节点上的集群信息就显示node节点已经Ready,可是我已经在node节点reset了,node节点信息马上又变成了NotReady,所以在note节点执行完join命令后要多等一会儿,不是实时的。
在这里插入图片描述
在node节点执行join命令,在master节点能看到对应的node节点为Ready,就说明node节点已经加入集群了。

多多练习

下篇文章,docker登录阿里云code,上传镜像,k8s通过yaml文件手动启动项目:

docker+jenkins+k8s集群搭建系列五、docker登录阿里云code,上传镜像

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值