使用Kubernetes集群部署的Jenkins管道中由未知权限错误签名的证书

时间:2020-03-20 10:20:26

标签: jenkins kubernetes

当我尝试使用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

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

在故障排除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