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
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
- RancherOS
- D2IQ, Mesosphere DCOS
- openshift
https://www.redhat.com/ko/technologies/cloud-computing/openshift
- Fedora CoreOS
Container 기술의 표준화
- OCI ( Open Container Initiative )
- CRI ( Container Runtime Interface )
https://docs.microsoft.com/ko-kr/windows/wsl/
런타임(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
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의 개념 이해
해시캐시
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/
Twelve Factor App 이 충족되어야 마이크로서비스
The Twelve Factors
I. 코드베이스
- 버전 관리되는 하나의 코드베이스와 다양한 배포
II. 종속성
- 명시적으로 선언되고 분리된 종속성
III. 설정
- 환경(environment)에 저장된 설정
IV. 백엔드 서비스
- 백엔드 서비스를 연결된 리소스로 취급
V. 빌드, 릴리즈, 실행
- 철저하게 분리된 빌드와 실행 단계
VI. 프로세스
- 애플리케이션을 하나 혹은 여러개의 무상태(stateless) 프로세스로 실행
VII. 포트 바인딩
- 포트 바인딩을 사용해서 서비스를 공개함
VIII. 동시성(Concurrency)
- 프로세스 모델을 사용한 확장
IX. 폐기 가능(Disposability)
- 빠른 시작과 그레이스풀 셧다운(graceful shutdown)을 통한 안정성 극대화
X. 개발/프로덕션환경 일치
- 개발, 스테이징, 프로덕션 환경을 최대한 비슷하게 유지
XI. 로그
- 로그를 이벤트 스트림으로 취급
XII. Admin 프로세스
- admin/maintenance 작업을 일회성 프로세스로 실행
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
Kubernetes vs Docker Swarm
- auto scalling 여부
Kubernetes vs Datacenter OS (DCOS)
- DC/OS는 Data Center와 같이 대규모 서버 환경을 하나의 OS처럼 관리 목적으로 개발
- 유연한 공유 ( Elastic sharing )
- Mesos
Kubernetes 환경 운영을 위한 기본 개념
Kubernetes Components
- API server, Cloud controller manager, Controller manager, etcd, kubelet, kube-proxy, Scheduler, Control plane, Node(Pod의 집합)
https://kubernetes.io/ko/docs/
- 클러스터
- 컨트롤플레인(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
- 컨트롤러 매니저
- 스케쥴러
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/
https://kubernetes.io/ko/docs/tutorials/kubernetes-basics/create-cluster/cluster-interactive/
Kubernetes 기반의 Hybrid Multi-Cloud 이해
Pod를 Google, Oracle, Alibaba, BareMetal, Amazon, AZURE, Edge Cloud, Vmware 등 다양하게 위치시킴
Hybrid Multi-Cloud K8S
Hybrid Multi-Cloud Architecture
https://cloud.google.com/architecture/hybrid-and-multi-cloud-architecture-patterns?hl=ko
엣지 클라우드 ( 분산형 클라우드 ), Edge Cloud
https://www.redhat.com/ko/topics/cloud-computing/cloud-vs-edge
https://www.hpetraining.co.kr/
'푸닥거리' 카테고리의 다른 글
22년도 직업능력개발훈련교사 자격교육 연간일정 (0) | 2022.04.12 |
---|---|
Cloud Native의 이해-1 (0) | 2022.04.10 |
소프트웨어 보안약점 진단가이드 2021.11 (0) | 2022.04.08 |
직업능력개발훈련의 개념과 개인훈련 및 사업주훈련 (0) | 2022.04.05 |
직업능력개발훈련의 품질관리와 NCS (0) | 2022.04.05 |
댓글