【踩坑云原生】解决 Kubernete 动态的生成 Slave 的 Pod 报错

最近在研究云原生,使用Kubernete搭建了一个Jenkins平台,准备用其构建简单的Demo,根据网上的教程会有报错。
可能是Jenkins镜像版本的问题,这里先记录一下

报错1:
Exec Failure: HTTP 403, Status: 403 - events is forbidden: User "system:serviceaccount:kube-ops:jenkins2" cannot watch resource "events" in API group "" in the namespace "kube-ops"

kube-ops 是我自己配置的namespace
jenkins2是我创建一个用户

根据提示可以知道resource 这个event没有相关权限。想起权限可能就会想起我们在创建jenkins2,
我们创建新用户的时候一个是在node上,也就是一些文件权限,显然和这个关系不大,还有第二个就是rbac

apiVersion: v1
kind: ServiceAccount
metadata:
  name: jenkins2
  namespace: kube-ops

---

kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: jenkins2
  namespace: kube-ops
rules:
  - apiGroups: [""]
    resources: ["pods"]
    verbs: ["create","delete","get","list","patch","update","watch"]
  - apiGroups: [""]
    resources: ["pods/exec"]
    verbs: ["create","delete","get","list","patch","update","watch"]
  - apiGroups: [""]
    resources: ["pods/log"]
    verbs: ["get","list","watch"]
  - apiGroups: [""]
    resources: ["secrets"]
    verbs: ["get"]

、、、、、、

这里面查看resources 没有events这资源,所以有可能是这里少配置内容,去网上找一些resources的配置类型,但是很遗憾没有找到events,但是为了验证猜想,就配置了一下
resources: ["pods"] -->resources: ["pods","events"] 下面有watch 权限, 所以不用动。
kubectl apply 一下,更新配置文件。在Build Now, 这个问题解决。

报错2:
Warning: JnlpProtocol3 is disabled by default, use JNLP_PROTOCOL_OPTS to alter the behavior
"-workDir" is not a valid option
...
...
...

将 镜像:cnych/jenkins:jnlp --> cnych/jenkins:jnlp6
应用、保存、Build Now 问题解决

解决办法倒是很简单,只是这个查找问题的过程很痛苦。

posted @ 2021-08-04 16:34  zscbest  阅读(374)  评论(0编辑  收藏  举报