EKS загадочным образом переключил мои SSL-сертификаты - PullRequest
0 голосов
/ 09 июля 2020

Через пару месяцев go, срок действия нашего сертификата ACM истек, и нам пришлось создать новый. Мы переключили наши различные сертификаты SSL, которые указывали на старый сертификат, на новый.

Вчера у нас была проблема с различными службами, в основном со всем, что было установлено service.beta.kubernetes.io/aws-load-balancer-ssl-cert. Ошибка, которую мы увидим при запуске kubectl service describe, была

Error creating load balancer (will retry)[...]"CertificateNotFound: Server Certificate not found for the key [the key for the old, expired cert]

. Очевидно, службы пытались использовать старый сертификат. Мы запустили kubectl apply -f в наш YAML-файл службы, и все снова заработало, поскольку теперь у него был правильный сертификат.

Глядя на все службы (сломались они или нет), все они запускали Ensuring load balancer одновременно .

Проверяя логи CloudWatch для kube-api-server, мы видим

2020-07-08T17:52:52.000-07:00
I0709 00:52:52.416087 1 trace.go:76] Trace[1229595966]: "GuaranteedUpdate etcd3: *core.Endpoints" (started: 2020-07-09 00:52:51.422755142 +0000 UTC m=+14430503.608971721) (total time: 993.301037ms): Trace[1229595966]: [993.271742ms] [993.124774ms] Transaction committed

2020-07-08T17:52:52.000-07:00
I0709 00:52:52.416248 1 trace.go:76] Trace[1078378997]: "Update /api/v1/namespaces/kube-system/endpoints/kube-scheduler" (started: 2020-07-09 00:52:51.422630359 +0000 UTC m=+14430503.608847013) (total time: 993.594954ms): Trace[1078378997]: [993.487891ms] [993.397859ms] Object stored in database

2020-07-08T17:52:58.000-07:00
I0709 00:52:58.425781 1 trace.go:76] Trace[2045209344]: "GuaranteedUpdate etcd3: *core.Endpoints" (started: 2020-07-09 00:52:51.423972403 +0000 UTC m=+14430503.610188985) (total time: 7.001779836s): Trace[2045209344]: [7.001779836s] [7.001630642s] END

2020-07-08T17:52:58.000-07:00
E0709 00:52:58.425830 1 status.go:64] apiserver received an error that is not an metav1.Status: rpctypes.EtcdError{code:0xe, desc:"etcdserver: request timed out"}

2020-07-08T17:52:58.000-07:00
I0709 00:52:58.426023 1 trace.go:76] Trace[1393324199]: "Update /api/v1/namespaces/kube-system/endpoints/kube-controller-manager" (started: 2020-07-09 00:52:51.423868975 +0000 UTC m=+14430503.610085635) (total time: 7.002138265s): Trace[1393324199]: [7.002138265s] [7.002066229s] END

2020-07-08T17:52:58.000-07:00
I0709 00:52:58.993530       1 trace.go:76] Trace[757689725]: "Get /api/v1/namespaces/kube-system/endpoints/kube-scheduler" (started: 2020-07-09 00:52:54.417274643 +0000 UTC m=+14430506.603491208) (total time: 4.576232198s):
Trace[757689725]: [4.576183481s] [4.576129748s] About to write a response

2020-07-08T17:52:58.000-07:00
I0709 00:52:58.993839       1 trace.go:76] Trace[1619947645]: "Get /api/v1/namespaces/kube-system/configmaps/eks-certificates-controller" (started: 2020-07-09 00:52:53.722506235 +0000 UTC m=+14430505.908722905) (total time: 5.271312338s):
Trace[1619947645]: [5.271267131s] [5.271264716s] About to write a response

Я предполагаю, что /api/v1/namespaces/kube-system/configmaps/eks-certificates-controller - это соответствующий вызов. В kube-controller-manager было много активности log, но я не знаю, что там искать.

Итак, мои вопросы по существу:

  1. Что, черт возьми, произошло?
  2. Что заставило его назначить старый сертификат на услуги?
  3. Что я могу сделать, чтобы это больше не повторилось?

Заранее спасибо и дайте мне знать, если я могу предоставить дополнительную информацию.

...