Поэтому мне нужно изменить 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.