背景
Kubernetes上でサクッと動作検証でPodを立てたい時に
kubectl run \ --generator run-pod/v1 \ --namespace $NAMESPACE \ --image google/cloud-sdk:alpine \ --rm -it gcloud-test
とやりますが、今実行すると以下のようにエラーになります。
error: unknown flag: --generator
これの対応方法です。
環境
- kubectl --client v1.24.1
理由
のPRで削除されたためです。なのでこのPRが入ったバージョン以降(v1.18~)は使えなくなっています。
対応
基本
単純に--generator run-pod/v1
を削れば良いだけです。
$ kubectl run \ --namespace $K8S_NAMESPACE \ --image google/cloud-sdk:alpine \ --rm -it gcloud-test
以前は--generator run-pod/v1
を指定しないとDeploymentが作成されましたが、現在はPodのみになっています。
$ kubectl get po NAME READY STATUS RESTARTS AGE wi-test 1/1 Running 0 10s $ kubectl get deploy No resources found in default namespace.
--serviceaccountも使えなくなる
1.21では--serviceaccount=xxx
も使えなくなっていました。
なので使いたい場合は--overrides
で直接書き換える感じにします。
kubectl run \ --namespace $K8S_NAMESPACE \ --overrides='{ "spec": { "serviceAccount": "$KSA_NAME" } }' \ --image google/cloud-sdk:alpine \ --rm -it gcloud-test
まとめ
最新版ではkubectl run --generator run-pod/v1
が使えなくなっていたのでその対応方法を説明しました。