【问题标题】:How to configure permissions on jenkins kubernetes plugin to access remote GKE Cluster如何在 jenkins kubernetes 插件上配置权限以访问远程 GKE 集群
【发布时间】:2019-10-16 09:51:18
【问题描述】:

我在 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 , status=Failure, additionalProperties={})。

【问题讨论】:

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


    【解决方案1】:

    检查 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
    

    【讨论】:

      猜你喜欢
      • 2017-07-03
      • 2016-07-18
      • 2018-07-02
      • 2019-06-06
      • 1970-01-01
      • 2019-03-21
      • 2020-02-03
      • 1970-01-01
      • 2020-05-28
      相关资源
      最近更新 更多