31. (前略)
Merged “PREFIX-aks-handson-admin" as current context in /home/YOUR-NAME/.kube/config
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
aks-nodepool1-11483416-0 Ready agent 4m v1.11.3
aks-nodepool1-11483416-1 Ready agent 5m v1.11.3
AKSクラスターができあがっているころでしょうか
kubectlは、Kubernetesを操作するCLIです
kubectlの操作に必要な認証情報が
configファイルにマージされました
36. $ kubectl get pod -n kube-system -o wide
NAME READY STATUS RESTARTS AGE IP NODE
NOMINATED NODE
heapster-5f8d5688-97c75 2/2 Running 0 1d 10.244.1.7 aks-nodepool1-
11483416-0 <none>
kube-dns-v20-54f74f4458-cj2gn 3/3 Running 0 2d 10.244.0.7 aks-nodepool1-
11483416-1 <none>
kube-dns-v20-54f74f4458-qc76p 3/3 Running 0 2d 10.244.0.4 aks-nodepool1-
11483416-1 <none>
kube-proxy-8ltdw 1/1 Running 0 1d 10.240.0.4 aks-nodepool1-
11483416-0 <none>
(以下略)
詳しく表示するオプション –o wide
37. $ kubectl get namespace
NAME STATUS AGE
default Active 2d
kube-public Active 2d
kube-system Active 2d
$ kubectl get pod
No resources found.
$ kubectl get pod -n kube-public
No resources found.
他Namespaceの存在と、他NamespaceにあるPodの確認
-nオプションをつけないと
defaultが選択される
48. $ kubectl apply -f azure-vote-all-in-one-redis.yaml
deployment.apps/azure-vote-back created
service/azure-vote-back created
deployment.apps/azure-vote-front created
service/azure-vote-front created
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
azure-vote-back-f9cc849fb-hppjz 1/1 Running 0 1m
azure-vote-front-78cc84558d-9c55f 1/1 Running 0 1m
azure-vote-front-78cc84558d-pc5cj 1/1 Running 0 1m
$ kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-back ClusterIP 10.0.139.3 <none> 6379/TCP 2m
azure-vote-front LoadBalancer 10.0.98.143 40.115.179.115 80:31906/TCP 2m
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 2d
デプロイしてみましょう
マニフェストをファイル(-f)
で適用する
パブリックIPが振られるま
で少々待ちます
パブリックIPが振られたら、ブラウザでアクセスしてみましょう
49. $ kubectl get deployments
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
azure-vote-back 1 1 1 1 6m
azure-vote-front 2 2 2 2 6m
$ kubectl get replicasets
NAME DESIRED CURRENT READY AGE
azure-vote-back-f9cc849fb 1 1 1 6m
azure-vote-front-78cc84558d 2 2 2 6m
他にも出来上がったリソースを見てみましょう
68. $ kubectl apply -f php-apache-hpa.yaml
horizontalpodautoscaler.autoscaling/php-apache created
$ kubectl get hpa
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
php-apache Deployment/php-apache 0%/30% 1 10 1 42s
サンプルHPAのデプロイと確認
ターゲットの
利用率
実際の
利用率
69. $ kubectl run -it --rm load-generator --image=busybox /bin/sh
If you don't see a command prompt, try pressing enter.
/ # while true; do wget -q -O- http://php-apache.default.svc.cluster.local; done
OK!OK!OK!OK!OK!OK!
負荷をかけてみましょう php-apacheにアクセスするコ
ンテナーを作り、接続
php-apacheに無限ループで
アクセスします
79. $ kubectl get nodes
NAME STATUS ROLES AGE VERSION
aks-nodepool1-11483416-0 Ready agent 2h v1.11.3
aks-nodepool1-11483416-1 Ready agent 2h v1.11.3
$ kubectl get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE
NOMINATED NODE
azure-vote-back-f9cc849fb-rqbsr 1/1 Running 0 1h 10.244.1.3 aks-nodepool1-
11483416-0 <none>
azure-vote-front-6755d8b845-4rv2s 1/1 Running 0 1h 10.244.1.4 aks-nodepool1-
11483416-0 <none>
azure-vote-front-6755d8b845-bqbrk 1/1 Running 0 1h 10.244.1.5 aks-nodepool1-
11483416-0 <none>
azure-vote-front-6755d8b845-lq8gv 1/1 Running 0 1h 10.244.0.8 aks-nodepool1-
11483416-1 <none>
php-apache-8675c4f9d6-m5kwj 1/1 Running 0 57m 10.244.0.10 aks-nodepool1-
11483416-1 <none>
Podが動いているNodeを確認
Ready
Node 0と1に
Podが分散している
80. $ az vm list
Name ResourceGroup Location Zones
------------------------ --------------------------------------------------------- ---------- -------
aks-nodepool1-11483416-0 MC_TOMAKABE-AKS-HANDSON-RG_TOMAKABE-AKS-HANDSON_JAPANEAST japaneast
aks-nodepool1-11483416-1 MC_TOMAKABE-AKS-HANDSON-RG_TOMAKABE-AKS-HANDSON_JAPANEAST japaneast
$ az vm stop -g MC_tomakabe-aks-handson-rg_tomakabe-aks-handson_japaneast -n aks-nodepool1-11483416-1
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
aks-nodepool1-11483416-0 Ready agent 2h v1.11.3
aks-nodepool1-11483416-1 NotReady agent 2h v1.11.3
NodeをVMレベルで止めてみましょう
どちらでも
構いません
NotReady