SlideShare a Scribd company logo
1 of 27
Download to read offline
Cluster API
: API로 모든 것을 구성하는 시대
김에스더
SK Telecom, ICT기술센터, Cloud Labs
Table of Contents
1. Motivation
2. Cluster API
- Introduction
- Components
3. Cluster API Provider – CAPO
2017. 4. 11., DK Lee
Network Technology R&D Center
Corporate R&D Center
SK Telecom
3 SK Telecom Proprietary 2019
Motivation
MOTIVATION
Motivation
Kubernetes Cluster를 구축하는 방법
1) 작업자가 직접 터미널에 접속해 설치하기
Motivation
Kubernetes Cluster를 구축하는 방법
2) 각종 Provisioner 사용하기
Motivation
Provisioner의 한계
• 설치를 위한 provisioner dependency가 추가됨
• 설치 과정을 모두 스크립트화 하여야 한다. 별도의 관리가 필요함
• 설치 외 Scale, Upgrade, Uninstall에 대한 스크립트를 별도 구성해야 함
• 서버 상태 모니터링 하기 어려움
• Cloud Instance, Baremetal 모두 Host 설치 단계가 별도로 필요함
2017. 4. 11., DK Lee
Network Technology R&D Center
Corporate R&D Center
SK Telecom
7 SK Telecom Proprietary 2019
Motivation
Cluster API
Cluster API: Introduction
Definition
: Cluster API는 Kubernetes-style API로 Cluster를 생성, 구성, 관리 할 수 있다.
Kubernetes cluster의 라이프사이클을 관리하는 기능을 제공한다.
Cluster API: Introduction
Cluster
Config
K8S Cluster
Cluaster API
Controller
GCE
Node
Node
AWS
Node
Node
OpenStack
Node
Node
Concept
Cluster API: Introduction
• K8S cluster lifecycle SIG의 subproject로 2017년에 시작
• Cluster API Project Goals
• 선언적 API를 사용해 K8S Component를 Create부터 Scale, Upgrade,
Destroy 까지 전반적인 Lifecycle 관리한다.
• On-Prem, Public Cloud 모두 지원한다.
• Default Implementation을 제공하고 이를 치환 가능하게 한다
• 회복 가능한 Infrastructure를 만든다.
Cluster API: Introduction
• Cluster API Project Non-goals
• K8S Core API로 추가
• K8S Cluster와 관련 없는 Component 관리
• GKE, AKS, EKS 등의 기존 lifecycle 관리 툴에 API 사용을 강요
• 멀티 인프라 프로바이더로 단일 cluster 구성
• 생성/업그레이드 작업 외에 Machine을 구성
Cluster API: Components
1. Infrastructure Provider
AWS, Azure, Google 등의 퍼블릭 클라우드와 Vmware, metal3.io, OpenStack 등의
VM provider에서 제공해주는 리소스 관리 소스
2. Bootstrap Provider
cloud-init처럼 Cluster node의 bootstrap 작업을 하는 주체.
Kubeadm을 사용.
Cluster API: Components
3. CRDs (Custom Resource Definitions)
: Kubernetes에서 제공하는 기본 Resource와 별개로 Customizing해서 만드는
resource. Custom Resource와 Custom Controller를 통해 정의하고 구현된다.
• Cluster{}
• Machine{}
• MachineSet{}
• MachineDeployment{}
Cluster API: Components
1. Cluster{}
• Kubernetes Cluster 구성을 Object화 함
apiVersion: cluster-api.k8s.io/v1alpha2 cluster.yaml
kind: Cluster
metadata:
name: my-cluster
spec:
…
clusterNetwork:
pods:
cidrBlocks: [“192.168.0.0/16”]
…
Cluster API: Components
2. Machine{}
• Kubernetes Cluster 내의 Node에 대한 설정
apiVersion: cluster.k8s.io/v1alpha2 machine.yaml
kind: Machine
metadata:
name: first-machine
spec:
…
version:
kubelet: 1.12.1
…
Cluster API: Components
3. MachineSet{}
• 같은 형상을 가진 Machine 그룹
apiVersion: cluster.k8s.io/v1alpha2 machine.yaml
kind: MachineSet
metadata:
name: first-machine-sets
spec:
replicas: 5
…
Cluster API: Components
4. MachineDeployment{}
• MachineSet을 만들고 관리하며, Machine을 Scale/Update 할 수 있다.
apiVersion: cluster.k8s.io/v1alpha2 deployment.yaml
kind: MachineDeployment
metadata:
name: first-machine
spec:
replicas: 10
strategy:
rollingUpdate:
maxSurge: 1
…
2017. 4. 11., DK Lee
Network Technology R&D Center
Corporate R&D Center
SK Telecom
18 SK Telecom Proprietary 2019
Motivation
Cluster API Provider
Cluster API Provider
Infrastructure Provider에 따라 Cluster를 구성하는 프로젝트가 나뉘어진다.
• CAPA (Cluster API Provider AWS)
• CAPG (Cluster API Provider Google Cloud)
• CAPO (Cluster API Provider OpenStack)
• CAPZ (Cluster API Provider Azure)
• 그 외…
Cluster API Provider OpenStack
CAPO란?
: OpenStack을 이용하여 VM을 생성하여 Kubernetes Cluster로 구성한다.
별도의 CRDs(OpenStackMachine, OpenStackCluster)와 Controller가
있다.
Cluster API Provider OpenStack
Bootstrap Cluster
OpenstackMachine
Controller
OpenStackCluster
OpenStackMachine
Machine
Cluster
OpenstackCluster
Controller
clusterctl
create
Cluster API Provider OpenStack
Bootstrap Cluster
OpenstackMachine
Controller
OpenStackCluster
OpenStackMachine
Machine
Cluster
OpenstackCluster
Controller
clusterctl
request
Target OpenStack
keystone
nova
neutron
glance
cinder
heat
Cluster API Provider OpenStack
Bootstrap Cluster
OpenstackMachine
Controller
OpenStackCluster
OpenStackMachine
Machine
Cluster
OpenstackCluster
Controller
clusterctl
Target OpenStack
Cluster A – Ubuntu 18.04
cluster-control-plane
keystone
nova
neutron
glance
cinder
heat
OpenStack
Machine
OpenStack
Machine
Cluster API Provider OpenStack
Bootstrap Cluster
OpenstackMachine
Controller
OpenStackCluster
OpenStackMachine
Machine
Cluster
OpenstackCluster
Controller
clusterctl
Target OpenStack
Cluster A – Ubuntu 18.04
cluster-control-plane
keystone
nova
neutron
glance
cinder
heat
OpenStack
Machine
OpenStack
Machine
Cluster B – CentOS 7.6
cluster-control-plane
OpenStack
Machine
OpenStack
Machine
What we do?
Centralized Control plane
CLI
w/ custom plugin
Manifests
Monitoring
Dashboard
K8s cluster
Cluster API
OpenStack
LINKS
더 자세한 내용은
• https://github.com/kubernetes-sigs/cluster-api-provider-openstack
• https://github.com/openinfradev/tacoplay
• https://github.com/openinfradev/operator-helm
2017. 4. 11., DK Lee
Network Technology R&D Center
Corporate R&D Center
SK Telecom
27 SK Telecom Proprietary 2019
Questions?

More Related Content

What's hot

GitOps 101 Presentation.pdf
GitOps 101 Presentation.pdfGitOps 101 Presentation.pdf
GitOps 101 Presentation.pdfssuser31375f
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIDavid Hahn
 
GitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesGitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesVolodymyr Shynkar
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshoploodse
 
DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesRonny Trommer
 
Istio : Service Mesh
Istio : Service MeshIstio : Service Mesh
Istio : Service MeshKnoldus Inc.
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesClaus Ibsen
 
Kubernetes API - deep dive into the kube-apiserver
Kubernetes API - deep dive into the kube-apiserverKubernetes API - deep dive into the kube-apiserver
Kubernetes API - deep dive into the kube-apiserverStefan Schimanski
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCDCloudOps2005
 
Metal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo Long
Metal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo LongMetal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo Long
Metal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo LongVietnam Open Infrastructure User Group
 
Zero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with KubernetesZero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with KubernetesWojciech Barczyński
 
Kubernetes
KubernetesKubernetes
Kuberneteserialc_w
 
Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Megan O'Keefe
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkinsAbe Diaz
 

What's hot (20)

GitOps 101 Presentation.pdf
GitOps 101 Presentation.pdfGitOps 101 Presentation.pdf
GitOps 101 Presentation.pdf
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
 
Kubernetes PPT.pptx
Kubernetes PPT.pptxKubernetes PPT.pptx
Kubernetes PPT.pptx
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
GitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesGitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with Kubernetes
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
Kubernetes Workshop
Kubernetes WorkshopKubernetes Workshop
Kubernetes Workshop
 
DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to Kubernetes
 
Istio : Service Mesh
Istio : Service MeshIstio : Service Mesh
Istio : Service Mesh
 
Serverless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on KubernetesServerless integration with Knative and Apache Camel on Kubernetes
Serverless integration with Knative and Apache Camel on Kubernetes
 
Kubernetes API - deep dive into the kube-apiserver
Kubernetes API - deep dive into the kube-apiserverKubernetes API - deep dive into the kube-apiserver
Kubernetes API - deep dive into the kube-apiserver
 
GitOps with ArgoCD
GitOps with ArgoCDGitOps with ArgoCD
GitOps with ArgoCD
 
Metal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo Long
Metal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo LongMetal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo Long
Metal³ – Metal Kubed, Bare Metal Provisioning for Kubernetes | Kim Bảo Long
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Zero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with KubernetesZero downtime deployment of micro-services with Kubernetes
Zero downtime deployment of micro-services with Kubernetes
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Jenkins Overview
Jenkins OverviewJenkins Overview
Jenkins Overview
 
Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 

Similar to Cluster api - koss 2019

세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdfJaesuk Ahn
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center어형 이
 
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista Community
 
Spring cloud on kubernetes
Spring cloud on kubernetesSpring cloud on kubernetes
Spring cloud on kubernetesSangSun Park
 
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...OpenStack Korea Community
 
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...Amazon Web Services Korea
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...Cloud-Barista Community
 
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기Hyperledger Korea User Group
 
MySQL operator for_kubernetes
MySQL operator for_kubernetesMySQL operator for_kubernetes
MySQL operator for_kubernetesrockplace
 
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?Ian Choi
 
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista Community
 
K8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_postK8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_postInho Kang
 
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트Amazon Web Services Korea
 
Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Spider-멀티 클라우드 인프라 연동(Multi-Cloud Infrastructu...
Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Spider-멀티 클라우드 인프라 연동(Multi-Cloud Infrastructu...Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Spider-멀티 클라우드 인프라 연동(Multi-Cloud Infrastructu...
Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Spider-멀티 클라우드 인프라 연동(Multi-Cloud Infrastructu...Cloud-Barista Community
 
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)Cloud-Barista Community
 
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)Cloud-Barista Community
 
Source To URL Without Dockerfile
Source To URL Without DockerfileSource To URL Without Dockerfile
Source To URL Without DockerfileWon-Chon Jung
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기Amazon Web Services Korea
 
Kubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideKubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideChan Shik Lim
 

Similar to Cluster api - koss 2019 (20)

세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center
 
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
 
Spring cloud on kubernetes
Spring cloud on kubernetesSpring cloud on kubernetes
Spring cloud on kubernetes
 
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
[OpenInfra Days Korea 2018] K8s workshop: with containers & K8s on OpenStack ...
 
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
Amazon EKS를 위한 AWS CDK와 CDK8s 활용법 - 염지원, 김광영 AWS 솔루션즈 아키텍트 :: AWS Summit Seou...
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Spider - 멀티 클라우드 인프라 연동(Multi-Cloud Infrastruc...
 
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
 
MySQL operator for_kubernetes
MySQL operator for_kubernetesMySQL operator for_kubernetes
MySQL operator for_kubernetes
 
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
 
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 인프라 서비스 연동 (CB-Spider)
 
K8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_postK8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_post
 
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트
마이크로 서비스를 위한 AWS의 다양한 컨테이너 옵션 l 이창수 솔루션즈 아키텍트
 
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
 
Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Spider-멀티 클라우드 인프라 연동(Multi-Cloud Infrastructu...
Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Spider-멀티 클라우드 인프라 연동(Multi-Cloud Infrastructu...Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Spider-멀티 클라우드 인프라 연동(Multi-Cloud Infrastructu...
Cloud-Barista 제2차 오픈 컨퍼런스 : CB-Spider-멀티 클라우드 인프라 연동(Multi-Cloud Infrastructu...
 
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)
Cloud-Barista 제5차 오픈 컨퍼런스 : 멀티클라우드 인프라 연동 (CB-Spider)
 
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
 
Source To URL Without Dockerfile
Source To URL Without DockerfileSource To URL Without Dockerfile
Source To URL Without Dockerfile
 
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
[2017 AWS Startup Day] 서버리스 마이크로서비스로 일당백 개발조직 만들기
 
Kubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideKubernetes on Premise Practical Guide
Kubernetes on Premise Practical Guide
 

Cluster api - koss 2019

  • 1. Cluster API : API로 모든 것을 구성하는 시대 김에스더 SK Telecom, ICT기술센터, Cloud Labs
  • 2. Table of Contents 1. Motivation 2. Cluster API - Introduction - Components 3. Cluster API Provider – CAPO
  • 3. 2017. 4. 11., DK Lee Network Technology R&D Center Corporate R&D Center SK Telecom 3 SK Telecom Proprietary 2019 Motivation MOTIVATION
  • 4. Motivation Kubernetes Cluster를 구축하는 방법 1) 작업자가 직접 터미널에 접속해 설치하기
  • 5. Motivation Kubernetes Cluster를 구축하는 방법 2) 각종 Provisioner 사용하기
  • 6. Motivation Provisioner의 한계 • 설치를 위한 provisioner dependency가 추가됨 • 설치 과정을 모두 스크립트화 하여야 한다. 별도의 관리가 필요함 • 설치 외 Scale, Upgrade, Uninstall에 대한 스크립트를 별도 구성해야 함 • 서버 상태 모니터링 하기 어려움 • Cloud Instance, Baremetal 모두 Host 설치 단계가 별도로 필요함
  • 7. 2017. 4. 11., DK Lee Network Technology R&D Center Corporate R&D Center SK Telecom 7 SK Telecom Proprietary 2019 Motivation Cluster API
  • 8. Cluster API: Introduction Definition : Cluster API는 Kubernetes-style API로 Cluster를 생성, 구성, 관리 할 수 있다. Kubernetes cluster의 라이프사이클을 관리하는 기능을 제공한다.
  • 9. Cluster API: Introduction Cluster Config K8S Cluster Cluaster API Controller GCE Node Node AWS Node Node OpenStack Node Node Concept
  • 10. Cluster API: Introduction • K8S cluster lifecycle SIG의 subproject로 2017년에 시작 • Cluster API Project Goals • 선언적 API를 사용해 K8S Component를 Create부터 Scale, Upgrade, Destroy 까지 전반적인 Lifecycle 관리한다. • On-Prem, Public Cloud 모두 지원한다. • Default Implementation을 제공하고 이를 치환 가능하게 한다 • 회복 가능한 Infrastructure를 만든다.
  • 11. Cluster API: Introduction • Cluster API Project Non-goals • K8S Core API로 추가 • K8S Cluster와 관련 없는 Component 관리 • GKE, AKS, EKS 등의 기존 lifecycle 관리 툴에 API 사용을 강요 • 멀티 인프라 프로바이더로 단일 cluster 구성 • 생성/업그레이드 작업 외에 Machine을 구성
  • 12. Cluster API: Components 1. Infrastructure Provider AWS, Azure, Google 등의 퍼블릭 클라우드와 Vmware, metal3.io, OpenStack 등의 VM provider에서 제공해주는 리소스 관리 소스 2. Bootstrap Provider cloud-init처럼 Cluster node의 bootstrap 작업을 하는 주체. Kubeadm을 사용.
  • 13. Cluster API: Components 3. CRDs (Custom Resource Definitions) : Kubernetes에서 제공하는 기본 Resource와 별개로 Customizing해서 만드는 resource. Custom Resource와 Custom Controller를 통해 정의하고 구현된다. • Cluster{} • Machine{} • MachineSet{} • MachineDeployment{}
  • 14. Cluster API: Components 1. Cluster{} • Kubernetes Cluster 구성을 Object화 함 apiVersion: cluster-api.k8s.io/v1alpha2 cluster.yaml kind: Cluster metadata: name: my-cluster spec: … clusterNetwork: pods: cidrBlocks: [“192.168.0.0/16”] …
  • 15. Cluster API: Components 2. Machine{} • Kubernetes Cluster 내의 Node에 대한 설정 apiVersion: cluster.k8s.io/v1alpha2 machine.yaml kind: Machine metadata: name: first-machine spec: … version: kubelet: 1.12.1 …
  • 16. Cluster API: Components 3. MachineSet{} • 같은 형상을 가진 Machine 그룹 apiVersion: cluster.k8s.io/v1alpha2 machine.yaml kind: MachineSet metadata: name: first-machine-sets spec: replicas: 5 …
  • 17. Cluster API: Components 4. MachineDeployment{} • MachineSet을 만들고 관리하며, Machine을 Scale/Update 할 수 있다. apiVersion: cluster.k8s.io/v1alpha2 deployment.yaml kind: MachineDeployment metadata: name: first-machine spec: replicas: 10 strategy: rollingUpdate: maxSurge: 1 …
  • 18. 2017. 4. 11., DK Lee Network Technology R&D Center Corporate R&D Center SK Telecom 18 SK Telecom Proprietary 2019 Motivation Cluster API Provider
  • 19. Cluster API Provider Infrastructure Provider에 따라 Cluster를 구성하는 프로젝트가 나뉘어진다. • CAPA (Cluster API Provider AWS) • CAPG (Cluster API Provider Google Cloud) • CAPO (Cluster API Provider OpenStack) • CAPZ (Cluster API Provider Azure) • 그 외…
  • 20. Cluster API Provider OpenStack CAPO란? : OpenStack을 이용하여 VM을 생성하여 Kubernetes Cluster로 구성한다. 별도의 CRDs(OpenStackMachine, OpenStackCluster)와 Controller가 있다.
  • 21. Cluster API Provider OpenStack Bootstrap Cluster OpenstackMachine Controller OpenStackCluster OpenStackMachine Machine Cluster OpenstackCluster Controller clusterctl create
  • 22. Cluster API Provider OpenStack Bootstrap Cluster OpenstackMachine Controller OpenStackCluster OpenStackMachine Machine Cluster OpenstackCluster Controller clusterctl request Target OpenStack keystone nova neutron glance cinder heat
  • 23. Cluster API Provider OpenStack Bootstrap Cluster OpenstackMachine Controller OpenStackCluster OpenStackMachine Machine Cluster OpenstackCluster Controller clusterctl Target OpenStack Cluster A – Ubuntu 18.04 cluster-control-plane keystone nova neutron glance cinder heat OpenStack Machine OpenStack Machine
  • 24. Cluster API Provider OpenStack Bootstrap Cluster OpenstackMachine Controller OpenStackCluster OpenStackMachine Machine Cluster OpenstackCluster Controller clusterctl Target OpenStack Cluster A – Ubuntu 18.04 cluster-control-plane keystone nova neutron glance cinder heat OpenStack Machine OpenStack Machine Cluster B – CentOS 7.6 cluster-control-plane OpenStack Machine OpenStack Machine
  • 25. What we do? Centralized Control plane CLI w/ custom plugin Manifests Monitoring Dashboard K8s cluster Cluster API OpenStack
  • 26. LINKS 더 자세한 내용은 • https://github.com/kubernetes-sigs/cluster-api-provider-openstack • https://github.com/openinfradev/tacoplay • https://github.com/openinfradev/operator-helm
  • 27. 2017. 4. 11., DK Lee Network Technology R&D Center Corporate R&D Center SK Telecom 27 SK Telecom Proprietary 2019 Questions?