AKSでサンプルアプリを動かす(しくみがわかるKubernetes Azureで動かしながら学ぶコンセプトと実践知識)

概要

  • Azure Kubernetes Service(AKS)を使って、アプリケーションのデプロイを行う
    • マニフェストファイルの作成
      • アプリの設定をする「deployment」
      • サービス(ネットワークとか)の設定をする「service」
    • k8sクラスタでのリソース作成(アプリのデプロイやネットワークを構成する)
    • アプリケーションの動作確認
  • あらかじめAKSを使ってK8sクラスタを作成しておく

課金が発生する

  • 稼働中は課金が発生する。必要に応じて作成/削除すること。

参考書籍

マニフェストファイルの作成(サンプルを修正)

  • サンプルのchap03/tutorial-deployment.yamlを編集する
    • コンテナイメージの場所を、「sampleacrregistry.azurecr.io」から自分のレジストリ.azurecr.ioに書き換える
    • レジストリ名はecho $ACR_NAMEで確認する

サービスの設定ファイルの作成(サンプルそのまま)

  • サンプルの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ポータルで状況確認

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です