Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
©2020 VMware, Inc. Cluster API による Kubernetes 環境の ライフサイクル管理と マルチクラウド環境での適⽤ Jul. 30, 2020 CTO, North Asia (Japan, Korea and Greater China) Motonori Shindo / motonori_shindo
Slide 2
Slide 2 text
2 ©2020 VMware, Inc. GNU Photo by Charl Durand on Unsplash GNU’s Not Unix
Slide 3
Slide 3 text
3 ©2020 VMware, Inc. Cluster API とは Kubernetes スタイルの API を使って Kubernetes のクラスタのライフサイクルを管理するための仕組 み Kubernetes の Cluster Lifecycle SIG で仕様の制定 が⾏われている 2020 年 7 ⽉時点での API version は “v1alpha3“
Slide 4
Slide 4 text
4 ©2020 VMware, Inc. Kubernetes クラスタのライフサイクル管理 ・・・ Day 0 オペレーシ ョン 作成 設定 Day 2 オペレーシ ョン アップグレード リサイズ メンテナンス
Slide 5
Slide 5 text
5 ©2020 VMware, Inc. Kubernetes Stack API Driven Infrastructure インフラストラクチャ kubeadm, etc. ブートストラップ Kubernetes ランタイム
Slide 6
Slide 6 text
6 ©2020 VMware, Inc. Kubernetes Stack API Driven Infrastructure インフラストラクチャ kubeadm, etc. ブートストラップ Kubernetes ランタイム Cluster API プロビジョンニング
Slide 7
Slide 7 text
7 ©2020 VMware, Inc. Cluster API のアーキテクチャ Management Cluster Custom Resources Cluster API Controller Bootstrap Provider Controller Infrastructure Provider Controller Cluster MachineDeployment ControlPlane Workload Clusters Node Node Node
Slide 8
Slide 8 text
8 ©2020 VMware, Inc. 2020/7 時点でサポートされている Provider Rael Garcia from go.rael.dev/kubecap19-eu 最新リスト︓ https://cluster-api.sigs.k8s.io/reference/providers.html
Slide 9
Slide 9 text
9 ©2020 VMware, Inc. Cluster API Custom Resource Definitions (CRDs) Pod ReplicaSet Deployment Cluster Machine MachineSet ControlPlane MachineDeployment Kubernetes Cluster API
Slide 10
Slide 10 text
10 ©2020 VMware, Inc. Cluster API 処理の流れ Management Cluster Operator clusterctl config kubectl apply clusterctl init Workload Cluster clusterctl config kubectl apply Workload Cluster
Slide 11
Slide 11 text
11 Confidential │ ©2020 VMware, Inc. Cluster リソース クラスタ全体の設定を規定 Pod の CIDR controlPlane および infrastructure へのリファレン ス apiVersion: cluster.x-k8s.io/v1alpha3 kind: Cluster metadata: name: aws-demo namespace: default spec: clusterNetwork: pods: cidrBlocks: - 192.168.0.0/16 controlPlaneRef: apiVersion: controlplane.cluster.x-k8s.io/v1alpha3 kind: KubeadmControlPlane name: aws-demo-control-plane infrastructureRef: apiVersion: infrastructure.cluster.x-k8s.io/v1alpha3 kind: AWSCluster name: aws-demo
Slide 12
Slide 12 text
12 Confidential │ ©2020 VMware, Inc. InfrastructureCluster リソース インフラストラクチャに固有の 情報 • AWS – リージョン – sshKey • vSphere – vCenter のアドレス – データセンタ / リソースプー ル / フォルダ apiVersion: infrastructure.cluster.x-k8s.io/v1alpha3 kind: AWSCluster metadata: name: aws-demo namespace: default spec: region: ap-northeast-1 sshKeyName: default
Slide 13
Slide 13 text
13 Confidential │ ©2020 VMware, Inc. ControlPlane リソース InfrastrucutureTemplate への リファレンス Control Plane をブートストラ ップするのに必要となるパラメ ータ Master のノード数 K8S のバージョン apiVersion: controlplane.cluster.x-k8s.io/v1alpha3 kind: KubeadmControlPlane metadata: name: aws-demo-control-plane namespace: default spec: infrastructureTemplate: apiVersion: infrastructure.cluster.x-k8s.io/v1alpha3 kind: AWSMachineTemplate name: aws-demo-control-plane kubeadmConfigSpec: clusterConfiguration: … initConfiguration: … joinConfiguration: … replicas: 3 version: v1.17.3
Slide 14
Slide 14 text
14 Confidential │ ©2020 VMware, Inc. BootstrapConfigTemplate リソース MachineDeployment から参 照される apiVersion: bootstrap.cluster.x-k8s.io/v1alpha3 kind: KubeadmConfigTemplate metadata: name: aws-demo-md-0 namespace: default spec: template: spec: joinConfiguration: nodeRegistration: kubeletExtraArgs: cloud-provider: aws name: '{{ ds.meta_data.local_hostname }}'
Slide 15
Slide 15 text
15 Confidential │ ©2020 VMware, Inc. InfrastrucutreMachineTemplate リソース インフラストラクチャに固有の Machine に関する情報 • AWS – インスタンスタイプ • vSphere – メモリ – ディスクサイズ – データセンタ / リソースプー ル / フォルダ – テンプレート名 apiVersion: infrastructure.cluster.x-k8s.io/v1alpha3 kind: AWSMachineTemplate metadata: name: aws-demo-control-plane namespace: default spec: template: spec: iamInstanceProfile: control-plane.cluster-api-provider-aws.sigs.k8s.io instanceType: t3.large sshKeyName: default
Slide 16
Slide 16 text
16 Confidential │ ©2020 VMware, Inc. MachineDeployment リソース Machine、MachineSet を宣⾔ 的にアップデートするために必 要となる情報 Workload Cluster のノード数 ブートストラップへのリファン レス K8S バージョン apiVersion: cluster.x-k8s.io/v1alpha3 kind: MachineDeployment metadata: name: aws-demo-md-0 namespace: default spec: clusterName: aws-demo replicas: 3 selector: matchLabels: null template: spec: bootstrap: … clusterName: aws-demo infrastructureRef: … version: v1.17.3
Slide 17
Slide 17 text
‹#› 17 Confidential │ ©2020 VMware, Inc. Demo: Cluster Bootstrap
Slide 18
Slide 18 text
18 ©2020 VMware, Inc.
Slide 19
Slide 19 text
19 ©2020 VMware, Inc.
Slide 20
Slide 20 text
‹#› Confidential │ ©2020 VMware, Inc. Kubernetes is yet another application managed by Kubernetes Photo by Josh Rocklage on Unsplash
Slide 21
Slide 21 text
21 ©2020 VMware, Inc. GitOps by ArgoCD Management Cluster Operator git commit git push Workload Cluster Workload Cluster Webhook
Slide 22
Slide 22 text
‹#› 22 Confidential │ ©2020 VMware, Inc. Demo: GitOps
Slide 23
Slide 23 text
23 ©2020 VMware, Inc.
Slide 24
Slide 24 text
24 ©2020 VMware, Inc. 課題︓ 複数の異なるテクノロジー製品、⼿法、プロセス、チーム、専⾨知識 マルチクラウドは時代の流れ
Slide 25
Slide 25 text
‹#› 25 Confidential │ ©2020 VMware, Inc. Demo: Multi Cloud Management with Cluster API
Slide 26
Slide 26 text
26 ©2020 VMware, Inc. VMware Tanzu Mission Control 新規クラスタ 作成 既存クラスタ のアッタチ Tanzu Mission Control 認証とアクセス セキュリティと コンプライアン ス 設定と監査 データ保全 クラスタ ライフサイクル 管理 アプリ&サービス 管理 可視化と分析 最適化 接続性と トラフィック管理 Tanzu Application Catalog Tanzu Observability by Wavefront Tanzu Service Mesh Tanzu Kubernetes Grid 複数クラウドにまたがる複数の Kubernetes 環境を⼀元管理 * vSphere と Azure サポートは近⽇対応予定 * *
Slide 27
Slide 27 text
‹#› 27 Confidential │ ©2020 VMware, Inc. Demo: Tanzu Mission Control
Slide 28
Slide 28 text
28 ©2020 VMware, Inc.
Slide 29
Slide 29 text
29 ©2020 VMware, Inc. Cluster API 主要ロードマップ https://cluster-api.sigs.k8s.io/roadmap.html V0.4 v1alpha 4 Pluggable LB 0.3.7 v1alpha 3 Template Engine ClusterResourceSet Spot Instance Cluster Autoscaler June/July 2020 Q4 2020 TBD API Maturity v1beta1
Slide 30
Slide 30 text
30 ©2020 VMware, Inc. まとめ Cluster API は Kubernetes クラスタのライフサイ クル管理を Kubernetes ⾃⾝を使って⾏うための仕 組み 宣⾔的な特徴を活かし、Kubernetes のエコシステ ムを最⼤限に活⽤することが可能 幅広いプラットフォームをサポートしており、マル チクラウドを実現することができる ⽐較的新しいプロジェクトであるため、今後⼤きな 機能追加や仕様変更が発⽣することを許容する「覚 悟」が必要
Slide 31
Slide 31 text
31 ©2020 VMware, Inc. https://github.com/kubernetes-sigs/cluster-api https://github.com/kubernetes-sigs/cluster-api-provider-aws https://github.com/kubernetes-sigs/cluster-api-provider-vsphere https://blog.shin.do/2019/09/kubernetes-cluster-api-part1/ https://blog.pfs.nifcloud.com/20200603_cluster-api-for-nifcloud References
Slide 32
Slide 32 text
©2020 VMware, Inc. Thank You