Openshift.io/scc错误的Openshift容器



在openshift 4.4.17集群中有无法解释的行为:oauth openshift部署(在openshiftauthentication命名空间中(有replicas=2,第一个pod正在运行:

openshift.io/scc: anyuid

第二个pod进入CrashLoopBackOff状态,分配给它的scc如下:

openshift.io/scc: nginx-ingress-scc (that is a customized scc for nginx purposes)

按文件:

默认情况下,openshift身份验证和openshift验证操作符命名空间中的pod使用anyuid SCC运行

我想集群中发生了一些变化,但我不知道错误在哪里。

Oauth penshift部署处于默认配置:

serviceAccountName: oauth-openshift
namespace: openshift-authentication
$ oc get scc anyuid -o yaml
users:
system:serviceaccount:default:oauth-openshift
system:serviceaccount:openshift-authentication:oauth-openshift
system:serviceaccount:openshift-authentication:default
$ oc get pod -n openshift-authentication
NAME                               READY   STATUS             RESTARTS   AGE
oauth-openshift-59f498986d-lmxdv   0/1     CrashLoopBackOff   158        13h
oauth-openshift-d4968bd74-ll7mn    1/1     Running            0          23d
$ oc logs oauth-openshift-59f498986d-lmxdv -n openshift-authentication
Copying system trust bundle
cp: cannot remove '/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem': Permission denied
$ oc get pod oauth-openshift-59f498986d-lmxdv -n openshift-authentication -o=yaml|grep   serviceAccount
serviceAccount: oauth-openshift
serviceAccountName: oauth-openshift
$ oc get pod oauth-openshift-59f498986d-lmxdv -n openshift-authentication -o=yaml|grep scc
openshift.io/scc: nginx-ingress-scc

授权操作员:

$ oc get pod -n openshift-authentication-operator
NAME                                       READY   STATUS    RESTARTS   AGE
authentication-operator-5498b9ddcb-rs9v8   1/1     Running   0          33d
$ oc get pod authentication-operator-5498b9ddcb-rs9v8 -n openshift-authentication-operator -o=yaml|grep scc
openshift.io/scc: anyuid
The managementState is set to Managed

首先,您应该检查您的SCC优先级是否是自定义的。例如,anyuidscc优先级为10,默认情况下为最高优先级。但是,如果其他SCC(在这种情况下,nginx-ingress-scc(配置的优先级超过10,则该SCC被oauth pod意外地选择。它可能会导致此问题。

问题是自定义scc(nginx ingress scc(的优先级高于10,即anyuid的优先级。现在解决了。

最新更新