본문 바로가기

Cloud42

설정값 전달 : ConfigMap, Secret 설정값을 파드에 전달하기 🌱 설정값 타입 Key Value 설정 파일 🌱 설정값이나 설정파일을 애플리케이션에 전달하는 다양한 방법 도커 이미지에 설정 정보를 정적으로 저장 → 유연하지 않음 yaml 파일에 설정값 하드 코딩 → 설정 환경마다 다른 yaml 파일 존재 yaml 파일과 설정값 분리 → 보안값은 시크릿, 일반 환경설정값은 컨피그맵에 저장 🌱 yaml 파일과 설정값을 분리하는 방식의 장점 설정값 변경에 유리 : 애플리케이션에 필요한 설정이 바뀌어도 설정값 파일만 관리하면 되기 때문에, 간단하고 실수 없이 변경할 수 있다. 환경에 따른 설정값 분리 : 운영, 개발, 테스트 환경에서 사용하는 설정값을 분리하면, 같은 yaml 파일에 설정값만 바꿔서 실행할 수 있다. 설정값 재사용 : 설정 값을 따로.. 2023. 10. 29.
NameSpace 관리 요약 네임스페이스는 쿠버네티스에서 리소스를 논리적으로 구분하기 위해 사용하는 오브젝트이다. 파드, 레플리카셋, 디플로이먼트, 서비스와 같은 쿠버네티스 리소스들이 묶여있는 하나의 가상 공간이다. 리소스를 논리적으로 묶어서 가상 클러스터처럼 사용할 수 있다. 대부분 모니터링, 로드 밸런싱 인그레스 등을 위한 용도로 사용한다. 한편 네임스페이스에 속하지 않는 오브젝트도 있는데, 보통 클러스터 전반에 걸쳐 사용되어 특정 네임스페이스에서 관리되지 않아야 하는 노드 등이 있다. 특정 네임스페이스에 속하는 리소스는 다른 네임스페이스에서 직접 접근할 수 없으며, 네임스페이스의 이름을 통해서만 접근 가능하다. 네임스페이스의 사용 목적 네임스페이스는 쿠버네티스의 리소스를 논리적으로 구분하기 위해 사용한다. 다음과 같이 활.. 2023. 10. 29.
Service 서비스 서비스 외부와 접하는 단일 엔드포인트 뒤에 있는 클러스터에서 실행되는 애플리케이션을 노출시키며, 이는 워크로드가 여러 백엔드로 나뉘어 있는 경우에도 가능하다. kubernetes.io 서비스 소개 🌱 서비스란? 디플로이먼트의 파드를 연결하고 포트를 외부에 노출하는 오브젝트 파드의 논리적 집합과 그것들에 접근할 수 있는 정책을 정의하는 추상적 개념 서비스 추상화의 Decoupling : 백엔드 세트를 구성하는 파드가 프론트엔드 세트를 구성하는 파드에 기능을 제공하는 상황을 가정해보자. 백엔드 세트를 구성하는 실제 파드는 변경될 수 있지만, 프론트엔드 클라이언트는 이를 인식할 필요 없이 의존성을 유지할 수 있다. (이거 의존성주입 아녀~) 🌱 서비스의 기능 여러개의 파드에 쉽게 접근할 수 있도록 고유.. 2023. 10. 29.
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.