经常遇到有应用报镜像部署的时候报权限不够,或者应用部署后发现某个功能没权限执行,这是因为openshift默认会分配一个
uid 1000920000的用户作为应用运行的账户,如果需要使用指定的账户运行,则需要开启anyuid,而anyuid默认是关闭的。
开启方式如下:
- 登录到master,执行oc project porject-name,会提示已经切换到porject-name;
- 执行oc adm policy add-scc-to-user anyuid -z default,提示scc "anyuid" added to: ["system:serviceaccount:porject-name:default"]
- 如果应用已经部署,则需要重启pod;
判断该应用是否已经开启anyuid,可以查看pod yaml配置,如包含openshift.io/scc: anyuid则已开启。
[root@master01 ~]# oc get pod pod-name -o yaml
apiVersion: v1
kind: Pod
metadata:
annotations:
openshift.io/deployment-config.latest-version: "4"
openshift.io/deployment-config.name: pod-name
openshift.io/deployment.name: pod-name
openshift.io/scc: anyuid