【问题标题】:Kubernetes jenkins - Permission deniedKubernetes jenkins - 权限被拒绝
【发布时间】:2021-02-14 16:24:59
【问题描述】:

我已经安装了 kubernetes 集群,因此我有一个 jenkins 的部署文件。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      containers:
      - name: jenkins
        image: jenkins/jenkins:lts
        ports:
          - name: http-port
            containerPort: 8080
          - name: jnlp-port
            containerPort: 50000
        volumeMounts:
          - name: jenkins-vol
            mountPath: /var/jenkins_vol
            spec:
      volumes:
        - name: jenkins-vol
          emptyDir: {}

我唯一需要的是通过 curl 请求安装 kubernetes 客户端(Kubectl)。 问题是当我进入 pod 并创建 curl 请求时,它返回 Permission denied

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.20.2/bin/linux/amd64/kubectl
Warning: Failed to create the file kubectl: Permission denied

【问题讨论】:

    标签: jenkins kubernetes


    【解决方案1】:

    尝试在您的部署中添加 securityContext

    spec:
      securityContext:
        runAsUser: 0
    

    如果这不起作用,(您的 jenkins 部署失败或其他问题),那么当您进入 pod ( pod exec) 时,通过运行 idwhoami 检查它是什么用户

    【讨论】:

    • 嗨@Kiran D - 这解决了我的问题,非常感谢。我尝试在谷歌中搜索地狱的 kubernetes 并没有找到 runAsuser: 0 的解决方案 - 只是一个问题 - runAsUser: 0 应该在引擎盖下做什么?非常感谢。
    • 查看此页面以获得更详细的解释。kubernetes.io/docs/tasks/configure-pod-container/… 。简单解释一下,runAsUser 将使容器中的进程在该用户 ID 下运行。这里我们指定 0 即 root 用户。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 2018-11-16
    • 2019-04-02
    • 1970-01-01
    • 2013-02-27
    • 1970-01-01
    • 2022-12-18
    相关资源
    最近更新 更多