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
# 最后将安装目录删除即可
相关推荐
不老刘8 小时前
【Java入门】Java服务部署方式全景对比:从java -jar到K8s
java·kubernetes·jar
mit6.82410 小时前
AKS--Azure Managed Kubernetes
kubernetes·flask·azure
爱莉希雅&&&12 小时前
K8s NFS+StorageClass+PV/PVC+Deployment 实战笔记
笔记·容器·kubernetes
维核科技15 小时前
大模型私有化部署:Docker与Kubernetes实战避坑
docker·容器·kubernetes
SLD_Allen17 小时前
Kubernetes + Ray + Volcano:云原生AI训练调度体系
人工智能·云原生·kubernetes
A-刘晨阳18 小时前
Kubernetes 非共享存储详解:emptyDir 与 hostPath 从入门到实践
运维·云原生·容器·kubernetes·hostpath·emptydir
2401_8346369918 小时前
K8s 控制器全解:Deployment/DaemonSet/Job/CronJob+Service 服务发现实战宝典
容器·kubernetes·服务发现
风曦Kisaki18 小时前
# Kubernetes(K8s)笔记Day15:K8s网络工作原理【Pod 网络模型,CNI 网络插件,Calico 工作模式详解,BGP协议,路由反射器】
运维·网络·nginx·云原生·容器·kubernetes
明王明王19 小时前
从零搭建一个单节点 K8S 可观测实验室(七):从一次 Pod 创建过程,看懂 Kubernetes 核心原理
云原生·容器·kubernetes
云川之下2 天前
【k8s】NAD(NetworkAttachmentDefinition)与SR‑IOV‑Operator 关系
云原生·容器·kubernetes