从 IBM® Cloud Private 版本 2.1.0.3 升级到 3.1.0

可以将 IBM Cloud Private 从版本 2.1.0.3 升级到 3.1.0。

只能从 V2.1.0.3 升级。 如果使用的是更早版本的 IBM Cloud Private,必须先升级到 V2.1.0.3。 请参阅 IBM Cloud Private V2.1.0.3 文档中的升级与还原

在升级过程中,无法访问 IBM Cloud Private management console。

在升级过程中,无法设置云提供程序选项(例如,配置 vSphere Cloud Provider),也无法选择使用 NSX-T。

  1. 以具有 root 用户权限的用户身份登录引导节点。 引导节点通常是您的主节点。 有关节点类型的更多信息,请参阅体系结构。 在安装过程中,可以指定每种节点类型的 IP 地址。

  2. 下载 IBM Cloud Private 的安装文件。 可以从 IBM Passport Advantage® 在新选项卡中打开 Web 站点下载这些文件。

    • 对于 Linux® x86_64 集群,请下载 ibm-cloud-private-x86_64-3.1.0.tar.gz 文件。
    • 对于 Linux® on Power® (ppc64le) 集群,请下载 ibm-cloud-private-ppc64le-3.1.0.tar.gz 文件。
  3. 抽取映像并将它们加载 Docker 中。 抽取映像可能需要几分钟的时间才能完成。

    • 对于 Linux® x86_64,请运行以下命令:

      tar xf ibm-cloud-private-x86_64-3.1.0.tar.gz -O | sudo docker load
      
    • 对于 Linux® on Power® (ppc64le),请运行以下命令:

      tar xf ibm-cloud-private-ppc64le-3.1.0.tar.gz -O | sudo docker load
      
  4. 创建安装目录并将 cluster 目录从先前的安装目录复制到新的 IBM Cloud Private cluster 文件夹。 使用与先前版本不同的安装目录。 例如,要将配置文件存储在 /opt/ibm-cloud-private-3.1.0 中,请运行以下命令:

    mkdir -p /opt/ibm-cloud-private-3.1.0
    cd /opt/ibm-cloud-private-3.1.0
    cp -r /<installation_directory>/cluster .
    

    注:/<installation_directory> 是 V2.1.0.3 安装目录的完整路径,/<new_installation_directory> 是 V3.1.0 安装目录的完整路径。

  5. 手动更新 /<new_installation_directory>/cluster/config.yaml 文件。

    • 在 3.1.0 发行版中,disabled_management_services 已转换为字典参数 management_services 以支持更精细化的服务控制。 如果您的 cluster/config.yaml 文件中包含 disabled_maangement_services,那么需要将旧格式更新为新格式,然后删除 cluster/config.yaml 中的旧 disabled_maangement_services。 例如:

      旧格式:

      disabled_management_services: ["istio", "vulnerability-advisor", "custom-metrics-adapter"]
      

      新格式:

      management_services:
       istio: disabled
       vulnerability-advisor: disabled
       custom-metrics-adapter: disabled
      

      :缺省情况下在 3.1.0 发行版中禁用 vulnerability-advisor 参数。 如果已在 2.1.0.3 发行版中启用 vulnerability-advisor,那么需要将该值更改为 enabled,如以下 management_services 示例中所示:

      management_services:
       vulnerability-advisor: enabled
      
    • 在 3.1.0 发行版中,不支持升级 audit-logging 图表和 storage-glusterfs 图表。 必须在 management_services 中禁用 audit-logging 图表:

      management_services:
      audit-logging: disabled
      storage-glusterfs: disabled
      

      完成审计的容量规划后,即可安装审计日志记录图表。 还必须将日志记录部署到启用安全性的 kube-system 名称空间中。 在 2.1.0.3 中,日志记录部署到未启用安全性的 kube-system 名称空间中。 因此,要部署 audit-logging 图表,必须卸载日志记录,然后从 3.1.0 重新安装。

      以下命令可用于卸载和安装日志记录:

      helm delete --purge logging --tls
      helm install stable/ibm-icplogging --name logging --namespace kube-system   --tls
      

      以下命令可用于安装 audit-logging:

      helm install audit-logging --name audit-logging --namespace kube-system --tls

    • 如果已为 IBM Cloud Private 2.1.0.3 启用 istio,请通过运行以下命令确保在升级前已完全删除 istio 图表和相关 CustomResourceDefinition

      helm delete istio --purge --tls
      crds_exist="$(kubectl get customresourcedefinition | awk '{print $1}' | grep 'istio')"
      kubectl delete customresourcedefinition $crds_exist
      
    • 对于 IBM Cloud Private V3.1.0,缺省情况下禁用的管理服务已发生更改。 要获取新的缺省列表,请参阅常规设置。 可将您想要禁用的其他服务添加到此新缺省列表。

    • 对于高可用性集群,缺省情况下,在 3.1.0 中,vip_manager 设置为 etcd。 如果将其更改为 keepaliveducarp,集群将出现数秒钟的停机时间。

    • 对于 Docker 设置,在 3.1.0 发行版中,使用新格式来对其进行配置,如果已将 Docker 配置为 env 或其他参数,应将其迁移至新格式,然后删除旧的 Docker 配置,新格式如下所示:

      # Docker configuration option, more options see
      # https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file
      docker_config:
       log-opts:
         max-size: "100m"
         max-file: "10"
      
      # Docker environment setup
      docker_env:
       - HTTP_PROXY=http://1.2.3.4:3128
       - HTTPS_PROXY=http://1.2.3.4:3128
       - NO_PROXY=localhost,127.0.0.1,{{ cluster_CA_domain }}
      
      # Install/upgrade docker version
      docker_version: 18.03.1
      
      # Install Docker automatically or not
      install_docker: true
      
  6. 将集群的映像文件移至 /<new_installation_directory>/cluster/images 文件夹。

    • 对于 Linux® x86_64,请运行以下命令:

      mkdir -p cluster/images; \
       mv /<path_to_images_file>/ibm-cloud-private-x86_64-3.1.0.tar.gz cluster/images/
      
    • 对于 Linux® on Power® (ppc64le),请运行以下命令:

      mkdir -p cluster/images; \
       sudo mv /<path_to_images_file>/ibm-cloud-private-ppc64le-3.1.0.tar.gz cluster/images/
      

      如果集群中存在 IBM® Z 工作程序节点,请运行以下命令:

      sudo mv /<path_to_images_file>/ibm-cloud-private-s390x-3.1.0.tar.gz cluster/images/
      

    在此命令中,path_to_images_file 是映像文件的路径。

  7. 完成下列步骤,部署您的环境:

    1. 切换到安装目录中的 cluster 文件夹。

      cd /<new_installation_directory>/cluster
      
    2. 准备集群以进行升级。

      sudo docker run -e LICENSE=accept --net=host --rm -t -v "$(pwd)":/installer/cluster \
      ibmcom/icp-inception:3.1.0-ee upgrade-prepare
      

      如果集群准备失败,请查看错误消息并解决所有问题。 然后,移除 cluster/.install.lock 文件并重新运行 upgrade-prepare 命令。

    3. 升级 Kubernetes。

      sudo docker run -e LICENSE=accept --net=host --rm -t -v "$(pwd)":/installer/cluster \
      ibmcom/icp-inception:3.1.0-ee upgrade-k8s
      
      • 如果 Kubernetes 升级失败,返回不同的消息,那么复查错误消息并解决所有问题。 然后,回滚 Kubernetes 服务并再次运行升级 Kubernetes 服务命令。
    4. 升级图表。

      sudo docker run -e LICENSE=accept --net=host --rm -t -v "$(pwd)":/installer/cluster \
      ibmcom/icp-inception:3.1.0-ee upgrade-chart
      
      • 如果图表升级失败,返回不同的消息,那么复查错误消息并解决所有问题。 然后,重新运行升级图表命令。
    5. 如果要为 IBM Cloud Private 3.1.0 启用 istio,那么需要将该值更改为 enabled,如以下 management_services 示例中所示:
      management_services:
      istio: enabled
      
    6. 运行以下命令以部署 istio 图表:
      sudo docker run -e LICENSE=accept --net=host --rm -t -v "$(pwd)":/installer/cluster \
      ibmcom/icp-inception:3.1.0-ee addon
      
  8. 验证升级状态。

    • 如果升级成功,将显示集群的访问信息:

      UI URL is https://master_ip:8443 , default username/password is admin/admin
      

      在此消息中,master_ip 是 IBM Cloud Private 集群的主节点 IP 地址。

      注:如果您在专用网络中创建了集群,请使用主节点的公用 IP 地址访问该集群。

    • 如果遇到错误,请参阅故障诊断
  9. 如果已更改 IBM Cloud Private V2.1.0.3 中的 default_admin_password,那么升级后此密码将重置为 admin。 如果需要,可遵循更改集群管理员访问凭证中的指示信息重新更改此密码。

  10. 清除浏览器缓存。

  11. 访问您的集群。 从 Web 浏览器中,浏览至集群的 URL。 有关受支持的浏览器列表,请参阅受支持的浏览器
  12. 确保所有 IBM Cloud Private 缺省端口已打开。 有关 IBM Cloud Private 缺省端口的更多信息,请参阅缺省端口
  13. 备份引导节点。 将 /<new_installation_directory>/cluster 目录复制到安全位置。
  14. 如果在 IBM Cloud Private 集群中使用 Cloud Automation Manager,那么也必须对其进行升级。 请参阅升级 Cloud Automation Manager