超图k8s imanager至今稳定版本已发布到1020了,而很多实际项目上使用的还是1012、1013。同以往的惯例一样,k8s imanager新出了一个版本后,后面都会伴随着推出一个升级包,用于将低版本的k8s imanager产品升级到最新的版本,1020版也不例外。这里笔者使用阿里云环境,先搭建了一套1013版的k8s imanager环境,创建了云套件站点并发布了几个服务实例后,使用升级包进行升级,完成后测试已发布的服务状态验证其影响,以下内容为具体步骤(已有1013环境的用户可略过前面1013版的环境搭建过程)。

搭建1013版本环境

使用离线安装包安装k8s和nfs
  1. 创建阿里云ECS实例master,笔者这里选用的配置是16核cpu, 32G内存, 200G 硬盘,centos 7.5系统。

  2. 从超图提供的网盘中下载centos7.5的离线k8s和nfs安装包,并上传到刚才创建的实例master中。

  3. 安装解压工具
    yum install -y unzip

  4. 解压k8s离线安装包

    unzip kubernetes-1.15.1-centos-7.5-deploy-20211122.zip
    cd kubernetes-1.15.1-centos-7.5-deploy/supermap-kubernetes-centos/
    tar xvf offline-kubernetes-1.15-centos.tar.gz

  5. 由于阿里云centos7.5系统环境还缺少一个k8s安装所需的依赖libaio, 如果直接执行install.sh的话会报出如下错误, libaioError
    所以这里要先提前安装它,yum install libaio-devel.x86_64 -y

  6. 修改install.sh脚本以适配阿里云环境

    cd offline-kubernetes-1.15-centos
    cp install.sh install.sh.bak //修改前备份原文件
    vim install.sh
    注释掉setenforce 0这一行,阿里云服务实例默认已禁用selinux.
    修改kubeadm init xxx 这一行,因为该脚本默认是离线环境使用,所以在阿里云环境中我们需要指定k8s拉取镜像地址,在最后追加指定即可, 即修改为kubeadm init $@ --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=NumCPU --kubernetes-version=v1.15.0 --image-repository registry.aliyuncs.com/google_containers

  7. 执行安装脚本,注意新的安装脚本已将hostnamectl set-hostname master这一行注释掉,不会再修改主机名了,从而避免了一些潜在的问题出现。从后面安装子节点的截图中可以看到笔者的主节点名为aliyun,没有被改变。
    ./install.sh m

  8. 解压nfs离线安装包并安装
    chmod +x *.sh
    ./install.sh

  9. 检查nfs服务状态
    systemctl status nfs

  10. 访问masterIP:31234 dashboard页面检查k8s安装的情况,没有问题后进行下一步操作。

  11. 上传1013版k8s imanager linux x64 包到服务器中

  12. 解压imanager包
    tar xvf supermap-imanager-for-kubernetes-10.1.3-210610-17-linux-x64.tar.gz

  13. 修改values.yaml配置文件
    cd supermap-imanager-for-kubernetes
    cp values.yaml values.yaml.bak //修改前备份
    vim values.yaml
    deploy_registry: registry.cn-beijing.aliyuncs.com // 因为是阿里云环境,使用在线镜像
    deploy_kubernetes_public_ip: aliyun public ip //使用ecs的弹性公网ip
    deploy_nfs_server: same with aliyun public ip // 因为我们nfs是安装在同一台服务器上,ip相同
    deploy_nfs_path: /opt/nfs_data // 使用nfs离线安装脚本就是这个路径
    修改完成后如下图

    valuesyaml

  14. 启动imanager

    ./startup.sh

  15. 访问masterIP:31234 dashboard页面选择命名空间supermap查看imanager安装进程,当概览菜单页面全变为绿色后,访问masterIP:31100页面访问imanager, 默认用户名密码都是admin, 可以在上面的values.yaml文件中进行配置。

  16. 登录成功后,在许可中心页面导入许可。访问许可页面查看状态
    k8sMasterLicense

安装子节点

这里笔者使用的同样是阿里云ecs环境,8 核 CPU, 8G 内存, 100G硬盘,centos 7.5系统。

  1. 修改子节点主机名,也可以在创建的时候就指定好
    hostnamectl set-hostname node1

  2. 上传k8s离线安装包并解压,同样需要先安装unzip工具类
    yum install unzip -y

  3. 切换到主节点ssh远程连接环境,获取子节点加入集群所需的token
    kubeadm token list
    第一列的TOKEN值即为所需值

  4. 切换回子节点node1环境,这里首先同主节点一样,需要先安装libaio依赖,
    yum install libaio-devel.x86_64 -y
    进入到k8s安装目录下,执行install脚本将子节点加入集群,
    ./install.sh join $masterIP:6443 --token $TOKEN

  5. 访问$masterIP:31234页面点击节点菜单查看节点状态,也可以通过命令行执行kubectl get node查看,以下为子节点加入成功截图

    k8sNodeStatus

    另外可以从命令行查看kube-system, supermap命名空间的容器组因子节点的加入而发生的调度情况。

    addedNodePodStatus

创建云套件
  1. 在$masterIP:31100 imanager页面上点击创建云套件

  2. 访问$masterIP:31234页面,选择以icloud-native开头的命名空间的概览页面, 等待饼图全变绿,全绿即代表创建完成,这里根据机器配置不同,等待时间长短不一,笔者的环境配置大概十几分钟,以下为创建完成的截图

    cloudsuiteStartup

  3. 创建完成后,点击imanager页面上的给出的云套件访问地址,登录的账号信息在服务后面有给出,现在默认是user_admin/iserver

    imanagerLogin

  4. 登录成功后点击许可信息菜单检查云套件的许可状态

    cloudsuiteLicenceCheck

发布实例服务
  1. 访问$masterIP:31234页面,搜索gisapplication-data的pvc路径, 找到对应的nfs路径,上传工作空间文件到该目录下。以下三张图片展示了寻找过程
    gisapplicationData1
    gisapplicationData2
    uploadFile3
    上传完成后,可以到云套件页面中点击文件管理菜单检查上传情况
    gisapplicationData4

  2. 上传成功后即可创建服务节点并发布相应的服务实例了,以下为发布后的截图

    servicePublished

1013升级到1020

以下具体升级过程来自1020升级包的README.pdf文档,经实际操作整理而成。

  1. 首先需要从网盘里下载k8s imanager 1020版的正式部署包,修改其中的values.yaml文件,改动项同上面主节点的修改过程,其中deploy_*_tag字段应为1020包原有的10.2.0-amd64不变(同样修改前最好先备份,方便以后还原),笔者本地修改后如下图
    1020valuesyaml

  2. 上传1020 imanager升级包并解压

    tar xvf supermap-imanager-upgrade-10.2.0-linux-x64.tar.gz

  3. 进入升级包内,创建yamls目录并将刚才修改的1020正式包内的values.yaml文件拷贝到yamls目录下

    cd supermap-imanager-upgrade-10.2.0-linux-x64
    mkdir yamls
    cp …/supermap-imanager-for-kubernetes-10.2.0-linux-x64/values.yaml yamls/

  4. 设置必须的环境变量,执行升级脚本,升级imanager

    export PRODUCT=imanager
    export KUBERNETES_MASTER_URL=$masterUrl // 通过kubectl cluster-info获取
    // 如export KUBERNETES_MASTER_URL=https://192.168.0.19:6443

    执行升级脚本

    ./upgrade.sh

    确认无报错信息
    upgradeImanager

    按照README.pdf文档说的检查imanager页面的存储管理菜单,检查有无新增并且无挂载的服务,若有的话可进行绑定操作。

  5. 设置必须的环境变量,执行升级脚本,升级云套件

    export PRODUCT=giscloudsuite
    export NAMESPACE=icloud-native-2 // 根据自己的云套件命名空间填写

    执行升级脚本

    ./upgrade.sh

    确认无报错信息(图中为警告信息,可忽略)

    goodUpgradeCloudSuite

  6. 访问$masterIP:31234页面云套件命名空间等待升级过程执行完毕,概览页面全部变绿为正常

  7. 检查之前发布的服务实例是否能够正常访问,确认无问题后升级完成。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐