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`が必須