孤立的Azure Kubernetes服务(AKS)SSL错误
我在一个隔离服务器上部署了一个helm图表,在自签名证书HTTPS post中,它对kube api所做的操作失败,出现以下错误: curl:(35)OpenSSL SSL\u connect:SSL\u ERROR\u连接到kubernetes.default.svc:443的系统调用 以前有人见过吗?这是“帖子”:孤立的Azure Kubernetes服务(AKS)SSL错误,ssl,curl,kubernetes,kubernetes-helm,azure-aks,Ssl,Curl,Kubernetes,Kubernetes Helm,Azure Aks,我在一个隔离服务器上部署了一个helm图表,在自签名证书HTTPS post中,它对kube api所做的操作失败,出现以下错误: curl:(35)OpenSSL SSL\u connect:SSL\u ERROR\u连接到kubernetes.default.svc:443的系统调用 以前有人见过吗?这是“帖子”: echo "Creating a secret for the certificate and keys" STATUS=$(curl -ik \ -o
echo "Creating a secret for the certificate and keys"
STATUS=$(curl -ik \
-o ${TMP_DIR}/output \
-w "%{http_code}" \
-X POST \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"kind": "Secret",
"apiVersion": "v1",
"metadata": {
"name": "spark-webhook-certs",
"namespace": "'"$NAMESPACE"'"
},
"data": {
"ca-cert.pem": "'"$ca_cert"'",
"ca-key.pem": "'"$ca_key"'",
"server-cert.pem": "'"$server_cert"'",
"server-key.pem": "'"$server_key"'"
}
}' \
https://kubernetes.default.svc/api/v1/namespaces/${NAMESPACE}/secrets
发生此错误的原因是自签名证书的.sh正由docker image命令在此处调用:
我知道它还没有结束,因为它没能说出它试图发布的秘密。你们认为我应该从哪里着手解决问题?我在这里发布了其他信息,包括屏幕截图:我将尝试更新
gencerts.sh
的内容,以获取有关错误的更多上下文:
-v
或-verbose
选项添加到curl
命令中strace
调用curl
命令strace
将产生大量输出
另一个信息来源是kube apiserver日志。您将需要通过调整集群的配置来实现这一点。您应该期望每个API请求都由kube-apiserver
记录
这里的第一个问题是控制平面是否接收到请求。为了解决这个问题,我将在集群内的容器上获取一个shell,并尝试重新创建
gencerts.sh
发出的curl
请求。kubernetes文档中有一些关于的信息。我想这样做,唯一的问题是我没有权限访问生成gencert.sh(包括图像)的dockerfile。我需要考虑是否可以基于该图像创建一个图像,并以某种方式删除和替换该文件。我添加了一些关于收集kube-apiserver
日志的信息,这些日志应该告诉您失败的请求是否成功(我怀疑不是)。此外,您可以尝试在创建用于故障排除的任意容器中复制故障,而不是操纵映像。您是对的:k8s.io/client go/informers/factory.go:134:Watch close-*v1beta1.ValidatingWebhookConfiguration共收到0个项目,但kube apiserver也没有给我太多信息。我在kubectl日志中也做了以下工作:1)未安装的卷=[webhook证书],未连接的卷=[webhook证书sparkoperator-1590335342-token-49pmd]:等待条件超时2)“webhook证书”:未找到机密“spark webhook证书”您认为如何:我看到:“spark webhook证书超时”,然后是404