Назад | Перейти на главную страницу

SSL-сертификат балансировщика нагрузки GCP сбрасывается после изменения

Поэтому мне нужно изменить SSL-сертификат с истекшим сроком действия. К сожалению, ответственный за эту задачу внезапно скончался. У меня нет опыта работы с облаком Google, кубернетом или входом.

Если я перейду в облачную консоль Google к балансировщикам нагрузки и щелкну по единственному показанному, он покажет сертификат с именем «k8s-ssl-xyz», срок действия которого истек, мне нужно изменить. Я попытался отредактировать этот балансировщик нагрузки в настройках внешнего интерфейса и создать новый сертификат. Это сработало, но через несколько минут он вернется к старому сертификату.

В движке, службах и входящем трафике кубернетов есть служба под названием «basic-ingress4». Это yaml-файл содержит строку, в которой говорится:

ingress.kubernetes.io/ssl-cert: k8s-ssl-xyz

Я попытался изменить "k8s-ssl-xyz" на имя сертификата, который я создал ранее, но через некоторое время он также возвращается к старому.

gcloud beta compute ssl-certificates list

Возврат:

NAME            TYPE   CREATION_TIMESTAMP    EXPIRE_TIME      MANAGED_STATUS
k8s-ssl-xyz                  2019-10-01          2019-08-15
newcert         MANAGED     2019-09-30          2019-12-29        ACTIVE
    x.yz.de: ACTIVE

Я тоже пробовал

gcloud compute target-https-proxies update k8s-tps-xyz --ssl-certificates newcert

И он вернул «Обновлено [...]», но это тоже не сработало.

В принципе, я здесь потерялся. Как я могу изменить этот сертификат без его сброса?

Я разобрался. У службы basic-ingress4 есть запись в yaml с именем 'spec-> tls-> secretName'. Запуск команды kubectl get secrets вернул секрет с этим именем. kubectl describe secret/secretname вернулся, это действительно был секрет для хозяина, для которого я хотел изменить секрет.

Итак, делая

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /tmp/tls.key -out /tmp/tls.crt -subj "/CN=foo.bar.com"

с последующим

kubectl create secret tls foo-secret --key /tmp/tls.key --cert /tmp/tls.crt

Я создал новый секрет, содержащий новый сертификат. Изменение secretName введите в файле yaml новое имя секрета foo-secret наконец-то поменял сертификат навсегда.

/ E: Если кто-то хочет использовать сертификат, управляемый Google, можно удалить запись secretName и заменить балансировщик нагрузки на сертификат, управляемый Google.