首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openshift集群中Kaniko作业的权限被拒绝

openshift集群中Kaniko作业的权限被拒绝
EN

Stack Overflow用户
提问于 2020-03-29 15:53:43
回答 2查看 1.4K关注 0票数 1

我尝试通过我的k8s操作员在openshift 3.11集群上进行部署。当kaniko作业启动时,它会显示以下错误。

代码语言:javascript
复制
Error: error resolving dockerfile path: copying dockerfile: open /kaniko/Dockerfile: 
permission denied
EN

回答 2

Stack Overflow用户

发布于 2020-03-29 16:08:17

securityContext: runAsUser: 0添加到pod规范中,以根用户身份运行它。

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: security-context-demo
spec:
  securityContext:
    runAsUser: 0
票数 1
EN

Stack Overflow用户

发布于 2020-03-30 19:21:41

Kaniko是作为Build container images in Kubernetes and Google Container Builder without privileges的一个工具引入的。

我们很兴奋地介绍了kaniko,这是一个开源工具,可以在没有特权根访问的情况下从Dockerfile文件构建容器镜像。使用kaniko,我们都从Dockerfile构建镜像并将其推送到注册表。因为它不需要任何特殊的特权或权限,所以您可以在标准Kubernetes集群Google Kubernetes Engine中运行kaniko,或者在任何不能访问特权或Docker守护进程的环境中运行kaniko。

您遇到的问题已在GoogleContainerTools/kaniko GitHub issue中提到。

年1月11日,此问题被标记为Won't Fix,因此唯一的方法是使用securityContext: runAsUser: 0以超级用户身份运行Kaniko

这并不像人们认为的那样安全,Kurt Madel在他的博客Securely Building Container Images on Kubernetes中提到了这一点

作为Docker运行的

是一个攻击载体,许多人认为这是一个不可接受的安全漏洞-但是Pod安全策略的使用将减少作为Docker Pod的一部分运行的root容器的攻击面,并提供比我们已经驳回的基于K8s的方法更高的安全性。

他还解释了如何使用Kaniko the Easy Way

Jenkins X允许您对所有Jenkins X CD作业进行enable Kaniko as the default way to build and push container images,并将自动配置为推送到您安装Jenkins X的云的默认容器注册表,并且会自动为您设置Kaniko缓存-导致快速、安全的容器映像构建被推送到您的默认Jenkins X容器注册表。

要点: Jenkins X不支持this GitHub issue跟踪的Pod安全策略。在我的下一篇文章中,我们将介绍如何在Jenkins X中使用Pod安全策略--但不仅仅是针对Kaniko,因为一旦启用了Pod安全策略,每个K8s Role/ClusterRole都必须有一个与之关联的Pod安全策略。

Kaniko 的缺点

  • 需要以ROOT身份运行Kaniko容器,以便使用所有Dockerfiles执行大多数容器builds
  • Doesn’t工作,但仍在不断改进与良好的旧docker build

相比,

  • 的设置稍微复杂一些
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60911478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档