[OpenShift]使用ServiceAccount定义UID [英] 【OpenShift】define UID using ServiceAccount

查看:35
本文介绍了[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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆