반응형 Development, Architecture30 [쿠버네티스] 스테이트풀셋 스테이트풀셋주요 용도안정된 프레임워크에서 동작하는 애플리케이션에 스케일링 기능을 제공하는 파드 컨트롤러.주로 데이터베이스, 메시지 큐, 로그 처리 시스템 등 상태 정보를 유지해야 하는 애플리케이션에 사용 특징고유한 네트워크 ID: 스테이트풀셋에서 생성되는 각 파드는 규칙적인 이름과 고유한 네트워크 ID(도메인 네임)를 가진다. 예를 들어, 파드 이름이 statefulset-0, statefulset-1, statefulset-2와 같이 부여된다.순차적 생성 및 종료: 파드는 순서대로 생성되고 종료된다. 첫 번째 파드가 Running 상태가 되면 그 다음 파드가 생성되는 식으로 동작다.apiVersion: apps/v1kind: StatefulSetmetadata: name: example-statefu.. 2024. 7. 27. [쿠버네티스] 다양한 컨테이너 유형 정리 알아볼 유형은 크게 3가지(기본은 뺏음)1. 초기화 컨테이너2. 사이드카 컨테이너(로그 수집 등에 활용)3. 앰버서더 컨테이너(프록시 서버 등에 활용) 1. 초기화 컨테이너 (Init Containers)초기화 컨테이너는 파드(Pod) 내의 일반 컨테이너들이 시작되기 전에 실행되는 특수한 컨테이너로, 파드가 정상적으로 작동하기 위해 필요한 초기화 작업을 수행 주요 특징:순차 실행: 초기화 컨테이너는 일반 컨테이너가 시작되기 전에 순차적으로 실행됨독립된 환경: 각 초기화 컨테이너는 다른 초기화 컨테이너와 독립된 환경에서 실행되기 때문에 서로 다른 이미지를 사용할 수 있음실패 처리: 초기화 컨테이너가 실패하면, Kubernetes는 이를 재시도하며, 모든 초기화 컨테이너가 성공적으로 완료될 때까지 일반 컨.. 2024. 7. 27. [쿠버네티스] 레플리카셋, 데몬셋 레플리카셋파드의 개수관리 - 디플로이먼트가 레플리카셋을 관리하는 컨트롤러 리소스라면 레플리카셋은 파드를 관리하는 컨트롤러 리소스- 그럼 디플로이는 왜 존재하는가? 롤링 업데이트 또는 자동롤백이 가능하려면 디플로이먼트가 있어야됨 롤링 업데이트: 새로운 버전의 애플리케이션을 배포할 때, 중단 없이 파드를 점진적으로 교체할 수 있음. 새로운 파드를 생성하면서 기존 파드를 점진적으로 종료자동 롤백: 배포 도중 문제가 발생하면 이전 버전으로 자동 롤백 데몬셋클러스터 내 모든 노드 또는 셀렉터와 일치하는 일부 노드에서 단일 레플리카 또는 파드로 동작하는 리소스 - 데몬셋을 사용해서 고가용성을 확보하는 예시: 리버스 프록시- 데몬셋은 모든 노드에 nginx 리버스 프록시를 배포함으로써 모든 노드의 고가용성을 제공.. 2024. 7. 27. [쿠버네티스] 볼륨 종류 1. 공 디렉토리 볼륨 (emptyDir)특징:파드와 동일한 생애 주기: emptyDir 볼륨은 파드가 생성될 때 빈 디렉토리로 생성되고, 파드가 삭제될 때 함께 삭제됩니다.데이터 유지: 파드 내의 컨테이너가 재시작되거나 대체되더라도 데이터는 유지됩니다.임시 스토리지: 주로 캐시, 임시 데이터 저장소 등 일시적인 데이터 저장에 사용됩니다.예시:apiVersion: v1kind: Podmetadata: name: emptydir-examplespec: containers: - name: busybox image: busybox command: ['sh', '-c', 'while true; do sleep 3600; done'] volumeMounts: - mountPath: /d.. 2024. 7. 27. [쿠버네티스] 서비스 유형별 정리 1. ClusterIP용도: 파드 간 통신서비스가 생성되면 k8s 내부 DNS 서버에 서버 IP 주소가 등록됨 사실 서비스가 없어도 파드의 IP를 직접 알아내어 파드 간 통신을 할 수 있음. 하지만 이러면 재생성된 파드에 대해 대응을 못함(IP가 바뀌어서) name: api-serviceport 80targetPort 80selector: numbers_api 2. LoadBalancer용도: 외부 트래픽 전달 spec: ports: - port: 8080 # 서비스가 주시하는 포트 - targetPort: 80 # 트래픽이 전달될 파드의 포트 selector: app: numbers-web 3. NodePort용도: 외부 트래픽을 전달하는 또다른 방법(실제론 잘.. 2024. 7. 22. [Docker] 도커 컨테이너의 볼륨 개념을 알아보자. 도커(Docker)에서 볼륨(Volume)은 컨테이너와 호스트 간 데이터를 공유하기 위한 기능입니다. 원래 컨테이너 내의 데이터는 컨테이너가 삭제되는 순간 아예 사라져버립니다. 컨테이너는 호스트와 연관되지 않고 데이터를 독립적으로 가지고 있기 때문이죠. 하지만 볼륨을 사용하게되면 컨테이너가 삭제되더라도 호스트에 데이터를 유지할 수 있기 때문에, 데이터의 지속성(Persistence)을 보장할 수 있습니다. 볼륨은 다양한 종류의 저장소를 사용할 수 있습니다. 도커 내장 드라이버인 local, NFS, Amazon EBS, Azure Disk 등 다양한 드라이버를 사용할 수 있습니다. 또한, 호스트 경로나 다른 컨테이너의 볼륨을 공유할 수도 있습니다. 볼륨을 생성하는 방법에는 크게 두 가지가 있습니다. 첫 .. 2023. 3. 18. 이전 1 2 3 4 5 다음 반응형