油炸丸子George 2021-12-16 14:14 采纳率: 0%
浏览 144

k8s中pod的文件夹如果挂载数据卷(持久化),则pod无法启动,如何解决?

背景:
云平台k8s上部署gitlab代码仓库服务,其中需要把存放代码的文件夹持久化。
但是一旦将存放代码的目录挂载持久卷,则pod无法启动,并报错:“changing ownership operation not permitted”。如果不挂载这个目录的话,可以正常启动。
进入容器查看权限,发现是这个文件夹的权限问题,于是采用了"initContainers"来尝试解决,但是还是失败了:如果在initContainers中使用命令,则会报错:“Back-off restarting failed container”;如果不适用命令,则没有修改权限,报错还是“changing ownership operation not permitted”。

下面附上我的deployment的yaml:

kind: Deployment
metadata:
  name: gitlab
  namespace: sga
  labels:
    name: gitlab
spec:
  replicas: 1
  selector:
    matchLabels:
      name: gitlab
  template:
    metadata:
      name: gitlab
      creationTimestamp: null
      labels:
        name: gitlab
    spec:
      volumes:
        - name: data
          persistentVolumeClaim:
            claimName: gitlab
      initContainers:
        - args:
          - -c
          - chmod 755 /home/git/data && chown 1000:1000 /home/git/data
          command:
          - /bin/sh
          name: init-gitlab
          image: 'centos'
          resources: {}
          volumeMounts:
            - name: data
              mountPath: /home/git/data
          imagePullPolicy: IfNotPresent
          securityContext:
            privileged: true
            procMount: Default
      containers:
        - name: gitlab
          image: 'samegitlab:11.8.1'
          ports:
            - name: http
              containerPort: 80
              protocol: TCP
            - name: ssh
              containerPort: 22
              protocol: TCP
          env:
            - name: TZ
              value: Asia/Kolkata
            - name: GITLAB_TIMEZONE
              value: Beijing
            - name: GITLAB_SECRETS_DB_KEY_BASE
              value: long-and-random-alpha-numeric-string
            - name: GITLAB_SECRETS_SECRET_KEY_BASE
              value: long-and-random-alpha-numeric-string
            - name: GITLAB_SECRETS_OTP_KEY_BASE
              value: long-and-random-alpha-numeric-string
            - name: GITLAB_HTTPS
              value: 'true'
          resources:
            limits:
              cpu: '4'
              memory: 8Gi
            requests:
              cpu: '2'
              memory: 4Gi
          volumeMounts:
            - name: data
              mountPath: /home/git/data

请大家帮忙看看问题出在哪?

我想要达到的效果就是pod能够正常运行,并且能够将/home/git/data目录持久化存储

  • 写回答

2条回答 默认 最新

  • 归海听雪 2021-12-17 09:53
    关注

    这种通常是你的存储端目录权限不够,可以去检查一下。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月16日

悬赏问题

  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境
  • ¥30 关于#java#的问题,请各位专家解答!
  • ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
  • ¥20 pcf8563时钟芯片不启振
  • ¥20 pip2.40更新pip2.43时报错
  • ¥15 换yum源但仍然用不了httpd