概要
- Azure Kubernetes Service(AKS)を使って、アプリケーションのデプロイを行う
- マニフェストファイルの作成
- アプリの設定をする「deployment」
- サービス(ネットワークとか)の設定をする「service」
- k8sクラスタでのリソース作成(アプリのデプロイやネットワークを構成する)
- アプリケーションの動作確認
- マニフェストファイルの作成
- あらかじめAKSを使ってK8sクラスタを作成しておく
課金が発生する
- 稼働中は課金が発生する。必要に応じて作成/削除すること。
参考書籍
-
しくみがわかるKubernetes Azureで動かしながら学ぶコンセプトと実践知識
阿佐志保 著
- 3. Kubernetesを動かしてみよう
マニフェストファイルの作成(サンプルを修正)
- サンプルの
chap03/tutorial-deployment.yaml
を編集する- コンテナイメージの場所を、「sampleacrregistry.azurecr.io」から
自分のレジストリ.azurecr.io
に書き換える - レジストリ名は
echo $ACR_NAME
で確認する
- コンテナイメージの場所を、「sampleacrregistry.azurecr.io」から
サービスの設定ファイルの作成(サンプルそのまま)
- サンプルの
chap03/tutorial-service.yaml
をそのまま使用する
アプリケーションのデプロイ(リソースの作成)
-
Nodeの状態を確認する
-
kubectl get node
-
Unable to connect to the server: dial tcp: lookup xxx.hcp.japaneast.azmk8s.io on 192.168.3.1:53: no such host
のように表示された場合は、認証情報を設定し忘れていないか確認する
-
-
-
Posの状態を確認する
-
kubectl get pod
- まだデプロイしていないので、
No resources found.
- まだデプロイしていないので、
-
-
デプロイ
kubectl apply -f tutorial-deployment.yaml
-
Posの状態を確認する
-
kubectl get pod
- 5つのpodが表示される
- Statusが「ContainerCreating」から「Running」になるまで1分ほど待つ
-
-
サービスの公開
kubectl apply -f tutorial-service.yaml
-
ブラウザで開くためのアドレスを確認する
kubectl get svc
-
EXTERNAL-IP
が「< pending >」から実際のIPアドレスになるまで少し待つ
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.0.0.1 443/TCP 31m
webserver LoadBalancer 10.0.121.73 xx.xx.xx.xx 80:30510/TCP 1m
-
ブラウザでアプリを確認する
- 上記のIPアドレスにブラウザでアクセスする
- リロードすると、pod名と写真が変わるのを確認する
-
podの詳細を表示する
kubectl describe pod photoview-deployment-1234567890-xxxxx
-
使い終わったら、リソースを削除する
kubectl delete -f tutorial-service.yaml
-
kubectl delete -f tutorial-deployment.yaml
- ブラウザをリロードすると、アクセスできなくなっている事を確認する
-
kubectl get svc
で見ても、サービスが無くなっている事を確認する
-
(クラスター(Node)は動いたままなので注意)
az group list
az aks list
-
クラスタを停止
-
az aks delete --resource-group AKSCluster --name AKSCluster
- 停止にも8分ほどかかる
- Azureポータルで状況確認
-