如何在jenkins kubernetes插件上配置权限以访问远程GKE群集

时间:2019-10-16 09:51:18

标签: jenkins-plugins google-kubernetes-engine jenkins-kubernetes

我在GCE上设置了Jenkins,然后从那里尝试访问GKE上的k8s集群。当我尝试测试插件上的连接时,我得到了未授权。

我已启用GKE API访问权限,在GKE上创建了一个服务帐户,创建了角色和角色绑定。

在Jenkins上安装了kubernetes插件,并通过提供kubernetes URL,证书和令牌对其进行了配置。我仍然收到以下异常-

预计是-与Kubernetes集群的连接成功。

实际是-对连接https://35.193.108.106进行错误测试:java.security.cert.CertificateException:无法解析证书:java.io.IOException:空输入(带有禁用的Https)

AND

有(启用了禁用https证书检查) 测试连接https://35.193.108.106时出错:执行失败:在https://35.193.108.106/api/v1/namespaces/default/pods处执行GET。消息:未经授权。接收的状态:Status(apiVersion = v1,代码= 401,详细信息= null,种类= Status,消息=未授权,元数据= ListMeta(_continue = null,resourceVersion = null,selfLink = null,additionalProperties = {}),原因=未授权,状态=失败,AdditionalProperties = {})。

1 个答案:

答案 0 :(得分:2)

检查gcp网络规则设置,并从jenkins vm检查与kubectl的连接。我使用“秘密文本”类型的凭据存储令牌。我在同一gcp网络中使用jenkins vm来跳过此类问题。 在具有“管理员”权限的名称空间jenkins中创建服务帐户

kubectl create namespace jenkins && kubectl create serviceaccount jenkins --namespace=jenkins && kubectl describe secret $(kubectl describe serviceaccount jenkins --namespace=jenkins | grep Token | awk '{print $2}') --namespace=jenkins && kubectl create rolebinding jenkins-admin-binding --clusterrole=admin --serviceaccount=jenkins:jenkins --namespace=jenkins
相关问题