Cloudnative Days Spring 2021 Online 資料
©2021 VMware, Inc.ClusterAPI を使ってKubernetes のライフサイクルを管理しよう伊藤 忠司ヴイエムウェア株式会社
View Slide
©2021 VMware, Inc. 1⾃⼰紹介l ⽒名: 伊藤 忠司l 所属: VMware モダンアプリケーションプラットフォーム事業本部l やってきた事l メインフレーム︓6年l エンタープライズストレージ︓6年l コンテナ︓2年l Kubernetes 周りで習得したい事l セキュリティ周り
©2021 VMware, Inc. 2l 想定している視聴者の⽅l Kubernetes(K8s) クラスタのライフサイクル管理についてあれこれ考えている⽅l インフラストラクチャを跨いで統⼀的なK8s ライフサイクル管理を検討している⽅Cluster API 初⼼者の⽅向けのセッションになっています本セッションの想定視聴者の⽅
©2021 VMware, Inc.Agenda3Cluster API が登場した背景Cluster API 概要Cluster API アーキテクチャ(宣伝) Cluster API を⽤いた エンタープライズグレードKubernetes ランタイムまとめ
©2021 VMware, Inc.Agenda4Cluster API が登場した背景Cluster API 概要Cluster API アーキテクチャ(宣伝) Cluster API を⽤いた エンタープライズグレードKubernetes ランタイムまとめ
©2021 VMware, Inc. 567 47 20 134=+ +
©2021 VMware, Inc. 6エコシステムの成⻑と共に多くの選択肢Kubernetes ランタイム数とインストーラ数*67 47 20 134=* CNCF Software conformance (Certified Kubernetes) as.of.2021.2.14+ +Certified Kubernetes -DistributionCertified Kubernetes -HostedCertified Kubernetes -Installer
©2021 VMware, Inc. 7l インフラストラクチャ• ネットワーク• ファイアーウォールルール• サーバ• ロードバランサ etcl Kubernetes コンポーネントl アドオン• バックアップ&リストア• Ingress• レジストリ• etcKubernetes クラスタを作るには何が必要か︖︖︖Kubernetes クラスタのコンポーネント
©2021 VMware, Inc. 8l インフラストラクチャ• ネットワーク• ファイアーウォールルール• サーバ• ロードバランサ etcl Kubernetes コンポーネントl アドオン• バックアップ&リストア• Ingress• レジストリ• etcKubernetes クラスタを作るには何が必要か︖︖︖Kubernetes クラスタのコンポーネント
©2021 VMware, Inc. 9§ コントロールプレーン コンポーネント§ kube-apiserver§ etcd§ kube-scheduler§ kube-controller-manager§ cloud-controller-manager§ ノード コンポーネント§ kubelet§ kube-proxy§ container runtime§ アドオンKubernetes コンポーネント
©2021 VMware, Inc. 10§ コントロールプレーン コンポーネント§ kube-apiserver§ etcd§ kube-scheduler§ kube-controller-manager§ cloud-controller-manager§ ノード コンポーネント§ kubelet§ kube-proxy§ container runtime§ アドオンKubernetes コンポーネントのブートストラップ
©2021 VMware, Inc. 11§ コントロールプレーン コンポーネント§ kube-apiserver§ etcd§ kube-scheduler§ kube-controller-manager§ cloud-controller-manager§ ノード コンポーネント§ kubelet§ kube-proxy§ container runtime§ アドオンKubernetes コンポーネントのブートストラップ
©2021 VMware, Inc. 12l インフラストラクチャ• ネットワーク• ファイアーウォールルール• サーバ• ロードバランサl Kubernetes コンポーネントl アドオン• バックアップ&リストア• Ingress• レジストリ• etcKubernetes クラスタのライフサイクル管理においては、インフラ部分含めて検討が必要Kubernetes クラスタのコンポーネント
©2021 VMware, Inc.Agenda13Cluster API が登場した背景Cluster API 概要Cluster API アーキテクチャ(宣伝) Cluster API を⽤いた エンタープライズグレードKubernetes ランタイムまとめ
©2021 VMware, Inc. 14l Cluster API とはl Kubernetes クラスタライフサイクル管理の仕組l Cluster API で出来る事l 仮想マシン、ネットワーク、ストレージ部分を含めたKubernetes クラスタの作成、削除l スケールアップ、スケールアウトl ノードの死活監視l アップグレードl SIG で管理されているオープンな仕組みl github.com/kubernetes-sigs/cluster-apiCluster API 宣⾔的Kubernetes クラスタライフサイクル管理It's Kubernetes all the way downClusters as Cattle
©2021 VMware, Inc. 15概要Cluster APIマネジメントクラスタK8s クラスタのマニフェストファイルCluster: DevControlPlane:KubeadmControlPlaneMachineDeployment:Mix of Small/Large VMsユーザーCluster APIKubernetes ClusterKubernetes NodesKubernetes NodesKubernetes NodesKubernetes NodesKubernetes NodesOther CloudsYAMLワークロードクラスタ
©2021 VMware, Inc. 16概要Cluster APIマネジメントクラスタCluster APIKubernetes ClusterKubernetes Nodes Kubernetes Nodes Kubernetes Nodes Kubernetes Nodes Kubernetes NodesOther CloudsKubernetes の仕組みを活⽤し、Kubernetes クラスタのライフサイクルを管理する仕組みワークロードクラスタブートストラップクラスタ
©2021 VMware, Inc.Agenda17Cluster API が登場した背景Cluster API 概要Cluster API アーキテクチャ(宣伝) Cluster API を⽤いた エンタープライズグレードKubernetes ランタイムまとめ
©2021 VMware, Inc. 18Kubernetes リソースとの対⽐Cluster APIKubernetesPod ReplicaSet DeploymentCluster APIClusterMachine ControlPlaneCPMachineSet MachineDeployment
©2021 VMware, Inc. 19現在のアーキテクチャCluster APIマネジメントクラスタCluster APIProviderCluster API Controller ManagerReconcileInfraCluster ControllerInfrastructure Controller ManagerProviderReconcileInfraMachine ControllerReconcileBootstrapConfig ControllerBootstrap Controller ManagerReconcileControlPlane ControllerControlPlane Controller ManagerCAPI ProviderProviderClusterMachineMachineSetMachineDeployment
©2021 VMware, Inc. 20ワークフローCluster API を⽤いた Kubernetes クラスタの作成1. ブートストラップクラスタの作成(ex. kind)ブートストラップクラスタ(ex. kind)ユーザー$ kind create cluster
©2021 VMware, Inc. 21ワークフローCluster API を⽤いた Kubernetes クラスタの作成1. ブートストラップクラスタの作成(ex. kind)2. ブートストラップクラスタに対して、ClusterAPI、コントローラ、インフラストラクチャプロバイダ固有のリソースをインストールブートストラップクラスタ(ex. kind)ユーザー$ clusterctl init
©2021 VMware, Inc. 22ワークフローCluster API を⽤いた Kubernetes クラスタの作成1. ブートストラップクラスタの作成(ex. kind)2. ブートストラップクラスタに対して、ClusterAPI、コントローラ、インフラストラクチャプロバイダ固有のリソースをインストールマネジメントクラスタユーザーControl PlaneCluster AControlPlane AClusterControllerControlPlaneController$ clusterctl init
©2021 VMware, Inc. 23ワークフローCluster API を⽤いた Kubernetes クラスタの作成1. ブートストラップクラスタの作成(ex. kind)2. ブートストラップクラスタに対して、ClusterAPI、コントローラ、インフラストラクチャプロバイダ固有のリソースをインストール3. ワークロードクラスタ⽤のマニフェストファイル を作成 マネジメントクラスタユーザーControl PlaneCluster AControlPlane AClusterControllerControlPlaneController$ clusterctl configYAML
©2021 VMware, Inc. 24ワークフローCluster API を⽤いた Kubernetes クラスタの作成1. ブートストラップクラスタの作成(ex. kind)2. ブートストラップクラスタに対して、ClusterAPI、コントローラ、インフラストラクチャプロバイダ固有のリソースをインストール3. ワークロードクラスタ⽤のマニフェストファイル を作成4. ワークロードクラスタのマニフェストファイルに基づいて、K8s クラスタを作成マネジメントクラスタユーザーControl PlaneCluster AControlPlane AClusterControllerControlPlaneControllerYAML$ kubectl apply -fワークロードクラスタ
©2021 VMware, Inc. 25ワークフローCluster API を⽤いた Kubernetes クラスタの作成1. ブートストラップクラスタの作成(ex. kind)2. ブートストラップクラスタに対して、ClusterAPI、コントローラ、インフラストラクチャプロバイダ固有のリソースをインストール3. ワークロードクラスタ⽤のマニフェストファイル を作成4. ワークロードクラスタのマニフェストファイルに基づいて、K8s クラスタを作成5. 作成後は、ワークロードクラスタは通常のKubernetes クラスタと同様直接操作マネジメントクラスタユーザーControl PlaneCluster AControlPlane AClusterControllerControlPlaneControllerワークロードクラスタ$ kubectl
26©2021 VMware, Inc.Demo
©2021 VMware, Inc. 27Azure 環境上にワークロードクラスタを作成Demoマネジメントクラスタ ワークロードクラスタ in Azureライフサイクル管理• Kubernetes クラスタの作成K8s v1.18.8
©2021 VMware, Inc. 28
©2021 VMware, Inc. 29Azure 環境上に作成したワークロードクラスタのスケールアウト/アップグレードDemoマネジメントクラスタ ワークロードクラスタ in AzureK8s v1.19.1ライフサイクル管理• Worker ノードのスケールアウト• Kubernetes クラスタのバージョンアップ
©2021 VMware, Inc. 30
©2021 VMware, Inc.Agenda31Cluster API が登場した背景Cluster API 概要Cluster API アーキテクチャ(宣伝) Cluster API を⽤いた エンタープライズグレードKubernetes ランタイムまとめ
©2021 VMware, Inc. 32エンタープライズCluster API K8s ランタイムTanzu Kubernetes Grid = TKG
©2021 VMware, Inc. 33エンタープライズCluster API K8s ランタイムTanzu Kubernetes Grid = TKG
©2021 VMware, Inc. 34エンタープライズCluster API K8s ランタイムTanzu Kubernetes Grid = TKGvSphere with TanzuTanzu Kubernetes Grid = TKGvSphere 6.7u3/7 パブリッククラウド(AWS/Azure/VMC on AWS)Tanzu というKubernetes を中⼼としたソリューションの中でKubernetes ランタイム部分を提供vSphere とインテグレーションされた組み込み型 Kubernetes ランタイムを提供アプライアンス型として、マルチIaaS 環境で利⽤出来るKubernetes ランタイムを提供TKG multicloud
©2021 VMware, Inc.Agenda35Cluster API が登場した背景Cluster API 概要Cluster API アーキテクチャ(宣伝) Cluster API を⽤いた エンタープライズグレードKubernetes ランタイムまとめ
©2021 VMware, Inc. 36Cluster API を利⽤する事によって・・・l IaaS 環境を跨いだ統⼀的なKubernetes クラスタのライフサイクル管理が可能• K8s クラスタの作成/削除• スケールアウト、スケールアップ• アップグレード• ノードの死活監視l Kubernetes クラスタのDay1/2 オペレーションが統⼀され、多くのKubernetes クラスタを効率良く管理する事が可能まとめ
ご清聴、ありがとうございました©2021 VMware, Inc.