【问题标题】:Certificate signed by unknown authority error in Jenkins pipeline with Kubernetes cluster deployment使用 Kubernetes 集群部署的 Jenkins 管道中由未知权限错误签署的证书
【发布时间】:2020-07-01 11:29:19
【问题描述】:

当我尝试使用 Jenkins 和 Kubernetes 部署我的 Spring Boot 微服务时,我收到以下错误:

无法连接到服务器:x509:证书由未知权威签名(可能是因为在尝试验证候选权威证书“kubernetes”时出现“crypto/rsa:验证错误”)

我的 deployment.yaml 文件如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: spacestudysecurityauthcontrol-deployment
  labels:
    app: spacestudysecurityauthcontrol-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: spacestudysecurityauthcontrol-deployment
   template:
    metadata:
      labels:
        app: spacestudysecurityauthcontrol-deployment
      annotations: 
        date: "+%H:%M:%S %d/%m/%y"
    spec:
      imagePullSecrets:
        - name: "regcred"
      containers:
       - name: spacestudysecurityauthcontrol-deployment-container
         image: spacestudymilletech010/spacestudysecurityauthcontrol:latest
         imagePullPolicy: Always
         ports:
            - name: http
              containerPort: 8065
         readinessProbe:
          tcpSocket:
            port: 8065
          initialDelaySeconds: 5
          periodSeconds: 10
         livenessProbe:
          tcpSocket:
            port: 8065
          initialDelaySeconds: 15
          periodSeconds: 20
      nodeSelector:
          tenantName: tenant1

我的服务如下:

apiVersion: v1
kind: Service
metadata:
  name: spacestudysecurityauthcontrol-service
spec:
  type: NodePort
  ports:
    - port: 8065
      targetPort: 8065
      protocol: TCP
      name: http
      nodePort: 31026
  selector:
    app: spacestudysecurityauthcontrol-deployment

为什么会发生这个错误,我该如何纠正我的实现?

【问题讨论】:

  • 嗨雅各布。我想知道我是否可以提供一些发布建议?值得记住的是,本网站上发布的问题是针对长期读者的,而不仅仅是直接读者,以帮助解决当前发生的问题。因此,我们希望确保内容尽可能可读。当您发布时,往往会出现大小写/拼写/格式错误,我想知道您在提交之前是否可以多加注意。这将使志愿编辑免于一些工作,而且他们肯定已经有足够的工作要做了。
  • 您的问题有时伴随着您希望有人为您做这件事的样子,而这确实不是 Stack Overflow 的目的(“请更正我的实现”,“有人可以帮忙吗?我”)。我们鼓励这里的问题作者在处理问题时找到自己的代理(例如“我如何纠正我的实施”、“我需要做什么”)——这就是我们所有人变得更好(并且更自给自足)的方式软件工程师。

标签: jenkins kubernetes


【解决方案1】:

此错误通常意味着用于向 Kubernetes API 服务器进行身份验证的 kubeconfig 文件具有无法验证 Kubernetes API 服务器提供的服务器证书的 CA 证书。仔细检查您是否使用了与您尝试连接的 Kubernetes 集群相对应的正确 kubeconfig 文件。

【讨论】:

    【解决方案2】:

    这在Troubleshooting kubeadm TLS certificate errors中有很好的解释

    • 验证$HOME/.kube/config 文件是否包含有效证书,并在必要时重新生成证书。 kubeconfig 文件中的证书是 base64 编码的。可以使用base64 --decode命令对证书进行解码,使用openssl x509 -text -noout可以查看证书信息。
    • 使用以下方法取消设置 KUBECONFIG 环境变量:

    unset KUBECONFIG
    

    或者设置为默认KUBECONFIG位置:

     export KUBECONFIG=/etc/kubernetes/admin.conf
    
    • 另一种解决方法是为“admin”用户覆盖现有的kubeconfig

    mv  $HOME/.kube $HOME/.kube.bak
    mkdir $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    

    【讨论】:

      猜你喜欢
      • 2019-03-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 2016-08-24
      • 2021-01-29
      • 1970-01-01
      • 1970-01-01
      • 2021-02-08
      相关资源
      最近更新 更多