孤立的Azure Kubernetes服务(AKS)SSL错误

孤立的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

我在一个隔离服务器上部署了一个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 ${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
    命令
  • 这两个选项都将向stderr发送更多输出,因此您应该能够在日志中进行检查,更好地了解故障模式。公平警告:
    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