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

ClusterAPI を使ってKubernetes のライフ サイクルを管理しよう

tadashi
March 11, 2021

ClusterAPI を使ってKubernetes のライフ サイクルを管理しよう

Cloudnative Days Spring 2021 Online 資料

tadashi

March 11, 2021
Tweet

More Decks by tadashi

Other Decks in Technology

Transcript

  1. ©2021 VMware, Inc. 1 ⾃⼰紹介 l ⽒名: 伊藤 忠司 l

    所属: VMware モダンアプリケーション プラットフォーム事業本部 l やってきた事 l メインフレーム︓6年 l エンタープライズストレージ︓6年 l コンテナ︓2年 l Kubernetes 周りで習得したい事 l セキュリティ周り
  2. ©2021 VMware, Inc. 2 l 想定している視聴者の⽅ l Kubernetes(K8s) クラスタのライフサイクル管理についてあれこれ考えている⽅ l

    インフラストラクチャを跨いで統⼀的なK8s ライフサイクル管理を検討している⽅ Cluster API 初⼼者の⽅向けのセッションになっています 本セッションの想定視聴者の⽅
  3. ©2021 VMware, Inc. Agenda 3 Cluster API が登場した背景 Cluster API

    概要 Cluster API アーキテクチャ (宣伝) Cluster API を⽤いた エンタープライズグレード Kubernetes ランタイム まとめ
  4. ©2021 VMware, Inc. Agenda 4 Cluster API が登場した背景 Cluster API

    概要 Cluster API アーキテクチャ (宣伝) Cluster API を⽤いた エンタープライズグレード Kubernetes ランタイム まとめ
  5. ©2021 VMware, Inc. 6 エコシステムの成⻑と共に多くの選択肢 Kubernetes ランタイム数とインストーラ数* 67 47 20

    134 = * CNCF Software conformance (Certified Kubernetes) as.of.2021.2.14 + + Certified Kubernetes - Distribution Certified Kubernetes - Hosted Certified Kubernetes - Installer
  6. ©2021 VMware, Inc. 7 l インフラストラクチャ • ネットワーク • ファイアーウォールルール

    • サーバ • ロードバランサ etc l Kubernetes コンポーネント l アドオン • バックアップ&リストア • Ingress • レジストリ • etc Kubernetes クラスタを作るには何が必要か︖︖︖ Kubernetes クラスタのコンポーネント
  7. ©2021 VMware, Inc. 8 l インフラストラクチャ • ネットワーク • ファイアーウォールルール

    • サーバ • ロードバランサ etc l Kubernetes コンポーネント l アドオン • バックアップ&リストア • Ingress • レジストリ • etc Kubernetes クラスタを作るには何が必要か︖︖︖ Kubernetes クラスタのコンポーネント
  8. ©2021 VMware, Inc. 9 § コントロールプレーン コンポーネント § kube-apiserver §

    etcd § kube-scheduler § kube-controller-manager § cloud-controller-manager § ノード コンポーネント § kubelet § kube-proxy § container runtime § アドオン Kubernetes コンポーネント
  9. ©2021 VMware, Inc. 10 § コントロールプレーン コンポーネント § kube-apiserver §

    etcd § kube-scheduler § kube-controller-manager § cloud-controller-manager § ノード コンポーネント § kubelet § kube-proxy § container runtime § アドオン Kubernetes コンポーネントのブートストラップ
  10. ©2021 VMware, Inc. 11 § コントロールプレーン コンポーネント § kube-apiserver §

    etcd § kube-scheduler § kube-controller-manager § cloud-controller-manager § ノード コンポーネント § kubelet § kube-proxy § container runtime § アドオン Kubernetes コンポーネントのブートストラップ
  11. ©2021 VMware, Inc. 12 l インフラストラクチャ • ネットワーク • ファイアーウォールルール

    • サーバ • ロードバランサ l Kubernetes コンポーネント l アドオン • バックアップ&リストア • Ingress • レジストリ • etc Kubernetes クラスタのライフサイクル管理においては、インフラ部分含めて検討が必要 Kubernetes クラスタのコンポーネント
  12. ©2021 VMware, Inc. Agenda 13 Cluster API が登場した背景 Cluster API

    概要 Cluster API アーキテクチャ (宣伝) Cluster API を⽤いた エンタープライズグレード Kubernetes ランタイム まとめ
  13. ©2021 VMware, Inc. 14 l Cluster API とは l Kubernetes

    クラスタライフサイクル管理の仕組 l Cluster API で出来る事 l 仮想マシン、ネットワーク、ストレージ部分を含めた Kubernetes クラスタの作成、削除 l スケールアップ、スケールアウト l ノードの死活監視 l アップグレード l SIG で管理されているオープンな仕組み l github.com/kubernetes-sigs/cluster-api Cluster API 宣⾔的Kubernetes クラスタライフサイクル管理 It's Kubernetes all the way down Clusters as Cattle
  14. ©2021 VMware, Inc. 15 概要 Cluster API マネジメントクラスタ K8s クラスタのマニフェストファイル

    Cluster: Dev ControlPlane: KubeadmControlPlane MachineDeployment: Mix of Small/Large VMs ユーザー Cluster API Kubernetes Cluster Kubernetes Nodes Kubernetes Nodes Kubernetes Nodes Kubernetes Nodes Kubernetes Nodes Other Clouds YAML ワークロードクラスタ
  15. ©2021 VMware, Inc. 16 概要 Cluster API マネジメントクラスタ Cluster API

    Kubernetes Cluster Kubernetes Nodes Kubernetes Nodes Kubernetes Nodes Kubernetes Nodes Kubernetes Nodes Other Clouds Kubernetes の仕組みを活⽤し、Kubernetes クラスタの ライフサイクルを管理する仕組み ワークロードクラスタ ブートストラップクラスタ
  16. ©2021 VMware, Inc. Agenda 17 Cluster API が登場した背景 Cluster API

    概要 Cluster API アーキテクチャ (宣伝) Cluster API を⽤いた エンタープライズグレード Kubernetes ランタイム まとめ
  17. ©2021 VMware, Inc. 18 Kubernetes リソースとの対⽐ Cluster API Kubernetes Pod

    ReplicaSet Deployment Cluster API Cluster Machine ControlPlane CP MachineSet MachineDeployment
  18. ©2021 VMware, Inc. 19 現在のアーキテクチャ Cluster API マネジメントクラスタ Cluster API

    Provider Cluster API Controller Manager Reconcile InfraCluster Controller Infrastructure Controller Manager Provider Reconcile InfraMachine Controller Reconcile BootstrapConfig Controller Bootstrap Controller Manager Reconcile ControlPlane Controller ControlPlane Controller Manager CAPI Provider Provider Cluster Machine MachineSet MachineDeployment
  19. ©2021 VMware, Inc. 20 ワークフロー Cluster API を⽤いた Kubernetes クラスタの作成

    1. ブートストラップクラスタの作成(ex. kind) ブートストラップクラスタ(ex. kind) ユーザー $ kind create cluster
  20. ©2021 VMware, Inc. 21 ワークフロー Cluster API を⽤いた Kubernetes クラスタの作成

    1. ブートストラップクラスタの作成(ex. kind) 2. ブートストラップクラスタに対して、Cluster API、コントローラ、インフラストラクチャ プロバイダ固有のリソースをインストール ブートストラップクラスタ(ex. kind) ユーザー $ clusterctl init
  21. ©2021 VMware, Inc. 22 ワークフロー Cluster API を⽤いた Kubernetes クラスタの作成

    1. ブートストラップクラスタの作成(ex. kind) 2. ブートストラップクラスタに対して、Cluster API、コントローラ、インフラストラクチャ プロバイダ固有のリソースをインストール マネジメントクラスタ ユーザー Control Plane Cluster A ControlPlane A Cluster Controller ControlPlane Controller $ clusterctl init
  22. ©2021 VMware, Inc. 23 ワークフロー Cluster API を⽤いた Kubernetes クラスタの作成

    1. ブートストラップクラスタの作成(ex. kind) 2. ブートストラップクラスタに対して、Cluster API、コントローラ、インフラストラクチャ プロバイダ固有のリソースをインストール 3. ワークロードクラスタ⽤のマニフェストファ イル を作成 マネジメントクラスタ ユーザー Control Plane Cluster A ControlPlane A Cluster Controller ControlPlane Controller $ clusterctl config YAML
  23. ©2021 VMware, Inc. 24 ワークフロー Cluster API を⽤いた Kubernetes クラスタの作成

    1. ブートストラップクラスタの作成(ex. kind) 2. ブートストラップクラスタに対して、Cluster API、コントローラ、インフラストラクチャ プロバイダ固有のリソースをインストール 3. ワークロードクラスタ⽤のマニフェストファ イル を作成 4. ワークロードクラスタのマニフェストファイ ルに基づいて、K8s クラスタを作成 マネジメントクラスタ ユーザー Control Plane Cluster A ControlPlane A Cluster Controller ControlPlane Controller YAML $ kubectl apply -f ワークロードクラスタ
  24. ©2021 VMware, Inc. 25 ワークフロー Cluster API を⽤いた Kubernetes クラスタの作成

    1. ブートストラップクラスタの作成(ex. kind) 2. ブートストラップクラスタに対して、Cluster API、コントローラ、インフラストラクチャ プロバイダ固有のリソースをインストール 3. ワークロードクラスタ⽤のマニフェストファ イル を作成 4. ワークロードクラスタのマニフェストファイ ルに基づいて、K8s クラスタを作成 5. 作成後は、ワークロードクラスタは通常の Kubernetes クラスタと同様直接操作 マネジメントクラスタ ユーザー Control Plane Cluster A ControlPlane A Cluster Controller ControlPlane Controller ワークロードクラスタ $ kubectl
  25. ©2021 VMware, Inc. 29 Azure 環境上に作成したワークロードクラスタのスケールアウト/アップグレード Demo マネジメントクラスタ ワークロードクラスタ in

    Azure K8s v1.19.1 ライフサイクル管理 • Worker ノードのスケールアウト • Kubernetes クラスタのバージョンアップ
  26. ©2021 VMware, Inc. Agenda 31 Cluster API が登場した背景 Cluster API

    概要 Cluster API アーキテクチャ (宣伝) Cluster API を⽤いた エンタープライズグレード Kubernetes ランタイム まとめ
  27. ©2021 VMware, Inc. 34 エンタープライズCluster API K8s ランタイム Tanzu Kubernetes

    Grid = TKG vSphere with Tanzu Tanzu Kubernetes Grid = TKG vSphere 6.7u3/7 パブリッククラウド (AWS/Azure/VMC on AWS) Tanzu というKubernetes を中⼼としたソリューションの中で Kubernetes ランタイム部分を提供 vSphere とインテグレーションされた組み込 み型 Kubernetes ランタイムを提供 アプライアンス型として、マルチIaaS 環境で 利⽤出来るKubernetes ランタイムを提供 TKG multicloud
  28. ©2021 VMware, Inc. Agenda 35 Cluster API が登場した背景 Cluster API

    概要 Cluster API アーキテクチャ (宣伝) Cluster API を⽤いた エンタープライズグレード Kubernetes ランタイム まとめ
  29. ©2021 VMware, Inc. 36 Cluster API を利⽤する事によって・・・ l IaaS 環境を跨いだ統⼀的なKubernetes

    クラスタのライフサイクル管理が可能 • K8s クラスタの作成/削除 • スケールアウト、スケールアップ • アップグレード • ノードの死活監視 l Kubernetes クラスタのDay1/2 オペレーションが統⼀され、多くのKubernetes クラ スタを効率良く管理する事が可能 まとめ