SlideShare a Scribd company logo
1 of 13
Overview &
Live Demo
OpenStack Korea Group
2019. 06. 04 이관택
Container Orchestration
(Linux) Container?
 Docker, rkt, containerd, cri-o, ...
Container X 10, 100, …, more than 10,000?!
• 이식성  어디에서든 구동
• 자원 격리 및 분배  성능 예측 가능
• 자원 집적도 높음  고효율
• …
(System, tool, platform, …, whatever)
$ docker run –name nginx –d nginx
Image
App
Registry
Containerization
Host OS Kernel
Container Container
App
Container Container
Library
App
Library
App
Library
App
Library
Virtualization
Host OS Kernel
VM
App
VM
Guest OS
Hypervisor
App
Library
App
Guest OS
App
Library
Host OS Kernel
App APp
Library
App APp
App APp
Applications on Host
The new wayThe old way
Container Orchestration
• 컨테이너 자동 배치 및 복제
• 컨테이너 그룹에 대한 로드 밸런싱
• 컨테이너 장애 복구
• 클러스터 외부에 서비스 노출
• 컨테이너 추가 또는 제거로 확장 및 축소
• 컨테이너 서비스간의 인터페이스를 통한 연결 및 네트워크 포트 노출 제어
http://www.mantech.co.kr/container_orchestration/
Brief history of Kubernetes
Borg Omega Kubernetes
2000년대 초
2014 9월 9일
v0.2 Release
내부 서버 운영 Opensource 공개
2019 6월 현재
v1.15.0 Beta1
Release
Cluster Architecture
Master (Control Plane)
etcd
API Server
Scheduler
Controller
Manager
Rest APIs
• etcd : Kubernetes DB
• Scheduler : 각 Node에 컨테이너 배치 관리
• Controller Manager : Controller 생성 및 관리
• API Server : 사용자 & Node 통신
• Kubelet : Master 통신, 컨테이너 관리
• Kube-Proxy : 트래픽 처리
Node (Worker)
Container
Runtime
Kubelet Kube-Proxy
Installing Kubeadm
https://kubernetes.io/docs/setup/independent/install-kubeadm/
1. 방화벽 포트 개방
2. Container Runtime Interface 설치 (Docker)
3. Kubeadm, Kubelet, Kubectl 설치
4. Swap off, Docker & Kubelet 실행
5. 클러스터 생성 (마스터 2 CPU, 2GB RAM 필수)
- kubeadm init --pod-network-cidr=<pod-network> --apiserver-advertise-address=<master-ip>
6. 3rd-party pod network 설치
7. Join nodes
8. Node Label 추가
- kubectl label node <hostname> <key>=<value>
- Master - Node
- Pod network (calico)
Workloads, Pod
Node
L/B
Kube-Proxy
Pod
Volume
Pause
(K8s Container)
Tomcat
(User container)
Nginx
(User Container)
localhost
Pod
Volume
Pause
(K8s Container)
Tomcat
(User container)
Nginx
(User Container)
localhost
Overlay
Network
Kubelet
Overlay
Network
The smallest deployable object
※ Pod 리소스는 실제로 Master의 API Server가 관리 (Node에 실체 없음)
※ Pause Container는 Pod내 Container 들이 Namespace를 공유할 수 있도록 하는 메커니즘 제공
Workloads, Controllers
(Pod) Controllers 특징 상태
ReplicationController Pod 복제 (replicas) Stateless
ReplicationSet RC 대신 사용 (확장된 표현식 사용) Stateless
Deployments RS의 상위 수준 리소스 (Deploy 시 자동 RS 생성) Stateless
StatefulSets 상태가 있는 Pod 생성 Stateful
DaemonSet Node 당 1개 보장 Stateless
Jobs 실행 후 삭제 Stateless
Resources 관리
 API 서버를 모니터링하며 리소스 생성, 삭제 또는 업데이트
NodeMaster
Controller
Manager
Controller
API Server
Controller
Manifest
(ReplicationSet,
Pod, …)
모니터링
생성, 삭제, 업데이트
Kubelet
Services
• 논리적인 Pod Set에 대한 접근 정책 정의
• Pod에 대한 L4 L/B 제공
• Proxy-mode
• Multi-port 서비스
• DNS (Service name or FQDN)
• Service types
- ClusterIP : Only internal (cluster-internal IP)
- NodePort : Both internal and external (node IP & port)
- LoadBalancer : External service using a cloud provider’s load balancer (80 & 443)
- ExternalName : CNAME
userspace iptables ipvs
Ingress
• L7 Context L/B
• Virtual Hosting
• SSL/TLS
• Ingress Controller (3rd Party)
- 실제 패킷 처리
Service Service Service
Pod Pod Pod Pod
kubernetes.io/docs
kubernetes.io/blog
gwan-taek.io
kubernetes.io/docs kubernetes.io/bloggwan-taek.io
Ingress
Controller
L7 L/B
L4 L/B
※ On-Prem 환경에서 Nginx Ingress Controller 사용하여 Ingress 구성하는 3가지 방법
• MetalLB
• Ingress Controller Pod의 hostnetwork 설정
• Loadbalancer 타입 Service에서 externalIPs 사용 (Source IP 유실)
기타
• Namespace
• Volumes
- emptyDir
- hostPath
- PV, PVC, Dynamic Provisioning
- configMap
• Secrets
- tls
- docker-registry
• RBAC
- account
- role & rolebinding
- clusterrole & clusterrolebinding
• RestAPIs
시간이 부족하여…
(very) Simple Live Demo
1. 클러스터 생성
- Master
- Node X 2
2. 노드 상태 및 Kube-system Pod 살펴 보기
3. 간단한 App 배포
- Tomcat
4. Service 생성
5. Ingress 구성 하여 Browser 에서 접속
Q & A

More Related Content

What's hot

Mesos + Marathon + Docker
Mesos + Marathon + DockerMesos + Marathon + Docker
Mesos + Marathon + Dockerbighouse
 
Ansible를 통한 컨테이너 환경 자동화
Ansible를 통한 컨테이너 환경 자동화Ansible를 통한 컨테이너 환경 자동화
Ansible를 통한 컨테이너 환경 자동화Opennaru, inc.
 
[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
 
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
Source To URL Without Dockerfile
Source To URL Without DockerfileSource To URL Without Dockerfile
Source To URL Without DockerfileWon-Chon Jung
 
Krnet2018 kakao container cloud dkos
Krnet2018 kakao container cloud dkosKrnet2018 kakao container cloud dkos
Krnet2018 kakao container cloud dkosWon-Chon Jung
 
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안Opennaru, inc.
 
Kubernetes & helm 활용
Kubernetes & helm 활용Kubernetes & helm 활용
Kubernetes & helm 활용SK Telecom
 
Prometheus in openstack-helm
Prometheus in openstack-helmPrometheus in openstack-helm
Prometheus in openstack-helm성일 임
 
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기Hyperledger Korea User Group
 
Linux Kernel 101 for Beginner
Linux Kernel 101 for BeginnerLinux Kernel 101 for Beginner
Linux Kernel 101 for BeginnerInfraEngineer
 
쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료Opennaru, inc.
 
Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리Keon Ahn
 
[221] docker orchestration
[221] docker orchestration[221] docker orchestration
[221] docker orchestrationNAVER D2
 
쿠버네티스의 이해 #2
쿠버네티스의 이해 #2쿠버네티스의 이해 #2
쿠버네티스의 이해 #2상욱 송
 
Rancher Simple User Guide
Rancher Simple User GuideRancher Simple User Guide
Rancher Simple User GuideSANG WON PARK
 
Openstack zun,virtual kubelet
Openstack zun,virtual kubeletOpenstack zun,virtual kubelet
Openstack zun,virtual kubeletChanyeol yoon
 
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - WebinarNAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
[오픈소스컨설팅] ARM & OpenStack Community
[오픈소스컨설팅] ARM & OpenStack Community[오픈소스컨설팅] ARM & OpenStack Community
[오픈소스컨설팅] ARM & OpenStack CommunityOpen Source Consulting
 

What's hot (20)

Mesos + Marathon + Docker
Mesos + Marathon + DockerMesos + Marathon + Docker
Mesos + Marathon + Docker
 
Ansible를 통한 컨테이너 환경 자동화
Ansible를 통한 컨테이너 환경 자동화Ansible를 통한 컨테이너 환경 자동화
Ansible를 통한 컨테이너 환경 자동화
 
[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 ...
 
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 쿠버네티스 소개(정낙수 클라우드 솔루션 아키텍트)
 
Source To URL Without Dockerfile
Source To URL Without DockerfileSource To URL Without Dockerfile
Source To URL Without Dockerfile
 
Krnet2018 kakao container cloud dkos
Krnet2018 kakao container cloud dkosKrnet2018 kakao container cloud dkos
Krnet2018 kakao container cloud dkos
 
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
Final 07.컨테이너 환경에서 모니터링 이슈와 해결 방안
 
Kubernetes & helm 활용
Kubernetes & helm 활용Kubernetes & helm 활용
Kubernetes & helm 활용
 
Prometheus in openstack-helm
Prometheus in openstack-helmPrometheus in openstack-helm
Prometheus in openstack-helm
 
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용
[네이버클라우드플랫폼 온라인 교육 시리즈] 네이버클라우드플랫폼 CLI 소개 및 활용
 
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
 
Linux Kernel 101 for Beginner
Linux Kernel 101 for BeginnerLinux Kernel 101 for Beginner
Linux Kernel 101 for Beginner
 
쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료쿠버네티스 ( Kubernetes ) 소개 자료
쿠버네티스 ( Kubernetes ) 소개 자료
 
Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리
 
[221] docker orchestration
[221] docker orchestration[221] docker orchestration
[221] docker orchestration
 
쿠버네티스의 이해 #2
쿠버네티스의 이해 #2쿠버네티스의 이해 #2
쿠버네티스의 이해 #2
 
Rancher Simple User Guide
Rancher Simple User GuideRancher Simple User Guide
Rancher Simple User Guide
 
Openstack zun,virtual kubelet
Openstack zun,virtual kubeletOpenstack zun,virtual kubelet
Openstack zun,virtual kubelet
 
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
클라우드의 대세 쿠버네티스란 무엇인가?(윤성훈 클라우드 솔루션 아키텍트) - Webinar
 
[오픈소스컨설팅] ARM & OpenStack Community
[오픈소스컨설팅] ARM & OpenStack Community[오픈소스컨설팅] ARM & OpenStack Community
[오픈소스컨설팅] ARM & OpenStack Community
 

Similar to An overview of kubernetes & (very) simple live demo

[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-HelmSK Telecom
 
Kubernetes on Premise
Kubernetes on PremiseKubernetes on Premise
Kubernetes on PremiseChan Shik Lim
 
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)Amazon Web Services Korea
 
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)Amazon Web Services Korea
 
가상화와 컨테이너의 이해_20230117.pptx
가상화와 컨테이너의 이해_20230117.pptx가상화와 컨테이너의 이해_20230117.pptx
가상화와 컨테이너의 이해_20230117.pptxByungho Lee
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호용호 최
 
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안rockplace
 
Backend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker PrincipalBackend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker PrincipalKyunghun Jeon
 
[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경
[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경
[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경NAVER Engineering
 
SKT Openinfra days 2018 Presentation
SKT Openinfra days 2018 Presentation SKT Openinfra days 2018 Presentation
SKT Openinfra days 2018 Presentation Jaesuk Ahn
 
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...OpenStack Korea 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
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기SeungYong Oh
 
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017Amazon Web Services Korea
 
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안NAVER D2
 
오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석Jennifer Noh
 
OpenStack을 이용한 Commodity 하드웨어의 클라우드 전환
OpenStack을 이용한 Commodity 하드웨어의 클라우드 전환OpenStack을 이용한 Commodity 하드웨어의 클라우드 전환
OpenStack을 이용한 Commodity 하드웨어의 클라우드 전환mosaicnet
 
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)Ubuntu Korea Community
 
Cloud life seminar open shift,이준영(배포용)
Cloud life seminar   open shift,이준영(배포용)Cloud life seminar   open shift,이준영(배포용)
Cloud life seminar open shift,이준영(배포용)Software in Life
 

Similar to An overview of kubernetes & (very) simple live demo (20)

[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm
 
Kubernetes on Premise
Kubernetes on PremiseKubernetes on Premise
Kubernetes on Premise
 
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
 
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
 
가상화와 컨테이너의 이해_20230117.pptx
가상화와 컨테이너의 이해_20230117.pptx가상화와 컨테이너의 이해_20230117.pptx
가상화와 컨테이너의 이해_20230117.pptx
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호
 
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
Azure 클라우드에서 OpenShift 시작하기 - Azure 클라우드 환경에서 OpenShift 운영 방안
 
Backend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker PrincipalBackend Master | 3.4.5 Deploy - Docker Principal
Backend Master | 3.4.5 Deploy - Docker Principal
 
[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경
[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경
[네이버오픈소스세미나] Contribution, 전쟁의 서막 : Apache OpenWhisk 성능 개선 - 김동경
 
SKT Openinfra days 2018 Presentation
SKT Openinfra days 2018 Presentation SKT Openinfra days 2018 Presentation
SKT Openinfra days 2018 Presentation
 
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
[OpenInfra Days Korea 2018] (Track 1) TACO (SKT All Container OpenStack): Clo...
 
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
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
 
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
인프라 자동 배포를 위한 AWS CloudFormation 고급 활용법 - AWS Summit Seoul 2017
 
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
2.[d2 오픈세미나]네이버클라우드 시스템 아키텍처 및 활용 방안
 
오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석오픈 소스 클라우드 플랫폼 분석
오픈 소스 클라우드 플랫폼 분석
 
OpenStack을 이용한 Commodity 하드웨어의 클라우드 전환
OpenStack을 이용한 Commodity 하드웨어의 클라우드 전환OpenStack을 이용한 Commodity 하드웨어의 클라우드 전환
OpenStack을 이용한 Commodity 하드웨어의 클라우드 전환
 
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
 
Cloud life seminar open shift,이준영(배포용)
Cloud life seminar   open shift,이준영(배포용)Cloud life seminar   open shift,이준영(배포용)
Cloud life seminar open shift,이준영(배포용)
 

An overview of kubernetes & (very) simple live demo

  • 1. Overview & Live Demo OpenStack Korea Group 2019. 06. 04 이관택
  • 2. Container Orchestration (Linux) Container?  Docker, rkt, containerd, cri-o, ... Container X 10, 100, …, more than 10,000?! • 이식성  어디에서든 구동 • 자원 격리 및 분배  성능 예측 가능 • 자원 집적도 높음  고효율 • … (System, tool, platform, …, whatever) $ docker run –name nginx –d nginx Image App Registry Containerization Host OS Kernel Container Container App Container Container Library App Library App Library App Library Virtualization Host OS Kernel VM App VM Guest OS Hypervisor App Library App Guest OS App Library Host OS Kernel App APp Library App APp App APp Applications on Host The new wayThe old way
  • 3. Container Orchestration • 컨테이너 자동 배치 및 복제 • 컨테이너 그룹에 대한 로드 밸런싱 • 컨테이너 장애 복구 • 클러스터 외부에 서비스 노출 • 컨테이너 추가 또는 제거로 확장 및 축소 • 컨테이너 서비스간의 인터페이스를 통한 연결 및 네트워크 포트 노출 제어 http://www.mantech.co.kr/container_orchestration/
  • 4. Brief history of Kubernetes Borg Omega Kubernetes 2000년대 초 2014 9월 9일 v0.2 Release 내부 서버 운영 Opensource 공개 2019 6월 현재 v1.15.0 Beta1 Release
  • 5. Cluster Architecture Master (Control Plane) etcd API Server Scheduler Controller Manager Rest APIs • etcd : Kubernetes DB • Scheduler : 각 Node에 컨테이너 배치 관리 • Controller Manager : Controller 생성 및 관리 • API Server : 사용자 & Node 통신 • Kubelet : Master 통신, 컨테이너 관리 • Kube-Proxy : 트래픽 처리 Node (Worker) Container Runtime Kubelet Kube-Proxy
  • 6. Installing Kubeadm https://kubernetes.io/docs/setup/independent/install-kubeadm/ 1. 방화벽 포트 개방 2. Container Runtime Interface 설치 (Docker) 3. Kubeadm, Kubelet, Kubectl 설치 4. Swap off, Docker & Kubelet 실행 5. 클러스터 생성 (마스터 2 CPU, 2GB RAM 필수) - kubeadm init --pod-network-cidr=<pod-network> --apiserver-advertise-address=<master-ip> 6. 3rd-party pod network 설치 7. Join nodes 8. Node Label 추가 - kubectl label node <hostname> <key>=<value> - Master - Node - Pod network (calico)
  • 7. Workloads, Pod Node L/B Kube-Proxy Pod Volume Pause (K8s Container) Tomcat (User container) Nginx (User Container) localhost Pod Volume Pause (K8s Container) Tomcat (User container) Nginx (User Container) localhost Overlay Network Kubelet Overlay Network The smallest deployable object ※ Pod 리소스는 실제로 Master의 API Server가 관리 (Node에 실체 없음) ※ Pause Container는 Pod내 Container 들이 Namespace를 공유할 수 있도록 하는 메커니즘 제공
  • 8. Workloads, Controllers (Pod) Controllers 특징 상태 ReplicationController Pod 복제 (replicas) Stateless ReplicationSet RC 대신 사용 (확장된 표현식 사용) Stateless Deployments RS의 상위 수준 리소스 (Deploy 시 자동 RS 생성) Stateless StatefulSets 상태가 있는 Pod 생성 Stateful DaemonSet Node 당 1개 보장 Stateless Jobs 실행 후 삭제 Stateless Resources 관리  API 서버를 모니터링하며 리소스 생성, 삭제 또는 업데이트 NodeMaster Controller Manager Controller API Server Controller Manifest (ReplicationSet, Pod, …) 모니터링 생성, 삭제, 업데이트 Kubelet
  • 9. Services • 논리적인 Pod Set에 대한 접근 정책 정의 • Pod에 대한 L4 L/B 제공 • Proxy-mode • Multi-port 서비스 • DNS (Service name or FQDN) • Service types - ClusterIP : Only internal (cluster-internal IP) - NodePort : Both internal and external (node IP & port) - LoadBalancer : External service using a cloud provider’s load balancer (80 & 443) - ExternalName : CNAME userspace iptables ipvs
  • 10. Ingress • L7 Context L/B • Virtual Hosting • SSL/TLS • Ingress Controller (3rd Party) - 실제 패킷 처리 Service Service Service Pod Pod Pod Pod kubernetes.io/docs kubernetes.io/blog gwan-taek.io kubernetes.io/docs kubernetes.io/bloggwan-taek.io Ingress Controller L7 L/B L4 L/B ※ On-Prem 환경에서 Nginx Ingress Controller 사용하여 Ingress 구성하는 3가지 방법 • MetalLB • Ingress Controller Pod의 hostnetwork 설정 • Loadbalancer 타입 Service에서 externalIPs 사용 (Source IP 유실)
  • 11. 기타 • Namespace • Volumes - emptyDir - hostPath - PV, PVC, Dynamic Provisioning - configMap • Secrets - tls - docker-registry • RBAC - account - role & rolebinding - clusterrole & clusterrolebinding • RestAPIs 시간이 부족하여…
  • 12. (very) Simple Live Demo 1. 클러스터 생성 - Master - Node X 2 2. 노드 상태 및 Kube-system Pod 살펴 보기 3. 간단한 App 배포 - Tomcat 4. Service 생성 5. Ingress 구성 하여 Browser 에서 접속
  • 13. Q & A