Azure Kubernetes Service クイック スタートでk8sでのデプロイの概要を掴む


はじめに

クイック スタート: Azure Kubernetes Service (AKS) クラスターのデプロイに沿って、
AKSでk8s1のクラスタをデプロイしました。
ポータルを操作してk8sクラスタのリソースを作成し、
クラウドシェルでコマンド入力してデプロイしています。

前提

私のレベル感ですが、k8sを勉強し始めた段階です。

  • Dockerを独学し、docker-composeでVPSに複数コンテナをデプロイできるようになった
  • docker-composeは本番環境には適さないことを知り、k8sを勉強し始める

後述するハンズオンでGCPでk8sを触った経験から、今回Azureでもk8sを試してみました。

k8sクラスタリソース作成(ポータル操作)

クイックスタートに沿って進めます。

「ノードサイズ」ですが、クイックスタートのDS1v2インスタンス(1vcpu、3.5GBメモリ)と同程度のサイズで費用を抑えられるVMインスタンスを選択しました。




監視まで設定したら「確認および作成」をクリック。

作成を押してからmyAKSClusterリソースが作られるまで15〜20分ほどかかりました。(VMのスペックが低いのが原因でしょうか?)

クラウドシェルからデプロイ

クイックスタートに沿って、viエディタでyamlファイルを作成し、kubectlコマンドでデプロイしました。

$ az aks get-credentials --resource-group aks-quickstart-201808 --name myAKSCluster
$ kubectl get nodes
$ vi azure-vote.yaml
$ kubectl create -f azure-vote.yaml
$ kubectl get service azure-vote-front --watch

yamlファイルにはbackとfrontそれぞれにDeploymentとServiceを定義しています。
azure-vote-frontサービスに振られた外部IPアドレスにアクセス。

ブラウザをリロードすると、直前に押したボタンのカウントが1増えるという動きをしました。
このあたりはソースを確認してみようと思います。(宿題事項)

yamlファイルのソースコードを取得する

先日たくさんのアプリをGKEにk8sでデプロイするというハンズオン2に参加しました。
ソースのyamlファイルが取得できれば、Azureでもk8sでデプロイできるだろうという感触があったので試してみました。

$ wget --no-check-certificate https://github.com/HaraShun/kubernetes.rb/archive/master.tar.gz
$ tar xpvf master.tar.gz
$ cd kubernetes.rb-master/03_sinatra/k8s/
$ kubectl apply -f deployment.yaml
$ kubectl apply -f service.yaml
$ kubectl get svc -w

sinatraのアプリがデプロイできたので、ほかもAzureでデプロイできそうという感触です。

まとめ

vi系エディタでも、ソースコード取得でもyamlファイルが配置できれば、kubectlコマンドからデプロイできることがわかりました。

今後はk8sのyamlファイルが自在に書けるように学習を進めます。

おまけ: 監視について

クイックスタートに沿って確認してみました。
myAKSClusterリソース選択後、「正常性」(赤枠)から遷移します。





クイックスタートにはContainersに「ログの表示」リンクがあると記載されているのですが、見当たりませんでした。


  1. Kubernetesの略称。字数が少なくなるので私はこの表記を多用します。同様の短縮の仕方にi18nがありますね。 

  2. 講義スライド: https://docs.google.com/presentation/d/1_mQJQ0Yz1zJHqUPefNYNPfx5mjHEbfRwTzUOaWi8vZ8/edit#slide=id.p 勉強会ページ: 【サポーターズCoLab勉強会】Kubernetes(GKE)ハンズオン勉強会