issues
search
tonykang22
/
study
0
stars
0
forks
source link
[클라우드 기반 컨테이너 운영] 컨테이너 오케스트레이션의 이해
#106
Open
tonykang22
opened
1 year ago
tonykang22
commented
1 year ago
컨테이너 오케스트레이션의 이해
컨테이너 오케스트레이션의 필요성
서비스 초기 / 개발 단계
직접 매뉴얼한 관리 가능
Docker 명령을 직접 실행해가며 서비스 관리
매뉴얼 프로비저닝, 배포
서비스 성장
N개의 앱을 M개의 서버에 배포
매뉴얼한 관리가 불가능해진다.
앱을 관리할 도구가 필요하게 된다.
그렇다면 늘어나는 앱과 호스트를 어떻게 효율적으로 관리할 수 있는가?
컨테이너 오케스트레이션
컨테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 관리
스토리지, 네트워킹, 보안과 같은 서비스를 간편하게 오케스트레이션
앱 구동을 위한 인프라 구성 없이 어플리케이션 사용에 필요한 자원만 기술해 사용
도구로는?
Kubernetes가 de facto standard로 자리 잡음 하지만! 만능 도구는 없다.
과제 상황에 맞게 선택 (예 - control plane HA구성 오버헤드)
마스터 노드 및 워커 노드 관리 필요 없는 서버리스 형태의 AWS ECS 실습 예정
2021년 CNCF 설문에 따르면, 응답자의 96%가 쿠버네티스를 사용하고 있거나 평가를 했다고 응답
Kubernetes 어려운데 써야하는 이유는?
자동화된 롤아웃과 롤백
애플리케이션 또는 애플리케이션의 설정 변경 시 배포 / 롤백 지원
배포 파이프라인 구성 BYE.
배포 기능 지원, 장애 시 롤백 지원
서비스 디스커버리와 로드 밸런싱
파드에게 고유한 IP 주소와 파드 집합에 대한 단일 DNS 명을 부여 및 로드밸런싱 수행
IP 하드코딩은 BYE.
인터널 DNS를 기본 구성
시크릿과 구성 관리
시크릿과 애플리케이션 구성을 안전하게 배포하고 업데이트
비밀번호 하드코딩은 BYE.
시크릿 정보 암호화 저장 지원
자동 빈 패킹(bin packing)
리소스 요구 사항과 기타 제약 조건에 따라 컨테이너를 자동으로 배치
제약 조건에 따른 컨테이너 배치 지원
예) GPU가 있는 인스턴스에 컨테이너 배치
자가 치유
오류가 발생한 컨테이너를 재시작하고, 노드가 죽었을 때 다시 스케줄
사용자 정의 상태에 따라 서비스를 준비 및 제공
"서비스가 내려갔어요!" → 다시 스케줄링 됩니다..
배치 실행
배치 작업 실행, 주기적 배치 작업도 실행 가능
가용한 환경에서 배치 작업 실행
주기적인 배치 작업도 가능
Horizontal 스케일링
자동으로 애플리케이션의 스케일을 업 또는 다운 (pod scale out/in 개념)
오토 스케일링도 간편히 구성
확장성을 고려한 설계
쿠버네티스 업스트림 소스 코드 수정 없이 쿠버네티스 클러스터에 기능을 추가
나만의 Controller 구성
예) MySQL Operator를 구성해서 LCM(Life Cycle Management) 관리
다음과 같이 기능이 다양하므로, 쓰지 않을 이유를 찾는게 더 어렵다.
컨테이너 오케스트레이션의 이해
컨테이너 오케스트레이션의 필요성
그렇다면 늘어나는 앱과 호스트를 어떻게 효율적으로 관리할 수 있는가?
도구로는?
Kubernetes 어려운데 써야하는 이유는?