Kubernetes 1.25 containerd 环境部署 SuperMap iManager

2024-09-07 17:20

本文主要是介绍Kubernetes 1.25 containerd 环境部署 SuperMap iManager,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

超图官网目提供的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]   # 其中为仓库所在主机IPusername = "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

这篇关于Kubernetes 1.25 containerd 环境部署 SuperMap iManager的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1145671

相关文章

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到