1

我在 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)

使用(禁用 https 证书检查启用)错误测试连接https://35.193.108.106:执行失败:GET at:https ://35.193.108.106/api/v1/namespaces/default/pods 。消息:未经授权。接收状态:Status(apiVersion=v1, code=401, details=null, kind=Status, message=Unauthorized, metadata=ListMeta(_continue=null, resourceVersion=null, selfLink=null, additionalProperties={}), reason=Unauthorized ,状态=失败,附加属性={})。

4

1 回答 1

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
于 2019-10-16T16:28:35.190 回答