On-Prem OpenShift 4.xでInsight Cluster OperatorがFallingになる場合の対処

Tetsuya Isogai
8 min readFeb 3, 2021

OpenShiftのCluster Operatorのトラブルシューティング方法、Redsocks透過プロキシを少しだけ含む

TL;DR

最初に言っておくとこれは私のLab環境で起きたことの対処であるため汎用性・再現性は非常に低い。OpenShift Insight OperatorがDegraded Statusになる場合の対処。

どうやって気づくか

  • OpenShiftのAdministrator Webコンソール(Administration->Cluster Settings)でUpdate StatusがFallingになる
    ※以下は正常時の画面。異常時はこの表示が赤くなる
  • oc get co の結果でDEGRADED: True と表示される
$ oc get co
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE
authentication 4.6.8 True False False 13h

insights 4.6.8 True False True 295d
kube-apiserver 4.6.8 True False False 249d

私の環境における原因

私の環境ではLab環境からインターネットに抜ける際に社内のProxyサーバ設定を意識しなくてよいようにRedsocksというTransparent Proxyを使っていた。使い心地は特に問題ないのだがこれが時々落ちる。これが原因でOpenShiftクラスタ及びその上のPodからインターネットへのアクセスができずに問題が発生していた。
systemctl status で状態をみると起動中であるがアクセスログの日付が数日前で止まっている)

# systemctl status redsocks.service
● redsocks.service - Redsocks transparent SOCKS proxy redirector
Loaded: loaded (/lib/systemd/system/redsocks.service; enabled; vendor preset: enabled)
...
Jan 29 23:53:54 transproxy redsocks[19875]: [10.0.1.112:37406->xx.xx.xx.xx:443]: dropping client (R/-), relay (-/W), idle 0.000011s

対処

redsocksを再起動。単純すぎる。

systemctl restart redsocks.service

確認

  • redsocksのアクセスログでインターネットへの疎通が始まったことを確認する。
  • oc logs <insights-operator-pod> -n openshift-insights --tail=20 でUploadが成功しているログが出ていることを確認する。以下はサンプル。
I0307 07:35:19.691482       1 insightsclient.go:248] Successfully reported id=2021-03-07T07:35:18Z x-rh-insights-request-id=b6676de1b5674aeab005cb8c8223478d, wrote=67020
I0307 07:35:19.691629 1 insightsuploader.go:152] Uploaded report successfully in 1.373324666s
I0307 07:35:19.691669 1 controllerstatus.go:46] name=insightsuploader healthy=true reason= message=
I0307 07:35:19.691762 1 insightsreport.go:208] Archive uploaded, starting pulling report...
I0307 07:35:19.691800 1 insightsreport.go:123] Starting retrieving report from Smart Proxy
I0307 07:35:19.691829 1 insightsreport.go:134] Initial delay for pulling: 1m0s
I0307 07:35:19.700343 1 status.go:317] The operator is healthy
I0307 07:35:21.569429 1 reflector.go:530] k8s.io/apiserver/pkg/authentication/request/headerrequest/requestheader_controller.go:172: Watch close - *v1.ConfigMap total 0 items received
I0307 07:35:23.402639 1 httplog.go:89] "HTTP" verb="GET" URI="/metrics" latency="14.051954ms" userAgent="Prometheus/2.23.0" srcIP="10.129.2.97:51836" resp=200
  • oc get co でステータスが正常に戻ることを確認する。インターネット疎通が復活してもすぐには修復せず、しばらく(3~5分くらい)時間がかかる。
$ oc get co
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE
authentication 4.6.8 True False False 14h
cloud-credential 4.6.8 True False False 296d
cluster-autoscaler 4.6.8 True False False 295d
config-operator 4.6.8 True False False 167d
console 4.6.8 True False False 4d1h
csi-snapshot-controller 4.6.8 True False False 46d
dns 4.6.8 True False False 47d
etcd 4.6.8 True False False 249d
image-registry 4.6.8 True False False 4d2h
ingress 4.6.8 True False False 47d
insights 4.6.8 True False False 295d
kube-apiserver 4.6.8 True False False 249d
kube-controller-manager 4.6.8 True False False 295d
kube-scheduler 4.6.8 True False False 249d
kube-storage-version-migrator 4.6.8 True False False 4d2h
machine-api 4.6.8 True False False 295d
machine-approver 4.6.8 True False False 167d
machine-config 4.6.8 True False False 47d
marketplace 4.6.8 True False False 4d2h
monitoring 4.6.8 True False False 4d2h
network 4.6.8 True False False 295d
node-tuning 4.6.8 True False False 47d
openshift-apiserver 4.6.8 True False False 50d
openshift-controller-manager 4.6.8 True False False 7d21h
openshift-samples 4.6.8 True False False 4d1h
operator-lifecycle-manager 4.6.8 True False False 295d
operator-lifecycle-manager-catalog 4.6.8 True False False 295d
operator-lifecycle-manager-packageserver 4.6.8 True False False 4d1h
service-ca 4.6.8 True False False 295d
storage 4.6.8 True False False 47d

まとめ

以上、Insight OperatorのStatusがDegradedになったときはインターネット疎通を疑ってみるといいよ、という話でした。

以上。

--

--

Tetsuya Isogai

Working at Microsoft/Cloud Solution Architect/Azure Core Infra