본문 바로가기

전체 글159

ReplicaSet, Deployment 레플리카 셋 레플리카 셋은 일정 개수의 파드를 유지하는 컨트롤러이다. 파드 개수에 대한 가용성을 보증하여 안정적인 실행을 유지하는 역할을 한다. 레플리카셋의 사용 이유 🌱 레플리카셋 없이 yaml으로 파드만 사용하는 방법의 한계 파드 개수가 많아지는 경우, yaml에 파드를 일일이 정의하는 것은 매우 비효율적이다. 파드가 생성된 노드에 장애가 발생하는 경우, 파드는 복구되지 않고 종료된 상태로 남는다. 🌱 레플리카셋의 역할 정해진 수의 동일한 파드가 실행되도록 유지한다. 노드 장애 등의 이유로 파드를 사용할 수 없다면 다른 노드에서 파드를 다시 생성한다. 레플리카셋 사용하기 🌱 레플리카셋 생성 레플리카셋을 정의하는 yaml 파일 작성 : vim replicaset-nginx.yaml spec.replic.. 2023. 10. 29.
Pod, NameSpace 파드 파드가 뭐에요 쿠버네티스의 리소스 오브젝트 1개 이상의 컨테이너로 구성된 컨테이너 집합 컨테이너 애플리케이션을 배포하기 위한 기본 단위이다. 그래서 하나의 파드는 하나의 완전한 애플리케이션이다. 파드는 애플리케이션을 여러 컨테이너로 분리해야 할 때, 이러한 컨테이너들이 공유해야 하는 리소스를 관리하면서도 하나의 논리적인 단위로 사용된다. 파드 생성부터 접속, 삭제까지 🌱 파드 생성을 위한 yaml 파일 작성 apiVersion: v1 # 오브젝트 api 버전 kind: Pod # 리소스 종류 metadata: # 리소스의 부가정보 name: my-nginx-pod spec: # 리소스 생성을 위한 정보 containers: # 컨테이너 정보 - name: my-nginx-container # 컨테이.. 2023. 10. 29.
쿠버네티스 시작하기 : 내부 구조 쿠버네티스를 시작하기 전에 모든 리소스는 오브젝트 형태로 관리된다. 오브젝트 생성은 명령어로도 사용할 수 있지만 YAML 파일을 더 많이 사용한다. 쿠버네티스의 내부 구조 🌱 마스터 노드 API 서버 kube-api-server 컨트롤러 매니저 kube-container-manager 스케줄러 kube-scheduler DNS 서버 core-DNS 🌱 워커 노드 통신 에이전트 kubelet : 노드 내부에서 컨테이너 런타임과 통신, 외부에서 마스터 노드와 통신하는 에이전트 컨테이너 런타임 파드 🌱 모든 노드 프록시 kube-proxy 네트워크 플러그인 calico, flannel 2023. 10. 29.
GKE 설치 쿠버네티스 설치 환경의 종류 쿠버네티스 사용 용도 개발 용도 : 로컬 노드에만 설치하고 사용. 노드 한개로는 클러스터에 컨테이너를 배치하는 작업의 결과를 확인할 수 없음. 기본 기능 테스트 및 로컬 개발 용도로 제한됨. ex) Docker Desktop, Minikube 서비스 테스트 또는 운영 용도 : 클라우드 환경에서 수십 개의 서버에 설치. 운영 용도의 쿠버네티스 환경 온프레미스 : 자체 서버 환경에 쿠버네티스를 포함한 모든 인프라를 직접 구성하고 관리 ex) kubespray, kubeadm 클라우드 플랫폼 : 인프라 관리는 클라우드에게 위임하고 쿠버네티스 설치와 관리는 사용자가 담당 ex) kops 클라우드 매니지드 서비스 : 인프라 생성 관리, 쿠버네티스 설치와 관리까지 클라우드 제공자가 담당.. 2023. 10. 29.
쿠버네티스란? 쿠버네티스란? macOs m1 환경에서 Kubernetes 시작하기(feat. Docker) macOs m1 환경에서 Kubernetes 시작하기(feat. Docker) - kubernetes 개발환경과 운영환경의 구축 방식이 다름을 이해할 수 있다. - macOs m1 환경에서 kubernetes 개발환경을 구축할 수 있다. - docker와 kubernetes 각각으로 배포를 실습하고 간단한 차이를 인지해 velog.io 태초의 개념인 컨테이너부터 시작해보자. 가상화와 컨테이너 애플리케이션을 컨테이너로 패키징 컨테이너화된 애플리케이션을 클러스터에서 관리 가상화와 컨테이너 가상화를 사용하지 않은 물리 서버 : 애플리케이션의 리소스 경계를 정의할 수 없어 애플리케이션의 성능 저하 문제 발생 호스트 O.. 2023. 10. 29.
AWS RDS 구성하고 Spring Boot와 JPA, Docker Run, Github Action과 연동하기 기존 프로젝트를 리팩토링하기 전에 도커, AWS, Github Actions를 이용해 배포 파이프라인을 만들어보려고 한다. 이 글은 그중 세번째인 RDS 연동과 기존 파이프라인에 반영하는 부분을 다룬다. 순서 AWS RDS 구성 로컬에서 접속해서 데이터베이스 생성 스프링 부트 & 스프링 데이터 JPA 테스트 코드 작성 로컬 환경에서 환경변수 주입해 docker run 테스트 github action 연동 AWS RDS 구성 AWS RDS를 다음 옵션으로 생성한다. (DB Engine, 이름, 계정과 비번 등은 원하는 것 선택) free tier public access : yes 파라미터 그룹 추가하고 RDS 인스턴스에 연결 time_zone : Asia/Seoul character_set_client .. 2023. 10. 29.