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

Vagarnt と Terraform 私の利用法

Vagarnt と Terraform 私の利用法

VagrantをK8s用学習環境として利用しています。minikubeなどがあるのに何故Vagrantを利用するのか、その理由や、K8sクラスタのセットアップについて説明します。そして、Terraform は IBM Cloudでも利用できることをご紹介します。

B8d0f591da3869f3bb9d5473853be2a2?s=128

Maho Takara

July 03, 2020
Tweet

Transcript

  1. VagrantとTerraform 私の活用法 日本IBM株式会社 クラウド&コグニティブソフトウェア事業部 高良 真穂 IBM Cloudでも TFが使えるよ User

    Group 7月3日(金) 15:15 ~ 15:30 https://hashicorp.connpass.com/event/178303/
  2. お話する人 たから まほ 高良 真穂 IBM Cloud テクニカルセールス & エバンジェリスト

    通称 コンテナおじさん 所属 日本アイ・ビー・エム株式会社 クラウド&コグニティブソフトウェア事業本部
  3. 3 Vagrant vs Terraform Vagrant ローカルの仮想環境操作を抽象化 Terraform クラウドの仮想環境操作を抽象化

  4. Vagrantは開発者WSの仮想環境フロントエンド Windows / macOS / Linux 仮想環境 VirtualBox / Hyper-V

    / VMware サーバーOS設定 アプリケーション OpenShift/K8s等
  5. Terraformはクラウド操作のフロントエンド クラウドプロバイダー 仮想環境 (VM / VPC) サーバーOS設定 アプリケーション OpenShift/K8s等

  6. 私のVagrant 活用法

  7. 著書の中で、 マルチノード Kubernetes クラスタの 学習環境として活用 Master Node1 Node2 パソコンOS ハイパーバイザー

    HVフロントエンド 仮想マシン Linux OS コンテナ実行環境 コンテナ・オーケストレータ 役割 マルチノード Kubernetes学習環境 Windows / macOS Virtual Box Vagrant Linux (Ubuntu) VM Docker CE Kubernetes Linux (Ubuntu) VM Docker CE Kubernetes Linux (Ubuntu) VM Docker CE Kubernetes
  8. Vagrantで学習環境を作った理由 Master Node1 Node2 パソコンOS ハイパーバイザー HVフロントエンド 仮想マシン Linux OS

    コンテナ実行環境 コンテナ・オーケストレータ 役割 マルチノード Kubernetes学習環境 Windows / macOS Virtual Box Vagrant Linux (Ubuntu) VM Docker CE Kubernetes Linux (Ubuntu) VM Docker CE Kubernetes Linux (Ubuntu) VM Docker CE Kubernetes • クラウドの課金を心配せずに利用できる • マスターノードに入って確認できる • マルチノードのノード障害の振る舞いを確認できる • クラスタの一部を壊して影響の確認ができる • 読者自身がソフトウェア構成を変更できる
  9. VagrantのK8s学習環境はGitHubで公開 https://github.com/takara9/vagrant-kubernetes

  10. vagrant up 複数ホスト起動 VMのスペックを配列に書いて 様々な条件のクラスタ構成可能 ループの中で条件を変えながら K8sクラスタのノードを起動

  11. VagrantからAnsibleを実行して K8sクラスタ構築 Upstream Kubernetes の インストールとセットアップは 後続のAnsibleで実施 VagarntfileにAnsible の条件を設定できる 必要に応じてShellも実行可能

  12. 起動できるK8sクラスタ環境 .11 Host Only 172.16.20.0/24 enp0s8 ホスト名 master enp0s3 10.0.2.15

    CPU Core x2 RAM 2GB OS Ubuntu 16.04 NAT enp0s9 .91 Bridged 192.168.1.0/24 .12 enp0s8 ホスト名 node1 enp0s3 CPU Core x1 RAM 1GB OS Ubuntu 16.04 NAT enp0s9 .92 .13 enp0s8 ホスト名 node2 enp0s3 CPU Core x1 RAM 1GB OS Ubuntu 16.04 NAT enp0s9 .93 10.0.2.15 10.0.2.15 192.168.1.0/24 BBルータ インターネット ブロードバンドルータのネットワーク パソコン内の仮想マシンとネットワーク環境 BBルータのDHCPで、パソコンにアサインされたIPアドレス .25 ブリッジ DHCP 192.168.1.25 パソコン Static 192.168.1.91 master Static 192.168.1.92 node1 Static 192.168.1.93 node2 この仮想環境で利用するBBルータ上のIPアドレス
  13. 他にストレージ環境も

  14. 私のTerraform 活用法

  15. ©︎ 2019 IBM Corporation どのクラウドでも、何回でも同じものが作れる 200を超える プラグインで 様々な環境で 使える IBM

    Cloudは リストに 載っていないよ
  16. Terraform の役割 ✓ クラウドの仮想環境操作を抽象化 Azure, GCP, AWS の操作を共通化 IBM Cloudでも利用可能

    • え ✓ クラウド環境構築と管理の自動化 Infrastructure as Codeとしてクラウドを設定 目的状態を記述することで変更や追加も管理 ✓ オーケストレーション クラウドのネットワーク、VPC、サービス そして、仮想サーバーのセットを自動構築
  17. プロバイダ・プラグインを変更すれば同じフローで管理可能 テンプレート Terraform コマンド IBM プロバイダ プラグイン IBM Cloud API

    Endpoint コマンド実行 プロビジョニング実施 目的状態 Terraform コマンド AWS プロバイダ プラグイン AWS API Endpoint main.tf パラメータ
  18. こんなQiitaの記事を書きました https://qiita.com/MahoTakara/items/17b3ac66a55d4d8b02d7 https://qiita.com/MahoTakara/items/0b23d9bca3edcfe0081c

  19. IBM Cloud の Terraform利用 https://cloud.ibm.com/docs/schematics?topic=schemati cs-create-tf-config&locale=ja

  20. IBM Cloud の Terraform利用 https://ibm-cloud.github.io/tf-ibm-docs/index.html

  21. Terraformも目的状態をテンプレートに記述して、状態を一致 させる宣言的な定義なため、構築・変更・削除が簡単 main.tf テンプレート Terraform コマンド IBM プロバイダ プラグイン IBM

    Cloud API Endpoint コマンド実行 プロビジョニング実施 目的状態 デプロイ パラメータ
  22. お手本がないと いきなり コード 書けないよ

  23. IBM Cloud Terraformサンプル https://github.com/IBM-Cloud/terraform- provider-ibm/tree/master/examples

  24. IBMクラウドでTFを使う には2つ方法がある 1 コマンドラインツール 2 IBM Cloud Schematic

  25. Terraform を簡単運用 IBM Cloud Schematics

  26. IBM Cloud Schematicは TFのコードを書くことを 不要にするのではなく、 テンプレートからの実体化 とリソースの変更管理

  27. IBM Cloud Schematics ワークスペースの作成画面 ここにGitHubのTFテンプレートのURLを設定 GitHubのREADME.md を読んで TFバージョンを指定

  28. IBM Cloud Schematics Terraform テンプレート適用

  29. リファレンスアーキテクチャを Terraform を使って 何処でも誰でも構築できる。 VM VM VM

  30. まとめ • Vagrantは K8s学習環境の構築に最適 • Terraform は IBM Cloudで利用可能 •

    IBM Cloud Schematics は Terraform管 理支援 • IBM Cloud では リファレンスアーキテク チャーをTerraformのターンキーで起動 パーソナルな
  31. None