TectonicはKubernetesの構築・管理基盤である -概要の章-/-構築の章-

365 views

Published on

Tectonicとは何か?と、Tectonic環境の構築に必要なTerraform
。Matchbox、Ignitionの関連性や、環境構築の仕組みを

Published in: Software
  • Be the first to comment

TectonicはKubernetesの構築・管理基盤である -概要の章-/-構築の章-

  1. 1. Tectonic 概要編 Bare Metal on 環境構築編 今日の内容 「Tectonic」とは何か?と、環境構築に必要なTerraform、Matchbox、Ignitionの関連性をご紹介します。 • 個人的な動機 • なぜ Tectonic なのか? • Tectonic の機能と仕組み • Tectonic インストールまでの流れ • Terraform で環境構築 • Matchbox と Ignition TectonicはKubernetesの構築・管理基盤である • Q&A
  2. 2. 資料について 資料の情報は、発表時点(2017年11月14日現在)のものです。 公開資料には、発表時と異なる表現を用いている場合があります。 想定している読者は、Kubernetes 環境構築や運用に興味のある方です。
  3. 3. Tectonic 概要編
  4. 4. 6 “個人的”な動機・課題 Motivation behind to try Tectonic そもそものスタート地点は、自分のPC上で作成したアプリケーションの移動と管理。 APP
  5. 5. 7 “個人的”な動機・課題 Motivation behind to try Tectonic アプリに手を加えず複数のサーバで動かすためには、コンテナと2つの技術要素があります。 APP APP APP APP APP APP APP APP APP APP APP
  6. 6. 8 “個人的”な動機・課題 Motivation behind to try Tectonic 1つは(クラスタ上での)ノード管理、つまりIPアドレスや正常性、リソース監視が可能なこと。 APP APP APP APP APP APP APP APP APP APP APP ノード管理 CLUSTER NODE MANAGEMNT UP UP UP UP UP
  7. 7. 9 “個人的”な動機・課題 Motivation behind to try Tectonic そしてもう1つがスケジューリング。どのノードで、どれだけリソースを割り当てるか自動処理。 APP APP APP APP APP APP APP APP APP APP APP スケジューリング ノード管理 CLUSTER NODE MANAGEMNT SCHEDULING
  8. 8. 10 “個人的”な動機・課題 Motivation behind to try Tectonic 現状、これらを動的に処理するオーケストレーション・ツールが、用途別に複数出始めています。 APP APP APP APP APP APP APP APP APP APP APP スケジューリング ノード管理 CLUSTER NODE MANAGEMNT SCHEDULING
  9. 9. 11 クラスタ・ノードも良い感じに管理したい アプリの集合体である「サービス」管理は自動化が整いつつありますが、大変なのはノード。 APP APP APP APP APP APP APP APP APP APP APP ノード管理 スケジューリング SCHEDULING CLUSTER NODE MANAGEMNT UP UP UP DOWN DOWN MAINTAIN DESIRED STATE
  10. 10. ところで、さくらインターネットといえば、石狩と言えば…? ISHIKARI HOKKAIDO
  11. 11. ここで突然のさくらインターネット株式会社 石狩には自社データセンタがあり、多くのサーバ群あります。これを上手く活用できないものか? データセンタと物理サーバ群 HOKKAIDO ISHIKARI
  12. 12. ※専用サーバのイメージ
  13. 13. 良い感じにコンテナを安定して動かしてスケールできませんかね? ここで登場した選択肢が、ベアメタル(物理・専用サーバ)にも対応している Tectonic だったのです。
  14. 14. Supported by CoreOS https://coreos.com/tectonic/
  15. 15. 17 なぜ Tectonic なのか? Why I choose Tectonic クラウド・物理環境問わず、Kubernetesクラスタ管理が可能であり、かつ運用負担が低いのが Tectonic。 • 物理サーバを良い感じに使いたい • 簡単にkubernetesを管理したい • kubernetesの可用性を担保したい • サーバのセキュリティを保ちたい • サポートが欲しい ??? 「力が欲しいか・・・」
  16. 16. Tectonicの特長(CoreOS、曰く) ※ https://coreos.com/tectonic/ •高速、安全なデプロイ Kubernetes環境の正しいセットアップと維持を簡単にし、 コンテナ化アプリケーションを効率的、安全、確実に実行 •運用コストの低減 Operatorにより、Kubernetesの各コンポーネントの自己保守で 手動調整を不要に •インフラの管理を簡単に Tectonic Consoleを通して複数のインフラの一括管理や操作 AWS、Azure、VMware、 OpenStack , bare metal の各環境に対応 18
  17. 17. DockerCon EU 2017 また、containerdがKubernetesにデプロイ可能になる発表も。ようやく手元のアプリが、簡単にスケールできるはず!(期待 Docker イメージは OCI 規格に従っており、かつ、 Kubernetes のプライマリ・イメージ形式です。 これを業界団体 CNCF との強調の元、これまでの Docker Swarm に加え、Kubernetes 環境上へ デプロイに対応する予定の発表がありました。
  18. 18. Enterprise-ready Kubernetes Tectonic ships with CoreOS's signature Automated Operations, enables portability across private and public cloud providers, and is always upstream open source. TectonicはCoreOSの署名自動運用を提供し、 プライベートとパブリック・クラウド・プロバイダを横断する移動性を可能とし、 常に上流はオープンソースです。
  19. 19. 21Tectonicのシステム構成の全体図です。Kubernetesとホスト側の管理およびインターフェースを提供します。 APP APP APP Provisioner Mathbox Controller Worker 1 Worker 2 … Worker N GUI gRPC etcd kubectl - Service - Deployment APP APP APP Pod APP APP APP Pod Ingress network (by flannel) High Availability (by operator) Terraform for Bare Metal with Matchbox provider Pod Supported by Tectonic Console(GUI) Prometheus GUI Grafana GUI service service API
  20. 20. 22Tectonicで環境構築をすると、自動的に可用性を持つKubernetesノード(Master/Slave)とクラスタを構築します。 APP APP APP GUI gRPC etcd kubectl - Service - Deployment APP APP APP Pod APP APP APP Pod Ingress network (by flannel) High Availability (by operator) Pod Supported by Tectonic Console(GUI) Prometheus GUI Grafana GUI service service API Mathbox Terraform for Bare Metal with Matchbox provider
  21. 21. 23ノードの自動構築にはMatchboxというプロビジョニング用サーバを使い、この構成管理でTerraformを使います。 APP APP APP Provisioner Mathbox Controller Worker 1 Worker 2 … Worker N GUI etcd kubectl - Service - Deployment APP APP APP Pod APP APP APP Pod Ingress network (by flannel) High Availability (by operator) Terraform for Bare Metal with Matchbox provider Pod Supported by Tectonic Console(GUI) Prometheus GUI Grafana GUI service service API Provisioner Mathbox Controller Worker 1 Worker 2 … Worker N Terraform for Bare Metal with Matchbox provider gRPC
  22. 22. 24自動的にPrometheusの監視アラート設定、Grafanaのリソースグラフ等が設定され、kubectlでも操作できます。 APP APP APP GUI gRPC etcd APP APP APP Pod APP APP APP Pod Ingress network (by flannel) High Availability (by operator) Pod Supported by service service API Mathbox Terraform for Bare Metal with Matchbox provider GUI kubectl - Service - Deployment Tectonic Console(GUI) Prometheus GUI Grafana GUI
  23. 23. Tectonicの機能 • 安全なネットワーク Flannel と Calico で安全なネットワーク・ポリシーをセットアップ • etcdのディザスタ・リカバリHA 高可用性に対応した etcd のデプロイと、バックアップ・復旧機能 • 自動オペレーション CoreOSの自動オペレーションで、インフラの更新と維持を簡単に • Container Linux Operating System コンテナ向けに開発された軽量 Linux ディストリビューション • Logging & Auditing 監査対象は基本的にインフラの全てであり、API経由でも追跡可能 • Kubernetesの高可用性 Kubernetes環境の複数のmasterとworkerを簡単にデプロイ • Tectonic Console インフラ管理を管理されたダッシュボードですべて管理 • 企業統制と管理 RBACや既存のLDAP、SAMLとの統合 • Prometheus Monitoring Prometheusでクラスタとアプリケーションを管理 • Prometheus AlertManager Tectonic Consoleからインフラ全体のアラートを設定 25※ https://coreos.com/tectonic/
  24. 24. 26 Tectonicの位置付け このようにTectonicはKubernetesと同じ場所に位置し、Cloud Independenceとは独立性を表しています。 https://www.slideshare.net/CoreOS_Slides/tuesday-keynote/4
  25. 25. CoreOSのロゴを見るとこんな印象を受けます。ちなみに Tectonic とは地殻ですが、語源は「建設・構築」です。
  26. 26. Tectonic DEMO
  27. 27. $ export KUBECONFIG=~/.kube/config $ kubectl get nodes NAME STATUS ROLES AGE VERSION node1.example.com Ready master 1d v1.7.5+coreos.1 node2.example.com Ready node 1d v1.7.5+coreos.1 node3.example.com Ready node 22h v1.7.5+coreos.1 専用の管理画面もありますが、kubectl から直接の操作も可能です。
  28. 28. こちらは管理コンソール。ここでクラスタ上のサービスやPodほか、様々な情報を一元管理できます。
  29. 29. 32ノード追加時にGrafanaでシステムのキャパシティを表示したところ。
  30. 30. 33Prometheusの監視も自動的に入っており、このようにアラートのTarget設定も自動的に行われます。
  31. 31. 34 APP APP APP Provisioner Mathbox Controller Worker 1 Worker 2 … Worker N GUI gRPC etcd kubectl - Service - Deployment APP APP APP Pod APP APP APP Pod Ingress network (by flannel) High Availability (by operator) Terraform for Bare Metal with Matchbox provider Pod Supported by Tectonic Console(GUI) Prometheus GUI Grafana GUI service service API
  32. 32. 概要の章・まとめ •TectonicはKubernetes構築・管理基盤 Kubernetes のプロダクション稼働(24時間365日の運用)のための 必要な要素(可用性・監視・ノード管理・等々)がパッケージされている。 そのため、ゼロから全てを設計・構築する必要がない。 •ベアメタル環境(物理サーバ)にも対応 クラウド・サービス上での Kubernetes クラスタ構築のみならず、 Tectonic 自身が物理サーバでの動作環境構築(プロビジョニング)に 公式に対応している。
  33. 33. Terraform Provider for Bare Metal with Matchbox
  34. 34. ベアメタル向け環境構築の流れ Tectonicをセットアップすると、自動的にKubernetesも入ります。 CoreOS Tectonic アカウント作成 https://account.coreos.com/login Tectonic installer ダウンロードと展開 Matchbox 0.6+のインストール TLS証明書のセットアップ gRPC API 有効化 Mathcbox v0.6+ Terraform for Bare Metal with Matchbox provider Bare Metal Machine ネットワーク設定 PXE/iPXE/GRUB
  35. 35. ベアメタル向け環境構築の準備 もう少し粒度を高めると、このような具体的作業が必要です。 CoreOS Tectonic アカウント作成 https://account.coreos.com/login Tectonic installer ダウンロードと展開 Matchbox 0.6+のインストール TLS証明書のセットアップ gRPC API 有効化 PXE boot環境の構築 DHCP/ TFTP / DNS DNS設定 (kubernetes controller, Tectonic Ingress worker} Bare metal マシン準備 MACアドレス確認 PXE Boot 設定 Terraform 本体および Matchbox プロバイダの セットアップ Mathbox環境変数設定 SSH エージェント設定 Terraform plan / apply Bare Metal マシン電源投入
  36. 36. ベアメタル向け環境構築の準備 その中でも特に重要なのが、Matchboxです。ベアメタル環境の初期構築のためのOSイメージと設定ファイルを配布します。 CoreOS Tectonic アカウント作成 https://account.coreos.com/login Tectonic installer ダウンロードと展開 Matchbox 0.6+のインストール TLS証明書のセットアップ gRPC API 有効化 PXE boot環境の構築 DHCP/ TFTP / DNS DNS設定 (kubernetes controller, Tectonic Ingress worker} Bare metal マシン準備 MACアドレス確認 PXE Boot 設定 Terraform 本体および Matchbox プロバイダの セットアップ Mathbox環境変数設定 SSH エージェント設定 Terraform plan / apply Bare Metal マシン電源投入
  37. 37. 41 Matchbox Matchboxはベアメタル・マシンに対し、Tectonicの役割に応じたOSと初期設定(プロビジョニング)を行います。 Matchbox Bare Metal Machine
  38. 38. 42 Matchbox ベアメタル・マシンはOSが入っておらず、PXE boot/iPXE/GRUB で起動後に OS 初期設定を行います。 Matchbox Bare Metal Machine port: 8080 HTTP Endpoint MACアドレスに応じて インストールする環境の 設定ファイルを送信
  39. 39. 43 Matchbox この MAC アドレスの情報や、Tectonic 関連の情報を管理するファイルを自動生成するのが Terraform です。 Matchbox Terraform for Bare Metal with Matchbox provider Bare Metal Machine port: 8080 HTTP Endpoint port: 8081 gRPC API Endpoint MACアドレスに応じて インストールする環境の 設定ファイルを送信
  40. 40. 44 Matchbox ベアメタル・マシンがブートすると、 初期化プログラムIgnitionを実行(Cloud Config と同じですが、初回のみ実行) Matchbox Terraform for Bare Metal with Matchbox provider Bare Metal Machine port: 8080 HTTP Endpoint port: 8081 gRPC API Endpoint MACアドレスに応じて インストールする環境の 設定ファイルを送信 Ignition Ignition
  41. 41. 45 Matchbox Tectonicの役割(コントローラかワーカー)に応じて、ベアメタル・マシンに対するセットアップが自動的に行われます。 Matchbox Terraform for Bare Metal with Matchbox provider Bare Metal Machine port: 8080 HTTP Endpoint port: 8081 gRPC API Endpoint MACアドレスに応じて インストールする環境の 設定ファイルを送信 Controller(s) Worker(s) Ignition Ignition 私はみんなの ためにWorkerに なる!なるべーく、 諦めなーい! これが私たちの 運命… がんばろうね やめろー!
  42. 42. Matchbox Ignition
  43. 43. 47 Tectonic環境構築の流れ もうすこし具体的な流れや、関連ファイルの関係性がこちらです。 Matchbox Terraform for Bare Metal with Matchbox provider Bare Metal Machine ❶ terraform plan terraform.tfvars • 様々なノード情報 • コントローラのホスト名とMACアドレス • ワーカーのホスト名とMACアドレス • ログイン情報・パスワードのハッシュ ❷ 関連ファイル生成 /var/lib/matchbox/ + /profiles/ + /Ignition/ ❸ マシン起動 PXE boot DHCP IP & iPXE用 URL PXE Chainloading Profiles (JSON) Ignition (YAML) dnsmasq (TFTP) Ignition Ignition (YAML) ❹ ❺役割に応じた 環境自動構築 iPXE boot ❹ terraform apply ❻ remote-exec gRPC API
  44. 44. 構築の章・まとめ •Matchbox -> Ignition が環境構築の要 物理ノードのOS初期化・環境設定を行うのは、プロビジョニング専用の サービス Matchbox を使い、ネットワーク上で自動環境構築を行う。 そして、Ignition が Matchbox の提供する設定情報を参照し、適切な 環境構築を行えるようにする。 •Terraform が環境構築の情報を提供 設定ファイル上の変数設定を参照し、 “terraform plan/apply” コマンド で Matchbox や Ignition が参照する YAML や JSON ファイルを生成し、 各ノード起動後は、SSH ログインと(必要に応じて)追加設定を自動実行。
  45. 45. Tectonic 環境構築編
  46. 46. 51
  47. 47. 詳細な手順は、またいずれ、どこかで
  48. 48. 振り返り
  49. 49. Tectonic 概要編 Bare Metal on 環境構築編 今日の内容 • 個人的な動機 • なぜ Tectonic なのか? • Tectonic の機能と仕組み TectonicはKubernetesの構築・管理基盤である • Tectonic インストールまでの流れ • Terraform で環境構築 • Matchbox と Ignition Bare Metal 環境にも対応する
  50. 50. Questions?
  51. 51. 参考 References  Tectonic https://coreos.com/tectonic/  Install on bare metal with Terraform https://coreos.com/tectonic/docs/latest/install/bare-metal/metal-terraform.html  coreos / matchbox https://github.com/coreos/matchbox  Matchbox Documentation https://coreos.com/matchbox/docs/latest/  Ignition Documentation https://coreos.com/ignition/docs/latest/

×
Save this presentationTap To Close