본문 바로가기
푸닥거리

Cloud Native의 이해-2

by [김경민]™ ┌(  ̄∇ ̄)┘™ 2022. 4. 10.
728x90

 

 

 

 

 

Container

Union File System(UFS)에 대한 이해

 

Union Mount

- 복수의 파일시스템을 하나의 파일시스템으로 마운트하는 기능

 

Union File System

UFS는 여러 개의 파일 시스템을 하나의 파일 시스템에 마운트 하는 파일 시스템 개념

 

 

Docker의 개념과 아키텍처

- Docker는 LXC(Linux Container)에서 사용하는 리눅스 커널 컨테이너 기술을 이용해 만든 컨테이너 관리 유틸리티

- 리눅스 컨테이너 구현체의 사실상(de-facto) 업계 표준이 됨

- 2010 Founded as dotCloud -> Red Hat -> mobyproject.org -> Docker

 

https://mobyproject.org/

 

Moby

Components A library of containerized components for all vital aspects of a container system: OS, container runtime, orchestration, infrastructure management, networking, storage, security, build, image distribution, etc. Tools to assemble the components i

mobyproject.org

 

https://github.com/moby/moby

 

GitHub - moby/moby: Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

Moby Project - a collaborative project for the container ecosystem to assemble container-based systems - GitHub - moby/moby: Moby Project - a collaborative project for the container ecosystem to as...

github.com

 

HW -> 커널 -> 컨테이너 -> 도커 API

 

- Docker 는 UnionFS를 사용하여 Docker 이미지를 계층화

- Docker 는 overlayFS 사용

 

Docker Storage Drivers

- overlay2

- Aufs(advanced multi-layered unification filesystem)

 

docker file -> docker build -> docker pull -> docker run 

 

container -> image layers / read only, 변경불가

 

Container OS'es

- CoreOS

 

https://www.redhat.com/ko/coreos

 

CoreOS, 불변의 아키텍처(Immutable Architecture)

자동화된 풀스택 오퍼레이션으로 하이브리드 클라우드, 멀티클라우드 및 엣지 배포를 관리하는 엔터프라이즈급 쿠버네티스 컨테이너 플랫폼입니다.

www.redhat.com

 

- RancherOS

- D2IQ, Mesosphere DCOS

- openshift

 

https://www.redhat.com/ko/technologies/cloud-computing/openshift

 

Red Hat OpenShift로 간편해진 컨테이너 오케스트레이션

자동화된 풀스택 오퍼레이션으로 하이브리드 클라우드, 멀티클라우드 및 엣지 배포를 관리하는 엔터프라이즈급 쿠버네티스 컨테이너 플랫폼입니다.

www.redhat.com

 

- Fedora CoreOS

 

Container 기술의 표준화

- OCI ( Open Container Initiative )

- CRI ( Container Runtime Interface )

 

https://docs.microsoft.com/ko-kr/windows/wsl/

 

Linux용 Windows 하위 시스템 설명서

Linux용 Windows 하위 시스템 설명서의 개요입니다.

docs.microsoft.com

 

런타임(Run Time) 

 

compile time -> run time, 고수준 런타임, 저수준 런타임 runC

 

Client - Docker Engine - Containerd - Container - runC - daemon process

 

Kubernetes and Docker / Containerd / CRI-O

- kubernetes 에서 dockershim으로 변환하는데 비효율

- 21년도 하반기 Kubernetes 부터는 docker 를 container runtime 으로 활용할 수 없음

 

pure, 오픈소스 원래 코드만

 

openstack

 

Docker Architecture

Client - Docker Host - Registry

 

Docker Components

- Docker Software

- Docker objects

- Registries

 

Docker Hub

 

https://hub.docker.com/

 

Docker Hub Container Image Library | App Containerization

We and third parties use cookies or similar technologies ("Cookies") as described below to collect and process personal data, such as your IP address or browser information. You can learn more about how this site uses Cookies by reading our privacy policy

hub.docker.com

 

Docker Tools

- Docker Compose

- Docker Swarm

 

Dev - QA - PRD

 

컨테이너 기술 적용 사례

- Development, CI/CD/DevOps, Operations, Refactor Legacy Apps, Migrate to Cloud, New Microservice Apps

 

v.motion

https://www.vmware.com/kr/products/vsphere/vmotion.html

 

 

Micro Servuces Architecture (MSA)

MSA의 개념 이해

 

해시캐시

https://hmn.wiki/ko/Hashcash

 

해시캐시

Hashcash 는 이메일 스팸 및 서비스 거부 공격 을 제한하는 데 사용되는 작업 증명 시스템 이며, 최근에는 채굴 알고리즘의 일부로 비트코인 (및 기타 암호화폐 )에서 사용하는 것으로 알려졌습니

hmn.wiki

 

blockchain

https://www.ibm.com/kr-ko/topics/what-is-blockchain

 

POW (Proof of Work)
POS (Proof of Stake)

 

쿠버네티스, 서비스 메시(Service Mesh)

Monolithic 모놀리식

 

Services Oriented Architecture ( SOA ) VS Mirciservices Architecture ( MSA )

- CI/CD 존재 여부, 자동화

- isolated, independently

 

https://aws.amazon.com/ko/microservices/

 

마이크로서비스란 무엇입니까? | AWS

마이크로서비스의 경우 각 서비스가 지원하는 애플리케이션 기능의 수요를 충족하도록 해당 서비스를 독립적으로 확장할 수 있습니다. 따라서 팀은 필요한 인프라의 규모를 적절히 조절하고,

aws.amazon.com

 

 

Twelve Factor App 이 충족되어야 마이크로서비스

 

https://12factor.net/ko/

 

The Twelve-Factor App (한국어)

배경 이 문서에 기여한 사람들은 수백개 앱의 개발과 배포에 직접 참여했으며, Heroku 플랫폼을 통해서 방대한 앱의 개발, 운영, 확장을 간접적으로 관찰했다. 이 문서는 실제로 쓰이는 다양한 SaaS

12factor.net

 


The Twelve Factors


I. 코드베이스
- 버전 관리되는 하나의 코드베이스와 다양한 배포
II. 종속성
- 명시적으로 선언되고 분리된 종속성
III. 설정
- 환경(environment)에 저장된 설정
IV. 백엔드 서비스
- 백엔드 서비스를 연결된 리소스로 취급
V. 빌드, 릴리즈, 실행
- 철저하게 분리된 빌드와 실행 단계
VI. 프로세스
- 애플리케이션을 하나 혹은 여러개의 무상태(stateless) 프로세스로 실행
VII. 포트 바인딩
- 포트 바인딩을 사용해서 서비스를 공개함
VIII. 동시성(Concurrency)
- 프로세스 모델을 사용한 확장
IX. 폐기 가능(Disposability)
- 빠른 시작과 그레이스풀 셧다운(graceful shutdown)을 통한 안정성 극대화
X. 개발/프로덕션환경 일치
- 개발, 스테이징, 프로덕션 환경을 최대한 비슷하게 유지
XI. 로그
- 로그를 이벤트 스트림으로 취급
XII. Admin 프로세스
- admin/maintenance 작업을 일회성 프로세스로 실행

 

https://about.gitlab.com/

 

Iterate faster, innovate together | GitLab

GitLab advances open science education at Te Herenga Waka – Victoria University of Wellington

about.gitlab.com

 

MSA, Container and Kubernetes

 

Kubernetes, 스케줄링(컨테이너 배포)과 클라우드 환경을 지원하는 오픈소스 플랫폼

 

메소스피어(mesosphere)

 

Kubernetes Architecture, k8s 

- 컨테이너화된 앱의 오케스트레이터

- scaling, self-healing, load-balancing, rolling updates

 

github.com/kubernetes/kubernetes

@kubernetes

slack.k8s.io

kubernetes.io/docs/home

cncf.io

 

Kubernetes 기능

- 서비스 디스커버리와 로드 밸런싱

- 스토리지 오케스트레이션

- 자동화된 롤아웃과 롤백 쿠버네티스

- 쿠버네티스 클러스터 노드

- 자동화된 복구

- 시크릿과 구성 관리

 

Kubernetes, Run->Monitor->Scale and Docker, Build->Deploy

- containerd.io

- Kubernetes CRI

 

https://www.sumologic.com/

 

Cloud Log Management, Monitoring, SIEM Tools | Sumo Logic

Sumo Logic provides best-in-class cloud monitoring, log management, Cloud SIEM tools, and real-time insights for web and SaaS based apps.

www.sumologic.com

 

 

Kubernetes vs Docker Swarm

- auto scalling 여부

 

Kubernetes vs Datacenter OS (DCOS)

- DC/OS는 Data Center와 같이 대규모 서버 환경을 하나의 OS처럼 관리 목적으로 개발

- 유연한 공유 ( Elastic sharing )

- Mesos

 

https://mesos.apache.org/

 

Apache Mesos

Apache Mesos abstracts resources away from machines, enabling fault-tolerant and elastic distributed systems to easily be built and run effectively.

mesos.apache.org

 

 

Kubernetes 환경 운영을 위한 기본 개념

 

Kubernetes Components

- API server, Cloud controller manager, Controller manager, etcd, kubelet, kube-proxy, Scheduler, Control plane, Node(Pod의 집합)

 

https://kubernetes.io/ko/docs/

 

쿠버네티스 문서

쿠버네티스는 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하기 위한 오픈소스 컨테이너 오케스트레이션 엔진이다. 오픈소스 프로젝트는 Cloud Native Computing Foundation에서 주관한다.

kubernetes.io

 

- 클러스터

- 컨트롤플레인(Control Plane, Master)

- 노드(워크노드, Worknode)

- Pod(파드), 배포, deploy, CI/CD

- Deployment(배포), Pod, Replicaset

 

Container -> Pod -> Node -> Cluster, Control Plane(Master)

Node부터 Replicaset 배포 가능

 

Masters ( Control Plane )

- 단일 호스트 마스터 vs 다중 호스트 HA 마스터

- 마스터에서 애플리케이션 워크로드를 실행하지 않음

 

Masters ( Control Plane ) Components

- API 서버

- Etcd

- 컨트롤러 매니저

- 스케쥴러

 

 

https://youtu.be/a2q6eJ0-DKE

 

https://rancher.com/

 

Innovate Everywhere

Rancher, the open-source multi-cluster orchestration platform, lets operations teams deploy, manage and secure enterprise Kubernetes. Request a demo!

rancher.com

 

 

https://www.datadoghq.com/

 

Cloud Monitoring as a Service | Datadog

See metrics from all of your apps, tools & services in one place with Datadog's cloud monitoring as a service solution. Try it for free.

www.datadoghq.com

 

 

Node Components

- 프록시

- Kubelet

- cAdvisor

 

Kubernetes Runtime

- Containerd

- CRI-O

- Docker (1.2부터 지원 중단 예정)

 

Pods Anatomy

- Ring-fenced environment

- One or more containers

 

Pods Tightly Coupled vs Pods Loosely Coupled

 

Pods and Scaling

 

Pod Lifecycle

 

Deploying Pods

- 포드를 직접 배포하지 않음.

 

ReplicaSets(RS) and Deployment

 

kubectl apply -f test-replicatset.yaml

kubectl get replicaset,pods

kubectl delete pod test-replicaset-xgggb

kubectl get replicaset,pods

 

Deployments, 배포

- ReplicaSet 위에 배포

 

Multiple concurrent versions

- Blue-green deployments

-- Green deployments

-- Blue deployments

- Canary releases

 

K8S Services

- Pod 집합에 안정적인 DNS, IP 주소 제공

 

Connecting Pods to Services

 

 

K8S - 운영 모델

 

Declarative Model vs Imperative Model

 

The Declarative Model and Desired State

 

https://kubernetes.io/ko/docs/tutorials/hello-minikube/

 

Hello Minikube

이 튜토리얼에서는 Minikube와 Katacoda를 이용하여 쿠버네티스에서 샘플 애플리케이션을 어떻게 실행하는지 살펴본다. Katacode는 무료로 브라우저에서 쿠버네티스 환경을 제공한다. 참고: 로컬에서

kubernetes.io

 

https://kubernetes.io/ko/docs/tutorials/kubernetes-basics/create-cluster/cluster-interactive/

 

대화형 튜토리얼 - 클러스터 생성하기

화면이 너무 좁아 터미널과 상호작용할 수 없습니다. 데스크톱/태블릿을 사용해주세요. 홈으로 이동 모듈 2로 진행하기 >

kubernetes.io

 

 

Kubernetes 기반의 Hybrid Multi-Cloud 이해

 

Pod를 Google, Oracle, Alibaba, BareMetal, Amazon, AZURE, Edge Cloud, Vmware 등 다양하게 위치시킴

 

https://banzaicloud.com/

 

Banzai Cloud

Banzai Cloud is now part of Cisco

banzaicloud.com

 

 

https://www.xenonstack.com/

 

XenonStack - Cloud Native and Data Intelligence Company

We are one of the fastest-growing technology consulting and services company that futurify businesses leveraging cloud-native and AI to deliver data-centric digital experiences.

www.xenonstack.com

 

Hybrid Multi-Cloud K8S

 

Hybrid Multi-Cloud Architecture

 

https://cloud.google.com/architecture/hybrid-and-multi-cloud-architecture-patterns?hl=ko 

 

하이브리드 및 멀티 클라우드 아키텍처 패턴  |  클라우드 아키텍처 센터  |  Google Cloud

의견 보내기 하이브리드 및 멀티 클라우드 아키텍처 패턴 이 자료는 하이브리드 및 멀티 클라우드 배포, 아키텍처 패턴 및 네트워크 토폴로지에 대해 설명하는 다중 파트 시리즈 중 두 번째 부

cloud.google.com

 

 

엣지 클라우드 ( 분산형 클라우드 ), Edge Cloud

 

https://www.redhat.com/ko/topics/cloud-computing/cloud-vs-edge

 

클라우드 vs. 엣지

클라우드는 추상적인 IT 환경입니다. 엣지는 네트워크 엣지에 있는 물리적 컴퓨팅 위치입니다. 엣지 컴퓨팅이 이토록 유용한 이유는 클라우드와 클라우드 컴퓨팅이 의도적으로 분리되어 있기

www.redhat.com

 

 

https://ko.wikipedia.org/wiki/%ED%84%B1%EC%8B%9C%EB%8F%84_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4) 

 

턱시도 (소프트웨어) - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

 

 

 

https://www.hpetraining.co.kr/

 

::: HPE 교육센터 ::: IT 교육, ITIL 교육, Linux 교육, VMware 교육 제공

 

www.hpetraining.co.kr

 

 

728x90

댓글