导出相关binary制作k8s本地包,并使用本地包的方式安装启动

关闭交换区:

sudo swapoff -a

sudo swapon --show

sudo vi /etc/fstab, 注释掉/swap行

这次把我之前安装的k8s的包导出来保存。

cd /var/cache/apt/
ls kube*
cd ~ && mkdir k8sdbinstall
sudo cp *_1.23.17* kubernetes-cni, cri-tools ~/k8sdbinstall

 接下来保存相关的docker镜像, 使用docker save -o export.tar imageId/imageName:tagName保存多个镜像,

导出全部镜像,需要切换到su执行
#!/bin/bash
docker save $(docker images --format '{{.Repository}}:{{.Tag}}') -o allinone.tar

导入所有镜像
docker load -i allinone.tar

 此时打开allinone.tar使用tar -xvf allinone.tar, 看到所有镜像的排列,里面有repositories文件记录每个id对应的镜像名称

 全新安装:

打开一台新的vm, 上面没有安装任何东西

sudo vi /etc/hostname, 更改机名, 安装vim和ssh server以便其他机能scp给它, sudo apt install -y openssh-server

将docker20.10也放在一起:

 这样打包起来

回到空机,先安装docker: sudo apt install -y docker.io

 拷贝:

关闭ufw,sudo systemctl stop ufw.service:

 

 在空机上恢复: docker load -i allinone.tar

 dpkg -i *.deb

解决依赖: sudo apt -f install, 会删除不完整的安装,

还需要 cri-tools, 还有kubernetes-cni,这两个包也要放到保存, 按顺序安装 sudo dpkg -i kubernetes-cni,  然后cri-tools, 然后 kubectl, 然后 kubelet, 最后kubeadm

 安装完成

 此时运行join命令出错,缺少依赖socat,和conntrack,执行sudo apt --fix-broken install,

 之后, systemctl unmask kubelet.service, systemctl enable kubelet.service, 上一次token已经过期,这里要重新创建token,在空机上执行,

 在主机上查看节点

,至此k8s 采用本地空机binary安装包的形式安装配置完成

在master机上sudo kubectl get svc -A 查看 dashboard地址

 https://192.168.170.133:31020

sudo kubectl get secret -A|grep k8sadmin*找到dashboard的token,用于登陆!

所有机器编辑 /etc/fstab的挂载文件系统表文件,重启,再次查看,所有node迅速ready!

 

为node添加label选择器:

sudo kubectl label node k8s-node-clone1 env=prod

创建deployment:

在spec下添加行:

node-selector:

env: prod

 

posted @ 2023-11-11 14:39  calochCN  阅读(13)  评论(0编辑  收藏  举报