kubernetes 1.24からSAのトークンが自動では払い出されない

詳細はリリースノートをご確認ください。

自社ではServiceAccount(SA)の情報を利用してJWTで、Hashicorp Vaultの認証を行っている。

これが、1.24から動かなくなったので、原因を調べていると、1.24まではSAを作成すると、SAのトークンと、クラスタにアクセスするためのCA証明書がシークレットに格納されていたが、それが自動で作成されなくなった。これをリカバリするために、下記のように暫定.shで対処した。

#!/bin/bash

kubectl create token your-sa-name > ca.token
kubectl config view --raw -o json | jq -r '.clusters[] | select(.name == "your-cluster-name").cluster."certificate-authority-data"' | base64 -d > ca.crt

トークンは kubectl create token でシュッと作れたのだが、CAはどうしたもんかなぁと思っていたところ、いや、ローカルにあるがな・・・と気づいてピッと対処した。