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 集群处于健康状态。
-
所有 pod 都为
- 您的 Elasticsearch 和 Kibana 数据已被备份。
流程
更新 OpenShift Elasticsearch Operator:
-
在 Web 控制台中,点 Operators
Installed Operators。 -
选择
openshift-operators-redhat
项目。 - 点 OpenShift Elasticsearch Operator。
-
点 Subscription
Channel。 - 在 Change Subscription Update Channel 窗口中,选择 stable-5.x 并点 Save。
等待几秒钟,然后点 Operators
Installed Operators。 验证 OpenShift Elasticsearch Operator 版本是否为 5.x.x。
等待 Status 的值变为 Succeeded。
-
在 Web 控制台中,点 Operators
更新 Red Hat OpenShift Logging Operator:
-
在 Web 控制台中,点 Operators
Installed Operators。 -
选择
openshift-logging
项目。 - 点 Red Hat OpenShift Logging Operator。
-
点 Subscription
Channel。 - 在 Change Subscription Update Channel 窗口中,选择 stable-5.x 并点 Save。
等待几秒钟,然后点 Operators
Installed Operators。 验证 Red Hat OpenShift Logging Operator 版本是否为 5.x.x。
等待 Status 的值变为 Succeeded。
-
在 Web 控制台中,点 Operators
检查日志记录组件:
确保所有 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
确保 Elasticsearch 集群健康:
$ oc exec -n openshift-logging -c elasticsearch elasticsearch-cdm-1pbrl44l-1-55b7546f4c-mshhk -- health
{ "cluster_name" : "elasticsearch", "status" : "green", }
确保创建了 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
检查日志存储是否已更新至 5.x,并且索引是
绿色
的:$ oc exec -c elasticsearch <any_es_pod_in_the_cluster> -- indices
验证输出是否包含
app-00000x
、infra-00000x
、audit-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.x:
$ oc get ds fluentd -o json | grep fluentd-init
验证输出是否包含
fluentd-init
容器:"containerName": "fluentd-init"
使用 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 } ]