Утвержден Kubernetes CSR, но сертификат не отображается в статусе

Итак, я прошел через процесс генерации ключа RSA, создания YAML для CSR, используя kubectl для создания CSR в Minikube, одобрил сертификат.

Однако, когда я пытаюсь загрузить сертификат с помощью kubectl get csr my-csr -o jsonpath='{.status.certificate}', я получаю пустой результат.

Когда я делаю kubectl get csr my-csr -o yaml, чтобы получить дополнительную информацию, я вижу следующее:

status:
  conditions:
  - lastUpdateTime: "2020-01-17T20:17:20Z"
    message: This CSR was approved by kubectl certificate approve.
    reason: KubectlApprove
    type: Approved

Я ожидаю атрибут сертификата со строкой в ​​кодировке base64, которую я буду декодировать, чтобы получить сертификат для проверки сертификата клиента. Может кто-нибудь подскажет, что я делаю не так?

Для получения дополнительной информации я пытаюсь следовать инструкциям в это руководство


person Alex    schedule 17.01.2020    source источник


Ответы (4)


У меня похожая проблема. Когда я проверяю с помощью следующей команды:

kubectl получить svc

Вроде статус КСО утвержден, но не оформлен. Есть идеи, как это исправить?

[Обновлено] Я обнаружил проблему. Это потому, что kube-controller-manager пропустил эти параметры:

--cluster-подписывающий-файл-сертификата и --cluster-подписывающий-ключевой файл

person Ricky Wong    schedule 07.02.2020

Поскольку CSR не зависит от пространства имен, команда выглядит нормально. Я сделал то же самое, чтобы получить сертификат, проверьте, правильно ли вы указали правильное имя csr.

Во-вторых, если вы не указали имя и попытаетесь получить все подробности csr, вам нужно изменить структуру ключей с помощью дополнительных .items[*]

kubectl get csr -o jsonpath='{.items[*].status.certificate}'

У меня такое ощущение, что вы пропустили имя csr my-csr или имя не соответствует поиску (опечатка?). Дважды проверьте это.

person BMW    schedule 18.01.2020

В моем случае у меня была опечатка

signerName: kubernetes.io/kube-apisever-client

и результат будет тот же. csr был утвержден, а сертификат не выдан. Это было решено после того, как я исправил опечатку.

person Jack Liu Shurui    schedule 26.12.2020

Эта ошибка должна появиться. Из документов

Permitted subjects - organizations are exactly ["system:nodes"], common name starts with "system:node:".

Итак, решение состоит в том, чтобы добавить субъектов O = system: nodes и добавление system: node: к вашему имени службы при генерации сертификата.

Например, openssl req -new -key server.key -out server.csr -subj "/O=system:nodes/CN=system:node:colortokens-bgl.csp.svc" -config server.conf

person Prashant K    schedule 21.03.2021