Kubernetes 1.25 containerd 环境部署 SuperMap iManager

news2024/12/23 17:29:51

超图官网目提供的Kubernetes 版本为 1.20 版本,容器运行时为 docker

本次部署使用已有的 Kubernetes 1.25 版本集群,容器运行时为 containerd
Kubernetes ,containerd 部署请自行了解,本次不做介绍,下面介绍在此环境上如何部署 iManager 11i 并创建云套件

1. 环境介绍

虚拟机

CPU

内存

操作系统

Kubernetes

k8s master

华为鲲鹏 920(64 核)

64GB

Kylin 10SP1 64 bit with ARM

1.25

k8s node1

华为鲲鹏 920(64 核)

64GB

Kylin 10SP1 64 bit with ARM

1.25

k8s node2

华为鲲鹏 920(64 核)

64GB

Kylin 10SP1 64 bit with ARM

1.25

registry,nfs

华为鲲鹏 920(64 核)

64GB

Kylin 10SP1 64 bit with ARM

2. 软件包准备

  1. supermap-imanager-for-kubernetes-registry-all-11.1.1-linux-arm64.tar.gz
  2. supermap-imanager-for-kubernetes-11.1.1-linux-arm64.tar.gz

文件提取地址: iManager 部署包 - 百度网盘icon-default.png?t=O83Ahttps://pan.baidu.com/s/1lWLyyT1jAbADGuxEG3m4gA

提取码:ge4d

3. iManager 私有镜像仓库

3.1. 仓库部署

准备一台有 docker 的服务器,用于部署 iManager 私有镜像仓库。

3.1.1. 解压镜像包

将镜像包放置在服务器的任意目录,如:/home/,使用以下命令解压(若 实际包名与示例中的包名不一致,在执行命令时请替换为实际包名):

tar -zvxf supermap-imanager-for-kubernetes-registry-all-11.1.1-linux-arm64.tar.gz

3.1.2. 进入解压后目录

cd supermap-imanager-for-kubernetes-registry-all-11.1.0-linux-x64

3.1.3. 安装镜像库

chmod +x startup.sh && ./startup.sh

安装后可以看到registry的镜像和容器:

3.1.4. 验证镜像仓库

docker pull IP:5000/supermap/scratch:latest-amd64
# 其中为仓库所在主机IP ,如果结果无error,则表示启动成功

3.2. k8s 所有节点添加私有仓库地址

3.2.1. 编辑config.toml

vi /etc/containerd/config.toml

添加如下内容:

[plugins."io.containerd.grpc.v1.cri".registry.configs."IP:5000".auth]   # 其中为仓库所在主机IP
            username = "supermap"
            password = "supermap"

3.2.2. 添加仓库 hosts.toml

进入certs.d文件夹,添加如下内容:

cd /etc/containerd/certs.d

添加文件夹:仓库IP:5000

在文件夹192.168.12.161:5000下添加文件hosts.toml,内容如下:

server = "http://192.168.12.161:5000"

[host."http://192.168.12.161:5000"]
capabilities = ["pull", "resolve", "push"]
skip_verify = true

3.2.3. 重启containerd服务

systemctl restart containerd

4. 部署 iManager

4.1. 解压iManager安装包

将 iManager 包放置在在Kubernetes master 节点所在服务器的任意目录,如:/home/,使用以下命令解压(若 实际包名与示例中的包名不一致,在执行命令时请替换为实际包名)

tar -zvxf supermap-imanager-for-kubernetes-11.1.1-linux-arm64.tar.gz

4.2. 编辑 iManager 配置文件

cd /nas/SuperMap/IManager/supermap-imanager-for-kubernetes-11.1.1-linux-arm64
vi values.yaml

修改内容:

deploy_registry: 192.168.2.90:5000   #必填,iManager镜像仓库的地址,用于拉取部署iManager所需镜像
deploy_kubernetes_public_ip: 192.168.2.7  # 必填,外部访问Kubernetes时用的IP
deploy_nfs_server: sealos.hub  # NFS Server地址,NFS Server用于存储iManager数据,可以是IP或者域名
deploy_nfs_path: /Imanager  # NFS Server提供挂载的路径,默认根路径(/)

 # 选填,是否禁用iManager的Ingress控制器,禁用将不能设置域名,取值范围:[true|false]。默认为false;
 # 如果Kubernetes版本为1.19以下,将不支持Ingress功能,需禁用Ingress控制器;
 # true:禁用Ingress控制器;
 # false:开启Ingress控制器。
deploy_disable_ingress: true
deploy_domain_ip: 192.168.2.7  # 选填,iManager创建的GIS云套件配置域名时必填,GIS云套件域名映射的Kubernetes节点IP(即域名在DNS服务器上配置指向的IP)。默认使用第一个Kubernetes节点IP。

 # 选填,是否禁用metrics_server服务,metrics_server用于Kubernetes资源监控,可支撑动态伸缩功能。取值范围:[true|false]。默认false;
 # 如果您配置的是私有仓库,并开启metrics_server服务,需在Kubernetes中kube-system所在命名空间下创建与Secret同名的资源,详情请参见教程->附录->常见问题解答->问题6;
 # true:禁用metrics_server服务;
 # false:开启metrics_server服务。
deploy_disable_metrics_server: true

完整描述参考:安装iManagericon-default.png?t=O83Ahttps://help.supermap.com/iManager_K8S/1111/zh/guides/InstalliManager/

实际修改后内容如下:

deploy_registry: 192.168.2.90:5000
deploy_kubernetes_public_ip: 192.168.2.7
deploy_imanager_user_name: admin
deploy_nfs_server: sealos.hub
deploy_nfs_path: /Imanager
deploy_kubernetes_master_url: https://kubernetes.default.svc
deploy_disable_ingress: true
deploy_domain_ip: 192.168.2.7
deploy_storage_class_name: 
deploy_namespace: supermap
deploy_image_pull_policy: IfNotPresent
deploy_image_pull_secret: image-pull-secret
deploy_image_namespace: supermap
deploy_service_type: NodePort
deploy_imanager_service_protocol: http
deploy_cpu_limit: 2
deploy_memory_limit: 4Gi
deploy_iserver_tag: 11.1.1-arm64
deploy_iportal_tag: 11.1.1-arm64
deploy_idesktop_tag: 11.1.1-arm64
deploy_gis_app_tag: 11.1.1-arm64
deploy_imanager_port: 31100
deploy_disable_bslicense_local_volume: false
deploy_disable_hbase_nfs_volume: false
deploy_disable_weixin_hook: false
deploy_weixin_token: 
deploy_weixin_corp_id: 
deploy_weixin_encoding_aes_key: 
deploy_weixin_to_party: 
deploy_weixin_agent_id: 
deploy_weixin_api_secret: 
deploy_disable_web_hook: false
deploy_dingtalk_webhook: 
deploy_dingtalk_secret: 
deploy_timezone: Asia/Shanghai
deploy_async_function_enabled: 
deploy_sync_function_enabled:
deploy_disable_bslicense: false
deploy_bslicense_server_host:
deploy_bslicense_server_port:
deploy_bslicense_ui_host:
deploy_bslicense_ui_port:
deploy_disable_imanager_database: false
deploy_imanager_database_type: mariadb
deploy_imanager_database_host: 
deploy_imanager_database_port: 
deploy_imanager_database_username: 
deploy_imanager_database_password: 
deploy_disable_imanager_phpmyadmin: false
deploy_imanager_phpmyadmin_host:
deploy_imanager_phpmyadmin_port:
deploy_disable_imanager_gateway_redis: false
deploy_imanager_gateway_redis_host:
deploy_imanager_gateway_redis_port:
deploy_imanager_gateway_redis_username:
deploy_imanager_gateway_redis_password:
deploy_disable_keycloak: false
deploy_keycloak_host:
deploy_keycloak_port:
deploy_keycloak_admin_username:
deploy_keycloak_admin_password:
deploy_disable_keycloak_postgresql: false
deploy_keycloak_postgresql_host: 
deploy_keycloak_postgresql_port: 
deploy_keycloak_postgresql_username: 
deploy_keycloak_postgresql_password: 
deploy_disable_fluentd_es: false
deploy_disable_elasticsearch: false
deploy_elasticsearch_host:
deploy_elasticsearch_tcp_port:
deploy_elasticsearch_rest_port:
deploy_disable_kibana: false
deploy_kibana_host:
deploy_kibana_port:
deploy_kibana_context_path:
deploy_disable_consul_server: false
deploy_consul_server_host:
deploy_consul_server_port:
deploy_disable_prometheus: false
deploy_disable_alert: false
deploy_disable_prometheus_node_exporter: false
deploy_disable_metrics_server: true
deploy_disable_kube_state_metrics: false
deploy_disable_blackbox_exporter: false
deploy_disable_ssl_exporter: false
deploy_ssl_exporter_host:
deploy_ssl_exporter_port:
deploy_disable_grafana: false
deploy_grafana_host:
deploy_grafana_port:
deploy_grafana_context_path:
deploy_disable_grafana_postgresql: false
deploy_grafana_postgresql_host:
deploy_grafana_postgresql_port:
deploy_grafana_postgresql_username:
deploy_grafana_postgresql_password:
deploy_disable_k8s_dashboard: false
deploy_k8s_dashboard_host:
deploy_k8s_dashboard_port:
#affinity:
# nodeAffinity:
#    requiredDuringSchedulingIgnoredDuringExecution:
#      nodeSelectorTerms:
#        - matchExpressions:
#            - key: kubernetes.io/hostname
#              operator: Exists
#tolerations:
#  - key: "key1"
#    operator: "Equal"
#    value: "value1"
#    effect: "NoExecute"
#    tolerationSeconds: 3600

根据实际情况修改 values.yaml 文件

4.3. 安装 iManager

cd supermap-imanager-for-kubernetes-11.1.1-linux-arm64
chmod +x startup.sh && ./startup.sh

部署后会在k8s创建supermap的名称空间:

等待所有安装进度完成 pod 全部启动后访问 IP:31100,会自动跳转到许可中心页面,点击下载报告按钮下载 reportc 报告文件,通过报告文件申请许可文件(web 许可,*.licc)

许可导入后进入 iManager 概览页

5. 创建 SuperMap GIS 云套件

  1. 打开iManager左侧导航栏站点管理
  2. 点击+ 创建
  3. 对GIS服务进行命名,并选择站点类型为GIS云套件

具体参数参考:

GIS云套件创建icon-default.png?t=O83Ahttps://help.supermap.com/iManager_K8S/1111/zh/tutorial/CreateGISMicroService/

此时 k8s 会新建 icloud-native-* 命名空间,可以前往 kuboard 查看部署状态

等待部署完成后即可使用云套件了

云套件具体用户手册参考:GIS云套件-用户手册icon-default.png?t=O83Ahttps://help.supermap.com/iManager_K8S/1111/zh/microservices/MicroserviceIntro/

6. 要点总结

containerd 兼容 docker 容器,所以与 iManager 官网部署流场区别不大,主要有两点要注意:

k8s 所有节点都要手动添加 iManager 私有仓库地址

iManager 配置文件差异需要启用 deploy_disable_ingress 与 deploy_disable_metrics_server

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2114411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MATLAB绘图基础5:MATLAB数据导入

参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。 5.MATLAB数据导入 5.1 从CSV文件读取数据 C S V {\rm CSV} CSV文件是一种纯文本文件,文件中的数据以逗号为分隔符进行字段分隔,每一行数据代表一条记录,每…

通信工程学习:什么是AB地址总线、DB数据总线、CD控制总线

AB地址总线、DB数据总线、CD控制总线 在计算机体系结构中,总线(Bus)是一种用于在计算机内部各个组件之间传输信息的物理通道。其中,AB地址总线、DB数据总线和CD控制总线是计算机总线系统中非常重要的三个组成部分,它们…

机器学习-神经网络:循环神经网络(RNN)详解

引言 在当今人工智能(AI)和深度学习(DL)领域,循环神经网络(RNN)作为一种专门处理序列数据的模型,具有不可忽视的重要性。RNN 的设计目标是模拟和处理序列中的时间依赖关系,使其成为许多应用场景的理想选择,如自然语言处理(NLP)、时间序列预测和语音识别等。它不仅…

乐凡北斗车载终端 | 车载终端功能是什么?

北斗车载终端即北斗卫星监控系统主机,主要是通过北斗卫星实现定位和导航;并通过传输网络与监控中心通信,由前端设备、传输网络、监控中心构成北斗卫星定位监控系统,实现定位跟踪及智能功能, 终端还可内置8Mbit的Flash储存器&#…

分享一个基于uniapp科技馆服务微信小程序 博物馆管理小程序(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

Java stream使用与执行原理

stream简介 Stream: A sequence of elements supporting sequential and parallel aggregate operations stream为sequential即单线程串行操作,parallelStream支持并行操作,本文只讨论sequential的stream。 stream常用操作 Datastatic class Course {pr…

【软件工程】第二讲软件过程

【软件工程】第二讲软件过程 文章目录 【软件工程】第二讲软件过程1. 软件过程概述1.1 软件工程的金三角1.2 软件过程的定义1.3 软件过程的组成 2. 软件生命周期模型2.1 瀑布模型2.2 增量模型2.3 演化模型 3. 统一软件过程RUP3.1 RUP最佳实践3.2 统一软件过程RUP 4. 敏捷过程4.…

Qt-常用控件(2)-按钮类和显示类

​ 1. QPushButton 使用 QPushButton 表示一个按钮.这也是当前我们最熟悉的一个控件了 QPushButton 继承自 QAbstractButton.这个类是一个抽象类.是其他按钮的父类 在 Qt Designer中也能够看到这⾥的继承关系 QAbstractButton 中,和 QPushButton 相关性较⼤的属性 属性说明t…

触想全新Z系列工控机扩展IIoT应用潜能

8月31日,触想重磅推出全新Z系列高性能、扩展型工控机——TPC05/06/07-WIPC,提供标准版/双卡槽/四卡槽3款机型选择。 作为边缘计算、机器视觉、AI智能和工业应用的理想机型,Z系列工控机支持Intel第12/13/14代Core™ i3/i5/i7/i9处理器&#xf…

git如何灵活切换本地账号对应远程github的两个账号

git如何灵活切换本地账号对应远程github的两个账号 问题: 有时候我们会同时维护两个github的账号里面的仓库内容,这时候本地git需要频繁的切换ssh,以方便灵活的与两个账号的仓库可以通信。这篇日记将阐述我是怎么解决这个问题的。1. 第一个账…

kubernetes--配置与存储(ConfigMap、加密数据配置Secret、SubPath、热更新、Volumes、NFS挂载、PV与PVC)

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 出自B站博主教程笔记: 完整版Kubernetes(K8S)全套入门微服务实战项目,带你一站式深入掌握K8S核心能…

Tranformer分布式特辑

随着大模型的发展,如何进行分布式训练也成了每位开发者必备的技能。 单机训练 CPU OffloadingGradient Checkpointing 正向传播时,不存储当前节点的中间结果,在反向传播时重新计算,从而起到降低显存占用的作用 Low Precision Da…

HarmonyOS 是如何实现一次开发多端部署 -- HarmonyOS自学1

一次开发多端部署遇到的几个关键问题 为了实现“一多”的目标,需要解决如下三个基础问题: 问题1:页面如何适配 不同设备间的屏幕尺寸、色彩风格等存在差异,页面如何适配。 问题2:功能如何兼容 不同设备的系统能力…

身份证实名认证接口如何用C#实现

一、什么是身份证实名认证? 身份证实名认证又叫身份证实名核验、身份证二要素、身份实名核验、身份证验证,输入姓名、身份证号,校验此两项是否匹配,同时返回生日、性别、籍贯等信息,同时支持港澳台证件核验。 二、身…

【Three.js】实现护罩(防御罩、金钟罩、护盾)效果

前言: 在这篇博客中,我们将使用 Three.js 从零开始生成一个护罩效果。护罩将使用自定义的 Shader 材质,带有动画效果,最终呈现一个视觉上酷炫的护罩。此篇文章的重点将放在如何生成一个3D护罩,其它功能将在之后的博客…

SprinBoot+Vue旅游网站的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质…

AI和新基建赋能智慧工地超融合管理平台解决方案

1. 项目背景与需求 电力行业的工程管理正朝着智慧化发展,但目前仍处于起步阶段。为满足数字化、网络化、智能化的发展需求,需要构建一个高效综合监控平台,实现对电力项目全过程的精益化管控。 2. 综合管理平台的构建 该平台集成了超融合实…

【Visual Studio 报错】未加载 wntdll.pdb(一种可行的解决办法)

调试程序时,会出现下面这个报错 分析原因: 出现未加载 wntdll.pdb 报错大概率是你的指针使用错误 ,比如使用野指针、越界访问、或者堆区空间释放方式错误等。 这里以 堆区空间释放方式错误 为例子 1、堆区开辟的数组空间使用 delete 释放 …

Java 日志

日志就是为了将程序的运行状况保存到文件中去。 命名的一个小细节: 比如把信息保存到文件中这个方法的名字可以写为infoToFile,有个人为了偷懒,写成info2File,发现效果还挺好,一下就能分清两个单词,所以后…

windows版本mysql8.2忘记密码

忙了一年的项目终于有点空闲时间了(996累成狗),想折腾点开源项目, 结果发现忘了本地mysql密码,查了一些资料,记录如下: --windows mysql8.2忘记密码(思路整理:先无密码…