最近在研究云原生,使用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 问题解决
解决办法倒是很简单,只是这个查找问题的过程很痛苦。