v3.8.313
870 字
4 分钟
离线K8s_1)安装工具
本文主要针对离线部署的相关工具进行构建汇总安装
建议开始前先准备一台能够链接互联网的系统作为测试环境
测试环境 对工具进行下载、构建
更新阿里云镜像源并安装kubeadm、kubelet、docker
# kubeadm、kubelet版本我们选择1.28版本,docker版本选择24.0.0版本yum makecache && yum install -y kubeadm-1.28.0 kubelet-1.28.0 && yum install -y docker-ce-24.0.0# 查找工具yum list installed | grep docker # 查找docker组件yum list installed | grep kubernetes # 查找k8s组件# 查找对应依赖yum deplist xxx # 提前记录依赖包名yum install yum-plugin-downloadonly # 安装构建rpm包工具yum reinstall --downloadonly --downloaddir=/root xxx # 将相关工具及依赖包下载至/root目录下# 下载cri-dockerd作为工具间配合协作cd /root && wget <https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.2/cri-dockerd-0.3.2-3.el7.x86_64.rpm>yum localinstall -y ./cri-dockerd-0.3.2-3.el7.x86_64.rpm # 安装cri-dockerd工具# 编辑cri-dockerd服务配置vim /usr/lib/systemd/system/cri-docker.serviceExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// # 修改这段内容ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9 # 修改为这样检查工具的rpm包及依赖已经下载完成后,测试环境启动K8s与docker、cri-dockerd服务
systemctl enable docker && systemctl enable cri-docker && systemctl enable kubelet.service# 重启操作系统reboot# 重启后检查docker及cri-dockerd服务运行状态systemctl status docker # 验证存活systemctl status cri-docker # 验证存活# kubelet服务目前暂未初始化,服务应该是处于down的状态,不需要检查接下来,我们需要在测试环境初始化K8s所需的镜像
# 镜像初始化kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers --cri-socket# 初始化完成不会有反馈,需要以下命令检查初始化情况docker images# 创建镜像保存目录mkdir /root/kubernetes# 将下载的容器镜像保存到目录中,注意记录[IMAGE ID]编号,非常有用docker save [IMAGE ID] > /root/kubernetes/kube-apiserver.tardocker save [IMAGE ID] > /root/kubernetes/kube-scheduler.tardocker save [IMAGE ID] > /root/kubernetes/kube-controller-manager.tardocker save [IMAGE ID] > /root/kubernetes/kube-proxy.tardocker save [IMAGE ID] > /root/kubernetes/etcd.tardocker save [IMAGE ID] > /root/kubernetes/coredns.tardocker save [IMAGE ID] > /root/kubernetes/pause.tar# 之后可以在测试环境尝试搭建master节点,以部署flannel、calico网络插件容器、dashboard容器等# 用同样的方式导出容器镜像,在生产环境离线部署时会用到生产环境 离线部署Kubernetes
注意:离线部署也需要将基础环境进行调优
调优动作完成后,我们需要将测试环境下载在/root目录下的所有rpm包、下载在/root/kubernetes所有tar包上传至服务器进行本地化安装
# 假设上传位置与测试环境相同cd /rootyum localinstall -y ./* # 本地化安装kubeadm、kubelet、docker、cri-dockerdrpm -Uvh *.rpm --nodeps --force # 不考虑依赖的可以尝试这条命令安装# 同步修改cri-dockerd服务配置vim /usr/lib/systemd/system/cri-docker.serviceExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// # 将这段内容ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9 # 修改为这样# 启用服务systemctl enable docker && systemctl enable cri-docker && systemctl enable kubelet.service工具安装完成后我们需要离线导入容器镜像
cd /root/kubernetesdocker load < ./kubernetes/kube-apiserver.tardocker load < ./kubernetes/kube-scheduler.tardocker load < ./kubernetes/kube-controller-manager.tardocker load < ./kubernetes/kube-proxy.tardocker load < ./kubernetes/etcd.tardocker load < ./kubernetes/coredns.tardocker load < ./kubernetes/pause.tar# 容器镜像导入完成后,docker是不清楚容器信息的,所以我们得重新编写tagdocker tag [IMAGE ID] registry.aliyuncs.com/google_containers/kube-apiserver:v1.28.14docker tag [IMAGE ID] registry.aliyuncs.com/google_containers/kube-scheduler:v1.28.14docker tag [IMAGE ID] registry.aliyuncs.com/google_containers/kube-controller-manager:v1.28.14docker tag [IMAGE ID] registry.aliyuncs.com/google_containers/kube-proxy:v1.28.14docker tag [IMAGE ID] registry.aliyuncs.com/google_containers/etcd:3.5.9-0docker tag [IMAGE ID] registry.aliyuncs.com/google_containers/coredns:v1.10.1docker tag [IMAGE ID] registry.aliyuncs.com/google_containers/pause:3.9进行到此没有出现报错,工具的安装与控制平面镜像的部署算是完成了
接下来,我们需要对集群的部署进行操作
离线K8s_1)安装工具
https://cyber-mobile.net/posts/离线k8s_1安装工具/