10.2. 将 OpenShift Logging 更新至当前版本

要将 OpenShift Logging 从 5.x 更新至当前版本,您需要更改 OpenShift Elasticsearch Operator 和 Red Hat OpenShift Logging Operator 的订阅。

重要

在更新 Red Hat OpenShift Logging Operator ,您必须更新 OpenShift Elasticsearch Operator。您还必须将两个 Operator 更新至同一版本。

如果您以错误的顺序更新 Operator,则 Kibana 不会更新,并且不会创建 Kibana 自定义资源 (CR)。要临时解决这个问题,请删除 Red Hat OpenShift Logging Operator pod。当 Red Hat OpenShift Logging Operator pod 重新部署时,它会创建 Kibana CR 和 Kibana 再次可用。

先决条件

  • OpenShift Container Platform 版本为 4.7 或更高版本。
  • OpenShift Logging 处于健康状态:

    • 所有 pod 都为 Ready 状态。
    • Elasticsearch 集群处于健康状态。
  • 您的 Elasticsearch 和 Kibana 数据已被备份。

流程

  1. 更新 OpenShift Elasticsearch Operator:

    1. 在 Web 控制台中,点 OperatorsInstalled Operators
    2. 选择 openshift-operators-redhat 项目。
    3. OpenShift Elasticsearch Operator
    4. SubscriptionChannel
    5. Change Subscription Update Channel 窗口中,选择 stable-5.x 并点 Save
    6. 等待几秒钟,然后点 OperatorsInstalled Operators

      验证 OpenShift Elasticsearch Operator 版本是否为 5.x.x。

      等待 Status 的值变为 Succeeded

  2. 更新 Red Hat OpenShift Logging Operator:

    1. 在 Web 控制台中,点 OperatorsInstalled Operators
    2. 选择 openshift-logging 项目。
    3. Red Hat OpenShift Logging Operator
    4. SubscriptionChannel
    5. Change Subscription Update Channel 窗口中,选择 stable-5.x 并点 Save
    6. 等待几秒钟,然后点 OperatorsInstalled Operators

      验证 Red Hat OpenShift Logging Operator 版本是否为 5.x.x。

      等待 Status 的值变为 Succeeded

  3. 检查日志记录组件:

    1. 确保所有 Elasticsearch pod 都处于 Ready 状态:

      $ oc get pod -n openshift-logging --selector component=elasticsearch

      输出示例

      NAME                                            READY   STATUS    RESTARTS   AGE
      elasticsearch-cdm-1pbrl44l-1-55b7546f4c-mshhk   2/2     Running   0          31m
      elasticsearch-cdm-1pbrl44l-2-5c6d87589f-gx5hk   2/2     Running   0          30m
      elasticsearch-cdm-1pbrl44l-3-88df5d47-m45jc     2/2     Running   0          29m

    2. 确保 Elasticsearch 集群健康:

      $ oc exec -n openshift-logging -c elasticsearch elasticsearch-cdm-1pbrl44l-1-55b7546f4c-mshhk -- health
      {
        "cluster_name" : "elasticsearch",
        "status" : "green",
      }
    3. 确保创建了 Elasticsearch cron 任务:

      $ oc project openshift-logging
      $ oc get cronjob
      NAME                     SCHEDULE       SUSPEND   ACTIVE   LAST SCHEDULE   AGE
      elasticsearch-im-app     */15 * * * *   False     0        <none>          56s
      elasticsearch-im-audit   */15 * * * *   False     0        <none>          56s
      elasticsearch-im-infra   */15 * * * *   False     0        <none>          56s
    4. 检查日志存储是否已更新至 5.x,并且索引是绿色的:

      $ oc exec -c elasticsearch <any_es_pod_in_the_cluster> -- indices

      验证输出是否包含 app-00000xinfra-00000xaudit-00000x.security 索引。

      例 10.3. 带有绿色状态索引的输出示例

      Tue Jun 30 14:30:54 UTC 2020
      health status index                                                                 uuid                   pri rep docs.count docs.deleted store.size pri.store.size
      green  open   infra-000008                                                          bnBvUFEXTWi92z3zWAzieQ   3 1       222195            0        289            144
      green  open   infra-000004                                                          rtDSzoqsSl6saisSK7Au1Q   3 1       226717            0        297            148
      green  open   infra-000012                                                          RSf_kUwDSR2xEuKRZMPqZQ   3 1       227623            0        295            147
      green  open   .kibana_7                                                             1SJdCqlZTPWlIAaOUd78yg   1 1            4            0          0              0
      green  open   infra-000010                                                          iXwL3bnqTuGEABbUDa6OVw   3 1       248368            0        317            158
      green  open   infra-000009                                                          YN9EsULWSNaxWeeNvOs0RA   3 1       258799            0        337            168
      green  open   infra-000014                                                          YP0U6R7FQ_GVQVQZ6Yh9Ig   3 1       223788            0        292            146
      green  open   infra-000015                                                          JRBbAbEmSMqK5X40df9HbQ   3 1       224371            0        291            145
      green  open   .orphaned.2020.06.30                                                  n_xQC2dWQzConkvQqei3YA   3 1            9            0          0              0
      green  open   infra-000007                                                          llkkAVSzSOmosWTSAJM_hg   3 1       228584            0        296            148
      green  open   infra-000005                                                          d9BoGQdiQASsS3BBFm2iRA   3 1       227987            0        297            148
      green  open   infra-000003                                                          1-goREK1QUKlQPAIVkWVaQ   3 1       226719            0        295            147
      green  open   .security                                                             zeT65uOuRTKZMjg_bbUc1g   1 1            5            0          0              0
      green  open   .kibana-377444158_kubeadmin                                           wvMhDwJkR-mRZQO84K0gUQ   3 1            1            0          0              0
      green  open   infra-000006                                                          5H-KBSXGQKiO7hdapDE23g   3 1       226676            0        295            147
      green  open   infra-000001                                                          eH53BQ-bSxSWR5xYZB6lVg   3 1       341800            0        443            220
      green  open   .kibana-6                                                             RVp7TemSSemGJcsSUmuf3A   1 1            4            0          0              0
      green  open   infra-000011                                                          J7XWBauWSTe0jnzX02fU6A   3 1       226100            0        293            146
      green  open   app-000001                                                            axSAFfONQDmKwatkjPXdtw   3 1       103186            0        126             57
      green  open   infra-000016                                                          m9c1iRLtStWSF1GopaRyCg   3 1        13685            0         19              9
      green  open   infra-000002                                                          Hz6WvINtTvKcQzw-ewmbYg   3 1       228994            0        296            148
      green  open   infra-000013                                                          KR9mMFUpQl-jraYtanyIGw   3 1       228166            0        298            148
      green  open   audit-000001                                                          eERqLdLmQOiQDFES1LBATQ   3 1            0            0          0              0
    5. 验证日志收集器是否已更新至 5.x:

      $ oc get ds fluentd -o json | grep fluentd-init

      验证输出是否包含 fluentd-init 容器:

      "containerName": "fluentd-init"
    6. 使用 Kibana CRD 验证日志可视化工具是否已更新至 5.x:

      $ oc get kibana kibana -o json

      验证输出是否包含具有 ready 状态的 Kibana Pod:

      例 10.4. 带有就绪 Kibana pod 的输出示例

      [
      {
      "clusterCondition": {
      "kibana-5fdd766ffd-nb2jj": [
      {
      "lastTransitionTime": "2020-06-30T14:11:07Z",
      "reason": "ContainerCreating",
      "status": "True",
      "type": ""
      },
      {
      "lastTransitionTime": "2020-06-30T14:11:07Z",
      "reason": "ContainerCreating",
      "status": "True",
      "type": ""
      }
      ]
      },
      "deployment": "kibana",
      "pods": {
      "failed": [],
      "notReady": []
      "ready": []
      },
      "replicaSets": [
      "kibana-5fdd766ffd"
      ],
      "replicas": 1
      }
      ]