更新 Linux on IBM Z and LinuxONE 上的 ZooKeeper 数据存储

升级 ZooKeeper 操作符。

准备工作

请确保您已配置好线上和线下的主机,以便从外部仓库拉取图片。 此外,请确保已添加正确的 Helm 仓库。

ZooKeeper 用于部署的操作系统版本和镜像标签

以下图片是固定在 Helm 图表或操作员版本中所需的。

平台 操作员版本 Helm Chart 版本 带有标签的图片
Linux® on IBM Z® and LinuxONE 0.2.15 1.0.0

artifact-public.instana.io/self-hosted-images/3rd-party/operator/zookeeper: 0.2.15_v0.21.0

artifact-public.instana.io/self-hosted-images/3rd-party/datastore/zookeeper: 3.9.3_v0.21.0

artifact-public.instana.io/self-hosted-images/k8s/ kubectl : v1.35.2_v0.11.0

在线升级 ZooKeeper

请按照以下步骤升级 ZooKeeper 数据存储。

  1. 创建 custom_values.yaml 并指定容差和亲和力。 如果文件已创建,请跳过此步骤。

    tolerations:
    - key: node.instana.io/monitor
      operator: Equal
      effect: NoSchedule
      value: "true"
    affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
            - matchExpressions:
                - key: node-role.kubernetes.io/monitor
                  operator: In
                  values:
                  - "true"
     
  2. 升级 ZooKeeper 操作符。

    helm upgrade zookeeper-operator instana/zookeeper-operator -n instana-zookeeper --version=1.0.0 --set image.repository=artifact-public.instana.io/self-hosted-images/3rd-party/operator/zookeeper  --set image.tag=0.2.15_v0.21.0 --set global.imagePullSecrets[0]=instana-registry --no-hooks -f custom_values.yaml
     
  3. 通过修改 ZooKeeper 的配置来更新 ZooKeeper :

    kubectl patch zookeepercluster instana-zookeeper -n iinstana-clickhouse --type=merge --patch '       
    spec:
      image:
        tag: "3.9.3_v0.21.0"
    '
     
  4. 请按照 《验证 ZooKeeper 》(在线和离线) 中的步骤操作。

离线升级 ZooKeeper

如果您尚未从外部注册表中拉取 ZooKeeper 的镜像,现在可以进行拉取。 在您的堡垒主机上运行以下命令。 然后,将这些图像复制到位于物理隔离环境中的 Instana 主机上。

docker pull artifact-public.instana.io/self-hosted-images/3rd-party/operator/zookeeper:0.2.15_v0.21.0
docker pull artifact-public.instana.io/self-hosted-images/3rd-party/datastore/zookeeper:3.9.3_v0.21.0
docker pull artifact-public.instana.io/self-hosted-images/k8s/kubectl:v1.35.2_v0.11.0
         

请在您的 Instana 主机上完成以下步骤。

  1. 将图片重新标记到您的内部图片库中。

    docker tag artifact-public.instana.io/self-hosted-images/3rd-party/operator/zookeeper:0.2.15_v0.21.0 <internal-image-registry>/zookeeper/zookeeper-operator:0.2.15_v0.21.0
    docker tag artifact-public.instana.io/self-hosted-images/3rd-party/datastore/zookeeper:3.9.3_v0.21.0 <internal-image-registry>/zookeeper/zookeeper:3.9.3_v0.21.0
    docker tag artifact-public.instana.io/self-hosted-images/k8s/kubectl:v1.35.2_v0.11.0 <internal-image-registry>/self-hosted-images/k8s/kubectl:v1.35.2_v0.11.0
                   
  2. 将镜像推送到堡垒主机上的内部镜像仓库。

    docker push <internal-image-registry>/operator/zookeeper:0.2.15_v0.21.0
    docker push <internal-image-registry>/zookeeper:3.9.3_v0.21.0
    docker push <internal-image-registry>/self-hosted-images/k8s/kubectl:v1.35.2_v0.11.0
                   
  3. 创建 custom_values.yaml 并指定容差和亲和力。 如果文件已创建,请跳过此步骤。

    tolerations:
    - key: node.instana.io/monitor
      operator: Equal
      effect: NoSchedule
      value: "true"
    affinity:
      nodeAffinity:
        requiredDuringSchedulingIgnoredDuringExecution:
          nodeSelectorTerms:
            - matchExpressions:
                - key: node-role.kubernetes.io/monitor
                  operator: In
                  values:
                  - "true"
     
  4. 升级 ZooKeeper 操作符。

    helm upgrade --install zookeeper-operator zookeeper-operator-1.0.0.tgz -n instana-zookeeper --version=1.0.0 --set image.repository=<internal-image-registry>/operator/zookeeper --set image.tag=0.2.15_v0.21.0 --no-hooks -f custom_values.yaml
     
  5. 通过修改 ZooKeeper 的配置来更新 ZooKeeper :

    kubectl patch zookeepercluster instana-zookeeper -n instana-clickhouse --type=merge --patch '
    spec:
      image:
        tag: "3.9.3_v0.21.0"
         '
     
  6. 请按照 《验证 ZooKeeper 》(在线和离线) 中的步骤操作。

验证 ZooKeeper (在线和离线)

请按照以下步骤验证 ZooKeeper。

  1. 请等待 ZooKeeper。

    kubectl get pods -n instana-zookeeper
     
  2. 检查 ZooKeeper 操作员Pod是否正在运行,以及它是否已调度到目标节点上。

    kubectl get pods -n instana-zookeeper -o wide
     

    以下示例展示了输出结果:

    NAME                                  READY   STATUS    RESTARTS   AGE   IP              NODE                                           NOMINATED NODE   READINESS GATES
    zookeeper-operator-6dcd4bdd74-7jhpn   1/1     Running   1          24d   10.254.12.198   worker2.instana-odf5.cp.fyre.ibm.com   <none>           <none>
     
  3. 请确认 ZooKeeper 是否正常运行。

    kubectl get all -n instana-zookeeper
     

    请参阅以下样本输出。

    NAME                      READY   STATUS    RESTARTS   AGE
    pod/instana-zookeeper-0   1/1     Running   0          119s
    pod/instana-zookeeper-1   1/1     Running   0          82s
    pod/instana-zookeeper-2   1/1     Running   0          47s
    
    NAME                                     TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                                        AGE
    service/instana-zookeeper-admin-server   ClusterIP   192.168.1.126   <none>        8080/TCP                                       2m
    service/instana-zookeeper-client         ClusterIP   192.168.1.13    <none>        2181/TCP                                       2m
    service/instana-zookeeper-headless       ClusterIP   None            <none>        2181/TCP,2888/TCP,3888/TCP,7000/TCP,8080/TCP   2m
    
    NAME                                 READY   AGE
    statefulset.apps/instana-zookeeper   3/3     2m3s