Kubernetes CORE CONCEPTS – IMPERATIVE COMMANDS(ハンズオン)

■ kubectl run  <pod-name> --image=<image-name>

以下のPodをデプロイ

Name: nginx-pod

Image: nginx:alpine

 

■ kubectl run <pod-name> --image=<image-name> --labels="<key-value-pairs>"

以下を指定してredis podをデプロイ

Pod Name: redis

Image: redis:alpine

Labels: tier=db

 

■ kubectl create service --help でコマンドを確認

 

■ kubectl create service clusterip --help

 

■ kubectl expose --help

クラスター内でポート6379でredisアプリケーションを公開するサービスredis-serviceを作成する場合。

Service: redis-service

Port: 6379

Type: ClusterIP

kubectl expose pod <pod-name> --port 6379 --name <service-name>

kubectl get svc <service-name> 

 

■3つのレプリカを持つイメージkodekloud/webapp-colorを使用して、webappという名前のデプロイメントを作成する場合。(Imperativeコマンドのみを使用、定義ファイルを作成しない。)

Name: webapp

Image: kodekloud/webapp-color

Replicas: 3

 

■nginxイメージを使用してcustom-nginxという新しいポッドを作成し、コンテナポート8080で公開

 kubectl run <pod-name> --image=nginx --port=<port-num>


■Imperativeコマンドを使用してev-nsという名前の新しいNamespaceを作成。

kubectl create namespace <namespace-name>

 

■Imperativeコマンドを使用して、redisイメージを使用してdev-ns NameSpaceにredis-deployという新しいデプロイメントを作成し。 2つのレプリカを指定。

kubectl create deployment redis-deploy --image=redis --replicas=2 -n dev-ns

kubectl get deployment -n <namespace-name>

redis-deploy Deploymentが特定のNamespace, dev-nsにある事を確認

 

■デフォルトの名前空間でイメージhttpd:alpineを使用して、httpdというポッドを作成。次に、同じ名前(httpd)でタイプClusterIPのサービスを作成。サービスのターゲットポートは80。

 --expose=true は ポッドに関連付けられたClusterIPサービスを作成する`--port`が必須