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

回到顶部