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
# 最后将安装目录删除即可
相关推荐
花酒锄作田17 小时前
Debian 13基于kubeadm和containerd部署单节点kubernetes
kubernetes·containerd·cilium
Dontla1 天前
Kubernetes流量管理双雄:Ingress与Gateway API解析(Nginx与Ingress与Gateway API的关系)
nginx·kubernetes·gateway
七夜zippoe1 天前
Kubernetes与Python微服务编排实战:从基础部署到自动扩缩容
python·微服务·kubernetes·service·hpa
Hello.Reader1 天前
Flink CLI 从提交作业到 Savepoint/Checkpoint、再到 YARN/K8S 与 PyFlink
大数据·flink·kubernetes
刘叨叨趣味运维2 天前
解剖K8s控制平面(上):API Server与etcd如何成为集群的“大脑“与“记忆“?
平面·kubernetes·etcd
-dcr2 天前
56.kubernetes弹性伸缩
云原生·容器·kubernetes
Hui Baby2 天前
K8S联邦负载
java·容器·kubernetes
qq_312920112 天前
K8s Ingress实战:七层负载均衡流量治理
容器·kubernetes·负载均衡
海鸥812 天前
k8s中Jenkins 配置文件「 更新不了 」
java·kubernetes·jenkins
Cyber4K2 天前
【Kubernetes专项】K8s 常见持久化存储方案及存储类动态 PV
云原生·容器·kubernetes