1

kubectl run がデプロイメントを作成したり、ポッドを作成したりする理由を教えてください。

1 つ目はポッドを作成し、2 つ目はデプロイメントを作成することがわかります。唯一の差分は --restart=Never です


// 1
chams@master:~/yml$ kubectl run ng --image=ngnix --command --restart=Never --dry-run -o yaml
apiVersion: v1
kind: Pod
..
status: {}

//2
chams@master:~/yml$ kubectl run ng --image=ngnix --command  --dry-run -o yaml
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    run: ng
  name: ng
..
status: {}
4

2 に答える 2

1

デフォルトでkubectl runは、コマンドは配置を作成します。

コマンドを使用しkubectl runて、特定のイメージを作成および実行できます。作成されたコンテナーを管理するためのデプロイメントまたはジョブを作成します。

あなたの場合の違いは、再起動ポリシー引数を含むコマンド(最初のもの)に見られます。

再起動ポリシーの値が「Never」に設定されている場合、通常のPodが作成されます。後者の 2 つの --replicas には 1 を指定する必要があります。CronJobs Never のデフォルトは「 Always 」です。

コマンドを使用してみてください:

$ kubectl run --generator=run-pod/v1 ng --image=ngnix --command  --dry-run -o yaml

それ以外の

$ kubectl run ng --image=ngnix --command  --dry-run -o yaml

発言を避ける "kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead."

詳細については、 docker- kubectlkubectl-run を参照してください。

于 2019-07-09T12:21:40.333 に答える