Save 37% off PRO during our Black Friday Sale! »

インフラが苦手でも大丈夫!紙芝居Kubernetes

7ba12981020b07491850af953d794f54?s=47 aoi
November 17, 2021

 インフラが苦手でも大丈夫!紙芝居Kubernetes

Women Developers Summit で登壇したときの資料です。

7ba12981020b07491850af953d794f54?s=128

aoi

November 17, 2021
Tweet

Transcript

  1. インフラが苦手でも大丈夫! 紙芝居 Kubernetes あおい

  2. 自己紹介 名前:あおい 会社:サイボウズ株式会社 職種:SRE アプリケーションを Kubernetes基盤に移行中 twitter: @_a0i 酒と漫画と音楽と日々

  3. はじめに 話すこと • Kubernetesを利用するための考え方、抽象的 な話 話さないこと • Dockerやコンテナについて詳しい説明 • Kubernetesを実際に使うための具体的な方法

    や詳細な説明
  4. 第一話:登場Kubernetes   Kubernetesが登場した背景と簡単な説明 第二話:Kubernetesと日々   Kubernetesを利用した開発フロー 第三話:そして旅は続く   Kubernetesで運用を続けるための様々な仕組み 目次

  5. 登場 Kubernetes

  6. 大きな Javaアプリケーションが ありました 昔々あるところに・・・

  7. はじめのうちはよかったのですが・・・ 一箇所の障害が全 体に影響する 起動に時間がかかる リリースするのに 時間がかかる

  8. 開発者は考えました

  9. コンテナを使ってアプリケーションを小さく分け よう!

  10. それでも課題はなくなりません コンテナの障害を検 知して立ち上げ直す ことが大変・・・ 今どのサーバーにどの コンテナが乗ってるん だっけ? このコンテナどこに配 備すれば良い?

  11. そこで登場 Kubernetes

  12. コンテナにすると何が嬉しくなるのか ・仮想マシンに比べてコンテナは起動が早い ・アプリケーションがコンテナに隔離されている ため便利 一方、コンテナが乱立して管理が大変になってし まう

  13. App ゲストOS ホストOS ハードウェア 仮想マシン(VM) コンテナ ハイパーバイザー ゲストOS ミドル ウェア

    ミドル ウェア App App App App App App App ミドル ウェア ミドル ウェア ハードウェア ホストOS コンテナランタイム
  14. Kubernetesとは? Kubernetesは、コンテナ化されたアプリケーショ ンの展開、スケーリング、また管理を自動化する ためのオープンソースコンテナプラットフォーム です。 (Kubernetes公式ドキュメントより https://kubernetes.io/ja/docs/home/)

  15. 1. マニフェストと呼ばれるリソース設定ファイ ルを利用することでInfrastructure As Code を実現 2. KubernetesのAPIで共通化・抽象化されてお り、サーバー固有の設定を知る必要がない 3.

    Reconciliation Loop コンテナの運用を便利にするKubernetes
  16. apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: -

    name: test image: nginx:1.14.2 resources: requests: memory: "100Mi" マニフェストの例:nginxコンテナ アプリケーションはどの サーバーの上にたてる?OS は?メモリの性能は? などを気にしなくてよい
  17. Reconciliation Loop このコンテナ 二つほしい ラジャー!

  18. Reconciliation Loop ああああああ あ

  19. Reconciliation Loop ♪ 二個ね!

  20. Kubernetes と日々

  21. Kubernetesが運用を助けてくれることはわかっ たけれど・・・

  22. ・・・。 開発者にとって具体的にどう便利なの?

  23. これまでのアプリケーション開発 Application Virtual Machine 説明簡単化のために抽象化しています ブラウザで アクセス! 設定 ファイル

  24. コンテナで開発しようとすると・・・ コンテナ間通信 はどうする? App App App ミドル ウェア ミドル ウェア

    ハードウェア ホストOS コンテナランタイム 外からアクセス したい時は? 設定ファイルを どうやって 受け渡す? ストレージを 使いたいときは どうする?
  25. 難しくなってない・・・?

  26. 呼んだー!?

  27. Kubernetesを使うとこうなる! Service Container Container Pod ConfigMap

  28. Kubernetesを使ったアプリケーション開発の進め方 CI Container Registry docker build docker push pull Service

  29. Kubernetesを使ったアプリケーション開発の進め方 CI Container Registry docker build docker push pull Service

    manifest kubectl apply
  30. 毎回手動で kubectl applyで 良いのか? kubectl apply kubectl apply どうやって管理する? どのタイミングで適用する?

    どの環境に適用する?
  31. CIOps OpsとはOperationsの略語 push kick Manifest Repository CI Tool

  32. GitOps push pull Manifest Repository Deploy Tool

  33. 違いは? CIOps:push型。即時適用作業が実施される。 kubectl applyでやっていることを自動化するイ メージなのでわかりやすく直感的。 GitOps:pull型。宣言的であるため、管理されて いるマニフェストが常に正しい設定となる。

  34. Kubernetes の構造 kube- apiserver etcd controller manager kubelet kube- proxy

    kubectl kube- scheduler Control Plane Node Node kubelet kube- proxy
  35. そして旅はつづく

  36. ある晩コンテナの調子が悪くなったようです・・・ さあどうする!?

  37. 看病します!

  38. 様々なHealth Check機構 HealthyではないPodを Serviceから切り離す Podを新規に立ち上げる Service Service

  39. 自動で他のNodeに リソースを 移してくれる Nodeの障害が起こった場合・・・

  40. それでも障害は起こる:他社事例 テスト環境と間違えて 本番環境のクラスタを 削除(Spotify) クリーンアップ処理で本番 環境のDockerイメージを 次々と削除(Airbnb)

  41. • どんなにKubernetesが優秀でも障害は起こる • これまでのVMの運用のように「VMにログイ ンして、psやsystemctlで確認して、ログファ イルを見て」が通用しない ログ・メトリクス・アラート大事! Observability

  42. None
  43. 資格取得を目標に勉強したい CKA、CKAD 書籍をがっつり勉強したい Kubernetes完全ガイド 勉強会に参加したい Kubernetes Meetup Tokyo https://k8sjp.connpass.com とにかく手を動かしたい

    公式チュートリアル https://kubernetes.io/docs/tutorials/ 課金して体系的に学びたい・ 手を動かしたい Udemy https://www.udemy.com/course/certifi ed-kubernetes-administrator-with-pra ctice-tests/ Next What to Do
  44. 参考 Kubernetesとは何か? https://kubernetes.io/ja/docs/concepts/overview/what-is-kubernetes/ Using Pods https://kubernetes.io/docs/concepts/workloads/pods/#using-pods 10 More Weird Ways

    to Blow Up Your Kubernetes - Jian Cheung & Joseph Kim, Airbnb https://www.youtube.com/watch?v=4CT0cI62YHk Keynote: How Spotify Accidentally Deleted All its Kube Clusters with No User Impact - David Xia https://www.youtube.com/watch?v=ix0Tw8uinWs Kubernetes Failure Stories https://k8s.af