Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

インフラ エンジニアによる AKS を触ってみた際の留意点について v1.0

208 views

Published on

2018/11/12 社内勉強会で使用したスライドになります。

Published in: Technology
  • Be the first to comment

インフラ エンジニアによる AKS を触ってみた際の留意点について v1.0

  1. 1. インフラ エンジニアによる AKS を 触ってみた際の留意点について Microsoft MVP for Cloud and Datacenter Management, Microsoft Azure 小賀坂 優 (Yu Kogasaka) 2018/11/12 v1.0
  2. 2. 自己紹介  小賀坂 優 (Yu Kogasaka)  オンラインでは、こげさか (kogesaka) を使用  Microsoft MVP (https://mvp.microsoft.com/ja-jp/PublicProfile/4038156)  Cloud and Datacenter Management (2012/01~)  旧 : System Center Cloud and Datacenter Management  Microsoft Azure (2018/07~)  Blog / SNS  Blog : 焦げlog (https://kogelog.com)  Twitter : @kogesaka (https://twitter.com/kogesaka)  Facebook : kogesaka (https://www.facebook.com/kogesaka) 2018/11/12 2
  3. 3. 本スライドについて  SlideShare からダウンロード可能です  https://www.slideshare.net/kogesaka 2018/11/12 3
  4. 4. アジェンダ  Azure Kubernetes Service (AKS) について  AKS の利用シナリオ (ユースケース)  AKS を触ってみた際の留意点について  まとめ 2018/11/12 4
  5. 5. お約束  本スライドは 2018/11/12 時点で公開されているドキュメントや情報、 および個人的に実施した調査、検証、結果を基に記載しています  本スライドで記載している内容について、今後変更される可能性が あります  Microsoft 社の正式な回答 / 見解ではありません 2018/11/12 5
  6. 6. 2018/11/12 6 Azure Kubernetes Service (AKS) について
  7. 7. Kubernetes (k8s) : the industry leading orchestrator  オープン ソース ベースのオーケストレーション プラットフォーム  コンテナー化したアプリケーションのデプロイ、スケーリング、管理を容易に 2018/11/12 7 • BRK2396 - Fundamentals of Kubernetes on Microsoft Azure https://myignite.techcommunity.microsoft.com/sessions/65005 (MyIgnite) Portable Public, private, hybrid, multi-cloud Extensible Modular, pluggable, hookable, composable Self-healing Auto-placement, auto-restart, auto-replication, auto-scaling
  8. 8. k8s のアーキテクチャ  Kubernetes クラスター内に役割の異なるサーバー群から構成される  Master Node  Worker Node, etc. 2018/11/12 8 Internet Ingress Controller Master Node API Server Scheduler Controller (Replication, etc) etcd RESTful API CLI UI Worker Node 1…X PodPod container container Pod container container Proxykubelet cAdvisor iptable Kubernetes クラスター • GitHub - yoshioterada/k8s-Azure-Container-Service-AKS--on-Azure: This is the workshop for k8s on AKS on Azure. https://github.com/yoshioterada/k8s-Azure-Container-Service-AKS--on-Azure/
  9. 9. k8s クラスターの構築 / 利用について  Kubernetes 構築ツールを用いてオンプレミス / クラウド上に展開  クラウド ベンダーが提供するマネージド型サービスを利用 2018/11/12 9 顧客 (利用者) クラウド ベンダー 責任範囲 Kubernetes 構築ツールを 用いた DIY マネージド型サービス コンテナー化 アプリケーションの イテレーション、デバッグ CI / CD クラスターのホスティング クラスター アップグレード (セキュリティ) パッチ適用 スケーリング 監視とログ収集 Azure Kubernetes Service (AKS)
  10. 10.  Azure 上に k8s クラスターのデプロイ、管理が容易に Azure Kubernetes Service (AKS) について 2018/11/12 10 API server Controller ManagerScheduler etcd Store Cloud Controller Self-managed master node(s) Azure VM アプリ / ワークロードの 定義顧客 (利用者) Docker Pods Docker Pods Docker Pods Docker Pods Docker Pods • Azure VM をスケーリング • プライベート トンネルを用いて Pod をスケジュール Kubernetes API エンドポイント Azure マネージド制御プレーン AKS
  11. 11. AKS の主な特徴  Azure 上にマネージド k8s クラスターを容易にデプロイ可能  Azure ポータル、Azure CLI、Resource Manager テンプレート、および Terraform などを用いて k8s クラスターを作成可能  デプロイ中に Azure Active Directory 統合、監視など追加機能も構成可能  AKS ノードは Azure 仮想マシンで実行される  Kubernetes の管理の複雑さと運用上のオーバーヘッドを軽減  Master ノードの管理とメンテナンスは、Azure 側で自動的に処理  認定および規制対応済み  CNCF 認定 (k8s 準拠)  SOC / ISO / PCI DSS に準拠 2018/11/12 11 ※旧称 : Azure Container Service • Azure Kubernetes Service (AKS) | Microsoft Azure https://azure.microsoft.com/ja-jp/services/kubernetes-service/
  12. 12. AKS によるデプロイと管理 タスク 従来の手順 Azure Kubernetes Service (AKS) クラスターの作成 • 機器を用意する (オンプレミスの場合) • ネットワークと (仮想) マシンをプロビジョニングする • etcd を含む複数のシステム コンポーネントを インストール • 証明書の作成とインストール • Worker Node を制御プレーンに登録 • az ask create コマンドを実行する クラスターのアップグレード • Master Node をアップグレード • Worker Node を個別にアップグレード (cordon / drain 操作が必要) • az aks get-upgrades コマンドを実行する ※事前に検証の実施を推奨 クラスターをスケーリングする • 追加する機器を用意する (オンプレミスの場合) • 新しい (仮想) マシンをプロビジョニングする • システム コンポーネントをインストール • API server に Worker Node を総六する • az aks scale コマンドを実行する クラスターを削除する - • az aks delete コマンドを実行する 2018/11/12 12 • BRK2396 - Fundamentals of Kubernetes on Microsoft Azure https://myignite.techcommunity.microsoft.com/sessions/65005 (MyIgnite) • az aks | Microsoft Docs https://docs.microsoft.com/en-us/cli/azure/aks?view=azure-cli-latest  Azure CLI を用いることで容易にデプロイ、管理が可能  クラスターの作成については、Azure ポータルからもデプロイ可能
  13. 13. AKS のセキュリティについて  重要な考慮事項 : 顧客データを保護 = Azure、AKS クラスターが持つ高いセキュリティで 保護 2018/11/12 13 • BRK2396 - Fundamentals of Kubernetes on Microsoft Azure https://myignite.techcommunity.microsoft.com/sessions/65005 (MyIgnite) SOC、HIPAA、PCI DSS 準拠、かつ CNCF 認定 済みの Kubernetes 準拠サービス AAD および RBAC を用いた アクセス制御 Key Vault を用いた キーとシークレットの 保護 vNet および CNI を用いた セキュアなネットワーク 通信
  14. 14.  信頼ある Azure インフラストラクチャとサービスにより実現 スケーリングと実行 2018/11/12 14 • BRK2396 - Fundamentals of Kubernetes on Microsoft Azure https://myignite.techcommunity.microsoft.com/sessions/65005 (MyIgnite) ビルトインの 自動スケール (preview) グローバル データセンター Geo レプリケーションされた Azure Container Registry ACI を用いた Elastically burst ブラウザ Traffic manager Azure Container Registry AKS クラスター Azure Container Instances (ACI) Pod Pod Pod Pod Pod Pod
  15. 15. AKS の監視  Azure Monitor と連携し、正常性とパフォーマンスに関する分析情報を 提供 (Public Preview)  ノード、コントローラー、 コンテナー全体の全体的な 正常性とパフォーマンスを表示  Namespace、Service、および Node フィルターを用いた 監視エクスペリエンスの深化  障害対応のため Kubernetes イベントとコンテナーのログを分析  AKS 内の仮想ノードで動作する コンテナーをオンデマンドで監視  Azure DevOps Project とも連携可能 2018/11/12 15 • BRK3354 - Monitor your infrastructure and analyze operational logs at scale with Azure Monitor https://myignite.techcommunity.microsoft.com/sessions/65782 (MyIgnite)
  16. 16. 補足 : AKS 以外のマネージド kubernetes (k8s) サービス  Google Kubernetes Engine (GKE)  Google Cloud Platform が提供  旧称 : Google Container Engine  Amazon Elastic Container Service for Kubernetes (Amazon EKS)  Amazon Web Services (AWS) が提供 ※ Amazon Elastic Container Service (Amazon ECS) とは別サービス扱い  IBM Cloud Kubernetes Service (IKS)  IBM が提供  旧称 : IBM Cloud Container Service  Alibaba Cloud Container Service for Kubernetes  Alibaba Cloud が提供 ※ Alibaba Cloud Container Service とは別サービス扱い 2018/11/12 16
  17. 17. 補足 : マネージド kubernetes (k8s) サービス比較  公開されている情報だけでは一様に比較することは困難  実際に検証、確認してみないと分からない  機能拡張やアップデートが頻繁に行われている  各ベンダーが提供しているクラウド サービス利用や連携も考慮する必要がある 2018/11/12 17 AKS GKE Amazon EKS IKS Alibaba Cloud Container Service for Kubernetes Kubernetes の 最新バージョン v1.11.3 v1.11.0+ v1.10.3 v1.11.3 動作検証済みの バージョン サポートする Kubernetes のバージョン 最新バージョンの (n-3)、 かつ更新パッチ (n-1) まで 最新バージョンの (n-2) まで 今後複数のバージョンを サポート予定 最新バージョンの (n-2) まで 動作検証済みの バージョン 最大クラスター数 100 (per Subscription) 50 (per Zone) 3 (per AWS account) 記載なし 5 クラスターあたりの 最大ノード数 100 5,000 記載なし 記載なし 20 ノードあたりの 最大ポッド数 基本 (Kubenet) : 110 拡張 (Azure CNI) : 30 100 記載なし 記載なし 記載なし SLA 99.5% 以上 99.5% 以上 明確な記載なし 明確な記載なし 明確な記載なし 日本リージョン 展開 ○ (東日本) ○ (東京) × (ECS は存在 (東京)) ○ (東京) ○ (東京) ※2018/11/06 確認時点
  18. 18. AKS Demo 2018/11/12 18
  19. 19. 2018/11/12 19 AKS の利用シナリオ (ユースケース)
  20. 20. AKS を利用した主なシナリオ (ユースケース)  4 つのシナリオ (ユースケース) 2018/11/12 20 • BRK2396 - Fundamentals of Kubernetes on Microsoft Azure https://myignite.techcommunity.microsoft.com/sessions/65005 (MyIgnite) パフォーマンス 低レイテンシー処理 Machine Learning 移植性 1 回のビルドだけで、 どの環境でも実行可能 IoT 機敏性 迅速な アプリケーション 開発 マイクロサービス コスト抑制 アプリケーションを リファクタリングなしで 移行 コンテナーへの Lift-and-Shift
  21. 21.  コードの変更なしでアプリケーション モダナイゼーションが可能  コンテナー技術を用いたアプリケーションの迅速な導入  コンテナー オーケストレーションによるインフラストラクチャの耐障害性確保  CI / CD による迅速なアプリケーション開発 コンテナーへの Lift-and-Shift 2018/11/12 21 • BRK2396 - Fundamentals of Kubernetes on Microsoft Azure https://myignite.techcommunity.microsoft.com/sessions/65005 (MyIgnite) Azure Container Registry Existing application Kubernetes cluster Cloud Database Modernized application Modernized application Modernized application CI/CD
  22. 22. マイクロサービス  アプリケーションを高速に展開  独立した展開  サービスあたりのスケールと リソース規模の改善  より小さく集中したチーム 2018/11/12 22 • BRK2396 - Fundamentals of Kubernetes on Microsoft Azure https://myignite.techcommunity.microsoft.com/sessions/65005 (MyIgnite) モノリシック APP APP APP マイクロサービス 大規模で包括的なアプリケーション 小規模で独立したサービス
  23. 23. Machine Learning  データ サイエンス ボックス  迅速な展開と高可用性  低レイテンシー データ処理  テスト、制御、および プロダクション全体にわたる 一貫した環境 2018/11/12 23 • BRK2396 - Fundamentals of Kubernetes on Microsoft Azure https://myignite.techcommunity.microsoft.com/sessions/65005 (MyIgnite) Compute Training data Algorithm GPU-enabled VMs AKS trained model AI model in production Developer <¥> Data Scientist Serve the model
  24. 24. IoT  スケーラブル可能な IoT ソリューション  移植性の高いコードでどこからでも実行可能  柔軟な拡張性と管理性  迅速な展開と高可用性 2018/11/12 24 • BRK2396 - Fundamentals of Kubernetes on Microsoft Azure https://myignite.techcommunity.microsoft.com/sessions/65005 (MyIgnite) AKS Database for MySQL Azure Cosmos DB SQL Database IoT Hub IoT Edge devices IoT Edge Connector
  25. 25. 2018/11/12 25 AKS を触ってみた際の留意点について
  26. 26. AKS を触ってみてどうだった?  チュートリアルを確認しながらの環境構築は、そこまで難しくない  本当に「ただ構築」、「とりあえず動いた」レベル  本番環境を意識した構成をとたんにレベルが跳ね上がる  とにかくいろんなところでつまづく  設定ファイルを色々と追加、修正しないといけないの…?  CI /CD 環境と組み込んだだけなのに…  開発言語を変えただけなのに…  現状、利用 / 活用できるシステムが限られる  既存インフラ基盤から移行は難しい?  変更の反映やバージョンアップは本当に簡単? 2018/11/12 26
  27. 27. 既存アプリケーションがコンテナー化できるかどうか?  AKS がサポートしているのは現状 Linux コンテナーのみ  将来的には、Windows コンテナーをサポート予定  本当にリファクタリングやコードの修正なしで動作可能?  まずはコンテナー上で動かしてみる?  秘伝のソースを修正する?  GUI アプリケーションをどうするか?  コンテナー化には見極め (あきらめ) が必要  コンテナー上で動作するように、いちから作り直す  (環境ごと) 塩漬けのまま稼働させる  動作が安定していて変更が必須ではないアプリケーション  大規模、かつ複雑なシステム基盤上で動作するアプリケーション 2018/11/12 27
  28. 28. コマンド使えこなせる?  AKS 構築やその後の運用について、 GUI でできることが限られる  コマンドライン (CUI) から操作する必要がある  Docker  Linux ※現状 AKS で動作するのが Linux コンテナーだけのため  Kubernetes  Git Bash (CI / CD 環境時)  出力されるメッセージ、ドキュメント類はほぼ英語  日本語 (化) には期待しない  アップデートの頻度が速すぎて、追いつけていない  海外と比べて、コミュニティで提供される情報が古いものが大多数  海外の方がコミュニティ活動が活発  情報のキャッチアップが圧倒的に速い 2018/11/12 28
  29. 29. AKS (k8s) は誰が喜ぶツール?  AKS (k8s) は、”DevOps” ツール  インフラの知識と開発の知識が必要  お互いに「理解できる」、「理解していることが重要  フルスタック エンジニア (何でも屋) になってほしいという意味ではない  求められる技術、知識  インフラ エンジニア側  開発手法、ツールの理解、導入  開発言語の理解、使用  開発エンジニア側  インフラ基盤の構築手法の理解 ✓ ネットワーク ✓ 負荷分散、冗長化などの耐障害性 ✓ セキュリティ, など 2018/11/12 29
  30. 30. 結論 2018/11/12 30 AKS (k8s)に対して折れない心 新しい技術に対する熱意
  31. 31. 2018/11/12 31 まとめ
  32. 32. まとめ  Azure Kubernetes Service (AKS) について  Azure 上で動作するマネージド型サービス  AKS の利用シナリオ (ユースケース)  4 つのシナリオ (Lift-and-Shift / マイクロサービス / Machine Leaning / IoT)  AKS を触ってみた際の留意点について  チュートリアルまでは、そこまで難しくない  本番環境へ適用するには、とにかく触って理解することが重要 2018/11/12 32
  33. 33. ありがとうございまちた (・Θ・)ノ

×