1. 在联网服务器拉取镜像并打包
- 访问Sealos源码下载二进制包,复制到联网服务器。
- 使用
tar xvf sealos_5.1.1_linux_amd64.tar.gz sealos解压,使用mv sealos /usr/local/bin/放到全局工具目录,使用sealos version验证生效。 - 访问Registry Explore网站确定
registry.cn-shanghai.aliyuncs.com/labring/kubernetes、registry.cn-shanghai.aliyuncs.com/labring/helm、registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller和registry.cn-shanghai.aliyuncs.com/labring/cilium的版本。 - 使用如下命令拉取远程镜像到本地(使用
sealos images查看本地镜像):1
2
3sealos pull registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.31.11 sealos pull registry.cn-shanghai.aliyuncs.com/labring/helm:3.19.2 sealos pull registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.14.19 - 使用如下命令将本地镜像打包(仅归档不压缩):
1
2
3sealos save -o kubernetes-v1.31.11.tar registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.31.11 sealos save -o helm-v1.19.2.tar registry.cn-shanghai.aliyuncs.com/labring/helm:v3.19.2 sealos save -o cilium-v1.14.19.tar registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.14.19 - 将镜像包复制到离线服务器(
master节点),所有离线服务器使用相同密码。
2. 在离线服务器装载镜像并安装
- 在离线服务器(
master节点)部署Sealos。 - 使用如下命令将镜像包装载为本地镜像(使用
sealos images查看本地镜像):1
2
3sealos load -i kubernetes-v1.31.11.tar sealos load -i helm-v1.19.2.tar sealos load -i cilium-v1.14.19.tar - 使用
sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.31.11 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.19.2 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.14.19 --masters 10.10.10.20 --nodes 10.10.10.21,10.10.10.22 -p L+ah204313805安装Kubernetes。 - 安装完成后使用
kubectl get node -o wide查看节点状态,使用kubectl get pod -A -o wide查看容器组状态(如果coredns没启动,有可能是/etc/resolv.conf为空导致coredns获取不到上游DNS信息)。 - 使用
cat .kube/config获取集群信息(如果server后边的信息不对需要先修改),在图形化界面导入即可管理集群。
3. 安装IngressNginxController
- 访问ingress-nginx-4.14.3.tgz源码下载二进制包,复制到离线服务器。
- 将
docker.1ms.run/dyrnq/kube-webhook-certgen:v1.6.7和docker.1ms.run/dyrnq/ingress-nginx-controller:v1.14.3推送到Harbor仓库。 - 使用
tar -zxvf ingress-nginx-4.14.3.tgz解压,使用vi ingress-nginx/values.yaml把registry:后边换成10.10.10.12。 - 使用
helm install ingress-nginx ingress-nginx --namespace ingress-nginx --create-namespace安装ingress-nginx-controller。
4. 解决证书过期问题
使用kubeadm certs check-expiration命令查看证书过期时间,会发现super-admin.conf的有限期只有一年,到期后可以使用如下脚本自动续期:
vi /usr/local/bin/renew-k8s-certs.sh
1 | |
chmod +x /usr/local/bin/renew-k8s-certs.sh
crontab -e
1 | |
5. Kubernetes基础操作
- 创建命名空间
loonzh:kubectl create namespace loonzh - 启动Pod(离线服务器需要提前加载镜像包):
kubectl run nginx -n loonzh --image=docker.1ms.run/nginx:1.29.6 - 查看Pod信息(
IP字段是容器的集群地址,可以用来访问Nginx欢迎页):kubectl describe pod nginx -n lonnzh - 启动Deployment(Deployment会守护Pod):
kubectl create deployment nginx -n loonzh --image=docker.1ms.run/nginx:1.29.6
vim nginx.yaml
1 | |