Kubernetes CORE CONCEPTS – IMPERATIVE COMMANDS

Kubectlを使用したImperativeコマンド

 

--dry-run

デフォルトでは、コマンドが実行されるとすぐにリソースが作成されます。

 

--dry-run=client

コマンドをテストしたいだけの場合に使用

これはリソースを作成しませんが、代わりに、リソースを作成できるかどうか、およびコマンドが正しいかどうかを示します。

 

-o yaml

リソース定義がYAML形式で画面に出力される

 

POD

 

Create an NGINX Pod NGINX でのPodの作成

kubectl run nginx --image=nginx

 

Generate POD Manifest YAML file (-o yaml). Don't create it(--dry-run)

PODマニフェストYAMLファイルの生成 (作成しない場合--dry-run)

kubectl run nginx --image=nginx --dry-run=client -o yaml

 

Deployment

 

Create a deployment  デプロイメントの作

kubectl create deployment --image=nginx nginx

 

Generate Deployment YAML file (-o yaml). Don't create it(--dry-run)

DeploymentYAMLファイルの生成 (作成しない場合--dry-run)

kubectl create deployment --image=nginx nginx --dry-run=client -o yaml

 

Generate Deployment with 4 Replicas

4Replicas でDeploymentを生成する場合

kubectl create deployment nginx --image=nginx --replicas=4

 kubectl scale を使用して展開をスケーリングすることもできる

kubectl scale deployment nginx --replicas=4

 

Another way to do this is to save the YAML definition to a file and modify

YAML定義をファイルに保存して変更する事ににより生成する場合

kubectl create deployment nginx --image=nginx --dry-run=client -o yaml > nginx-deployment.yaml

デプロイを作成する前に、レプリカまたはその他のフィールドでYAMLファイルを更新可能。

 

Service

 

Create a Service named redis-service of type ClusterIP to expose pod redis on port 6379

ClusterIPの種類で「redis-service」と言う名前、Serviceを作成し、Port6379でポッド redisを公開する場合

kubectl expose pod redis --port=6379 --name redis-service --dry-run=client -o yaml

ポッドのラベルがセレクターとして自動的に使用されり

Or

kubectl create service clusterip redis --tcp=6379:6379 --dry-run=client -o yaml

セクターとしてpod ラベル使用されなく、セクターをapp=redis として認識する

オプションとしてセレクターを渡すことはできない。なので、ポッドに別のラベルセットがある場合は、うまく機能しません。したがって、サービスを作成する前に、ファイルを生成してセレクターを変更すること。

 

Create a Service named nginx of type NodePort to expose pod nginx's port 80 on port 30080 on the nodes:

NodePortタイプのnginxという名前のサービスを作成して、ノードのPort 30080にポnginxのポート80を公開する場合

kubectl expose pod nginx --type=NodePort --port=80 --name=nginx-service --dry-run=client -o yaml

ポッドのラベルがセレクターとして自動的に使用されますが、ノードポートを指定することはできません。ポッドを使用してサービスを作成する前に、定義ファイルを生成してから、ノードポートを手動で追加する必要がある。

Or

kubectl create service nodeport nginx --tcp=80:80 --node-port=30080 --dry-run=client -o yaml

ポッドラベルをセレクターとして使用されない

上記の両方のコマンドには課題がある。
一方はセレクターを受け入れることができませんが、もう一方はノードポートを受け入れることができない。
kubectl exposeコマンドを使用することをお勧め。ノードポートを指定する必要がある場合は、同じコマンドを使用して定義ファイルを生成し、サービスを作成する前にノードポートを手動で入力。

 

レファレンス:

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

https://kubernetes.io/docs/reference/kubectl/conventions/