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
# 最后将安装目录删除即可
相关推荐
Nontee7 小时前
K3s vs K8s:差的不是功能,是交付方式
云原生·容器·kubernetes
朱包林7 小时前
iTerm2终端配置指南
linux·javascript·python·云原生·容器·kubernetes·云计算
小陈运维12 小时前
使用kubeadm初始化IPV4/IPV6集群
linux·docker·云原生·容器·kubernetes
笑洋仟12 小时前
k8s的Ingress配置问题
云原生·容器·kubernetes
垚垚学技术_聚焦云原生12 小时前
K8s OpenEBS LVM 动态存储 PVC Pending 排查记
云原生·容器·kubernetes
sbjdhjd1 天前
云安全 | 从特权容器到旧版 runC:Docker 宿主机访问与运行时缺陷复盘
运维·网络安全·docker·云原生·kubernetes·云计算·云安全
谢亮_vipxieliang2 天前
Kubernetes 的“操作系统化”:从容器编排到 AI 基础设施控制平面
人工智能·平面·kubernetes
sbjdhjd2 天前
云安全 | Docker 容器逃逸复盘(三):docker.sock 挂载与 Docker-in-Docker 风险
经验分享·网络安全·docker·云原生·容器·kubernetes·云安全
热爱Liunx的丘丘人2 天前
1、什么是K8s
云原生·容器·kubernetes
小匠石钧知2 天前
07_在k8s集群中安装ingress-nginx
nginx·容器·kubernetes·ingress