kubernetes 1.24からSAのトークンが自動では払い出されない
詳細はリリースノートをご確認ください。
自社ではServiceAccount(SA)の情報を利用してJWTで、Hashicorp Vaultの認証を行っている。
https://developer.hashicorp.com/vault/docs/auth/kubernetes
これが、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はどうしたもんかなぁと思っていたところ、いや、ローカルにあるがな・・・と気づいてピッと対処した。