kubernetes - Jenkins 管道 k8s 部署失败
问题描述
我正在尝试将我的应用程序部署到 EKS 集群中。当我运行 jenkins 作业kubectl get pod
时,当我尝试通过 jenkins 部署 yaml 文件时,我可以同时获取运行状态的详细信息,但出现以下错误:
+ kubectl create -f deployment.yaml
Error from server (Forbidden): error when creating "deployment.yaml": deployments.apps is forbidden: User "system:node:ip-10-2-3-4.eu-central-1.compute.internal" cannot create resource "deployments" in API group "apps" in the namespace "default"
创建吊舱
+ kubectl '--kubeconfig=****' '--context=arn:aws:eks:eu-central-1:123456789101:cluster/my-cluster' sh "kubectl auth can-i list pods"
yes
创建部署
+ kubectl '--kubeconfig=****' '--context=arn:aws:eks:eu-central-1:123456789101:cluster/my-cluster' sh "kubectl auth can-i create deployment"
no
解决方案
这意味着您有权读取/列出 pod 数据,但无权创建deployment
对象。
下面是2个例子,检查和比较它们。
- 第一个只是阅读规则(你目前拥有的)
rules:
- apiGroups: [""]
#
# at the HTTP level, the name of the resource for accessing Pod
# objects is "pods"
resources: ["pods"]
verbs: ["get", "list", "watch"]
- 第二是部署创建的权限(
verbs: ["**create**"]
)。很可能你错过了这部分
rules:
- apiGroups: ["extensions", "apps"]
#
# at the HTTP level, the name of the resource for accessing Deployment
# objects is "deployments"
resources: ["deployments"]
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
有关更多选项、示例和说明,请查看使用 RBAC 授权
推荐阅读
- java - 定义变量时调用类函数
- angular - ionic 4 中的社交媒体实施不起作用
- c++ - 为什么 C++ 中的函数重载解析会考虑静态调用的非静态成员函数?
- windows - 无法在 Windows 10 上启动 Spyder
- python - 无法使用 docker 运行客户端-服务器应用程序
- eclipse - 当我尝试输入 Jdatechooser 选择的日期时,我收到错误“数据异常:无效的日期时间格式”
- python - 无法在 Raspbian 上的 wx.Panel 上设置(某些类型的)边框
- html - 折叠时如何对齐导航栏切换右侧的导航栏?
- python - For 循环未正确执行
- r - 如何在循环中生成多个数据帧