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 Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. 今日のお話について

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  13. そもそもAzureって何?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  18. コンテナ・Docker・Kubernetes

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

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

    View 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 Slide

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

    View Slide

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

    View Slide

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

    View Slide

  31. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  42. View Slide

  43. View Slide

  44. View Slide

  45. View Slide

  46. View Slide

  47. View Slide

  48. View Slide

  49. View Slide

  50. View Slide

  51. AKSの構成例

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  56. まとめ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide