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

Azure Kubernetes Serviceでコンテナサービス開発入門

Azure Kubernetes Serviceでコンテナサービス開発入門

世界一わかりみの深いクラウドネイティブなアプリ開発 on Azure 第3回
~Azure Kubernetes Serviceでコンテナサービス開発入門~

動画視聴は>こちら

【アジェンダ】
1. コンテナとコンテナオーケストレータ
   ・コンテナ・コンテナオーケストレータとは
   ・Docker・Kubernetes
   ・Azure Kubernetes Service
2. コンテナと周辺技術
   ・CaaS
   ・マイクロサービスアーキテクチャ
   ・マネージドKubernetesサービス
   ・Azureコンテナ系サービス
3. Azure Kubernetes Serviceの俯瞰
4. アプリケーション開発
   ・ソースコードの書き方
   ・Dockerfile
   ・Kubernetesのマニュフェストファイル
5. Azure DevOpsとCI/CD
   ・CI/CDとは
   ・Azure DevOps・Azure Container Registry
   ・CI/CDの実装例
6. 実行環境とアーキテクチャ
   ・Application Gateway
   ・マネージドデータベース
   ・Persistent Volume
7. Azure Monitorと監視・運用
   ・Azure Monitor
   ・Container Insights
   ・いざというときのkubectl

SIOS Tech. Lab

July 14, 2021
Tweet

More Decks by SIOS Tech. Lab

Other Decks in Technology

Transcript

  1. © SIOS Technology, Inc. All rights Reserved. Azure Kubernetes Serviceでコンテナサービス開発入門

    世界一わかりみの深い クラウドネイティブなアプリ開発入門 on Azure 第3回 エンジニア・クリエイターCoE 池田 透 サイオステクノロジー株式会社
  2. © SIOS Technology, Inc. All rights Reserved. 2 • SIOS

    bilinkのAzure Kubernetes Service (AKS)でのサービス開発・運用の知 見をまとめたものです。 • AKSで開発をするための設計や実装、運用・監視までの一式の話をします。 • 詳細までは踏み込みませんが全体像を掴んで、これからの深堀りや開発に役立て ていただければ幸いです。 • 詳しいお話は「世界一わかりみの深いクラウドネイティブなアプリ開発 on Azure」シリーズの別の機会にということで乞うご期待! はじめに
  3. © SIOS Technology, Inc. All rights Reserved. 3 サイオステクノロジー株式会社 エンジニア・クリエイターCoE

    池田 透 • 仕事で • Node.js、TypeScript、C# • Docker、Kubernetes • Azure、AWS • プライベートで • Haskell、PureScript、Scala、Deno • 言語処理系、型システム 自己紹介 https://www.docker.com/blog/au-revoir/ ソロモン・ハイクス氏がDocker社 退任時を知らせたブログの最後の挿絵 このくらい愛着のあるものを作りたいなあ
  4. © SIOS Technology, Inc. All rights Reserved. 4 1. コンテナとコンテナオーケストレータ

    2. コンテナと周辺技術 3. Azure Kubernetes Serviceの俯瞰 4. アプリケーション開発 5. Azure DevOpsとCI/CD 6. 実行環境とアーキテクチャ 7. Azure Monitorと監視・運用 目次
  5. © SIOS Technology, Inc. All rights Reserved. 6 ✓ 軽量で移植性の高いアプリケーション実行環境を提供する仮想技術

    ✓ 仮想マシンとは異なり、OSカーネルを共有し、アプリケーション実行環境や 割当リソースのみを分離する ✓ コンテナイメージなるパッケージされた軽量なイメージを実行環境にデプロイする そもそもコンテナってなに? ハードウェア OS コンテナ コンテナ ミドルウェア ミドルウェア アプリ アプリ ライブラリ 環境変数 ライブラリ 環境変数 コンテナイメージ カーネル コンテナイメージ ミドルウェア アプリ ライブラリ 環境変数 コンテナ実行環境 デプロイ コンテナイメージ
  6. © SIOS Technology, Inc. All rights Reserved. 7 ✓ コンテナ型の仮想アプリケーション実行環境を提供するOSS

    ⚫ 2013年3月に、dotCloud社(現在のDocker社)が 自社でPaaSとして提供していたものをOSS化 ⚫ 内部でLinuxコンテナ(LXC)の技術を利用 特徴 ✓ コンテナイメージ(コンテナのひな型)をリポジトリで管理できる ✓ 自分が構築した環境をイメージとして保存することで、 需要に応じてすぐに新たな環境を複製できる ✓ 公式のリポジトリでよく利用される基本的な構成が公開されている ✓ 環境構築の手順をDockerfileとしてコード化し利用できる ✓ 実行環境というインフラをコードとして管理できる ✓ Dockerが導入されている別の環境でも同じコンテナが作成できる Dockerとは
  7. © SIOS Technology, Inc. All rights Reserved. 8 ✓ 複数のコンテナを1つ1つ管理(デプロイ・アップデート・監視)するのは大変

    ✓ これをまとめて管理する仕組みが必要 複数のコンテナ管理の難しさ サービス 機能A サービス 機能B サービス 機能A サービス 機能C サービス 機能C コンテナ1つ1つ操作 実行環境
  8. © SIOS Technology, Inc. All rights Reserved. 9 • 複数のコンテナをまとめて管理

    • 複数コンテナのデプロイ • コンテナのスケール • コンテナの監視 • コンテナの分散配置の管理 コンテナオーケストレータとは サービス 機能A サービス 機能B サービス 機能A サービス 機能C サービス 機能C コンテナ オーケストレータ 実行環境
  9. © SIOS Technology, Inc. All rights Reserved. 10 Kubernetesとは ✓

    コンテナオーケストレータのデファクトであるOSS ✓ Googleで開発されていた内部プラットフォームBorgがもと 特徴 ✓ 複数ノードによる負荷分散 ✓ コンテナのスケール ✓ サービスのローリングアップデート ✓ コンテナの監視と自動再起動 ✓ マニュフェストファイルによる宣言的な構成管理
  10. © SIOS Technology, Inc. All rights Reserved. 11 ✓ マスターノードとワーカーノードに分かれている

    ✓ マスターノードはノードとpodsを管理。多重化可能。 ✓ ワーカーノードはpodsの実際の実行環境 Kubernetesの構成 https://kubernetes.io/ja/docs/concepts/overview/components/
  11. © SIOS Technology, Inc. All rights Reserved. 12 ✓ Kubernetesクラスターを構築・運用のはかなりコストがかかる!

    ✓ 複数の物理サーバやVMを用意する ✓ Kubernetesをインストールする ✓ 各ノード間を適切にネットワークで接続する ✓ サービスの負荷に応じてノードを増やす ✓ 監視ツール導入 Kubernetesクラスター構築は大変 クラスタ構築難しすぎる
  12. © SIOS Technology, Inc. All rights Reserved. 13 ✓ Kubernetesクラスターのメンテナンス負担を大きく減らせる!

    ✓ クラウド上に自動的にKubernetesクラスターを作成 ✓ クラスター監視をポータル画面で簡単にできる ✓ オートスケールできる ✓ Kubernetesのバージョンアップが容易 ✓ ただし、マネージドサービスでもKubernetesクラスターの知識は必要 ✓ 物理サーバ管理やアップデートなどのメンテナンス負荷が減るに過ぎない なんでクラウドのマネージドなKubernetesを選ぶの
  13. © SIOS Technology, Inc. All rights Reserved. 14 ✓ Azureで提供されるマネージドなKubernetesサービス

    特徴 ✓ Visual Studio/VS Codeとのシームレスな統合 ✓ Azure MonitorやContainer Insightsによる強力な監視 ✓ Application Gatewayと統合によるトラフィック管理 ✓ Helmによるデプロイの管理 Azure Kubernetes Servicesとは
  14. © SIOS Technology, Inc. All rights Reserved. 16 IaaS、CaaS、PaaS、FaaSとは? OS(LinuxやWindows)

    ランタイム (JavaやPHPなどの開発言語) ミドルウェア (ApacheやTomcatなど) アプリケーションフレームワーク (SpringやCakePHPなど) アプリケーション コンポーネント群 クラス メソッド public void hello() { // 何かの処理 } コンテナ(必要に応じて) OS(LinuxやWindows) ランタイム (JavaやPHPなどの開発言語) ミドルウェア (ApacheやTomcatなど) アプリケーションフレームワーク (SpringやCakePHPなど) アプリケーション コンポーネント群 クラス メソッド public void hello() { // 何かの処理 } コンテナ OS(LinuxやWindows) ランタイム (JavaやPHPなどの開発言語) ミドルウェア (ApacheやTomcatなど) アプリケーションフレームワーク (SpringやCakePHPなど) アプリケーション コンポーネント群 クラス メソッド public void hello() { // 何かの処理 } コンテナ(必要に応じて) OS(LinuxやWindows) ランタイム (JavaやPHPなどの開発言語) ミドルウェア (ApacheやTomcatなど) アプリケーションフレームワーク (SpringやCakePHPなど) アプリケーション コンポーネント群 クラス メソッド public void hello() { // 何かの処理 } コンテナ(必要に応じて) IaaS CaaS PaaS FaaS アプリケーションの実行基盤を分類する概念です。
  15. © SIOS Technology, Inc. All rights Reserved. 17 CaaSとは CaaS

    SpringやCakePHPなどのフレームワーク上でアプリ ケーションを開発する。 アプリケーションをビルドする。 アプリケーションのコンテナイメージを 作成する。 コンテナイメージをコンテナレジストリに Pushする。 CaaSの開発イメージ IaaSにおいて、システム管理者の責 任範囲であった「OS」が、パブ リッククラウドの責任範囲 OSやコンテナ実行環境のセキュリ ティアップデートは、パブリックク ラウド側で実施 アプリケーションフレームワーク (SpringやCakePHP等)で脆弱性が発 覚した場合は、システム管理者の責 任 自由度はIaaSに比べるとほぼ同程度 で、更に移植性も高く、今一番注目 度の高いレイヤーである。 OS(LinuxやWindows) ランタイム (JavaやPHPなどの開発言語) ミドルウェア (ApacheやTomcatなど) アプリケーションフレームワーク (SpringやCakePHPなど) アプリケーション コンポーネント群 クラス メソッド public void hello() { // 何かの処理 } コンテナ
  16. © SIOS Technology, Inc. All rights Reserved. 18 • 小規模なチームによるスピード感のある開発・運用

    • サービスが疎結合になることで、サービス毎に独立した開発・リリースサイクルで迅速 な機能改修 • コンテナ技術との相性がよい マイクロサービスアーキテクチャ アプリケーション 機能B 機能A 機能C 機能D 機能E サービス 機能A サービス 機能C サービス 機能B サービス 機能D サービス 機能E 従来型アプリケーション (一枚岩の巨大アプリケーション) マイクロサービス型アプリケーション (1つのサービスがアプリケーションの最小単位)
  17. © SIOS Technology, Inc. All rights Reserved. 19 ✓ Azure

    Kubernetes Service (AKS) ✓ Microsoft Azureが提供するKubernetesマネージドサービス ✓ Visual Studioなどエディタとの統合など開発者向け機能に注力 ✓ Google Kubernetes Engine (GKE) ✓ Google Cloudが提供するKubernetesマネージドサービス ✓ このなかで最も早く2015年にGAされ成熟度が高い ✓ Amazon Elastic Container Service for Kubernetes (Amazon EKS) ✓ AWSが提供するKubernetesマネージドサービス ✓ EC2またはFargate、ベアメタル上にもクラスターを構築できる自由度の高さが特徴 マネージドKubernetesサービス
  18. © SIOS Technology, Inc. All rights Reserved. 20 ✓ Service

    Fabric ✓ マイクロサービス向けのコンテナオーケストレーションサービス。特にステートフルサービ ウがサポートされるのが特徴。 ✓ (今回紹介)Azure Kubernetes Service ✓ マネージドKubernetesサービス。 ✓ Azure Container Instances ✓ オーケストレーション機能を持たないシンプルで簡単なコンテナ実行環境 ✓ Web App for Containers ✓ App Serviceのコンテナ実行環境。自動スケールが可能。 ✓ Azure Batch ✓ 負荷の高いバッチ処理を並列に扱うためサービス。コンテナも並列実行することができる。 Azureのコンテナ系サービス
  19. © SIOS Technology, Inc. All rights Reserved. 22 Azure Kubernetes

    Serviceの地図 実行環境 開発とCI/CD 監視 DevOps ACR AGW AKS Monitor
  20. © SIOS Technology, Inc. All rights Reserved. 24 Azure Kubernetes

    Serviceの地図 実行環境 開発とCI/CD 監視 ACR AGW AKS Monitor DevOps
  21. © SIOS Technology, Inc. All rights Reserved. 25 ✓ ソースコード

    ✓ 任意の言語で書かれたコード ✓ Dockerfile ✓ コンテナイメージをビルドするために必要なファイル ✓ Kubernetesのマニュフェストファイル ✓ Kubernetesのリソース定義に必要なファイル アプリケーション開発で準備するもの
  22. © SIOS Technology, Inc. All rights Reserved. 26 • 基本的にどんな言語でもOK

    • Docker Hubで検索してその言語のイメージがあればそれを使うと良い • なければDockerfileの中でビルドする必要があるのでちょっと面倒 • アプリ起動コマンドを整理しておく • Dockerfileやマニュフェストファイルから簡単にしていできるように • 環境変数で設定を受け取るようにしておく • Dockerfileやマニュフェストファイルから簡単に指定できるように • 設定ファイルも使えるが設定ファイルのマウントが面倒。。。 • コンテナ内にデータを保持しない • (詳しくは「実行環境とアーキテクチャ」章で説明します) ソースコードの書き方
  23. © SIOS Technology, Inc. All rights Reserved. 27 ✓ コンテナイメージをビルドするための定義ファイル

    ✓ 元のコンテナイメージを決める ✓ ソースコードをコピーする ✓ ミドルウェアをインストールする ✓ 言語ライブラリインストールする ✓ ユニットテストを行う ✓ デフォルトの環境変数を定義する ✓ サービス起動コマンドを定義する Dockerfile FROM node:14.16.0-alpine WORKDIR /opt/src COPY ./ . RUN npm ci --production CMD ["npm", "start"] コンテナ ミドルウェア アプリ ライブラリ 環境変数 コンテナイメージ
  24. © SIOS Technology, Inc. All rights Reserved. 28 ✓ アプリケーションの構成を定義するファイル

    ✓ 内部DNS名 ✓ 公開ポート ✓ レプリカ数 ✓ 要求/上限メモリ ✓ 環境変数 ✓ 起動コマンド ✓ 監視コマンド ✓ 自動再起動 Kubernetesのマニュフェストファイル replicas: 2 ports: - name: api-port protocol: TCP containerPort: 8080 resources: limits: memory: "200Mi" Service Pod Pod
  25. © SIOS Technology, Inc. All rights Reserved. 29 ✓ Mac

    ✓ Docker for Mac (Kubernetesも使用可) ✓ Linux ✓ Docker + Minikube (または kind (Kubernetes in Docker)) ✓ Windows ✓ Docker for Windows (Kubernetesも使用可) ✓ Hyper-Vと共存が難しい ✓ WSL2 (not WSL) + Docker for Windows (Kubernetesも使用可) ✓ Linux VM + Docker + Minikube (または kind (Kubernetes in Docker)) ローカル環境でのテスト
  26. © SIOS Technology, Inc. All rights Reserved. 31 ✓ 継続的インテグレーション

    (CI) ✓ コンパイル・テストを自動に高頻度で行い品質のフィードバックを素早く受ける ✓ コードベース・ビルドのバーション管理を一致させる ✓ 継続的デリバリー (CD) ✓ リリース・デプロイを自動化し迅速に行う ✓ リリース・デプロイの自動化により俗人化をさける ✓ 環境固有の設定について管理する そもそもCI/CDとは
  27. © SIOS Technology, Inc. All rights Reserved. 32 ✓ 複数コンテナのビルドからデプロイまでの手順は煩雑になりがち

    ✓ サービスごとのバージョンタグ付けとビルド ✓ サービスごとにテスト ✓ 複数のサービス毎・環境毎の環境変数の設定 ✓ デプロイ後の動作確認 CI/CDは必要なの?
  28. © SIOS Technology, Inc. All rights Reserved. 33 ビルド、リリース、実行の3つのステージを厳密に分離する (Twelve-Factor

    Appより) クラウドネイティブのビルド・リリース・実行の原則 https://12factor.net/ja/build-release-run
  29. © SIOS Technology, Inc. All rights Reserved. 34 Azure Kubernetes

    Serviceの地図 実行環境 開発とCI/CD 監視 ACR Monitor AKS AGW DevOps
  30. © SIOS Technology, Inc. All rights Reserved. 35 ✓ Azure

    PipelinesをはじめとするDevOpsを実現するためのサービス ✓ Azureの各サービスとの連携が容易 ✓ AKSとの連携用タスクも作りやすい ✓ GitHubとの連携が容易 ✓ 結果のサマリーがGitHubで確認できる ✓ その他、Git、Subversionも利用可 ✓ YAMLによるCI/CDパイプラインの宣言的管理 ✓ Gitで管理も可能 ✓ Libraryでアプリケーションの設定値を管理 ✓ 環境ごとにグループ化も可 ✓ 類似サービス/ツール ✓ AWS CodePipeline、(Google) Cloud Build、GitHub Actions、Travis CI、CircleCI、 Jenkins Azure DevOps GitHubのCIサマリー
  31. © SIOS Technology, Inc. All rights Reserved. 36 ✓ コンテナイメージを保管するリポジトリ

    ✓ プライベートなコンテナイメージを保管 ✓ Azure PipelinesのACRタスクでビルドから ✓ プッシュまで簡単に連携 ✓ 類似サービス/ツール ✓ (Google) Container Registry、Amazon Elastic Container Registry、Docker Hub Azure Container Registry ACRコンテナタグイメージ
  32. © SIOS Technology, Inc. All rights Reserved. 37 1. 開発者がGitプッシュ

    2. DevOpsにWebhookで通知 3. UT/ビルドを実施 4. コンテナイメージをACRにプッシュ 5. 失敗時はslackで通知 CIのパイプライン実装例 コンテナ ミドルウェア アプリ ライブラリ 環境変数 コンテナ ミドルウェア アプリ ライブラリ 環境変数 V1.0 V2.0 Pipelines - CI (UT/Build) Dockerfile Source Code ACR slack DevOps プッシュ Webhook ビルド失敗 ビルド成功 通知 開発者
  33. © SIOS Technology, Inc. All rights Reserved. 38 Azure Kubernetes

    Serviceの地図 実行環境 開発とCI/CD 監視 ACR DevOps AKS AGW Monitor
  34. © SIOS Technology, Inc. All rights Reserved. 39 1. 開発者がデプロイのパイプラインを起動

    2. PipelineがACRからイメージをプル 3. Pipelineがkubernetesのmanifestをプル 4. 設定とマージして実行環境にリリースする CDのパイプライン実装例 実行環境 Library - Production - Stagging - Development Pipelines - CD (Deploy) コンテナ ミドルウェア アプリ ライブラリ 環境変数 コンテナ ミドルウェア アプリ ライブラリ 環境変数 V1.0 V2.0 Manifest V2.0をプル 本番にV2.0のデプロイ指示 開発者 リリース
  35. © SIOS Technology, Inc. All rights Reserved. 41 Azure Kubernetes

    Serviceの地図 実行環境 開発とCI/CD 監視 ACR AKS AGW Monitor DevOps
  36. © SIOS Technology, Inc. All rights Reserved. 42 ✓ WebアプリケーションのためのL7ロードバランサー

    ✓ トラフィックの監視ができる ✓ 応答時間 ✓ 送受信バイト数 ✓ レスポンスステータス ✓ スループット ✓ 正常/異常ホスト数 ✓ WAFの導入ができる ✓ 注意点 ✓ Azure側でスループット(bps)は保証されていない ✓ 通常のWebサイト(数MB)では問題にならないがボディが数百MBくらいからは検証した方がいい ✓ 最大ファイルアップロードサイズは2GB(WAF使用時は750MB) ✓ 大きいデータの扱いはBlob Storageの利用など別の方法を検討するとよい Application Gateway
  37. © SIOS Technology, Inc. All rights Reserved. 43 • Application

    Gateway Ingress Controller (AGIC) によってAGWと連携 • 実行環境ではAGWは直接podに対してプライベートIPでアクセスする Azure Application Gatewayの利用 https://docs.microsoft.com/ja-jp/azure/application-gateway/ingress-controller-overview
  38. © SIOS Technology, Inc. All rights Reserved. 44 Azure Kubernetes

    Serviceの地図 実行環境 開発とCI/CD 監視 ACR AKS AGW Monitor
  39. © SIOS Technology, Inc. All rights Reserved. 45 ✓ コンテナ上のデータの特徴

    ✓ コンテナ上の保持したデータはコンテナ破棄とともに全てなくなる ✓ コンテナはスケールインやアップデートで簡単に破棄されうる ✓ 他のコンテナとデータを共有できない ✓ コンテナごとの計算リソースは厳密に分離されている ✓ 前のコンテナのデータを後のコンテナが参照することもできない したがって、コンテナに永続化したいデータを保存しないこと! 永続化したいデータを持たせる主な方法は2つ ✓ マネージドデータベースを利用する ✓ Persistent Volumeを利用する データはKubernetesの外にもつ
  40. © SIOS Technology, Inc. All rights Reserved. 46 ✓ SQL系

    ✓ Azure SQL Database ✓ Azure Database for PostgreSQL ✓ Azure Database for MySQL ✓ Azure Database for MariaDB ✓ NoSQL系 ✓ Azure Cosmos DB ✓ Azure Managed Instance for Apache Cassandra (Preview) ✓ (キャッシュ系) ✓ Azure Cache for Redis マネージドデータベースを使う
  41. © SIOS Technology, Inc. All rights Reserved. 47 コンテナのファイルシステムに永続化ボリュームをマウントするk8sの仕組み ✓

    ローカルのファイルを操作するように使える ✓ AKSはAzureのマネージドなストレージがマントできる ✓ Azure Managed Disks ✓ Azure Files ✓ Blob Storage 注意: 必ず永続化したいファイルはPersistent Volumeを使うこと。コンテナ上の データはコンテナ破棄と一緒に破棄される。 Persistent Volumeを利用する コンテナ ミドルウェア アプリ ライブラリ 環境変数 /dir マウント Blob Storage
  42. © SIOS Technology, Inc. All rights Reserved. 49 Azure Kubernetes

    Serviceの地図 実行環境 開発とCI/CD 監視 ACR AKS AGW Monitor
  43. © SIOS Technology, Inc. All rights Reserved. 50 Azure Monitor

    https://azure.microsoft.com/ja-jp/services/monitor/ Azureリソースを監視するためのサービス
  44. © SIOS Technology, Inc. All rights Reserved. 51 1. Azure

    Monitorが定期的にAzureリソースのデータを定期的に収集 2. 監視間隔ごとにアラートルールを確認 3. アラートルールに該当する場合に指定の通知を行う Azure Monitorによる監視 コンテナ - ログ文字列 - CPU使用率 - メモリ使用率 定期的にデータ収集 AGW - 応答時間 - ステータス - 異常コネクション - WAFブロック アラートルール CPU使用率 > 80% Slackに通知 Mailに通底 ERRORログが出たら Slackに通知 SQLサーバ - CPU使用率 - メモリ使用率 - 異常コネクション 通知
  45. © SIOS Technology, Inc. All rights Reserved. 52 • Kusto

    Query Language (KQL) というAzureのデータ読み取り用言語 • SQLデータベースのテーブルのようにデータが溜まっていてKQLでデータを取得する • KQLはデータリソースをパイプ(|)で繋ぎながらデータを加工する • renderでグラフ表示も可能 Azure Monitorの検索 定期的にデータ収集 KQLで検索 ログデータ コンテナ - ログ文字列 - CPU使用率 - メモリ使用率 AGW - 応答時間 - ステータス - 異常コネクション - WAFブロック SQLサーバ - CPU使用率 - メモリ使用率 - ロールバック ContainerInventory | filter xxx = yyy | select LogEntory
  46. © SIOS Technology, Inc. All rights Reserved. 53 • AKSのクラスターのパフォーマンス監視ツール

    • ノード/コントローラ/コンテナのリソース(CPU・メモリ)使用率 • ノード/コントローラ/コンテナ状態 • コンテナ環境変数の確認 • コンテナのログ Container Insights ノードの監視 Podの監視
  47. © SIOS Technology, Inc. All rights Reserved. 54 • Kubernetes

    APIと通信するクライアントCLI • クラスター情報(リソース使用量・内部IP)の確認 • Deployments、Service、Job、Podsなどの管理 • 起動中のPodsのシェル対話環境にログイン • Podログの取得 いざというときのkubectl $ kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ServiceA ClusterIP 10.0.0.xxx <none> 3000/TCP 378d ServiceA ClusterIP 10.0.0.yyy <none> 8500/TCP 45d $ kubectl exec –it serviceA-xxxx – bash serviceA-xxxx # ls bin dev etc home lib media mnt opt proc root run sbin srv sys tmp usr var
  48. © SIOS Technology, Inc. All rights Reserved. 55 • 使い所

    • トラブルシューティング • Podsのシェル対話環境にログインできるのは強力 • Kubernetesの学習 • kubecltを触ることで実感をもってkubernetesの仕組みを理解できる • 使わない方がいい • 普段の運用※ • 俗人的になりやすい。オペレーションミスしやすい。 ※ いざとなったときにkubectlが使える人がいないと困るので注意 kubectlの使い所
  49. © SIOS Technology, Inc. All rights Reserved. 56 • アプリ開発

    • コンテナイメージビルドのためにDockerfileをGitで管理する • デプロイのためにKubernetesのManifestファイルをGitで管理する • 設定値は環境変数として保持する • CI/CD • ビルド、リリース、実行の3つのステージを厳密に分離する • Azure DevOpsのpipelineでCI/CDを実装する • 実行環境 • Application Gatewayでトラフィックを管理 • 永続化したいデータはマネージドデータベースかPersistent Volumeを使う • 運用・監視 • Azure Monitorでアラートルールを定義して通知する • Azure MonitorでpodのKQLでログを取得 • Container Insightsでクラスターを監視する • いざとなったらkubectlでトラブルシューティング まとめ
  50. © SIOS Technology, Inc. All rights Reserved. 57 Azure Kubernetes

    Serviceの地図 実行環境 開発とCI/CD 監視 DevOps ACR AGW AKS Monitor