将 Apigee Hybrid 升级到 1.4 版

升级到 1.4.4 版概览。

以下各部分介绍升级 Apigee Hybrid 的过程:

  1. 备份 Hybrid 安装。
  2. 检查您的 Kubernetes 版本,并根据需要升级。
  3. 升级 ASM。
  4. 安装 Hybrid 运行时 1.4 版。

前提条件

升级到 1.4 版

  1. (推荐)创建 1.3 版 $APIGEECTL_HOME/ 目录的备份副本。例如:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.3-backup.tar.gz $APIGEECTL_HOME
  2. (推荐)按照 Cassandra 备份和恢复中的说明备份 Cassandra 数据库。
  3. 请按如下所示升级您的 Kubernetes 平台。如需帮助,请参阅该平台的相关文档。
    平台 升级到版本
    GKE 1.18.x
    GKE On-Prem (Anthos) 1.5.x
    AKS 1.18.x(使用 Anthos 关联的集群
    EKS 1.18.x(使用 Anthos 关联的集群
  4. 将 ASM 升级到 1.6.x 版。
    1. 使用 ASM 文档执行升级:
    2. 指定以下入站端口,并在 istio-operator.yaml 文件中将 runAsRoot 属性设置为 true
          … … …
                  ports:
                  - port: 15021
                    name: status-port
                    targetPort: 15021
                  - port: 80
                    name: http2
                    targetPort: 80
                  - port: 443
                    name: https
                    targetPort: 443
      
          … … …
          values:
            gateways:
              istio-ingressgateway:
                runAsRoot: true 
    3. istio-operator.yaml 文件中创建 PeerAuthentication CR,以停用 mTLS:
      ---
      apiVersion: security.istio.io/v1beta1
      kind: PeerAuthentication
      metadata:
        name: apigee-system
        namespace: apigee-system
      spec:
        mtls:
          mode: DISABLE
      ---
      apiVersion: security.istio.io/v1beta1
      kind: PeerAuthentication
      metadata:
        name: user-namespace
        namespace: user-namespace
      spec:
        mtls:
          mode: DISABLE
    4. 按照 ASM 文档中的说明,使用 istioctl 应用这些更改:

安装 Hybrid 1.4.4 运行时

  1. 将最新版本号存储在变量中:
    export VERSION=$(curl -s \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt?ignoreCache=1)
  2. 检查该变量是否已填充版本号。如果要使用其他版本,您可以改为将其保存在环境变量中。例如:
    echo $VERSION
      1.4.4
  3. 下载适用于您的操作系统的软件包版本:

    Mac 64 位

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_64.tar.gz

    Linux 64 位

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_64.tar.gz

    Mac 32 位

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_mac_32.tar.gz

    Linux 32 位

    curl -LO \
        https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/$VERSION/apigeectl_linux_32.tar.gz
  4. 将当前 apigeectl/ 目录重命名为备份目录名称。例如:
    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.2/ 
  5. 将下载的 gzip 文件内容解压缩到 Hybrid 基本目录中。例如:

    tar xvzf filename.tar.gz -C hybrid-base-directory

  6. 使用 cd 命令转到基本目录。
  7. 默认情况下,tar 内容会扩展到其名称中包含版本和平台的目录。例如 ./apigeectl_1.4.4-xxx_linux_64。将该目录重命名为 apigeectl

    mv apigeectl_1.4.5-xxx_linux_64 apigeectl
  8. 新的 apigeectl/ 目录中,运行 apigeectl initapigeectl applyapigeectl check-ready
    1. 初始化 Hybrid 1.4.4:
      apigeectl init -f overrides.yaml

      其中,overrides.yaml 是修改后的 override.yaml 文件。

    2. 使用以下命令确认 Hybrid 1.4.4 已正确初始化:
      apigeectl check-ready -f overrides.yaml
      kubectl describe apigeeds -n apigee

      输出应如下所示:

      Status:
        Cassandra Data Replication:
        Cassandra Pod Ips:
          10.8.2.204
        Cassandra Ready Replicas:  1
        Components:
          Cassandra:
            Last Successfully Released Version:
              Revision:  v1-f8aa9a82b9f69613
              Version:   v1
            Replicas:
              Available:  1
              Ready:      1
              Total:      1
              Updated:    1
            State:        running
        Scaling:
          In Progress:         false
          Operation:
          Requested Replicas:  0
        State:                 running
      
    3. apigeectl --dry-run 标志的语法取决于您运行的 kubectl 的版本。检查 kubectl 的版本:
      gcloud version
    4. 使用适合 kubectl 的版本的命令进行试运行,检查是否存在错误:

      kubectl 1.17 版及更早版本:

      apigeectl apply -f overrides.yaml --dry-run=true

      kubectl 1.18 版及更高版本:

      apigeectl apply -f overrides.yaml --dry-run=client
    5. 应用替换文件:选择生产环境或演示/实验环境的相关说明并按照这些说明操作,具体取决于您的安装。

      生产

      对于生产环境,您应该单独升级每个 Hybrid 组件,并检查升级后的组件的状态,再继续升级下一个组件。

      1. 应用替换文件以升级 Cassandra:
        apigeectl apply -f overrides.yaml --datastore
      2. 检查完成情况:
        kubectl -n namespace get pods
        apigeectl check-ready -f overrides.yaml

        其中,namespace 是您的 Apigee Hybrid 命名空间。

        仅当 Pod 准备就绪后,才继续执行下一步。

      3. 应用替换文件以升级遥测组件和检查完成情况:
        apigeectl apply -f overrides.yaml --telemetry
        kubectl -n namespace get pods
        apigeectl check-ready -f overrides.yaml
      4. 应用替换文件以升级组织层级组件(MART、Watcher 和 Apigee Connect)并检查完成情况:
        apigeectl apply -f overrides.yaml --org
        kubectl -n namespace get pods
        apigeectl check-ready -f overrides.yaml
      5. 应用替换文件以升级您的环境。您有以下两种选择:
        • 对每个环境逐一应用:每次将替换文件应用于一个环境,然后检查完成情况。对每个环境重复执行此步骤:
          apigeectl apply -f overrides.yaml --env env_name
          kubectl -n namespace get pods
          apigeectl check-ready -f overrides.yaml

          其中,env_name 是您要升级的环境的名称。

        • 同时应用于所有环境:将替换文件同时应用于所有环境,然后检查完成情况:
          apigeectl apply -f overrides.yaml --all-envs
          kubectl -n namespace get pods
          apigeectl check-ready -f overrides.yaml

      演示/实验环境

      在大多数演示或实验环境中,您可以将替换文件同时应用于所有组件。如果您的演示/实验环境大且复杂或非常类似于生产环境,则可能需要使用升级生产环境的说明

      1. apigeectl apply -f overrides.yaml
      2. 检查状态:
        apigeectl check-ready -f overrides.yaml

    恭喜!您已成功升级到 Apigee Hybrid 1.4.4 版。