일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Spring #Spring Boot #Java
- 카카오클라우드스쿨
- 1110
- kakaocloud
- 24479
- boj
- 7568
- Spring #Java #Spring Boot #싱글톤
- 15552
- 2447
- java
- Java #백준 #코딩테스트
- 파이썬
- Java #오븐시계 #백준
- 11053
- Spring #Java #Spring Boot
- 카카오 클라우드 스쿨
- SpringTokenizer
- kakaocloudschool
- node
- sequelize
- 백준
- 알고리즘
- Java #코딩테스트
- Spring
- Spring #Java #Spring Boot #@BeforeEach #@AfterEach
- 11054
- 9020
- 코딩테스트
- python
- Today
- Total
목록Cloud (11)
YoungSoo

왜 Deployment를 선택했어? AWS EKS를 통해 Kubernetes를 사용하면서 Pod를 어떻게 띄울 지에 대해 고민을 하게 되었습니다. 롤링 업데이트와 같은 배포 전략이 불필요하다면 Deployment가 아닌 단순하게 ReplicaSet 혹은 DaemonSet을 통해 Pod를 관리해 줄 수 있지만 저는 여러 배포 전략 중에 무중단 배포를 위한 롤링 업데이트(Rolling Update)를 선택하여 Deployment를 구성해주었습니다. Deployment를 통해 Worker Node에 Pod를 할당을 했지만... 처음 Deployment를 통해 각각의 Worker Node에 Pod를 할당해 주면 골고루 나누어 들어갈 것이라고 생각이 들었습니다. 하지만 제가 생각한 것과 다르게 아래와 같이 하나의..

서비스의 개념 서비스는 동적으로 변하는 파드들에 고정적으로 접근할 때 사용하는 방법입니다. 서비스 타입 ClusterIP : 기본 서비스 타입이며 쿠버네티스 클러스터 안에서만 사용할 수 있습니다. 클러스터 안 노드나 파드에서는 클러스터 IP를 이용해서 서비스에 연결된 파드에 접근합니다. 클러스터 외부에서는 이용할 수 없습니다. NodePort : 서비스 하나에 모든 노드의 지정된 포트를 할당합니다. 클러스터 안 뿐만 아니라 외부에서도 접근할 수 있습니다. 특이한 점은 파드가 하나만 실행되었을 때 다른 파드에서 접속하면 실행되어있는 파드로 연결한다는 것입니다. LoadBalancer : AWS, GCP 등 쿠버네티스를 지원하는 로드밸런서 장비를 이용합니다. 클라우드에서 제공하는 로드밸런서와 파드를 연결한 ..
컨트롤러는 파드들을 관리하는 역할을 합니다. 다양한 목적에 맞게 사용할 수 있는 컨트롤라가 있다는 것이 쿠버네티스의 큰 장점입니다. 레플리케이션 컨트롤러(Replication Controller) 초기 버전의 쿠버네티스에서 사용되던 리소스 중 하나입니다. 레플리카를 관리하고, 레플리카의 개수를 유지하며, 레플리카의 상태를 모니터링하는 역할을 합니다. 레플리카세트(ReplicaSet) 레플리케이션 컨트롤러의 업그레이드 버전입니다. 레이블 셀렉터를 사용하여 관리하는 파드를 지정할 수 있습니다. 파드 수를 자동으로 조절하여 지정된 개수만큼 레플리카를 유지하는 역할을 합니다. 디플로이먼트(Deployment) ReplicaSet을 기반으로 만들어진 리소스입니다. ReplicaSet의 역할을 대체할 수 있으며, ..
파드 파드 개념 쿠버네티스는 실제로 파드라는 단위로 컨테이너를 묶어서 관리하므로 보통 컨테이너 하나가 아닌 여러 개 컨테이너로 구성됩니다. 파드로 컨테이너 여러 개를 한꺼번에 관리할 때는 컨테이너마다 역할을 부여할 수 있습니다. 파드 하나에 속한 컨테이너는 모두 노드 하나 안에서 실행되는데 파드의 역할 중 하나가 컨테이너들이 같은 목적으로 자원을 공유하는 것이므로 가능한 일입니다. 하지만 하나의 컨테이어네서 프로세스를 여러 개 실행하는 것은 번거롭고 관리 효율도 떨어집니다. 파드 구성 패턴 컨테이너 기반의 분산 시스템 디자인패턴 사이드카 패턴 원래 사용하려던 기본 컨테이너의 기능을 확장하거나 강화하는 용도의 컨테이너를 추가하는 것입니다. 기본 컨테이너는 원래 목적의 기능에만 충실하도록 기능하고, 나머지 ..
쿠버네티스 클러스터의 전체 구조 쿠버네티스 클러스터는 크게 두 종류의 서버인 클러스터를 관리하는 마스터와 실제 컨테이너를 실행시키는 노드로 구분한다. 마스터 마스터노드가 1대라면 etcd, kube-apiserver, kube-scheduler, kube-controller-manager, kubelet, kube-proxy, docker 이 프로세스들을 한 묶음으로 해당 서버에서 실행하는 것이 일반적 보통 고가용성을 만족하고자 3대의 서버를 구성해서 운영하고 평소에 실제로 클러스터 관리는 1대의 리더 마스터이고 나머지 2대는 대기합니다. 클러스터를 조금 더 안정적으로 운영하기 위해서 5대로 구성할 수도 있습니다. 노드 노드에는 kubelet, kube-proxy, docker 등의 컴포넌트가 실행됩니다..
Kubectl 쿠버네티스 자원들의 생성, 업데이트 ,삭제 디버그, 모니터링, 트러블 슈팅 클러스터 관리 Kubeadm, Kubespray 등은 마스터 노드에 kubectl이 설치되어 있으며, 마스터 노드에 직접 접근해 클러스터 관리자 권한으로 kubectl 관련 명령들을 사용할 수 있지만 이 방식으로는 여러 사용자의 권한을 제어할 수 없다는 문제가 있습니다. 클러스터 사용자 각각은 클러스터 외부에 kubectl을 설치하고 인증 정보를 설정해야 합니다. 기본 사용법 kubectl [command] [TYPE] [NAME] [flags] command : 자원에 실행하려는 동작(create, get, delete 등) TYPE : 자원의 타입(pod, service. ingress 등) NAME : 자원 이..
Kubeadm 쿠버네티스에서 공식 제공하는 클러스터 생성/관리 도구. etcd : 쿠버네티스 클러스터의 데이터 저장소 역할 명령어 - init, join, upgrade, config, reset, token, version Kubespray 상용 서비스에 적합한 보안성과 고가용성이 있는 쿠버네티스 클러스터를 배포하는 오픈 소스 프로젝트 설정에 따라 사용자에게 맞는 다양한 형식으로 쿠버네티스 클러스터를 구성할 수 있어 온프로미스 환경에서 쿠버네티스 클러스터를 구성할 때 유용. 온프로미스는 기업의 서버를 클라우드와 같이 '가상의 공간'이 아니라, 자체적으로 보유하고 있는 서버에 직접 설치하고 운영하는 방식 ingress-nginx 컨트롤러, 헬름, 볼륨 플러그인 cephfs를 프로비저닝하는 cephfs-p..

Kubernetes는 컨테이너 오케스트레이션 시스템으로, 도커와 같은 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하는 오픈소스 플랫폼입니다. Kubernetes는 줄여서 k8s라고 하기도 합니다. Kubernetes는 컨테이너화된 애플리케이션을 클러스터로 구성하고, 애플리케이션을 배포하기 위한 인프라를 제공합니다. 이러한 클러스터는 하나 이상의 마스터 노드와 다수의 워커 노드로 구성됩니다. 마스터 노드는 클러스터의 상태를 관리하고, 워커 노드는 컨테이너화된 애플리케이션을 실행합니다. Kubernetes는 컨테이너 애플리케이션의 스케일링과 로드밸런싱, 컨테이너 간의 통신, 롤링 업데이트, 롤백, 자가 치유 및 자동 복구 등의 다양한 기능을 제공합니다. 또한, Kubernetes는 애플리케이션 ..