Upgrade to Pro — share decks privately, control downloads, hide ads and more …

なるほどわかった!Azure Kubernetes Service(AKS)

なるほどわかった!Azure Kubernetes Service(AKS)

OSC2019 Hokkaido(2019/6/1)のセミナーセッション「なるほどわかった!Azure Kubernetes Service」にて登壇に使用した資料です。

Takayuki Fuwa

June 01, 2019
Tweet

More Decks by Takayuki Fuwa

Other Decks in Technology

Transcript

  1. なるほどわかった!
    Azure Kubernetes Service
    JAZUG札幌支部(きたあず)

    View full-size slide

  2. 撮影について
    • 一部を除いてOKです。
    • 撮影NGな箇所は、都度お知らせします。
    • 他の人が入り込む際にはご配慮をお願いします。

    View full-size slide

  3. 自己紹介
    • 名前
    • 不破 崇行(ふわ たかゆき)
    • JAZUG札幌(きたあず) / Azureもくもく会札幌の宴会係
    • コメディアン
    • 仕事
    • 昼は普通の正社員、夜は個人事業主
    • 好きなAzureサービス
    • AppService / Monitor / Application Gateway
    • 最近の趣味
    • AWS / Azure / 航空無線 / シメパフェ

    View full-size slide

  4. 4
    JAZUG 札幌支部
    ■正式名称
    Japan Azure User Group 札幌支部 / 略称:きたあず
    ■活動概要
    Cloudにちょっと興味のあるゆるふわな方から実ビジネスで
    使用される方まで学べる勉強会を開催しています。
    ■Webサイト
    https://kitaazu.azurewebsites.net/
    きたあずちゃん
    (@kitaazu_chan)

    View full-size slide

  5. 5
    JAZUGの紹介
    JAZUG
    ⼥⼦部
    学⽣部
    札幌⽀部 (きたあず)
    ⻘森⽀部
    仙台⽀部
    福島⽀部
    静岡⽀部
    信州⽀部
    名古屋⽀部(なごあず)
    関⻄Azure研究会
    福岡⽀部 (ふくあず) / ふくあず⼥⼦部
    熊本⽀部
    沖縄⽀部 http://r.jazug.jp/

    View full-size slide

  6. ちょいちょい勉強会を開催しています
    • 2,3ヶ月ぐらいに1度、勉強会を開催し
    ています。
    • 初心者大歓迎です。
    • 「今日初めてAzure触るんです!」でも
    OK!

    View full-size slide

  7. Azureもくもく会もあるよ
    • 「もくもく会」もやってます
    • 一心不乱にAzure CLIを叩いたり
    • ひたすらに雑談したり
    • 「困った!」について誰かに相談したり
    • ひたすらにお菓子を食べる
    • 月1で開催しています!

    View full-size slide

  8. 分からない事があれば
    • 「きたあず」のメンバーに聞いてみてください。
    • 懇親会にもいるはずなので、是非捕まえてみて下さい!

    View full-size slide

  9. 今日のお話について

    View full-size slide

  10. 今日のおはなし
    • Azureの基礎知識
    • 10分ぐらい
    • そもそも「コンテナ」とか「Docker」とか「Kubernetes」って何?
    • 15分ぐらい
    • Azure Kubernetes Serviceの紹介とデモ
    • 20分ぐらい

    View full-size slide

  11. 今日のゴール
    • なんとなくでいいので、「Kubernetesでこんなことが出来るんだ!」という事を
    理解して欲しい!
    • 「ちょっとAzure使ってみたくなった!」って思ってもらう

    View full-size slide

  12. こんな方を想定しています
    • Azureって名前は知ってるけど、実はあんまよくわかってない
    • Kubernetesって名前は知ってるけど、実はそこまで分かっていない
    • 「コンテナはいいぞ!」っていう声は聞くけど、イマイチよく分かっていない
    • 普段別のクラウドサービス(AWSとか)使っててAzureはよく分かっていない

    View full-size slide

  13. そもそもAzureって何?

    View full-size slide

  14. Azure(あじゅーる)とは
    • 正式名称「Microsoft Azure」
    • イタリア語で「紺碧」(こんぺき)
    • 青空をイメージしてください
    • MSが提供しているパブリッククラウドサービス
    • 仮想マシンの構築やサーバレスアプリケーションの構築・機械学習系サービス
    まで、多種多彩なサービスを提供しています。

    View full-size slide

  15. 多種多様なサービスラインナップ

    View full-size slide

  16. 世界中に存在するリージョン

    View full-size slide

  17. 実際に画面を見てみましょう
    • とりあえずデモしましょう!

    View full-size slide

  18. コンテナ・Docker・Kubernetes

    View full-size slide

  19. 「仮想マシン」と「Dockerコンテナ」の違い
    • Azure VMやEC2に代表される「仮想マシン」とは大きく違う
    引用:Docker初めての人向け説明メモ
    https://qiita.com/miyasakura_/items/87ccb6d4a52d4a00a999

    View full-size slide

  20. 「仮想マシン」
    • VirtualboxやParallelsなど、
    ハイパーバイザーを経由して
    OSから上をまるごと仮想的に
    OSを作り上げる
    • これが仮想マシン

    View full-size slide

  21. Dockerコンテナ化
    • LinuxカーネルまではホストOSのリソースを使用し、そこから先を仮想化する。
    • Dockerの場合、Linuxの1プロセスとして扱うようなイメージで大丈夫です。

    View full-size slide

  22. Dockerコンテナ化のメリット
    • 既存のLinuxカーネルを使うことで、ギリギリまでホストOSを使用するので、
    立ち上げ速度が非常に早い
    • 仮想マシンの場合はOSブートから始まるので、数分ぐらいはかかる
    • コンテナの場合、大体数秒で起動完了
    • 展開しやすい
    • 極力Linuxカーネルを使っているので、サイズが軽くなり、結果的に他の仮想マシンへの
    展開速度が速くなる

    View full-size slide

  23. Dockerとは
    • そんなコンテナ技術を簡単かつエンタープライズレベルに利用可能に使える
    エンジン
    • 米国Docker社が開発・サポートを行っている。
    • 要するに、サクッとコンテナを扱えるツール・エンジンが「Docker」
    • 世の中の「コンテナ」と言えば殆ど「Docker」と言っても過言ではない
    • Windows / Macでも動作できる

    View full-size slide

  24. よくある質問
    Docker for Windows / Mac
    「DockerってLinuxカーネルを使ってるんでしょう?」
    なんでWindowsやMacでも動くんですか?

    View full-size slide

  25. Docker for Windows / Mac
    • Docker for Windows / Macをインストールすると、自動的にDockerに特化
    したLinux仮想マシンがインストールされます。
    • Windows版だと、Hyper-V上に自動的にLinuxマシンが立ち上がります
    • Mac版の場合、hyperkitというMacネイティブの仮想化環境で動いています
    • この仮想マシンでDockerを動かすことで、同じ動作をさせることが出来ます

    View full-size slide

  26. Dockerの嬉しいメリット
    • Windows / Mac / Linux どのOSでも、同じコンテナを起動させることが出来

    • 「Windows用Dockerコンテナ」といったものは存在しない
    • ただしCPUアーキテクチャ単位での違いはあります
    • 「開発環境では動くんだけど、本番環境では動かない!」という開発現場で
    よくある事故を防ぐことが出来る
    • Dockerfileという、Makefileみたいなテキストファイルを記述するだけで
    コンテナを生成することが出来る
    • Dockerfileだけを開発者に配布し、そこから各自の環境にコンテナを立ち上げ
    るという技も一応可能

    View full-size slide

  27. Dockerの嬉しいメリット
    • メモリのプロビジョニングを行わない
    ため、ホストOSのメモリを
    無駄なく活用することが出来る
    • Dockerのコンテナ単位でメモリや
    CPUコア数の指定を行わない
    引用:What Is Docker & Docker Container ? A Deep Dive Into Docker !
    https://www.edureka.co/blog/what-is-docker-container

    View full-size slide

  28. コンテナ化の例
    • WordPressをDockerで構築する場合、
    • Nginx + PHP-FPMコンテナ
    • MySQL(MariaDB)コンテナ
    • の2つを立ち上げる

    View full-size slide

  29. Dockerでの運用の問題点
    • Dockerコンテナはどんどん作成出来るため、数がジャンジャン増える
    コンテナ間の依存関係が分からない!
    あと、知らないうちにコンテナが落ちてし
    まっても気づけない!

    View full-size slide

  30. 一元管理するためのツールが
    必要になってきた
    • Dockerコンテナによるサーバ運用が当たり前になりつつあるが、それに併せて
    規模がデカくなってきてしまった!
    • 一々確認したり、立ち上げし直すのは
    面倒!
    • 出来る事なら自動化したい!

    View full-size slide

  31. Kubernetesという名の救世主
    • 「くーべねーてぃす」と呼びます
    • ギリシャ語で「航海長」・「パイロット」という意味
    • Google製のツールで、現在はオープンソース
    • 複数台(数十台〜数百台)に跨がってコンテナを集中管理してくれるツール

    View full-size slide

  32. Kubernetesで出来る事
    • コンテナ化したアプリケーションのデプロイ・スケーリング管理
    • アプリの健全性のチェック
    • ローリング・アップデート
    • 水平の自動スケーリングの利用
    • などなど他にも機能は沢山あります

    View full-size slide

  33. 「Pod」という概念
    • コンテナを「グループ化」するという概念
    • ストレージ・リソース・IPアドレスをカプセル化
    • IPアドレスを共有しながらグループ化出来るので、ポート衝突を考慮しなくて
    良い
    • Podの中のコンテナは1つでも良いし、複数台でも良い
    引用:
    https://qiita.com/MahoTakara/items/f5130bb6e9e493c46c6b

    View full-size slide

  34. 「Node」という概念
    • 平たく言うと、仮想マシン1つ単位
    引用:
    https://Kubernetes.io/ja/docs/tutorials/Kubernetes-basics/explore/explore-intro/

    View full-size slide

  35. Kubernetesの仕組み
    Master Worker
    インターネット
    Worker Worker
    ・・・

    View full-size slide

  36. 我が家の例 (ビスケット1号)
    • 一家に一台Kubernetesクラスターの
    時代ですよ!
    • ラズベリーパイ * 3 (+1あると踏み台サーバを作れる)
    • USB電源(1ポートで2A出せる)
    • LANスイッチ * 2
    • 無線 <-> 有線アダプタ
    • ケーブル一式
    • 多層型ラック * 2
    • 手のひらサイズ
    • 持ち運び可能
    • ラック以外は全てヨドバシカメラ札幌店で
    買えます。

    View full-size slide

  37. 元ネタ
    https://developers.cyberagent.co.jp/blog/archives/14721/

    View full-size slide

  38. Kubernetesの欠点
    • 非常に便利なツールだが、インストールが非常に難しい
    • ビスケット1号もインストールだけで数日かかった
    • エンタープライズな環境だと設計も慎重に考える必要があり、更に難しい

    View full-size slide

  39. Azure Kubernetes Service
    (AKS)
    ようやく出番がやってきた!

    View full-size slide

  40. AKSで出来る事
    • Kubernetesによるクラスタリング環境を全自動で構築することが出来る
    • Node管理やスケールアウト・スケールアップもAzureでやってくれる
    • ポータル画面かAzure CLIで操作出来る
    • つまり、アプリ開発に注力することが出来る

    View full-size slide

  41. AKSの構成例

    View full-size slide

  42. 既存のアプリケーションを移行させる
    引用:
    https://azure.microsoft.com/ja-jp/services/Kubernetes-service/

    View full-size slide

  43. GitHub + Azure DevOps + AKSによる DevOps的なスタイル
    引用:
    https://azure.microsoft.com/ja-jp/services/Kubernetes-service/

    View full-size slide

  44. 仮想ノード(Virtual Node)を使用した超高速スケールアウト

    View full-size slide

  45. TensorFlow / Kubeflowなど機械学習ツールを実行し、学習モデルを生成する

    View full-size slide

  46. 世界は既にコンテナで動いている
    • 世界は既にコンテナ技術で回っている
    • 事実、Googleは地球規模でコンテナデプロイを繰り返している
    • Dockerを使って開発を進め、本番環境にデプロイする事は、
    世界規模ではデファクトスタンダードになりつつある
    • 仮想マシンがダメだとは言わないが、有力な選択肢は増えたのは事実

    View full-size slide

  47. 開発や運用で抱える問題をツールやサービス
    で解決しよう
    • 「開発環境と本番環境で動きが違う!」
    • Dockerコンテナで開発とデプロイをしよう
    • 「無停止リリースをしたい!」
    • Kubernetesを使って楽しよう
    • 「運用・構築だけで時間を取られたくない!」
    • Azure Kubernetes Services(AKS)を使って楽しよう
    • ツールとサービス(Azure)を駆使して、本質的な問題解決に取り組もう

    View full-size slide

  48. Azureによる問題解決
    • Azureの様々なサービスを使うと、「問題の本質」に取り組むことが出来る
    • 私たちの目的は「お客さんにサービスを提供すること」 であって、「サーバやサービスを
    構築・インストール」するのが目的ではない
    • 難しい事や時間のかかることはAzure / Kubernetesに任せて、「本当に解決したい問
    題」に取り組むことがこれから重要になる

    View full-size slide

  49. 続きは会場や懇親会で
    • 質問や感想、フィードバックは会場や懇親会で受け付けています。
    • この顔にピン!と来たら私です!

    View full-size slide