在当今快速发展的技术环境中,Kubernetes(K8s)已成为容器管理和编排的首选平台。在本博客中,我们将探讨在 Kubernetes 环境中部署 SuperMap iServer 的两种方式:通过可视化 K8s 管理平台 Kuboard 和通过 YAML 配置文件。
注意:经典版 iServer 并未作云原生适配,因此无法创建多副本的应用,如有多副本需求,请选择SuperMap GIS云套件。
1. 通过可视化 K8s 管理平台部署
Kuboard是一款功能强大的 Kubernetes 可视化管理平台,能够简化 K8s 资源的管理和配置。下面是通过 Kuboard 部署 SuperMap iServer 的步骤:
步骤 1:准备工作
- 确保您已有一个运行中的 Kubernetes 集群,并能访问 Kuboard。
- 登录 Kuboard 平台,准备进行应用的创建。
步骤 2:创建部署
1、在 Kuboard 集群概览界面中,创建命名空间
2、进入命名空间,选择“创建工作负载”,进入详细配置页面
3、设置工作负载的基本信息,选择“有状态副本集”,设置工作负载名称
4、设置容器信息,添加工作容器,依次设置名称、镜像地址、容器端口
5、设置存储挂载,添加iserverOPTs的持久化目录
6、保存完毕后,等待容器自行启动即可。
步骤 3:验证部署
- 在 Kuboard 中查看应用日志,确保 iServer 正在正常运行。
- 使用浏览器访问服务地址以验证 iServer 是否可用。
2. 通过 YAML 文件部署
如果您希望通过脚本化的方式管理 Kubernetes 资源,可以使用 YAML 文件进行部署。以下是使用 YAML 文件部署 SuperMap iServer 的步骤:
步骤 1:创建 Deployment 文件
创建一个名为 iserver-deployment.yaml
的文件,内容如下:
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
annotations: {}
labels:
k8s.kuboard.cn/name: iserver-dep
name: iserver-dep
namespace: spark
resourceVersion: '2285001'
spec:
podManagementPolicy: OrderedReady
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
k8s.kuboard.cn/name: iserver-dep
serviceName: iserver-dep
template:
metadata:
creationTimestamp: null
labels:
k8s.kuboard.cn/name: iserver-dep
spec:
containers:
- env:
- name: SUPERMAP_JAVA_OPTS
value: '-Xms4g -Xmx8g'
- name: TZ
value: Asia/Shanghai
image: 'registry.cn-beijing.aliyuncs.com/supermap/iserver:11.2.1-amd64'
imagePullPolicy: IfNotPresent
name: iserver-dep
ports:
- containerPort: 8090
hostPort: 8090
name: p1
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /opt/iserverOPTs
name: volume-opts
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
terminationGracePeriodSeconds: 30
volumes:
- hostPath:
path: /opt/iserverOPTs
type: ''
name: volume-opts
updateStrategy:
rollingUpdate:
partition: 0
type: RollingUpdate
步骤 2:应用配置
在终端中,运行以下命令应用您的配置:
kubectl apply -f iserver-deployment.yaml
步骤 3:验证部署
使用以下命令查看 Pod 状态,确保 iServer 正在运行:
kubectl get pods -n spark | grep iserver
您可以通过浏览器访问服务地址来验证 iServer 的可用性。