当我尝试使用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
为什么会发生此错误,如何纠正我的实现?
答案 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