1. 서비스 디스커버리와 로드 밸런싱 쿠버네티스는 DNS 이름을 사용하거나 자체 IP 주소를 사용하여 컨테이너를 노출할 수 있다. 컨테이너에 대한 트래픽이 많으면, 쿠버네티스는 네트워크 트래픽을 로드밸런싱하고 배포하여 배포가 안정적으로 이루어질 수 있다. - Service
- Kube-proxy
Code Block |
---|
서비스 디스커버리: 추가된 사항이나, 변경사항을 자동으로 발견하고 감지 하여 자동으로 업데이트 하고 연결을 유지 하는 것
로드 밸런싱: 단일 서비스로 노출하고, 트래픽을 분산 하는 것
MSA Eureka |
2. 스토리지 오케스트레이션 쿠버네티스를 사용하면 로컬 저장소, 공용 클라우드 공급자 등과 같이 원하는 저장소 시스템을 자동으로 탑재 할 수 있다.
- Volumne
Code Block |
---|
스토리지 오케스트레이션: 스토리지의 자동화된 설정, 관리, 조정을 의미 |
3. 자동화된 롤아웃과 롤백 쿠버네티스를 사용하여 배포된 컨테이너의 원하는 상태를 서술할 수 있으며 현재 상태를 원하는 상태로 설정한 속도에 따라 변경할 수 있다. 예를 들어 쿠버네티스를 자동화해서 배포용 새 컨테이너를 만들고, 기존 컨테이너를 제거하고, 모든 리소스를 새 컨테이너에 적용할 수 있다. - Deployment
Code Block |
---|
롤아웃: 배포된 상태를 원하는 상태로 변경하는 것
롤백: 변경된 상태를 다시 되돌리는 것 |
4. 자동화된 빈 패킹(bin packing) 컨테이너화된 작업을 실행하는데 사용할 수 있는 쿠버네티스 클러스터 노드를 제공한다. 각 컨테이너가 필요로 하는 CPU와 메모리(RAM)를 쿠버네티스에게 지시한다. 쿠버네티스는 컨테이너를 노드에 맞추어서 리소스를 가장 잘 사용할 수 있도록 해준다.
- kube-scheduler
Code Block |
---|
빈 패킹: 가장 적절한 노드에 리소스를 가장 효율적으로 사용될 수 있도록 하는 기술 |
5. 자동화된 복구(self-healing) 쿠버네티스는 실패한 컨테이너를 다시 시작하고, 컨테이너를 교체하며, '사용자 정의 상태 검사'에 응답하지 않는 컨테이너를 죽이고, 서비스 준비가 끝날 때까지 그러한 과정을 클라이언트에 보여주지 않는다.
6. 시크릿과 구성 관리 쿠버네티스를 사용하면 암호, OAuth 토큰 및 SSH 키와 같은 중요한 정보를 저장하고 관리 할 수 있다. 컨테이너 이미지를 재구성하지 않고 스택 구성에 시크릿을 노출하지 않고도 시크릿 및 애플리케이션 구성을 배포 및 업데이트 할 수 있다.
- ConfigMap
- Secret
Code Block |
---|
어플리케이션 환경변수를 별도로 관리하는 기술
MSA구성요소중 Config 역할 지원 기술 |
7. 다양한 클라우드에서 지원 - AWS
- Google
- MS Azure
- Naver
- IBM
- Oracle
- ...
- k8s를 지원하지 않는 벤더사를 찾기 어려움
8. MSA 및 DevOps실현을 위한 최적의 플랫폼 |