在阿里云ACK上部署SuperMap iManager

目录

前言

什么是ACK

创建集群

创建弹性IP(EIP)

创建NAS存储

配置kubectl

安装iManager

可能遇到的问题


前言

        目前SuperMap iManager for k8s已经迭代到11.1.0版本了,使用的该产品的客户也越来越多,使用公有云,私有云容器服务的场景也在逐渐增加。今天就给大家介绍下如何在阿里云的ACK上部署SuperMap iManager for k8s产品。

什么是ACK

        阿里云容器服务 Kubernetes 版 ACK(Container Service for Kubernetes)是全球首批通过Kubernetes一致性认证的容器服务平台,提供高性能的容器应用管理服务,支持企业级Kubernetes容器化应用的生命周期管理,让您轻松高效地在云端运行Kubernetes容器化应用。详细介绍可以参考(什么是容器服务Kubernetes版_容器服务 Kubernetes 版 ACK-阿里云帮助中心

创建集群

  1. 在产品中选择容器服务 Kubernetes 版ACK,选择ACK托管版。关于版本的区别如下图所示
  2. 集群配置,配置项可以根据实际的需求进行选择,这里需要注意的是kubernetes的版本1.24及以上就不是使用的docker容器,而是使用的containerd
  3. 节点池配置,容器运行时选择,如果是1.24以下的kubernets则选择docker,以上版本则选择containerd实例规格选择,节点规格建议至少4vCPU,8G内存*3配置磁盘大小100G左右即可,可根据实际需求进行选择。这里我们创建的节点都是worker节点,因为我们选择的是ACK托管版,master节点不需要我们来维护。
  4. 组件配置,Ingress,建议选择nginx ingress或者ALB,ALB是阿里云的负载均衡器。
  5. 确认配置,所有配置选择好之后,可以在配置总览中看到已选择的配置项。确认无误后就可以创建集群了。
  6. 集群管理,创建集群后,需要等待集群创建完成。可以在容器服务ACK选项卡中查看集群列表和节点列表,以及集群的工作负载等资源管理。

创建弹性IP(EIP)

  1. 在阿里云首页产品中选择弹性IP创建,需要注意的是,地域和可用区要和之前创建ACK的地域是相同的
  2. 创建好弹性IP后,需要给集群节点绑定弹性IP。因为我们在创建的时候未选择给所有节点配置公网IP,所以需要给集群节点绑定IP以便后续远程访问。在及节点实例中选择其中一个节点,更多-网络-绑定弹性IP,选择我们上一步创建的EIP。
  3. 修改安全组配置,为了我们能够远程访问到集群节点,需要修改上一步配置了EIP的集群节点的安全组配置,因为默认的授权IP只有本机IP才能访问。在网络和安全组-安全组配置中,入方向选项卡,将授权对象均改为0.0.0.0/0,如果只需要指定的对象能够访问到该节点,可以改为实际的指定IP即可。

创建NAS存储

  1. ACK集群EIP弹性IP创建好之后,还需要创建存储资源给集群使用,所以我们还需要创建存储资源,这里我们推荐使用阿里云的NAS存储。在阿里云首页产品中选择文件存储NAS进行创建
  2. 需要注意的是,协议类型选择NFS,因为后续安装iManager的时候需要使用的就是NFS协议,保留时间根据实际进行选择。专有网络VPC,虚拟交换机需要和创建ACK时的一致,保证网络能够正常通讯
  3. 创建成功后,可以在文件系统列表中找到刚创建好的NAS。NAS的服务地址后续安装iManager的时候需要使用。

配置kubectl

        以上步骤完成之后,我们还需要kubectl的命令,kubectl是标准的Kubernetes命令行管理工具,通过kubectl可以连接和管理阿里云容器服务ACK集群。在部署iManager和运维整个K8S集群的时候都需要此命令。

  1. 阿里云的ACK托管版worker节点已经安装了kubectl命令,所以不需要我们再单独安装,只需要将所需的KubeConfig配置好后即可。
  2. 配置KubeConfig,在ACK集群列表中,选择当前集群,查看连接信息,可以找到集群凭证,和配置方法说明。
  3. 通过远程工具连接集群节点,使用我们上面步骤配置好的弹性IP进行访问。创建$HOME/.kube/config文件,将上一步的凭证内容复制粘贴到该文件中,保存。保存之后使用kubectl get nodes验证是否生效。

安装iManager

  1. 将iManager for k8s的安装包上传到集群节点,解压
  2. 编辑安装路径下的value.yaml文件

        value.yaml文件需要注意的参数

  • deploy_registry,默认为阿里云镜像仓库,这里我们是外网环境可以直接使用默认地址,如果是内网环境需要指定实际的镜像仓库地址

  • deploy_kubernetes_public_ip,外部访问k8s集群使用的IP,即之前我们配置好的弹性IP地址,我们是使用这个IP来访问集群的

  • deploy_nfs_server,NFS的服务地址,即我们创建的NAS存储的服务地址

  • deploy_nfs_path,NFS存储的路径,如果没有路径要求,直接写/即可

  • deploy_kubernetes_master_url,k8s集群的master的url,需要使用kubectl cluster-info命令获取

  • deploy_disable_ingress,是否禁用iManager自带的ingress,之前我们创建集群的时候创建了Ingress所以这里我们将内置的ingress禁用,设置为true

  • deploy_disable_prometheus_node_exporter,iManager内置节点监控,阿里云的ACK自带prometheus node exporter这里我们就禁用内置的就行Deploy_disable_metrics_server,是否禁用监控指标的度量类库功能,用于监控容器状态,阿里云ACK自带了metrics server,禁用内置的即可,设置成true

3.配置完成后在安装目录下执行./startup.sh,即开始iManager for k8s的安装。安装过程可以通过安装的进度条来查看,等进度条完成后就可以访问iManager服务,另外也可以通过阿里云ACK提供的工作台来查看集群中的所有资源状态

4.验证部署成功,部署完成后,访问iManager的默认端口31100,输入默认账户密码admin/Supermap1997,修改默认密码,配置许可

5.许可配置完成可以在站点中,创建云套件站点来验证云套件是否可用。待云套件创建好之后,上传压缩好的工作空间和数据源,发布服务实例

服务发布成功,可以正常预览发布的服务实例。到这里说明我们的部署就成功了,赶紧亲手去试试吧!

可能遇到的问题

问题 1.  执行启动脚本之后,报错“Error: rendered manifests contain a resource that already exists. Unable to continue with install: existing resource conflict: namespace: , name: v1beta1.metrics.k8s.io, existing_kind: apiregistration.k8s.io/v1, Kind=APIService, new_kind: apiregistration.k8s.io/v1, Kind=APIService”

解决办法:提示metrics server已经安装,需要将iManager卸载后,在value.yaml中将deploy_disable_metrics_server设置成true,再安装iManager可解决

问题2. 安装iManager后部分pod,Prometheus-node-exporter处于崩溃状态

解决办法:这是由于阿里云ACK本身就有Prometheus-node-exporter服务,所以需要在value.yaml中将deploy_disable_prometheus_node_exporter设置成true重新安装iManager即可

猜你喜欢

转载自blog.csdn.net/supermapsupport/article/details/132717995