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.

Kubernetes で変わるインフラ

1,562 views

Published on

Kubernetes の特徴とは?どういうことができるのか?
どのように勉強していくべきか、それによりインフラがどう変わるのか解説します。

Published in: Software
  • Be the first to comment

  • Be the first to like this

Kubernetes で変わるインフラ

  1. 1. Kubernetesで変わるインフラ 株式会社スタイルズ 矢野 哲朗 2019年1月23日
  2. 2. 自己紹介 経歴 : システム運用 10年・ネットワーク 6年・SI 8年 近頃はRancher/Nextcloudを担当 Rancherの好きな機能 : その他 : 全く上達しないRubyist 一番最初のPCは、OKI if-800 でした…。 矢野 哲朗 tetsurow.yano 株式会社スタイルズ 1
  3. 3. ご注意 2 本資料の内容は、私個人の見解です。 所属する団体や会社の立場、戦略、意見を代表、 見解を表すものではありません。
  4. 4. Kubernetes以前のインフラ 3 まだまだ過去のことではなく、 現在進行形の話です
  5. 5. Kubernetes以前 4 サーバー サーバー 設定、鍵管理 アプリ設定 シークレット鍵 ロードバ ランサー ジョブ管理 ジョブ設定 死活/稼働 監視 死活/稼働 監視 アプリA アプリB 負荷分散 IPアドレス管理 ボリューム管理 リソース管理 アプリケーション デプロイ管理 アプリA アプリB 認証・認可 ログ管理 ログ管理 内部DNS管理 手動で管理 手動で管理 手動で管理 手動で管理 手動で管理 手動で管理 手動で管理 手動で管理 手動で管理 手動で管理 Kubernetesがない状態 それぞれを別々に管理していて、設定方法もさまざまで統一されていません
  6. 6. インフラ屋さんの悩み 5 冗長化 どうしよう 負荷対策 どうしよう セキュリティー アップデート… 設定変更の 更新履歴管理 ログ管理 どうしよう バックアップ しなきゃ アプリの更新 失敗したら..。 作業手順書 書くの大変 アプリケーショ ンの更新が大変
  7. 7. インフラに関わる様々な悩み 6 実はAWSを使うと結構解消できる ところまで来ています。
  8. 8. これらの問題を 一挙解決!? 7 までは、いかないですが 大部分を解決してくれます
  9. 9. Pod Kubernetes以後 8 Kubernetesの機能 Kubernetes Node Kubernetes Node 設定、鍵管理 アプリ設定 シークレット鍵 ロードバ ランサー ジョブ管理 ジョブ設定 死活/稼働 監視 死活/稼働 監視 コンテナA コンテナB 負荷分散 IPアドレス管理 自動復旧 ボリューム管理 リソース管理 アプリケーション デプロイ管理 Pod コンテナA コンテナB 自動復旧 Kubernetes Master 認証・認可 ログ管理 ログ管理 内部DNS管理 Kubernetesにより統一したインターフェースとファイルで全てを設定・管理・自動化できるようになる Kubernetesの マニフェストファイル
  10. 10. おっと、その前に 9 そもそも、Kubernetesってなんですか?
  11. 11. Kubernetesとは 10 Dockerコンテナーをオーケストレーションするツール オーケストレーション??(ツール?) コンテナーを複数/複合的に組み合わせて動かすこと、 またはその動かす環境 コンテナーを動かすために必要な整備を行うツール Dockerコンテナー?? OS上のプロセスを他のプロセスと交わらないように 分離独立させたもので、疑似的にOS上で動作して いるように見せることができる 要するに 「次ページ」へ
  12. 12. ようするにKubernetesとは 11 アプリケーションのプロセスを 複数/複合管理し、動作させ、 必要な環境情報も管理するもの
  13. 13. Kubernetes以前 12 もう一回見てみましょう
  14. 14. Kubernetes以前(再掲) 13 サーバー サーバー 設定、鍵管理 アプリ設定 シークレット鍵 ロードバ ランサー ジョブ管理 ジョブ設定 死活/稼働 監視 死活/稼働 監視 アプリA アプリB 負荷分散 IPアドレス管理 ボリューム管理 リソース管理 アプリケーション デプロイ管理 アプリA アプリB 認証・認可 ログ管理 ログ管理 内部DNS管理 手動で管理 手動で管理 手動で管理 手動で管理 手動で管理 手動で管理 手動で管理 手動で管理 手動で管理 手動で管理 Kubernetesがない状態 それぞれを別々に管理していて、設定方法もさまざまで統一されていません
  15. 15. Kubernetes以後 14
  16. 16. Pod Kubernetesでは 15 Kubernetesの機能 Kubernetes Node Kubernetes Node 設定、鍵管理 アプリ設定 シークレット鍵 ロードバ ランサー ジョブ管理 ジョブ設定 死活/稼働 監視 死活/稼働 監視 コンテナA コンテナB 負荷分散 IPアドレス管理 自動復旧 ボリューム管理 リソース管理 アプリケーション デプロイ管理 Pod コンテナA コンテナB 自動復旧 Kubernetes Master 認証・認可 ログ管理 ログ管理 内部DNS管理 Kubernetesにより統一したインターフェースとファイルで全てを設定・管理・自動かできるようになる Kubernetesの マニフェストファイル
  17. 17. インフラ屋さんの悩み(再掲) 16 冗長化 どうしよう 負荷対策 どうしよう セキュリティー アップデート… 設定変更の 更新履歴管理 ログ管理 どうしよう バックアップ しなきゃ アプリの更新 失敗したら..。 作業手順書 書くの大変 アプリケーショ ンの更新が大変
  18. 18. 悩み(その1) 17 冗長化どうしよう
  19. 19. 悩み(その1) 18 冗長化どうしよう
  20. 20. 悩み(その2) 19 負荷対策どうしよう
  21. 21. 悩み(その2) 20 負荷対策どうしよう
  22. 22. 悩み(その3) 21 アプリケーション更新
  23. 23. 悩み(その3) 22 アプリケーション更新
  24. 24. 悩み(その4) 23 アプリ更新に失敗したら
  25. 25. 悩み(その4) 24 アプリ更新に失敗したら
  26. 26. 悩み(その5) 25 HA構成どうしよう
  27. 27. 悩み(その5) 26 HA構成どうしよう
  28. 28. 悩み(その6) 27 設定変更どうしよう
  29. 29. 悩み(その6) 28 設定変更どうしよう
  30. 30. その他にもいろいろ 29
  31. 31. Kubernetesの機能(1) 30
  32. 32. Kubernetesの機能(2) 31
  33. 33. Kubernetesの機能(3) 32
  34. 34. 今回のお題ってなんでしたっけ(再掲) 33 Kubernetesで変わるインフラ
  35. 35. Kubernetesは 34 Kubernetesはクラウドの Linuxになりつつある
  36. 36. これまでのインフラ 35 とりあえず、OSはCentOS(Linux)を入れておく
  37. 37. これからのインフラ 36 とりあえず、OSはUbuntu(Linux)を入れて Kubernetesを入れておく
  38. 38. それ以外にも変わることは沢山 37 • ネットワークもKubernetesに対応するようにする必要がある • ストレージもKubernetesに対応する必要がある • アップデート方法もKubernetesに対応したものに変わる • 監視もKubernetesに対応した方法に変わる • 運用方法もKubernetesに対応したものに変わる • ログの取得方法もKubernetesに対応したものに変わる • トラブルシューティング方法もKubernetesに対応した方法になる • アプリはコンテナー化する必要がある • 設定は手順書ではなくて、YAMLで書く • Kubernetesにより様々な自動化がなされる(運用は無くならない)
  39. 39. Kubernetesを勉強したい人のための書籍 38 https://book.impress.co.jp/books/1118101055 https://www.shoeisha.co.jp/book/detail/978479 8155371 https://gihyo.jp/book/2018/978-4-297-10033-9 Docker/Kubernetes 実践コンテ ナ開発入門 コンテナ・ベース・オーケスト レーション Kubernetes完全ガイド
  40. 40. Kubernetesの覚えて欲しい特徴 39 3行で Immutable Infrastructure (変更を積み重ねず、都度作る/作り直す) 宣言的設定 (あるべき姿を宣言し、その姿に収束させる) 自己修復 (どこかが壊れても、人を介さずに修復する) Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー より https://www.slideshare.net/ToruMakabe/kubernetes-120907020
  41. 41. Reconciliation Loop(突き合わせループ) 40 Kubernetesの マニフェストファイル マニフェストが 全て正 Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー より https://www.slideshare.net/ToruMakabe/kubernetes-120907020 現在の Kubernetes設定
  42. 42. Kubernetesの特徴 41 3行で Immutable Infrastructure (変更を積み重ねず、都度作る/作り直す) 宣言的設定 (あるべき姿を宣言し、その姿に収束させる) 自己修復 (どこかが壊れても、人を介さずに修復する) 「手順書よ、さようなら」 「インフラの全てをコード化する」 「Kubernetesが全てをコントロール」 つまりこういうこと Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー より https://www.slideshare.net/ToruMakabe/kubernetes-120907020
  43. 43. Kubernetesのメリット 42 Kubernetesにより 構成をまとめて 管理できるようになった
  44. 44. インフラについて何も説明してないじゃん! 43 実際の変化はどうなのか?
  45. 45. Nextcloudって知ってますか? 44
  46. 46. Nextcloudとは? 45 ownCloud からフォークされたオープンソースプロダクト。 PHPで作られたオンラインストレージサービスを構築できるサーバーソフトウェア こんな風にブラウザーで操作でき ます!今では当たり前の風景に
  47. 47. スタイルズ社はNextcloudの正規代理店です 46 Partners – Nextcloud https://nextcloud.com/partners/ Nextcloud公式パートナーサイト | 株式会社スタイルズ https://nextcloud.stylez.co.jp/
  48. 48. 通常のNextcloudのインフラはこんな感じ 47 とある大学様のインフラ構成図 Nextcloudセグメント 利用者 (Webブラウザ) LDAP連携 ■Webサーバ×2台 OS:CentOS Nginx,php-fpm LoadbalancerFirewall 利用者 (モバイル端末) 利用者 (同期アプリ) Storage NFSマウント ■DBサーバ×2台 OS:CentOS MariaDB,Redis DB/セッション Server LDAP Server Web Server DB/セッション Server Nginx PHP-FPM Nextcloud Nginx PHP-FPM Nextcloud MariaDB Web Server Redis
  49. 49. Kubernetesで置き換えるとどうなる? 48 利用者 (Webブラウザ) LDAP連携 Firewall 利用者 (モバイル端末) 利用者 (同期アプリ) Storage NFSマウント LDAP Server Nextcloudセグメント Kubernetesクラスター ■Kubernetes×3台 OS:Ubuntu Loadbalancer ■DBサーバ×2台 OS:CentOS MariaDB,Redis DB Server DB Server MariaDB Nginx PHP-FPM Nextcloud Redis nginx Nginx PHP-FPM Nextcloud Nginx PHP-FPM Nextcloud PHP- FPM redis nginx PHP- FPM redis nginx PHP- FPM redis Kubernetes Kubernetes Kubernetes 設定、鍵管理 アプリ設定 シークレット鍵 ジョブ管理 ジョブ設定 Dockerイメージ レジストリ Gitリポジトリ
  50. 50. 実は....。 49 インフラのハードウェア としてはあまり変わらない
  51. 51. 変わるのは… 50 インフラ、アプリ、 ミドルウェアの管理面
  52. 52. 管理面が大きく変わる(一部再掲) 51 • アップデート方法もKubernetesに対応したものに変わる • 監視もKubernetesに対応した方法に変わる • 運用方法もKubernetesに対応したものに変わる • ログの取得方法もKubernetesに対応したものに変わる • トラブルシューティング方法もKubernetesに対応した方法になる • アプリはコンテナー化する必要がある • 設定は手順書ではなくて、YAMLで書く • Kubernetesにより様々な自動化がなされる(運用は無くならない)
  53. 53. Kubernetesを勉強したい人のための書籍(再掲) 52 https://book.impress.co.jp/books/1118101055 https://www.shoeisha.co.jp/book/detail/978479 8155371 https://gihyo.jp/book/2018/978-4-297-10033-9 Docker/Kubernetes 実践コンテ ナ開発入門 コンテナ・ベース・オーケスト レーション Kubernetes完全ガイド
  54. 54. 何を勉強すればよいか?3つのレイヤー 53 の基礎 コンテナの基礎 CIビルドの基礎 Kubernetesネットワーク Kubernetesストレージ KubernetesパッケージングYAMLファイル クラウドデザインパターン 12Factor App マイクロサービス
  55. 55. 結構大変なことが一杯 54 しかし、Kubernetesは 必ずやってきます 今から始めましょう
  56. 56. ご清聴 ありがとうございました。 55

×