非推奨警告の謎: 手動で作成されたトークンに対して警告をトリガーするのはジョブと cronjob のみ

非推奨警告の謎: 手動で作成されたトークンに対して警告をトリガーするのはジョブと cronjob のみ

Kubernetesクラスタを1.26.xから1.27.xにアップグレードしました

CronJobそして今では、または型のオブジェクトを作成しようとするたびにJob、次の警告メッセージが表示されます。

Warning: Use tokens from the TokenRequest API or manually created secret-based tokens instead of auto-generated secret-based tokens.

所有するもの: サービスアカウント

私がしたこと:

  1. kubernetes.io/service-account.name注釈参照付きの新しいシークレットを作成しました
  2. デフォルトの<sa-name>-token-xxxxシークレットを削除しました
  3. sa.<sa-name>.secrets今は空であることを確認しました

それでも、私はまだ警告を受けます。

ソースコードを確認しました:https://github.com/kubernetes/kubernetes/blob/024​​1da314e0e69817d66313b45a69c19d1ce7327/pkg/serviceaccount/legacy.go#L152

そこから、.secrets に秘密がないことだけで十分なように思えますが、そうではありません。

さらに、どこかに何もキャッシュされていないことを確認するために、すべてを再起動しました。

そして、どういうわけか、これはジョブ/cronジョブにのみ固有のものです。孤立したポッド、デプロイ、サービス、イングレスの作成は正常に機能しますが、ジョブとcronジョブを作成すると警告がトリガーされます。

他に何が足りないでしょうか?

答え1

どうやら、kubectlキャッシュに問題があるようです。

したがって、をクリアすると~/.kube/cache問題は解決しました。

関連情報