升级 Anthos 不公开模式

本页面介绍如何升级 Anthos 不公开模式。

升级管理员集群和管理中心

基础架构运营商可以升级管理员集群以及 Anthos Management Center 及其组件。

准备环境

  1. 运行以下命令来下载新版本并设置执行权限:

    export VERSION=UPGRADE_VERSION
    cd ~/
    gsutil cp gs://anthos-private-mode-release/${VERSION}/get-anthos-private-mode.sh .
    chmod +x get-anthos-private-mode.sh
    ./get-anthos-private-mode.sh
    
    # Note: ~/anthos-baremetal-private-mode should point to the new version.
    ls -al anthos-baremetal-private-mode
    cd ~/anthos-baremetal-private-mode
    

    UPGRADE_VERSION 替换为您要升级到的新版本。

  2. 使用以下命令将新映像上传到私有注册表中。请务必使用版本 UPGRADE_VERSION 中的 actl

    actl images push --private-registry=${PRIVATE_REGISTRY} \
    --images ~/anthos-baremetal-private-mode
    

    上传过程会自动跳过注册表中已存在的映像。

升级管理员集群

如需升级管理员集群,请仅使用以下更改更新管理员集群配置文件,然后运行 actl clusters baremetal upgrade 命令以完成升级。

  1. 在集群配置管理 YAML 文件中,更新版本字符串并添加 baremetal.cluster.gke.io/private-mode: "true" 注释。

    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: admin
      namespace: cluster-admin
      annotations:
        baremetal.cluster.gke.io/private-mode: "true"
    spec:
      anthosBareMetalVersion: VERSION
    

    VERSION 替换为新的 Anthos on Bare Metal 版本号。

  2. 运行以下命令以更新管理员集群。请务必使用版本 UPGRADE_VERSION 中的 actl

    actl clusters baremetal upgrade admin --kubeconfig=ADMIN_KUBECONFIG
    

升级过程可能需要大约 15 到 20 分钟才能完成,但也可能需要更长时间,具体取决于集群大小。

升级管理中心

基础架构运营商可以升级整个升级中心,也可以升级各个子组件。

选项 1:升级整个管理中心

基础架构运营商可以升级管理中心中的所有组件,包括管理中心本身。

  1. 检查管理中心的版本,以确认其版本较低:

    kubectl get AdminOperator admin-operator --kubeconfig=ADMIN_KUBECONFIG
    

    ADMIN_KUBECONFIG 替换为管理员集群的 kubeconfig 文件的路径。

  2. 可选:为升级运行预检检查:

    actl platform management-center upgrade --preflight-check-only --kubeconfig=ADMIN_KUBECONFIG
    
  3. 启动升级(通常需要 10-15 分钟才能完成):

    actl platform management-center upgrade --kubeconfig=ADMIN_KUBECONFIG
    
  4. 检查管理中心的版本,以确认其已更新:

    kubectl get AdminOperator admin-operator --kubeconfig=ADMIN_KUBECONFIG
    

选项 2:升级个别组件

基础架构运营商可以管理在管理中心中运行的特定组件的升级。从 0.9 版开始,有三个组件可以单独升级:Anthos Config Management Operator、Anthos Service Mesh Operator 和 Anthos on Bare Metal。

将映像上传到 Container Registry 后,您需要发布新版本中随附的软件包规范。例如,Anthos Config Management operator 和 Anthos Service Mesh operator 的软件包规范位于 services/ 下。

  1. 应用新的 Anthos Config Management operator 软件包规范。

    kubectl apply -f ~/anthos-baremetal-private-mode/services/anthos-config-management/package-spec.yaml \
    --kubeconfig=ADMIN_KUBECONFIG
    
  2. 检查 Anthos Config Management Operator 的当前组件状态。

    kubectl get adminoperator admin-operator \
      --kubeconfig=ADMIN_KUBECONFIG \
      -ojsonpath='{.status.components[?(@.name=="anthos-config-management")]}'
    

    假设该命令给出了 0.9.X 的当前版本和 <=0.9.X 的当前版本限制条件。

    {"name":"anthos-config-management","version":"0.9.X","versionConstraint":"<=0.9.X"}
    
  3. 通过修改 Admin Operator 对象中的限制条件来启用新版本。

    kubectl edit AdminOperator admin-operator --kubeconfig=ADMIN_KUBECONFIG
    
  4. 在编辑器中,在 spec.updateConfigOverride.policies 下找到更新政策,并相应地增加组件版本。如果省略 spec.updateConfigOverride 或具有空的结构值 ({}),请按如下方式添加政策。

    spec:
      updateConfigOverride:
        policies:
        - name: anthos-config-management
          versionConstraint: <=0.9.Y
    

添加替换后,管理中心会发布更改,以获取较新版本的 Anthos Config Management Operator。

运行以下命令以监控新版本的发布情况,预计将从之前的 0.9.X 更改为 0.9.Y

kubectl get adminoperator admin-operator \
  --kubeconfig=ADMIN_KUBECONFIG \
  -ojsonpath='{.status.components[?(@.name=="anthos-config-management")].version}' \
  --watch

发布完成后,平台管理员可以通过管理中心使用新的 Anthos Config Management Operator。

升级用户集群

平台管理员可以使用 actl 命令行工具、管理中心或 API 来更新用户集群。

actl

运行以下命令以更新用户集群:

actl clusters baremetal upgrade CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG

控制台

  1. 在管理中心控制台内,转到信息中心菜单。
  2. 点击升级标签以查看所有可用的升级。
  3. 点击要升级的集群对应的查看升级
  4. 点击升级以查看升级详情,例如版本、说明和版本说明的链接。
  5. 点击继续进行确认。
  6. 点击升级以开始升级集群。

升级列表中的条目会显示升级 Upgrade in progress,直到升级完成。

API

您可以通过修改 Cluster 资源中的版本字符串来升级用户集群。

  1. 运行以下命令以修改用户集群的 Cluster 资源。

    kubectl edit cluster CLUSTER_NAME -n cluster-CLUSTER_NAME --kubeconfig=ADMIN_KUBECONFIG
    
  2. 更新 spec.anthosBareMetalVersion 中的版本字符串,然后控制器将进行升级。

    apiVersion: baremetal.cluster.gke.io/v1
    kind: Cluster
    metadata:
      name: CLUSTER_NAME
      namespace: cluster-CLUSTER_NAME
      annotations:
        baremetal.cluster.gke.io/private-mode: "true"
    spec:
      type: user
      anthosBareMetalVersion: VERSION
    

    VERSION 替换为新的 Anthos on Bare Metal 版本号。