Изолированный Azure Ошибка SSL службы Kubernetes (AKS) - PullRequest
0 голосов
/ 28 мая 2020

Я развернул Helm-диаграмму на изолированном сервере, и в сообщении HTTPS с самозаверяющим сертификатом, которое он делает для kube-api, он не работает с этой ошибкой: SSL_ERROR_SYSCALL в связи с kubernetes.default.sv c: 443

Кто-нибудь видел это раньше? Это «POST»:

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 здесь: https://github.com/GoogleCloudPlatform/spark-on-k8s-operator/blob/master/hack/gencerts.sh

Я знаю, что это еще не конец, потому что он не раскрывает секрет, который пытается опубликовать. Как вы думаете, где мне следует искать, чтобы начать устранение неполадок? Я разместил здесь дополнительную информацию, включая снимки экрана: https://github.com/GoogleCloudPlatform/spark-on-k8s-operator/issues/926

1 Ответ

1 голос
/ 29 мая 2020

Я бы попытался обновить содержимое gencerts.sh, чтобы получить более подробную информацию об ошибке:

  1. Добавьте параметр -v или --verbose в команду curl.
  2. Используйте strace для вызова команды curl

Обе эти опции отправят больше выходных данных на stderr, так что вы сможете проверить свой журнал и получить лучшее представление о режиме отказа. Справедливое предупреждение: strace будет генерировать много вывода.

Другим источником информации могут быть журналы kube-apiserver. Вам нужно включить сбор основных журналов , настроив конфигурацию вашего кластера. Вы должны ожидать, что каждый запрос API будет регистрироваться kube-apiserver.

. Первый вопрос здесь заключается в том, получен ли запрос вообще плоскостью управления. Чтобы устранить эту проблему, я бы установил оболочку на контейнере внутри кластера и попытался воссоздать запрос curl, который делает gencerts.sh. Некоторая информация о доступе к API кластера без использования kubectl содержится в документации kubernetes.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...