Kubernetes-Jenkins集成
我使用kubeadm Kubernetes 1.9 RBAC集群进行了自举,并开始在基于jenkins / jenkins:lts的POD
Jenkins内部。我想尝试https://github.com/jenkinsci/kubernetes-
plugin。我已经基于https://gist.github.com/lachie83/17c1fff4eb58cf75c5fb11a4957a64d2中的提案创建了一个服务帐户
> kubectl -n dev-infra create sa jenkins> kubectl create clusterrolebinding jenkins --clusterrole cluster-admin --serviceaccount=dev-infra:jenkins
> kubectl -n dev-infra get sa jenkins -o yaml
apiVersion: v1
kind: ServiceAccount
metadata:
creationTimestamp: 2018-02-16T12:06:26Z
name: jenkins
namespace: dev-infra
resourceVersion: "1295580"
selfLink: /api/v1/namespaces/dev-infra/serviceaccounts/jenkins
uid: d040041c-1311-11e8-a4f8-005056039a14
secrets:
- name: jenkins-token-vmt79
> kubectl -n dev-infra get secret jenkins-token-vmt79 -o yaml
apiVersion: v1
data:
ca.crt: LS0tL...0tLQo=
namespace: ZGV2LWluZnJh
token: ZXlK...tdVE=
kind: Secret
metadata:
annotations:
kubernetes.io/service-account.name: jenkins
kubernetes.io/service-account.uid: d040041c-1311-11e8-a4f8-005056039a14
creationTimestamp: 2018-02-16T12:06:26Z
name: jenkins-token-vmt79
namespace: dev-infra
resourceVersion: "1295579"
selfLink: /api/v1/namespaces/dev-infra/secrets/jenkins-token-vmt79
uid: d041fa6c-1311-11e8-a4f8-005056039a14
type: kubernetes.io/service-account-token
之后,我去管理Jenkins->配置系统->云-> Kubernetes,并将Kubernetes URL设置为我也在kubectl
KUBECONFIG服务器中使用的集群API:url:port。
当我点击测试连接时,我得到“错误测试连接https:// url:port:执行失败:GET在:https://
url:port / api / v1 / namespaces / dev-infra /
pods。消息:禁止!配置服务帐户无权访问。服务帐户可能已被吊销。pod禁止:用户“ system:serviceaccount:dev-
infra:default”无法在名称空间“ dev-infra”中列出pod。
我不想给dev-infra:default用户一个集群管理员角色,并且我想使用我创建的jenkins
sa。我不明白如何在Jenkins中配置凭据。当我在https://github.com/jenkinsci/kubernetes-
plugin/blob/master/configuration.png上添加凭据时,我得到了
<select class="setting-input dropdownList"><option value="0">Username with password</option>
<option value="1">Docker Host Certificate Authentication</option>
<option value="2">Kubernetes Service Account</option>
<option value="3">OpenShift OAuth token</option>
<option value="4">OpenShift Username and Password</option>
<option value="5">SSH Username with private key</option>
<option value="6">Secret file</option>
<option value="7">Secret text</option>
<option value="8">Certificate</option></select>
我找不到一个清晰的示例,说明如何配置Jenkins Kubernetes
Cloud连接器以使用我的Jenkins对服务帐户jenkins进行身份验证。您能否帮助我找到分步指南-我需要哪种凭证?
问候,帕维尔
回答:
最佳做法是使用serviceaccount
您创建的Jenkins主Pod来启动它,而不是在Jenkins中创建凭据
参见示例yaml
以上是 Kubernetes-Jenkins集成 的全部内容, 来源链接: utcz.com/qa/401292.html