study-zero / newbie

https://study-zero.github.io/newbie/
1 stars 0 forks source link

2024-08-19 1. 쿠버네티스 소개 #3

Open JunHyeongKim73 opened 3 weeks ago

JunHyeongKim73 commented 3 weeks ago

1장. 쿠버네티스 소개

TL;DR

쿠버네티스란

쿠버네티스의 이점


쿠버네티스란?

쿠버네티스의 이점

1. 개발 속도

❌ 시간 당 or 일별로 제공할 수 있는 기능의 수 ✅ 높은 가용성을 갖는 서비스를 유지하면서 제공할 수 있는 항목의 수

안정적인 배포와 운영을 위한 기능을 제공!

1.1. 불변성

1.2. 선언형 컨피규레이션

명령형 컨피규레이션 (동작을 정의)

apt-get update 
apt-get install nginx 
echo "server { 
    listen 80; server_name example.com; root /var/www/example; 
    }" > /etc/nginx/sites-available/example
ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/
service nginx restart

선언형 컨피규레이션 (상태를 정의 & 어떻게 할 건지는 쿠버네티스가 알아서~)

apiVersion: apps/v1
kind: Deployment
metadata: 
  name: nginx-deployment 
spec: 
  replicas: 3 
  selector: 
    matchLabels: 
      app: nginx 
  template: 
    metadata: 
      labels: 
        app: nginx 
    spec: 
      containers: 
      - name: nginx 
      image: nginx:1.14.2
      ports: 
      - containerPort: 80

1.3. 온라인 자가 치유 시스템

2. 확장성

2.1. 애플리케이션과 클러스터의 손쉬운 확장

2.2. 마이크로서비스를 통한 개발 팀 확장

애플리케이션 컨테이너 이미지와 머신을 분리하면 각기 다른 마이크로서비스가 동일한 머신에 위치하게 해 서로 간섭하지 않도록 배치할 수 있으며, 이를 통해 마이크로서비스 아키텍처에서 오버헤드와 비용을 줄일 수 있다.

  • P. 42

2.3. 일관성과 확장에 대한 고려 사항 분리

책임의 분리

API를 통한 운영 팀의 분리

3. 인프라 추상화

클라우드는 클라우드 제공자에 특화된 구현 세부 사항이나 서비스와 함께 제공된다. 이러한 API를 직접 호출하는 것은 다양한 환경에서 애플리케이션 실행이나 클라우드와 물리 환경 간 배포를 어렵게 만든다.

  • P. 44
장점

쿠버네티스 PersistentVolume과 PersistentVolumeClaim의 경우 애플리케이션을 특정 스토리지 구현체로부터 추상화할 수 있다.

  • P. 45

4. 효율성

효율성 = 머신이나 프로세스가 수행한 유용한 작업과 해당 작업을 수행하는 데 소비한 전체 에너지 양의 비율

5. 클라우드 네이티브 에코시스템

youngduck98 commented 3 weeks ago

3. 인프라 추상화

youngduck98 commented 3 weeks ago

정의

클라우드 환경에서 애플리케이션을 구축, 배포, 운영하기 위해 설계된 도구, 기술, 관행, 그리고 서비스들의 모음

주요 요소

container

장점

관련 구성체

CNCF (Cloud Native Computing Foundation)