SuperMap iManager for K8s 离线环境镜像仓库 Containerd 部署

SuperMap iManager for K8s 的离线镜像仓库,如何使用 containerd 进行部署?一起来看看吧!

  • containerd:containerd.io 1.6.33
  • 操作系统:openEuler 24.03 (LTS-SP1)

1、下载镜像仓库包

  • 参考下方链接:入门 -> 安装部署 -> 部署iManager -> 可视化安装 -> 部署中心下载与安装 -> 获取安装包

https://help.supermap.com/iManager_K8S/1201/zh/GettingStarted/DownloadandInstall.htmhttps://help.supermap.com/iManager_K8S/1201/zh/GettingStarted/DownloadandInstall.htm

2、部署镜像仓库

  • 解压后进入 images 目录,导入 registry.tar(registry.tar 为镜像仓库镜像)
bash 复制代码
# 在 k8s.io 空间中导入 registry.tar,不加 -n k8s.io 则导入 default
ctr -n k8s.io image import registry.tar
# 验证镜像导入成功
ctr -n k8s.io image list |grep registry:2.6.0
  • 启动镜像仓库
bash 复制代码
# 启动镜像仓库
ctr -n k8s.io run -d  --mount type=bind,src=/data/supermap-imanager-for-kubernetes-registry-all-11.1.1-230920-121-linux-x64/images/imanager_registry,dst=/var/lib/registry,options=rbind:rw --net-host docker.io/library/registry:2.6.0 todel

# 查看容器启动成功
ctr -n k8s.io containers ls |grep todel

### ctr run 参数解释 ###
# -d:后台运行
# --mount xxx:卷挂载
# --net-host:使用主机网络模式
# docker.io/library/registry:2.6.0:镜像地址
# todel:容器名称

3、拉取镜像

  • docker 方式
bash 复制代码
# docker 方式
docker pull 172.16.13.95:5000/supermap/scratch:latest-amd64
  • ctr 方式
bash 复制代码
# ctr 方式
ctr image pull 172.16.13.95:5000/supermap/scratch:latest-amd64
# 使用 --hosts-dir 指定 registry 配置 
ctr image pull --hosts-dir /etc/containerd/certs.d 172.16.13.95:5000/supermap/scratch:latest-amd64
  • ps:常见报错
bash 复制代码
### 常见报错 ###
# 报错日志:"PullImage from image service failed" err="rpc error: code = Unknown desc = failed to pull and unpack image \"172.16.13.95:5000/supermap/scratch:latest-amd64\": failed to resolve reference \"172.16.13.95:5000/supermap/scratch:latest-amd64\": failed to do request: Head \"https://172.16.13.95:5000/v2/supermap/scratch/manifests/latest-amd64\": http: server gave HTTP response to HTTPS client" image="172.16.13.95:5000/supermap/scratch:latest-amd64"
# 原因:containerd 默认要求使用 HTTPS,但 registry 使用的是 HTTP,需要配置客户端以允许不安全的 registry
# 解决办法:
  ## 创建 hosts 目录配置(需根据实际镜像仓库地址修改)
sudo mkdir -p /etc/containerd/certs.d/172.16.13.95:5000
  ## 创建 hosts.toml 配置文件(需根据实际镜像仓库地址修改)
sudo tee /etc/containerd/certs.d/172.16.13.95:5000/hosts.toml > /dev/null <<EOF
server = "http://172.16.13.95:5000"
[host."http://172.16.13.95:5000"]
  capabilities = ["pull", "resolve"]
  skip_verify = true
EOF
  ## 重启 containerd
systemctl restart containerd
  ## 拉取镜像
ctr image pull --hosts-dir /etc/containerd/certs.d 172.16.13.95:5000/supermap/scratch:latest-amd64

4、其他

  • 若不再使用离线镜像仓库,可进行卸载
bash 复制代码
# 查看容器正在运行
ctr -n k8s.io containers ls |grep todel
# 停止容器
ctr -n k8s.io task kill todel
# 删除容器
ctr -n k8s.io container rm todel
# 验证容器删除完成
ctr -n k8s.io containers ls |grep todel
# 最后将安装目录删除即可
相关推荐
岁岁种桃花儿11 小时前
kubenetes从入门到上天系列第二十一篇:Kubernetes安装Ingress实战
云原生·容器·kubernetes
http阿拉丁神猫20 小时前
kubernetes知识点汇总19~24
云原生·容器·kubernetes
切糕师学AI21 小时前
K8s中的控制器模式(Controller Pattern)
容器·kubernetes
sanyii31313121 小时前
k8s工作负载-Deployment的参数与灰度发布
云原生·容器·kubernetes
道清茗21 小时前
【Kubernetes知识点问答题】常规维护管理操作 / ETCD 备份与恢复
docker·kubernetes·etcd
lpruoyu21 小时前
【云原生】Kubernetes平台存储系统搭建_CRI、CNI、CSI
ceph·云原生·容器·kubernetes
道清茗1 天前
【Kubernetes知识点问答题】Kustomize、CRD 与 Gateway API
容器·kubernetes·gateway
专注_每天进步一点点1 天前
流量从bcop网关到apisixroute,再到应用的gateway模块,再到其他服务
docker·kubernetes·gateway
龙飞051 天前
Kubernetes 疑难杂症:Pod 始终处于 Terminating 状态的真实原因与安全修复方案
安全·云原生·容器·kubernetes
MonkeyKing_sunyuhua1 天前
K8S执行MAC打出的本地镜像错误:exec /usr/local/bin/uvicorn: exec format error
macos·容器·kubernetes