SlideShare a Scribd company logo
1 of 14
Download to read offline
쿠버네티스 오픈 소스와 클라우드 매니지드
서비스 접점 소개
최영락
한국마이크로소프트
2022년 5월
클라우드 매니지드 쿠버네티스 서비스
(Managed Kubernetes Services)
• 오픈 소스인 Kubernetes에 대한 서비스를 호스팅 형태로 제공
• “Cluster as a Service”
• 사용자 (고객) 구독에서 워크로드가 실행 & 호스트되는 노드 (nodes, worker nodes)들을 관리
• 해당 노드들을 관리하기 위한 클러스터 기능 및 사용자 (고객)이 사용하는 Customer Control Plane
(CCP)에 있는 컴포넌트들을 관리
• 자동화된 프로비저닝, 업그레이드 (Base OS 이미지, Kubernetes 버전), 동적 스케일링, 모니터링 지원
• 주요 접점에 대한 연동 컴포넌트
• Load balancers
• Persistent volumes
• DNS (e.g., Azure DNS)
• vNETs
• Kubenet
• Container Network Interfaces (e.g., Azure CNI), etc.
참고: 쿠버네티스 Control Plane 및 Node 핵심 컴포넌트
Control Plane
• Kube-apiserver
• Etcd
• Kube-scheduler
• Kube-controller-manager
• Kube-addon-manager
• TunnelEnd: (CCP tunnel side)
Nodes
• Kubelet
• Kube-proxy
• Container Runtime
• CoreDNS
• TunnelFront
한 눈에 보기: K8s vs AKS
Node 1
Network
Container Engine
Control Plane(1…N)
AKS Service Underlay VNET
Customer 1 Control Plane
Add-on Manager
Controller Manager TunnelEnd
Customer 2 Control Plane
Add-on Manager
Controller Manager TunnelEnd
Customer 3 Control Plane
Add-on Manager
Controller Manager TunnelEnd
Node N
Container Engine
Nodepool 1
CoreDNS
TunnelFront
Node 1
CoreDNS
TunnelFront
Node 2
Nodepool 1 (Linux) Nodepool 2 (Windows) Nodepool 1
Nodepool 2
Nodepool 3
Nodepool N
VNET
VirtualSubnet
VirtualSubnet
Node 1 Node 2
Node 3 Node 4
Node 5 Node 6
Node 7 Node 8
Node 9 Node 10
Node 11 Node 12
Node 13 Node 14
Node 15 Node N
VirtualSubnet
VirtualSubnet
Load Balancer Load Balancer Load Balancer
©Microsoft Corporation Azure
1. Load Balancer 이전에, Managed Cloud Network for K8s
: AKS Kubenet (basic CNI) & Azure CNI
• AKS Kubenet
• 디폴트 CNI
• 노드 IP 주소를 Azure 서브넷에서 가져옴
• Pod: 노드 내 논리 주소 영역에서 IP 주소를 가져옴
• Azure 가상 네트워크에 접근하기 위해 NAT가 구성됨
• Source IP 가 노드 주 IP 주소로 변환이 이루어짐
• 노드 서브넷: UDR (User-defined Routes, 사용자 정의 경로) 필수
• Azure CNI
• 노드 & Pod: 서브넷에서 IP 주소를 가져옴
• 각 노드는 1 + MaxPod 개수 만큼 IP 주소를 할당받아 가짐
• 다른 네트워크로 향하는 Pod 트래픽이 노드 IP를 통해 NAT를 얻음
• UDR을 필요로 하지 않음
AKS Kubenet
vs. Azure CNI
©Microsoft Corporation Azure
1. Load Balancer: MetalLB for K8s
https://metallb.universe.tf/installation/clouds/
©Microsoft Corporation Azure
1. Load Balancer: Managed K8s (e.g., AKS with LB)
$ cat azure-lb.yaml
apiVersion: v1
kind: Service
metadata:
name: azure-lb-websrv
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 8080
selector:
app: deploy-websrv
$ cat vote-lb.yaml
apiVersion: v1
kind: Service
metadata:
name: azure-vote-front
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: azure-vote-front
$ az aks create --resource-group dkos-with-aks --name aks-
with-basic-lb --node-count 1 --enable-addons monitoring --
generate-ssh-keys --load-balancer-sku basic
©Microsoft Corporation Azure
1. Load Balancer: Managed K8s (e.g., AKS with LB)
Azure:~$ az aks get-credentials --resource-group dkos-with-aks --name aks-with-basic-lb
Merged "aks-with-basic-lb" as current context in /home/ian/.kube/config
Azure:~$ kubectl apply -f echo-pod.yaml
deployment.apps/deploy-echo created
Azure:~$ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
deploy-echo-56f947c867-nt6wp 0/1 ContainerCreating 0 8s <none> aks-nodepool1-43778350-vmss000000 <none> <none>
deploy-echo-56f947c867-sxrzm 0/1 ContainerCreating 0 8s <none> aks-nodepool1-43778350-vmss000000 <none> <none>
deploy-echo-56f947c867-w77sd 0/1 ContainerCreating 0 8s <none> aks-nodepool1-43778350-vmss000000 <none> <none>
Azure:~$ kubectl apply -f azure-lb.yaml
service/azure-lb-websrv created
Azure:~$ kubectl get svc -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
azure-lb-websrv LoadBalancer 10.0.84.162 <pending> 80:30071/TCP 12s app=deploy-websrv
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 6m29s <none>
Azure:~$ kubectl get svc -o wide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
azure-lb-websrv LoadBalancer 10.0.84.162 52.231.197.251 80:30071/TCP 22s app=deploy-websrv
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 6m39s <none>
Azure:~$ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
deploy-echo-56f947c867-nt6wp 1/1 Running 0 63s 10.244.0.9 aks-nodepool1-43778350-vmss000000 <none> <none>
deploy-echo-56f947c867-sxrzm 1/1 Running 0 63s 10.244.0.10 aks-nodepool1-43778350-vmss000000 <none> <none>
deploy-echo-56f947c867-w77sd 1/1 Running 0 63s 10.244.0.8 aks-nodepool1-43778350-vmss000000 <none> <none>
Azure:~$ kubectl apply -f vote-lb.yaml
service/azure-vote-front created
Azure:~$ kubectl apply -f public-svc.yaml
service/public-svc created
©Microsoft Corporation Azure
1. Load Balancer: Managed K8s (e.g., AKS with LB)
©Microsoft Corporation Azure
2. Persistent Volumes 이전에, 잠시 Volume 개요
[Volume]
• Pod 삭제시에도 스토리지를 통해
데이터를 계속 저장
• hostPath: 워커 노드의 로컬 디렉터리를
공유해 볼륨으로 사용 (링크)
• emptyDir: Pod 수명이 끝나기 전까지는
Pod가 재시작되어도 접근 가능한 볼륨
(링크)
• 별도 파일 시스템, 클라우드 스토리지와
연동하여 사용 가능 (Persistent Volume)
https://bit.ly/K8s-volume-basic
https://kubernetes.io/ko/docs/concepts/storage/volumes/
©Microsoft Corporation Azure
2. Persistent Volumes with Kubernetes
©Microsoft Corporation Azure
2. Persistent Volumes with Managed K8s – e.g., AKS
• azureDisk/azureFile 볼륨
플러그인 활용
• CSI (Container Storage Interface)
활용
https://kubernetes.io/ko/docs/concepts/storage/volumes
©Microsoft Corporation Azure
2. Persistent Volumes with Managed K8s – e.g., AKS
• 퍼시스턴스 볼륨 배포 확인 at Managed K8s – e.g., AKS
https://bit.ly/wordpress-with-managed-k8s
요약
• 쿠버네티스 오픈 소스로 실제 많이 사용되는 로드밸런서,
스토리지 등까지 배워보려면 MetalLB, Longhorn 등 직접 설치 필요
• 매니지드 쿠버네티스 서비스에서는 클라우드 프로바이더에서
제공하는 리소스와 연동
• 연동을 위한 대표적인 방식이 Interface를 통한 방식
• CNI (Container Network Interface): 네트워크 인터페이스
• CSI (Container Storage Interface): 스토리지 인터페이스
• 참고: CRI (Container Runtime Interface – with containerd, docker, cri-o, …)

More Related Content

What's hot

Deploying OpenShift Container Platform on AWS by Red Hat
Deploying OpenShift Container Platform on AWS by Red HatDeploying OpenShift Container Platform on AWS by Red Hat
Deploying OpenShift Container Platform on AWS by Red HatAmazon Web Services
 
GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull RequestKasper Nissen
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdBilly Yuen
 
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항rockplace
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingSreenivas Makam
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Edureka!
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Janusz Nowak
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항Ji-Woong Choi
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopBob Killen
 
Azure DevOps CI/CD For Beginners
Azure DevOps CI/CD  For BeginnersAzure DevOps CI/CD  For Beginners
Azure DevOps CI/CD For BeginnersRahul Nath
 
Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 rockplace
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Ryan Jarvinen
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep diveWinton Winton
 
Getting Started with Kubernetes
Getting Started with Kubernetes Getting Started with Kubernetes
Getting Started with Kubernetes VMware Tanzu
 
GitOps and ArgoCD
GitOps and ArgoCDGitOps and ArgoCD
GitOps and ArgoCDOmar Fathy
 
Azure Monitoring Overview
Azure Monitoring OverviewAzure Monitoring Overview
Azure Monitoring Overviewgjuljo
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축철구 김
 

What's hot (20)

Deploying OpenShift Container Platform on AWS by Red Hat
Deploying OpenShift Container Platform on AWS by Red HatDeploying OpenShift Container Platform on AWS by Red Hat
Deploying OpenShift Container Platform on AWS by Red Hat
 
GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull Request
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cd
 
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
왜 컨테이너인가? - OpenShift 구축 사례와 컨테이너로 환경 전환 시 고려사항
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes Networking
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
 
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
[오픈소스컨설팅]클라우드기반U2L마이그레이션 전략 및 고려사항
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes Workshop
 
Azure DevOps CI/CD For Beginners
Azure DevOps CI/CD  For BeginnersAzure DevOps CI/CD  For Beginners
Azure DevOps CI/CD For Beginners
 
Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
 
Open shift 4 infra deep dive
Open shift 4    infra deep diveOpen shift 4    infra deep dive
Open shift 4 infra deep dive
 
Getting Started with Kubernetes
Getting Started with Kubernetes Getting Started with Kubernetes
Getting Started with Kubernetes
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
GitOps and ArgoCD
GitOps and ArgoCDGitOps and ArgoCD
GitOps and ArgoCD
 
Azure Monitoring Overview
Azure Monitoring OverviewAzure Monitoring Overview
Azure Monitoring Overview
 
GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축GitLab과 Kubernetes를 통한 CI/CD 구축
GitLab과 Kubernetes를 통한 CI/CD 구축
 

Similar to 쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개

[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
BRK3738 - Azure Container Instance로 시작하는 간편한 서버리스 컨테이너 개발
BRK3738 - Azure Container Instance로 시작하는 간편한 서버리스 컨테이너 개발BRK3738 - Azure Container Instance로 시작하는 간편한 서버리스 컨테이너 개발
BRK3738 - Azure Container Instance로 시작하는 간편한 서버리스 컨테이너 개발Jung Hyun Nam
 
Kubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideKubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideChan Shik Lim
 
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)Cloud-Barista Community
 
[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDX
[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDX[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDX
[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDXOpenStack Korea Community
 
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)Cloud-Barista Community
 
Windows Kubernetes Bootstrapping and Operations
Windows Kubernetes Bootstrapping and OperationsWindows Kubernetes Bootstrapping and Operations
Windows Kubernetes Bootstrapping and OperationsJung Hyun Nam
 
[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
 
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
 
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기Hyperledger Korea User Group
 
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdfOpen Source Consulting
 
Cloud Native Days Korea 2019 - kakao's k8s_as_a_service
Cloud Native Days Korea 2019 - kakao's k8s_as_a_serviceCloud Native Days Korea 2019 - kakao's k8s_as_a_service
Cloud Native Days Korea 2019 - kakao's k8s_as_a_serviceDennis Hong
 
세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdfJaesuk Ahn
 
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...Amazon Web Services Korea
 
resource on openstack
 resource on openstack resource on openstack
resource on openstackjieun kim
 
2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-HelmSK Telecom
 
NSO Introduction
NSO IntroductionNSO Introduction
NSO IntroductionJunho Lee
 

Similar to 쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개 (20)

[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
[온라인교육시리즈] NKS에서 Cluster & Pods Autoscaling 적용
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
BRK3738 - Azure Container Instance로 시작하는 간편한 서버리스 컨테이너 개발
BRK3738 - Azure Container Instance로 시작하는 간편한 서버리스 컨테이너 개발BRK3738 - Azure Container Instance로 시작하는 간편한 서버리스 컨테이너 개발
BRK3738 - Azure Container Instance로 시작하는 간편한 서버리스 컨테이너 개발
 
Kubernetes on Premise Practical Guide
Kubernetes on Premise Practical GuideKubernetes on Premise Practical Guide
Kubernetes on Premise Practical Guide
 
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista 제6차 오픈 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
 
[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDX
[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDX[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDX
[OpenInfra Days Korea 2018] (Track 2) 오픈스택 기반 온프레미스 및 멀티클라우드 연동 사례: IXcloud KDX
 
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
Cloud-Barista 제7차 컨퍼런스 : 멀티클라우드 애플리케이션 실행환경 통합 관리 (CB-Ladybug)
 
Windows Kubernetes Bootstrapping and Operations
Windows Kubernetes Bootstrapping and OperationsWindows Kubernetes Bootstrapping and Operations
Windows Kubernetes Bootstrapping and Operations
 
[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 ...
 
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
 
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
[2019.04] 쿠버네티스 기반 하이퍼레저 패브릭 네트워크 구축하기
 
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Cloud Native Days Korea 2019 - kakao's k8s_as_a_service
Cloud Native Days Korea 2019 - kakao's k8s_as_a_serviceCloud Native Days Korea 2019 - kakao's k8s_as_a_service
Cloud Native Days Korea 2019 - kakao's k8s_as_a_service
 
세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf
 
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
AWS CLOUD 2018- 관리형 Kubernetes 지원과 새로운 컨테이너 서비스 Amazon Fargate 소개 (정영준 솔루션즈 아...
 
resource on openstack
 resource on openstack resource on openstack
resource on openstack
 
2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm2017 k8s and OpenStack-Helm
2017 k8s and OpenStack-Helm
 
NSO Introduction
NSO IntroductionNSO Introduction
NSO Introduction
 

More from Ian Choi

Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023Ian Choi
 
클라우드 컴퓨팅 기본 사항 (Fundamentals)
클라우드 컴퓨팅 기본 사항 (Fundamentals)클라우드 컴퓨팅 기본 사항 (Fundamentals)
클라우드 컴퓨팅 기본 사항 (Fundamentals)Ian Choi
 
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요Ian Choi
 
마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)
마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)
마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)Ian Choi
 
Evolving Translation and Internationalization in OpenStack & Kubernetes commu...
Evolving Translation and Internationalization in OpenStack & Kubernetes commu...Evolving Translation and Internationalization in OpenStack & Kubernetes commu...
Evolving Translation and Internationalization in OpenStack & Kubernetes commu...Ian Choi
 
오픈 소스 프로그래밍 - NoSQL with Python
오픈 소스 프로그래밍 - NoSQL with Python오픈 소스 프로그래밍 - NoSQL with Python
오픈 소스 프로그래밍 - NoSQL with PythonIan Choi
 
Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)
Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)
Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)Ian Choi
 
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...Ian Choi
 
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...Ian Choi
 
Microsoft loves communities - Korea DevRel Team
Microsoft loves communities - Korea DevRel TeamMicrosoft loves communities - Korea DevRel Team
Microsoft loves communities - Korea DevRel TeamIan Choi
 
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴Ian Choi
 
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우Ian Choi
 
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용Ian Choi
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기Ian Choi
 
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션Ian Choi
 
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력Ian Choi
 
OpenStack 2018 Vancouver Summit 후기
OpenStack 2018 Vancouver Summit 후기OpenStack 2018 Vancouver Summit 후기
OpenStack 2018 Vancouver Summit 후기Ian Choi
 
"docs.microsoft.com"에 기여하기
"docs.microsoft.com"에 기여하기"docs.microsoft.com"에 기여하기
"docs.microsoft.com"에 기여하기Ian Choi
 
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례Ian Choi
 
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?Ian Choi
 

More from Ian Choi (20)

Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
Ship it! ⛴️ AKS에 스프링 앱 배포하기 at Microsoft x GitHub Roadshow 2023
 
클라우드 컴퓨팅 기본 사항 (Fundamentals)
클라우드 컴퓨팅 기본 사항 (Fundamentals)클라우드 컴퓨팅 기본 사항 (Fundamentals)
클라우드 컴퓨팅 기본 사항 (Fundamentals)
 
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
디자인에 이어 코딩까지 AI가 프로그램 개발을 척척?: GitHub Copilot, 어디까지 알아보셨나요
 
마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)
마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)
마이크로소프트 애저 및 클라우드 트렌드 소개 (부제: Beyond IaaS)
 
Evolving Translation and Internationalization in OpenStack & Kubernetes commu...
Evolving Translation and Internationalization in OpenStack & Kubernetes commu...Evolving Translation and Internationalization in OpenStack & Kubernetes commu...
Evolving Translation and Internationalization in OpenStack & Kubernetes commu...
 
오픈 소스 프로그래밍 - NoSQL with Python
오픈 소스 프로그래밍 - NoSQL with Python오픈 소스 프로그래밍 - NoSQL with Python
오픈 소스 프로그래밍 - NoSQL with Python
 
Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)
Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)
Azure 클라우드 학생 계정 & Ubuntu VM 셋업 (Mar 2022)
 
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...
OpenStack I18n Product Update at Shanghai: how OpenStack translation started ...
 
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
[OpenInfra Days Vietnam 2019] Innovation with open sources and app modernizat...
 
Microsoft loves communities - Korea DevRel Team
Microsoft loves communities - Korea DevRel TeamMicrosoft loves communities - Korea DevRel Team
Microsoft loves communities - Korea DevRel Team
 
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
DevOps와 함께 살펴보는 (해커톤의 성패를 좌우하는) 협업/개발 툴
 
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
국제화/번역과 함께 하는 오픈소스에 대한 경험 및 노하우
 
[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용[201808] GitHub 사용하기 - GIt & 협업 활용
[201808] GitHub 사용하기 - GIt & 협업 활용
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
 
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
[2018 KOSSLAB 컨트리뷰톤] 오픈스택 (OpenStack) 프로젝트 소개 + 업스트림 컨트리뷰션
 
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
[2018 공개SW그랜드챌린지] 오픈 인프라와 오픈 커뮤니티에서의 협력
 
OpenStack 2018 Vancouver Summit 후기
OpenStack 2018 Vancouver Summit 후기OpenStack 2018 Vancouver Summit 후기
OpenStack 2018 Vancouver Summit 후기
 
"docs.microsoft.com"에 기여하기
"docs.microsoft.com"에 기여하기"docs.microsoft.com"에 기여하기
"docs.microsoft.com"에 기여하기
 
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례
[Pycon KR 2017] Rst와 함께하는 Python 문서 작성 & OpenStack 문서 활용 사례
 
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
 

쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개

  • 1. 쿠버네티스 오픈 소스와 클라우드 매니지드 서비스 접점 소개 최영락 한국마이크로소프트 2022년 5월
  • 2. 클라우드 매니지드 쿠버네티스 서비스 (Managed Kubernetes Services) • 오픈 소스인 Kubernetes에 대한 서비스를 호스팅 형태로 제공 • “Cluster as a Service” • 사용자 (고객) 구독에서 워크로드가 실행 & 호스트되는 노드 (nodes, worker nodes)들을 관리 • 해당 노드들을 관리하기 위한 클러스터 기능 및 사용자 (고객)이 사용하는 Customer Control Plane (CCP)에 있는 컴포넌트들을 관리 • 자동화된 프로비저닝, 업그레이드 (Base OS 이미지, Kubernetes 버전), 동적 스케일링, 모니터링 지원 • 주요 접점에 대한 연동 컴포넌트 • Load balancers • Persistent volumes • DNS (e.g., Azure DNS) • vNETs • Kubenet • Container Network Interfaces (e.g., Azure CNI), etc.
  • 3. 참고: 쿠버네티스 Control Plane 및 Node 핵심 컴포넌트 Control Plane • Kube-apiserver • Etcd • Kube-scheduler • Kube-controller-manager • Kube-addon-manager • TunnelEnd: (CCP tunnel side) Nodes • Kubelet • Kube-proxy • Container Runtime • CoreDNS • TunnelFront
  • 4. 한 눈에 보기: K8s vs AKS Node 1 Network Container Engine Control Plane(1…N) AKS Service Underlay VNET Customer 1 Control Plane Add-on Manager Controller Manager TunnelEnd Customer 2 Control Plane Add-on Manager Controller Manager TunnelEnd Customer 3 Control Plane Add-on Manager Controller Manager TunnelEnd Node N Container Engine Nodepool 1 CoreDNS TunnelFront Node 1 CoreDNS TunnelFront Node 2 Nodepool 1 (Linux) Nodepool 2 (Windows) Nodepool 1 Nodepool 2 Nodepool 3 Nodepool N VNET VirtualSubnet VirtualSubnet Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7 Node 8 Node 9 Node 10 Node 11 Node 12 Node 13 Node 14 Node 15 Node N VirtualSubnet VirtualSubnet Load Balancer Load Balancer Load Balancer
  • 5. ©Microsoft Corporation Azure 1. Load Balancer 이전에, Managed Cloud Network for K8s : AKS Kubenet (basic CNI) & Azure CNI • AKS Kubenet • 디폴트 CNI • 노드 IP 주소를 Azure 서브넷에서 가져옴 • Pod: 노드 내 논리 주소 영역에서 IP 주소를 가져옴 • Azure 가상 네트워크에 접근하기 위해 NAT가 구성됨 • Source IP 가 노드 주 IP 주소로 변환이 이루어짐 • 노드 서브넷: UDR (User-defined Routes, 사용자 정의 경로) 필수 • Azure CNI • 노드 & Pod: 서브넷에서 IP 주소를 가져옴 • 각 노드는 1 + MaxPod 개수 만큼 IP 주소를 할당받아 가짐 • 다른 네트워크로 향하는 Pod 트래픽이 노드 IP를 통해 NAT를 얻음 • UDR을 필요로 하지 않음 AKS Kubenet vs. Azure CNI
  • 6. ©Microsoft Corporation Azure 1. Load Balancer: MetalLB for K8s https://metallb.universe.tf/installation/clouds/
  • 7. ©Microsoft Corporation Azure 1. Load Balancer: Managed K8s (e.g., AKS with LB) $ cat azure-lb.yaml apiVersion: v1 kind: Service metadata: name: azure-lb-websrv spec: type: LoadBalancer ports: - port: 80 targetPort: 8080 selector: app: deploy-websrv $ cat vote-lb.yaml apiVersion: v1 kind: Service metadata: name: azure-vote-front spec: type: LoadBalancer ports: - port: 80 selector: app: azure-vote-front $ az aks create --resource-group dkos-with-aks --name aks- with-basic-lb --node-count 1 --enable-addons monitoring -- generate-ssh-keys --load-balancer-sku basic
  • 8. ©Microsoft Corporation Azure 1. Load Balancer: Managed K8s (e.g., AKS with LB) Azure:~$ az aks get-credentials --resource-group dkos-with-aks --name aks-with-basic-lb Merged "aks-with-basic-lb" as current context in /home/ian/.kube/config Azure:~$ kubectl apply -f echo-pod.yaml deployment.apps/deploy-echo created Azure:~$ kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES deploy-echo-56f947c867-nt6wp 0/1 ContainerCreating 0 8s <none> aks-nodepool1-43778350-vmss000000 <none> <none> deploy-echo-56f947c867-sxrzm 0/1 ContainerCreating 0 8s <none> aks-nodepool1-43778350-vmss000000 <none> <none> deploy-echo-56f947c867-w77sd 0/1 ContainerCreating 0 8s <none> aks-nodepool1-43778350-vmss000000 <none> <none> Azure:~$ kubectl apply -f azure-lb.yaml service/azure-lb-websrv created Azure:~$ kubectl get svc -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR azure-lb-websrv LoadBalancer 10.0.84.162 <pending> 80:30071/TCP 12s app=deploy-websrv kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 6m29s <none> Azure:~$ kubectl get svc -o wide NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR azure-lb-websrv LoadBalancer 10.0.84.162 52.231.197.251 80:30071/TCP 22s app=deploy-websrv kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 6m39s <none> Azure:~$ kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES deploy-echo-56f947c867-nt6wp 1/1 Running 0 63s 10.244.0.9 aks-nodepool1-43778350-vmss000000 <none> <none> deploy-echo-56f947c867-sxrzm 1/1 Running 0 63s 10.244.0.10 aks-nodepool1-43778350-vmss000000 <none> <none> deploy-echo-56f947c867-w77sd 1/1 Running 0 63s 10.244.0.8 aks-nodepool1-43778350-vmss000000 <none> <none> Azure:~$ kubectl apply -f vote-lb.yaml service/azure-vote-front created Azure:~$ kubectl apply -f public-svc.yaml service/public-svc created
  • 9. ©Microsoft Corporation Azure 1. Load Balancer: Managed K8s (e.g., AKS with LB)
  • 10. ©Microsoft Corporation Azure 2. Persistent Volumes 이전에, 잠시 Volume 개요 [Volume] • Pod 삭제시에도 스토리지를 통해 데이터를 계속 저장 • hostPath: 워커 노드의 로컬 디렉터리를 공유해 볼륨으로 사용 (링크) • emptyDir: Pod 수명이 끝나기 전까지는 Pod가 재시작되어도 접근 가능한 볼륨 (링크) • 별도 파일 시스템, 클라우드 스토리지와 연동하여 사용 가능 (Persistent Volume) https://bit.ly/K8s-volume-basic https://kubernetes.io/ko/docs/concepts/storage/volumes/
  • 11. ©Microsoft Corporation Azure 2. Persistent Volumes with Kubernetes
  • 12. ©Microsoft Corporation Azure 2. Persistent Volumes with Managed K8s – e.g., AKS • azureDisk/azureFile 볼륨 플러그인 활용 • CSI (Container Storage Interface) 활용 https://kubernetes.io/ko/docs/concepts/storage/volumes
  • 13. ©Microsoft Corporation Azure 2. Persistent Volumes with Managed K8s – e.g., AKS • 퍼시스턴스 볼륨 배포 확인 at Managed K8s – e.g., AKS https://bit.ly/wordpress-with-managed-k8s
  • 14. 요약 • 쿠버네티스 오픈 소스로 실제 많이 사용되는 로드밸런서, 스토리지 등까지 배워보려면 MetalLB, Longhorn 등 직접 설치 필요 • 매니지드 쿠버네티스 서비스에서는 클라우드 프로바이더에서 제공하는 리소스와 연동 • 연동을 위한 대표적인 방식이 Interface를 통한 방식 • CNI (Container Network Interface): 네트워크 인터페이스 • CSI (Container Storage Interface): 스토리지 인터페이스 • 참고: CRI (Container Runtime Interface – with containerd, docker, cri-o, …)