环境:
Red Hat OpenShift Container Platform (RHOCP) 4
问题:
Cluster Version Operator 不断发送警报,表示在受限网络/断开连接的 OCP 4 集群中无法接收更新。
在隔离的 OpenShift 4 集群中看到 CannotRetrieveUpdates 警报:
Labels
alertname = CannotRetrieveUpdates
endpoint = metrics
environment = cluster_name
instance = 10.x.y.z:9099
job = cluster-version-operator
namespace = openshift-cluster-version
pod = cluster-version-operator-1234
prometheus = openshift-monitoring/k8s
service = cluster-version-operator
severity = critical
Annotations
message = Cluster version operator has not retrieved updates in 2d 1h 19m 41s. Failure reason RemoteFailed . For more information refer to https://console-openshift-console.apps.abc.xyz.com/settings/cluster/.
解决:
可以配置一个空的升级渠道,如果集群的网络访问受到限制并且无法访问升级推荐服务,则可以阻止集群的 Cluster Version Operator 尝试从升级推荐服务中获取可用的升级:
$ oc patch clusterversion/version --patch '{"spec":{"channel":""}}' --type=merge
clusterversion.config.openshift.io/version patched
也可以静音此警报以消除此警报消息。KCS 5491081 中有一个关于如何静音警报的示例(请注意,示例中的警报是不同的,因此需要在命令中更改警报名称)。
注意:从 OCP 4.8 开始,当配置空的升级渠道时,控制台中会出现一条信息消息,如介绍更改的 PR 中所示。
根本原因
由于受限网络/隔离的/断开连接的 OCP 4 集群无法连接到更新服务器,因此无法检索可用的升级或验证频道中的版本。有关更多信息,请参阅文档:受限网络安装中的其他限制。
诊断步骤
检查集群中是否配置了频道:
oc get clusterversion version -o jsonpath='{.spec.channel}{"\n"}'
stable-4.xx.xx
按照“解决”部分中的说明修补频道后,使用 oc adm upgrade info 命令检查是否未配置频道:
$ oc adm upgrade info
Cluster version is 4.xx.xx
warning: Cannot display available updates:
Reason: NoChannel
Message: The update channel has not been configured.
参考:https://access.redhat.com/solutions/5636241