Closed6

kubectl auth whoami を使ってみた

Rue YokazeRue Yokaze

記事執筆時点での kind の最新バージョンは 0.20.0, デフォルトの k8s バージョンは 1.27.3 です。

$ kind version
kind v0.20.0 go1.20.5 linux/amd64
$ kubectl get node
NAME                 STATUS   ROLES           AGE     VERSION
kind-control-plane   Ready    control-plane   2m13s   v1.27.3
Rue YokazeRue Yokaze

このバージョンだと、そのままでは以下のエラーが表示されて kubectl auth whoami コマンドが使えません。APISelfSubjectReview feature gate を有効にし、runtime config で authentication.k8s.io を設定する必要があります。

$ kubectl auth whoami
error: the selfsubjectreviews API is not enabled in the cluster
enable APISelfSubjectReview feature gate and authentication.k8s.io/v1alpha1 or authentication.k8s.io/v1beta1 API
Rue YokazeRue Yokaze

APISelfSubjectReviewauthentication.k8s.io を有効にする kind の設定ファイルは以下の通りです。
k8s バージョンが 1.26 の場合は featureGates の指定が必要です。1.27 の場合はデフォルトで true なので runtimeConfig だけ書けば大丈夫です。

kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
featureGates:
  APISelfSubjectReview: true
runtimeConfig:
  "authentication.k8s.io/v1beta1": "true"
Rue YokazeRue Yokaze

設定ファイルを使って kind クラスタを立ち上げます。

$ kind create cluster --config cluster.yaml 
Creating cluster "kind" ...
 ✓ Ensuring node image (kindest/node:v1.27.3) 🖼 
 ✓ Preparing nodes 📦  
 ✓ Writing configuration 📜 
 ✓ Starting control-plane 🕹️ 
 ✓ Installing CNI 🔌 
 ✓ Installing StorageClass 💾 
Set kubectl context to "kind-kind"
You can now use your cluster with:

kubectl cluster-info --context kind-kind

Not sure what to do next? 😅  Check out https://kind.sigs.k8s.io/docs/user/quick-start/
Rue YokazeRue Yokaze

kubectl auth whoami コマンドが使えるようになりました。マルチテナント環境やクラウド環境で便利に使えそうですね。

$ kubectl auth whoami
ATTRIBUTE   VALUE
Username    kubernetes-admin
Groups      [system:masters system:authenticated]
このスクラップは2023/07/11にクローズされました