在离线环境中使用sealos工具快速部署一套高可用的k8s服务集群

项目基础信息

在内部网络的离线环境中,通过使用sealos工具自动化部署一套高可用的k8s服务集群,配置使用NFS共享存储,以及搭建了一个Docker Registry本地镜像仓库的服务。

近期因工作所需,不得已又捡起放下了几年的k8s,在多方咨询后,确认sealos工具是可以满足我们部署一套高可用k8s服务集群需求的,也不致于影响到后续的长期运行维护与故障处理,于是使用了几天时间部署、验证并整理出这样一篇技术资料,发与大家共享。

工具版本

  • sealos v4.3.7
  • 集群镜像版本 labring/kubernetes:v1.27.16

测试环境

操作系统版本为RHEL7.9 64
测试机信息如下:

  • 172.16.10.52 k8s master节点
  • 172.16.10.53 k8s master节点
  • 172.16.10.54 k8s master节点
  • 172.16.10.55 k8s worker节点
  • 172.16.10.56 k8s worker节点
  • 172.16.10.57 k8s worker节点
  • 172.16.10.63 NFS共享节点
  • 172.16.10.64 docker image仓库

需要注意的是容器默认使用/var/lib作为数据存储路径,在开始安装服务前,务必检查下各主机节点的数据盘空间分配使用,或者是直接挂载到/var/lib路径,或者是将数据盘空间追加到/var分区均可。

在k8s集群所有主机节点上增加/etc/hosts映射配置如下:

cat << EOF >> /etc/hosts
172.16.10.52 test-APP-10-52
172.16.10.53 test-APP-10-53
172.16.10.54 test-APP-10-54
172.16.10.55 test-APP-10-55
172.16.10.56 test-APP-10-56
172.16.10.57 test-APP-10-57
EOF

下载资源文件

需要先找一个能访问互联网的linux主机,下载需要的资源文件。拷贝到内网中离线使用。

下载sealos二进制命令文件

以下命令均使用root用户执行。

VERSION=v4.3.7
export VERSION
wget https://mirror.ghproxy.com/https://github.com/labring/sealos/releases/download/${VERSION}/sealos_${VERSION#v}_linux_amd64.tar.gz

查看下载的文件:

ls -lh
-rw-r--r--. 1 root root  61M Oct 31  2023 sealos_4.3.7_linux_amd64.tar.gz

下载k8s安装镜像和组件资源

以下命令均使用root用户执行。

在有网络的环境中导出集群镜像:

sealos pull registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.16
sealos save -o kubernetes.tar registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.16

sealos pull registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4
sealos save -o helm.tar registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4

sealos pull registry.cn-shanghai.aliyuncs.com/labring/calico:v3.26.1
sealos save -o cilium.tar registry.cn-shanghai.aliyuncs.com/labring/calico:v3.26.1

sealos pull registry.cn-shanghai.aliyuncs.com/labring/ingress-nginx:v1.11.2
sealos save -o ingress-nginx.tar registry.cn-shanghai.aliyuncs.com/labring/ingress-nginx:v1.11.2

sealos pull registry.cn-shanghai.aliyuncs.com/labring/nfs-subdir-external-provisioner:v4.0.18
sealos save -o nfs-subdir-external-provisioner.tar registry.cn-shanghai.aliyuncs.com/labring/nfs-subdir-external-provisioner:v4.0.18

下载docker离线安装包

https://download.docker.com/linux/static/stable/x86_64/docker-20.10.24.tgz

下载Docker Registry容器镜像

找一个可以访问互联网的docker容器,执行下面命令下载并导出一份容器镜像文件:

docker pull registry
docker images
docker save IMAGE_ID > registry.tar

将上面下载的各种资源文件,拷贝到内网中做离线部署使用。

NFS共享配置

我们测试环境中没有nas共享网盘资源,所以在搭建该测试服务时改为使用一台测试机自行搭建一个NFS共享服务,管理信息如下:

  • 测试机地址 :172.16.10.64
  • 文件系统共享路径:/nfsdata

在这里跳过怎么配置上述linux系统下的nfs共享服务了,有不明白的可自行查找参考资料。
需要特别注意的一点是,需要调整nfs共享路径的属主权限如下:

## nfs 目录权限问题,执行命令修改权限:
chown nfsnobody:nfsnobody /nfsdata

coredns服务的DNS解析配置

由于目前测试环境没有dns解析服务,coredns容器会因找不到dns server而启动失败,解决方法有两种:
1)在k8s集群所有测试机上手工配置一条dns server地址
cat << EOF >> /etc/resolv.conf
nameserver 114.114.114.114
EOF

对于无法访问互联网的测试机来说,其实上面的nameserver地址可以随便写一个即可。需要注意的是,还需要手工修改下测试机网卡配置文件,增加DNS1=114.114.114.114的配置内容,以防测试机重启后会丢失resolv.conf中的配置信息。

2)执行命令kubectl edit cm coredns -n kube-system
在configmap配置文件中删除以下内容:


                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值