K8s: nginx-ingress: SSL_do_handshake() が失敗しました (SSL: エラー:191CF08C:SSL ルーチン:tls_parse_ctos_key_share: 不正なキー共有)

K8s: nginx-ingress: SSL_do_handshake() が失敗しました (SSL: エラー:191CF08C:SSL ルーチン:tls_parse_ctos_key_share: 不正なキー共有)

nginx ingress と cert-manager が古く、Kubernetes バージョン 1.22 と互換性がないことが判明しました。2 つのコンポーネントをアップグレードします。nginx-ingress を 0.26.1 から 1.5.1 に、cert-manager をバージョン 0.12.0 から 1.5 にアップグレードします。

これにより、cert-managerポッドが実行される

kubectl get pods -n cert-manager
NAME                                       READY   STATUS    RESTARTS   AGE
cert-manager-dfp85b9bd-ptk9l               1/1     Running   0          26h
cert-manager-cainjector-3d65bcdcfd-fktsz   1/1     Running   0          26h
cert-manager-webhook-c596f8c6c-8cx4x       1/1     Running   0          26h

そして

Kubectl get certificates -n default
NAME               READY   SECRET             AGE
alertmanager-tls   False   alertmanager-tls   1y12d
prometheus-tls     False   prometheus-tls     1y19d

                                                                              

cmctl check api -n cert-managerは次のように返します: cert-manager APIは準備ができています

孤立したシークレットをクリーンアップします。これにより、cert-manager の自動的に作成された自己署名 CA 証明書が削除されました。再起動後、ログは主にクリーンに見えました。

まだ存在するエラー:

cert-manager-cainjector: cert-manager/secret-for-certificate-mapper "msg"="unable to fetch certificate that owns the secret" "error"="Certificate.cert-manager.io "grafana-tls" not found"

nginx-ingress: SSL_do_handshake() failed (SSL: error:191CF08C:SSL routines:tls_parse_ctos_key_share:bad key share) while SSL handshaking, client

関連情報