* Bitbucket
- Atlassian 이 제공하는 버전 관리를 위한 Repository 서비스
* Web Server Middleware
- NGIX, IIS (Internet Information Services)
* Docker Machine
- Host Machine/Cloud/가상 환경 등에 Docker 의 실행환경을 만들 수 있는 Command Line 툴
* Docker Machine 실행환경 명령
- 버전확인 : docker-machine --version
- 작성 : docker-machine create --driver [드라이버명] [작성한 docker 머신명]
- 목록 표시 : docker-machine ls [옵션]
- 상태 확인 : docker-machine status [머신명]
- URL 확인 : docker-machine url [머신명]
- SSH 연결 : docker-machine ssh [머신명]
- 시작 : docker-machine start [머신명]
- 정지 : docker-machine stop [머신명]
- 재시작 : docker-machine restart [머신명]
- 실행환경에서 파일 다운 : docker-machine scp [머신명] : [파일경로]
- 삭제 : docker-machine rm [옵션] [머신명]
- 강제 종료 : docker-machine kill [머신명]
- IP 정보확인 : docker-machine ip [머신명]
- 상세 정보 확인 : docker-machine inspect [옵션] [머신명]
* Container Orchestration Tool
- Container Scheduling
- Container가 정상적으로 동작하고 있는지 감시
* Kubernetes
- Google 엔지니어를 중심으로 하는 커뮤니티에서 개발
* Docker Engine (Swarm 모드)
- Swarm 모드에서 Clustering 기능 제공
* Apache Mesos + Marathon
- Open Source Cluster Orchestration 툴
- 별도의 Container 관리용 Framework 필요 => Marathon
< Public Cloud 가 제공하는 Container Managed Service >
* Amazon EC2 Container Service
- AWS 의 VM 기능을 제공하는 EC2를 사용한 Docker Container 관리 서비스
- ECS 에서는 '태스크 정의' 라고 하는 JSON 탬플릿을 사용하여 환경 정의
: Docker 의 Repository 와 이미지
: Memory, CPU 등과 같은 HW 요구사항
: Data Volume 의 Storeage, Container 간 연결 등을 정의
- ECS 에서는 장애 발생시에도 자동 복구됨
- ECS 에서는 EC2의 부하분산 기능인 ELB (Elastic Load Balancing) 을 사용
- Amazon Cloud Watch 와 연계하여 CPU 나 메모리 사용의 평균값과 합계량을 감시
- Amazon Elastic Container Service For Kubernetes (Amazon EKS)
- Amazon Batch : 과학 기술 계산 등의 용도
* Azure Container Service (AKS)
- MS 가 제공하는 MS Azure 의 Container Managed Service
- Orchestration 툴로 Kubernetes 를 지원
- Azure Container Registry : Docker 이미지를 Private 으로 관리
- Azure Batch Shipyard : 과학기술 계산 등의 용도
* Google Kubernetes Engine (GKE)
- GCP 의 Container Managed Service
* Google Compute Engine
- GCP 의 VM 제공 서비스
* Big Query
- GCP 에서 대규모 data 를 다루는 서비스
* Google Container Builder
- Dockerfile 을 바탕으로 Docker 이미지를 GCP 상에서 작성하기 위한 커맨드 툴
* Google Container Registry
- Docker 이미지를 GCP의 제품 안에서 관리할 수있는 Private 한 레지스트리 서비스
* Kubernetes
- 여러 개의 Host를 하나로 묶어 Docker를 이용하기 위한 Orchestration 툴
: 여러 서버에서 컨테이너 관리
: 컨테이너 간 네트워크 관리
: 컨테이너의 부하 분산
: 컨테이너의 감시
: 무정지로 업데이트
* Kubernetes Master (마스터 서버)
- Kubernetes 클러스터 안의 컨테이너를 조작하기 위한 서버
* etcd (Backend DB)
- etcd 라 부르는 분산 Key-value Store (KVS) 를 사용하여 클러스터의 구성정보 관리
* Node
- 실제로 Docker 컨테이너를 작동시키는 서버
* Pod (포드)
- 여러 개의 컨테이너를 모아서 Pod 로관리
- App 전개의 단위가 됨
* ReplicaSet
- Cluster 상에서 미리 지정된 pod 를 작성하여 실행 시켜두는 장치
* Deployment
- pod 와 ReplicaSet 을 모은 것으로, ReplicaSet 의 이력을 관리
* Kubernetes 의 구조
* API Server
- 리소스 정보를 관리하기위한 Front-end REST API
* Scheduler
- Pod 를 어떤노드에서 작동시킬지 제어하는 Back-end 컴포넌트
- Kubernetes 클러스터의 상태를 확인하고 빈 영역을 가진 노드를 찾아 Pod 를 실행시키는 스케줄링을 수행
* Controller Manager
- Kubernetes 클러스터의 상태를 항상 감시하는 Back-end 컴포넌트
* Node
- Kubelet
: pod 의 정의 파일에 따라 Docker Container 를 실행하거나 Storage 를 Mount
: Node 의 Status 를 정기적으로 감시
* Cold Stand by
- 구성이나 설정이 똑같은 서버나 네트워크 기기를 미리 백업 기기로서 마련해 두고, 실제 환경과 가까운 장소에설치하여 전원을 off 시킴. 실제 기기에 장애가 발생하면 백업 기기에 전원을 넣고 통째로 교환
- 소규모 On-Premise 환경에서 자주 채택하는 방식
* Hot Stand by
- 동일한 구성의 서버를 2대 동시에 가동시키고, 만일 메인 서버에서 장애가 발생했을 때는 대기중인 다른 서버가 대신 처리를 이어받는 구성
* RTO (Recovery Time Objective)
- 재해 등으로 기업 시스템이 정지된 이후로 서비스를 복구할 때까지 필요한 경과 시간
* RPO (Recovery Point Objective)
- 재해 등으로 시스템이 정지되었을 때 어떤 시점까지 거슬러 올라가서 데이터를 복구시킬지에 대한 지표
* SLA (Service Level Agreement)
- 시스템의 제공자와 이요자 사이에 미리 서비스 레벨을 규정하고, 이 서비스 레벨을 유지 관리하는 것
* Performance Tuning
- 시스템의 처리 중 병목이 일어나는 장소를 찾아내고 최적의 작동이 되도록 각종 파라미터를 조정하는 작업
'SW > IT 인프라' 카테고리의 다른 글
[Docker] Docker 명령어 (0) | 2020.02.09 |
---|---|
[Docker] Docker 컨테이너 생성/시작/정지/네트워크/조작/이미지 생성 (0) | 2020.01.19 |
[Docker] Docker 이미지 조작 (0) | 2020.01.19 |
[Docker] 시스템과 인프라 기초 지식 (0) | 2020.01.19 |
/////Immutable Infrastructure (0) | 2020.01.19 |