[OpenShift]使用ServiceAccount定义UID [英] 【OpenShift】define UID using ServiceAccount
本文介绍了[OpenShift]使用ServiceAccount定义UID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
[错误摘要]
我不熟悉RedHat OpenShift。
OpenShift Pod状态CrashLoopBackOff。
Pod日志显示"id:找不到用户ID 1000660000的名称"和"java.io.FileNotFoundException:..(权限被拒绝)"。 我尝试通过更改UID来解决此问题,但不起作用。
如果原因不是UID,则可能是访问PVC。 有没有办法检查和更换PVC?
[错误再现(使用OpenShift Web控制台和终端)]
1.创建OpenShift群集和项目。
2.从外部注册表添加容器镜像 并创建部署。(同时创建应用程序和组件)
此时Pod正在运行。
3.打开部署页面并将Pod编号更改为0。
4.删除现有容器卷。
5.添加存储并创建PVC。
6.将Pod编号更改为1。
7.Pod未运行,Pod状态为CrashLoopBackOff。
8.使用下面的命令创建服务帐户"awag-sa"。
oc create sa awag-sa
oc adm policy add-scc-to-user anyuid-z awag-sa
9.创建修补serviceAccount的修补YAML文件"patch-file.yaml"
spec:
template:
spec:
serviceAccountName: awag-sa
10.使用下面的命令将YAML文件修补到部署
kubectl patch deployment nexus3-comp --patch "$(cat patch-file.yaml)"
11.检查部署YAML文件(OpenShift Web控制台)是否正确修改spec.template.spec.serviceAccountName。
但Pod状态仍为CrashLoopBackOff。
…
spec:
replicas: 0
selector:
matchLabels:
app: nexus3-comp
template:
metadata:
creationTimestamp: null
labels:
app: nexus3-comp
deploymentconfig: nexus3-comp
annotations:
openshift.io/generated-by: OpenShiftWebConsole
spec:
restartPolicy: Always
serviceAccountName: awag-sa
schedulerName: default-scheduler
terminationGracePeriodSeconds: 30
securityContext: {}
containers:
- name: nexus3-comp
…
推荐答案
※由提问者回答
我需要更改部署的volumemount设置。
volumeMounts:
- name: nexus-data-pvc
mountPath: /nexus-data
subPath: data
- name: nexus-data-pvc
mountPath: /opt/sonatype/nexus3/log
subPath: log
这篇关于[OpenShift]使用ServiceAccount定义UID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文