Kubernetesの基礎

Similar documents
Docker/Kubernetes実践コンテナ開発入門

FUJITSU Cloud Service for OSS 「コンテナサービス」 ご紹介資料

スライド 1

[Google Kubernetes Day 19] ユーザからみた Anthos GKE On-Prem の利用について NTT Ltd. Group 桑山 純弥 2019/09/03

Presentation Template Koji Komatsu

概要 ここでは先程デモを行った OpenStack の中で仮想マシンのデータがどのように管理されているかをご紹介致します OpenStack の中でデータがどのように配置され 管理されているかを知ることは 可用性を検討する上で非常に重要になります 2

OpenStack 環境における Container as a Service の提供と課題 株式会社サイバーエージェント アドテク本部 技術戦略室 Central Infrastructure Agency 青山 真也

AWS Deck Template

技術研究会報告集の書き方

Docker コンテナの必要性と基礎

2. Docker の基本的な操作 1 docker hub の参照 2 DockerHub の Explorer リンクからアプリケーションを参照 3 アプリケーション検索 4 tag について 3. docker 基本コマンド 1 docker の

プレゼンタイトルを入力してください

SIOS Protection Suite for Linux v9.3.2 AWS Direct Connect 接続クイックスタートガイド 2019 年 4 月

CLUSTERPRO MC ProcessSaver 1.2 for Windows 導入ガイド 第 4 版 2014 年 3 月 日本電気株式会社

自己紹介 伊藤広樹 ( 所属 : 日本電信電話株式会社 ) 2015 年 2016 年 社内 OpenStack 基盤の運用 2017 年 ( 現在 ) Blazarにコントリビュート開始 平井普 ( 所属 :NTTコムウェア) 2011 年 2016 年 NTT 通信網 NW 機器の運用設定 20

IBM Bluemix で WordPress 無料の WordPress 環境を構築する 1

プロダクト仕様書 SLB

Docker Enterprise EditionではじめるCaaS

アジェンダ はクラウド上でも十分使えます 1. の概要 とは の導入事例 で利用される構成 2. をクラウドで使う クラウドサービスの分類 Amazon Web Services による構成例 2

kubeadmよりも遠い場所 ~手動でガンバるKubernetes on Raspberry Pi~

2015 年 4 月 6 日 Biz ホスティング Enterprise Cloud における Oracle Database Enterprise Edition RAC の提供開始について ~Oracle Database Enterprise Edition RAC をクラウド基盤で利用可能と

2

PowerPoint プレゼンテーション

Yahoo! JAPANにおけるOpenStack on Kubernetes導入までの道のり

スライド 1

Microsoft Azure Microsoft Corporation Global Blackbelt Sales Japan OSS TSP Rio Fujita

サービス仕様 1. 提供機能一覧楽天クラウド IaaS では以下の機能をユーザに対し提供します 機能名 1 管理コンソール 2 仮想マシン 概要 ユーザが楽天クラウド IaaS の各機能を操作するための Web インターフェースです 以下の全ての機能を操作できます ユーザが占有でき

Nintendo Switch(TM)向け プッシュ通知システム 「NPNS」

PowerPoint プレゼンテーション

付録

OSSTechプレゼンテーション

Docker 入門

PHP 開発ツール Zend Studio PHP アフ リケーションサーハ ー Zend Server OSC Tokyo/Spring /02/28 株式会社イグアスソリューション事業部

Become a Sumo Power Admin

PowerPoint プレゼンテーション

使える! IBM Systems Director Navigator for i の新機能

2017/8/2 HP SiteScope software 監視機能対応表 この監視機能対応表は HP SiteScope software v11.33) に対応しています モニタ モニタ説明 モニタ説明 SiteScope for Windows SiteScope for Linux ネット

Elastic stack Jun Ohtani 1

ライフサイクル管理 Systemwalker Centric Manager カタログ

一緒に使おう Windows Server 2019 & Microsoft Azure 日本マイクロソフト株式会社クラウド & ソリューション事業本部テクノロジーソリューションプロフェッショナル 瀧本文男 CI16

よくある問題を解決する~ 5 分でそのままつかえるソリューション by AWS ソリューションズビルダチーム

タイトルを1~2行で入力 (長文の場合はフォントサイズを縮小)

ESMPRO/JMSS Ver6.0

Congress Deep Dive

K5コンテナサービス利用ガイド

CLUSTERPRO MC ProcessSaver 2.3 for Windows 導入ガイド 第 5 版 2018 年 6 月 日本電気株式会社

ネットアップクラウドデータサービス

Automation for Everyone <デモ で実感できる、組織全体で活用できるAnsible Tower>

HIGIS 3/プレゼンテーション資料/J_GrayA.ppt

Bluemix いつでもWebinarシリーズ 第15回 「Bluemix概説(改訂版)」

FUJITSU Cloud Service for OSS 「ソフトウェア カフェテリア」 ご紹介資料

IBM i インターネットセミナー IBM i 区画を簡単キャプチャー & デプロイ - PowerVC のご紹介 - はじめに 仮想化技術が進み IBM i 環境の構築方法の選択肢も広がってきています IBM i の環境構築方法としては 以下のような方法があります 導入メディアを順次読み込ませて導

ナビタイムサービスにおける、Amazon ECS を活用したシステム移行 ~『乗換NAVITIME』での移行事例 ~

データセンター SDN ソリューション

実務に役立つサーバー運用管理の基礎 CompTIA Server+ テキスト SK0-004 対応

クラスタ構築手順書

Azure Kubernetes Service (AKS)

CLUSTERPRO X 4.0 新機能

製品概要

WatchGuard XTMv スタートアップガイド

PowerPoint Presentation

LifeKeeperサポートへの問い合わせ

10年オンプレで運用したmixiをAWSに移行した10の理由

SonicDICOM Cloud Connector インストール手順書 SonicDICOM Cloud Connector とは 検査装置が撮影した画像を自動的にクラウドへアップロー ドするためのソフトウェアです 1 前準備 クラウド上に PACS を作成する SonicDICOM Cloud

スライド 1

PowerPoint Presentation

INDEX Demo の目的 ゴール Scenario 1: 自動化 Scenario 2: 効率化 2

データセンターの効率的な資源活用のためのデータ収集・照会システムの設計

アライドテレシス・コアスイッチ AT-x900 シリーズ で実現するエンタープライズ・VRRPネットワーク

FUJITSU Software Systemwalker Centric Manager Lite Edition V13.5 機能紹介資料

Powered BLUE メールプラス

LAN DISK NarSuSの登録方法

FUJITSU Cloud Service A5 for Microsoft Azure サービス仕様書

Transcription:

Internet Week 2018 Kubernetes の基礎 2018 年 11 月 28 日日本アイ ビー エム株式会社クラウド事業本部高良真穂

発音 / 略称 /Logo 綴り Kubernetes 発音 koo-ber-net-ees 略称 K8s Kubernetes 12345678 クーベネティスのロゴ

K8s は一言で何ができる? K8s は コンテナのアプリ運用のための OSS 1. コンテナの組み合わせ利用 2. スケールアウト 3. ロールアウト & ロールバック 4. 永続ストレージ利用 5. 自己修復 ( 可用性 ) 6. クラスタの分割利用 7. 監視 & ログ分析

k8s 共通とベンダー個別の階層構造 コンテナ層 ( 共通 ) docker コンテナのビルド レジストリへの登録 & 取出しオーケストレータ層 ( 共通 ) kubectl ロールアウト 負荷分散 リソース制限 コンテナ間連携インフラ層 ( ベンダー個別 ) クラスタ構成 レジストリ操作 FW/LB 設定 ストレージ操作 IKS bx cs, ICP bx pr, GKE gcloud container, Registry Public Network k8s クラスタ制御 kubectl コマンド Master は仮想サーバーをベースに構成される User Cloud Service Storage Service Services Server Load Balancer Firewall

コマンド カットの階層構造 View K8s は ベンダー個別のインフラ機能を共通化 ( 抽象化 ) して 共通のオペレーション環境を提供する K8s は HA 構成 負荷分散 監視 オートスケールなどの機能を提供 アプリのビルド 開発言語固有のコマンド アプリケーション層 Java,.js, Python, Ruby, PHP C, Go などのコンパイル リンクなどビルド コンテナのビルド docker build コンテナ層 (Docker) ビルドしたアプリのコンテナ化 リポジトリ登録 WAS,DB2,MQ などのコンテナ化ミドルウェア利用 利用者 デプロイ & 負荷分散 kubectl create f xxx.yaml オーケストレータ層 (Kubernetes) 各社クラウド ソフトウェア製品 ICCS, ICP, GKE, AKE, RedShift などの k8s kubectl コマンドを利用 クラスタ環境の構成 gcloud container create インフラ層 ( クラウド VSI, オンプレ物理サーバーなど ) 各社クラウドの IaaS 機能オンプレの OpenStack や Vmware 利用物理サーバー利用

階層の中での Kubernetes の概念的な位置づけ Docker は Swarm と Kubernetes の統合を発表 DockerCon EU 2017 Layer 6 Development Workflow 統合ソフトウェア IBM Cloud Private クラウドサービス EKS GKE IKS Layer 5 Layer 4 Orchestration/Scheduling Service Model Engine Docker Swarm Layer 3 Operating System Layer 2 Virtual Infrastructure IBM Cloud Layer 1 Physical Infrastructure Bare Metal Network Storage

コンテナのオーケストレーション ツールの人気 この調査結果では Kubernetes が首位 Source: devops.com

ココを抑えればもう怖くない Kubernetes の要点

k8s の三大構成要素 K8sの3 大構成要素は3つ マスターノード k8sクラスタの制御パブリック クラウドの場合はマネージド ワーカーノードアプリのコンテナ稼働環境 ノード数可変 コンテナ レジストリイメージの保管場所 コンテナイメージ登録 Registry Public Network クライアント User クラスタ操作 Master

k8s 共通とベンダー個別の階層構造 コンテナ層 ( 共通 ) docker コンテナのイメージをビルド レジストリへの登録 & 取出しオーケストレータ層 ( 共通 ) kubectl ロールアウト 負荷分散 リソース制限 コンテナ間連携インフラ層 ( ベンダー個別 ) クラスタ構成 レジストリ操作 FW/LB 設定 ストレージ操作 Registry Public Network k8s クラスタ制御 kubectl コマンド Master は仮想サーバーをベースに構成される User Cloud Service Storage Service Services Server Load Balancer Firewall

アプリのデプロイサービスを開始するまでの作業は 3 ステップ 1. アプリのコードを開発して Docker コンテナ化 2. Docker イメージをレジストリへ登録 3. マニフェスト (YAML) を利用してデプロイ プライベートレジストリパブリックレジストリ pull イメージをダウンロード push イメージをアップロード サービス運用技術者 アプリ開発者 マニフェスト YAML

YAML の定義は? 基本これだけ Nginx のマニフェスト apiversion: apps/v1 kind: Deployment metadata: name: ms-apl-ws spec: replicas: 3 起動数 selector: matchlabels: app: ms-apl-x template: metadata: labels: app: ms-apl-x spec: containers: - name: application-x image: appl-x:1.18 ports: - containerport: 80 コンテナの可用性を制御 サービスロードバランサー apiversion: v1 kind: Service metadata: name: apl-x spec: selector: app: ms-apl-x ports: - protocol: TCP port: 80 コンテナのイメージ名 APL-X でアクセス可能 実行はこれだけ $ kubectl apply f manifest.yml

はコンテナを内包して実行 コンテナは によって起動される は 内部 IP アドレスを持つ 一つの仮想マシンの様な存在 単位で起動と破棄され 永続データは保持できない一時的な存在 コントローラーは の起動停止 回復などの制御を受け持つ docker や rkt などコンテナ アプリコンテナ Web サーバコンテナ 数を維持その他資源との接続を制御 IP アドレスを持つコンテナ実行単位 コントローラー 仮想サーバーベアメタル Master

k8s うんちく Pod は なんの短縮形? Pod is not Point Of Delivery

クラスタ内部ネットワーク はクラスタ ネットワークに が接続され の境界を越えて通信できるノード横断ネット しかし の IP アドレスでは外側と通信はできない内部専用 作成ごとに IP アドレスを自動付与 の IP アドレス User Public VLAN #1 ネットワーク #2 #3 Pod 8c8lj Docker Pod IP: 172.30.11.51 Pod IP: 172.30.180.147 Pod IP: 172.30.170.233 Pod dqbr2 Pod t7jfh Docker Docker ReplicaSet ID: 7f868cb77d IP: 10.132.253.30 IP: 10.132.253.38 IP: 10.132.253.17 User Private VLAN

内部ロードバランサー k8s は のクラスタの代表 IP を作り要求を分配するサービスを提供 kubectl コマンドから YAML を投入して サービス を定義する サービス作成時に 内部 DNS にサービス名を登録 クライアントから DNS 名で参照可能 フロントエンドの接続先バックエンドは YAML の定義 セレクタ で指定 アプリケーション クライアント ( クラスタ内 ) Pod IP: 172.30.11.46 フロントエンド クラスタの代表 IP サービス Cluster IP: 172.21.127.174 Port: 3000 他のコンテナから要求を分散する バックエンド Pod IP: 172.30.11.58 express1:1.0 Pod IP: 172.30.180.239 express1:1.0 Pod IP: 172.30.170.159 express1:1.0 デプロイメントレプリカ数 3 サービスが必須な理由 は起動と破棄で再起動が無い 起動時にIPアドレスが付与 起動のたびにIPが変わる すべて Cluster-Network の IP アドレスです

外部公開用ロードバランサー k8s クラスタから外へ公開するロードバランサのサービスを提供 Port LoadBalancer クラウドプロバイダのロードバランサを使用して外部にサービスを公開 Ingress 各社クラウドの実装でロードバランサーとHTTPSなどの機能で公開 インターネット上 ノードのポート番号で公開 KubeProxy と連携して複数のへアクセスを分配します 外部向け代表 IP サービス Port LoadBalancer Ingress フロントエンド デプロイメント nginx nginx nginx 内部クラスタの代表 IP name: express-app-svc サービス Cluster IP: 172.21.127.174 Port: 3000 バックエンド デプロイメント Pod IP: 172.30.11.58 express1:1.0 Pod IP: 172.30.180.239 express1:1.0 Pod IP: 172.30.170.159 express1:1.0 SW 名で例えば ウェブサーバ nginx アプリ PHP + FPM Redis, MySQL などキャッシュやデータベース

オートスケール CPU の使用率の閾値越えで 数を増加して処理能力を増強 反対に閑散な状態となれば 数を縮小 ノードの増強は手動のケースありに注意 ノードは余裕をもって運用は必須 追加 コンテナコンテナコンテナコンテナコンテナ の CPU 使用率が閾値を超えるとレプリカ数を増やして増強 デプロイメント + HPA コントローラ デプロイメント + HPA コントローラ HPA : Horizontal Pod Autoscaler

自己回復 ノード障害に対して サービスは無停止で継続可能 ワーカーノードの障害に対して 必要数のを起動して処理能力を補う N+1 構成の様に能力的に余裕もった設計が必要であるが の再配置は自動 喪失 起動 コンテナコンテナコンテナコンテナ デプロイメントコントローラ デプロイメントコントローラ 障害停止 障害停止

永続ストレージの利用 K8s のコンテナ環境ではデータをストレージに永続的に保管できます クラウド プロバイダのストレージ サービスを利用できます YAML ファイルに kind: PersistentVolume や kind: PersistentVolumeClaim とすることで 既存ボリュームをマッピングしたり 新規に作成するなどの永続ストレージの利用ができます クラウド プロバイダや既存ストレージ系プロトコルのための複数のプラグインが提供されています 参考 https://kubernetes.io/docs/concepts/storage/persistent-volumes/#types-of-persistent-volumes k8s クラスタ制御 kubectl コマンド Master DB サービスコンテナ DB サービスコンテナ User Cloud Service API Storage Service

名前空間によるクラスタの仮想化 名前区間毎に CPU とメモリの利用制限を設定 ネットワークポリシーを設定してアクセス制限 RBAC とサービスアカウントによるアクセス権管理 Name Space : Blue Name Space : Green

分散環境のモニタリングと洞察 Kubernetes は 2 つの機能を組み込み済み ログ分析 メトリクス監視 ログ分析と監視 情報発生源監視対象 アプリケーション Cloud Master ログ コレクター 全文検索エンジン メトリクス コレクタ 時系列データベース 可視化ツール クラウドサービスでは 各社クラウド基盤のログ分析 & 稼働監視と連携しています 稼働状態監視 可視化ツール

ブラウザで閲覧する視覚化ツール Kibana( ログ分析 ) Grafana( 稼働分析 ) 特徴 Elasticsearchの視覚化ツール ログ分析など 対話的に操作しながらの発見に向く 豊かな表現形式に対応 特徴 時系列 DB (time series database) の視覚化ツール influxdb, Prometheus, Graphite などの時系列データを視覚化 設定を保存して繰り返し利用するダッシュボードに向く シンプルな操作

ここで ご紹介したのは Kubernetes の一部の機能であり説明者により選定されたものです IBM Corporation 24

メガクラウド各社 Kubernetes 対応状況

2017 年はクラウド各社が k8s 対応した年となった GCP Google Kubernetes Engine (GKE) 2014 年 6 月オープンソース化と GCP のサポートを発表 Kubernetes を CNCF へ移管 IBM クラウド IBM Cloud Kubernetes Service (IKS) 2017 年 3 月 23 日 IBM Cloud ( 当時 Bluemix) で提供開始を発表 ソフトウェア IBM Cloud Private (ICP) v2.1 提供 2017 年 10 月 24 日発表オンプレのサーバーに導入できるソフトウェア製品 無料で利用できる IBM Cloud Private Community Edition のダウンロード提供 Azure Azure Service (AKS) 2017 年 10 月 24 日発表 AWS Amazon Elastic Service for Kubernetes (Amazon EKS) 2017 年 11 月 29 日発表 KCSP 認定制度による互換性確保

K8s でクラウド レースの展開に変化があるかもしれない ロックインから解放だ! 複合環境でも便利 チャンス 参道してシェアを取りに行くぞ! Kubernetes を広めて勢力図を変えるぞ 豊富な資金力で独走を維持するぞ IBM Corporation 27

まとめ Kubernetesはコンテナの運用基盤 オンプレ & クラウドで共通のオペレーションで運用できる 必要なインフラ機能が提供され 高効率な運用を実現 主要クラウドベンダー ソフトウェア企業が賛同

Kubernetes ハンズオンへ