본문 바로가기

IT Study/Kubernetes

(17)
kubernetes statefulset kubernetes statefulset 관리하고 구성,유지,스케일링측면에선 디플로이먼트와 유사한 특징을 갖고있지만 차이점은 각 파드의 순서,고유성을 보장하며 영구스토리지 볼륨에 할당함 -파드의 이름 (pod-1,pod-2 ....) -파드의 볼륨 즉 문제가 생긴 파드와 똑같은 이름,IP를 가진 파드로 유지생성된다 파드내의 프로그램,기타다른정보들을 저장하고자 하는경우 사용한다. ●kubernetes statefulset 생성,관리 레플리카셋,레플리케이션,디플로이등등 서비스는 기본적으로 레이블셀렉터를 기준으로 생성관리해주지만 스테이트풀셋의경우 파드를 고유하게 식별해야 관리할 수 있다. 그러기위해선 헤드리스 시버스를 지정해야한다 ( serviceName: ) 예제 apiVersion: apps/v1 kind..
kubernetes daemonset controller kubernetes daemonset controller 데몬셋 컨트롤러는 노드당 1개씩의 pod를 보장해준다. 특정 node에만 pod보장도 가능하다. 로그수집,모니터링 같은 항상실행 시켜두어야 하는 POD에 적용된다. 데몬셋 예제 apiVersion: apps/v1 kind: DaemonSet metadata: name: nginx-daemonset spec: selector: matchLabels: app: web version: "1.14" template: metadata: labels: app: nginx version: "1.14" spec: containers: - name: nginx image: nginx:1.14 nodeSelector: node: daemon rolling updat..
kubernetes deploymemt rollingupdate kubernetes deploymemt rollingupdate 디플로이먼트는 쿠버네티스에서 상태가없는 앱을 배포할때 가장 기본적인 컨트롤러이다. 디플로이먼트는 레프리카셋을 관리하면서 앱 배포를 더 세밀하게 관리한다. 파드갯수를 보장해주는것 뿐만아니라 롤링,롤백업데이트를 지원한다. 롤링업데이트(rollingupdate): 파드를 점진적으로 새로운것으로 업데이트 하여 서비스 중단 없이 이루어질 수 있도록 함 레플리카셋을 제어해주는 부모역할을 하는 디플로이먼트. ●deployment Controller 생성 ,관리 및 확인 NAME READY STATUS RESTARTS AGE pod/nginx-deploy-84455b7b7c-7ffbf 1/1 Running 0 13s pod/nginx-deploy-8445..
kubernetes replicaset controller kubernetes replicaset controller replicaset은 레플리케이션 컨트롤러와 같은역할을 한다 파드의 갯수를 보장 ...등 한가지 차이점은 집합성 기준의 풍부한 레이블 셀렉터(matchlabels,matchExpressions)를 지원한다.레플리카셋 컨트롤러의 API 버전은 apps/v1버전을 사용 레플리케이션 컨트롤러: key:value 타입 의 일치성 기준 "키=값" 둘다 일치해야만 지원레플리카셋 컨트롤러 : 집합성+일치성 기준 "키=값" ,"키=X" 둘다 일치 혹은 둘중하나만 일치해도 지원 matchExpressions 연산자 ●In : key:value 의 지정된 값이 일치해야 하는 pod만 연결 ●Notin : key는 일치하고 value는 일치 하지않은 pod에 연결 ..
kubernetes ReplicationController kubernetes ReplicationController 쿠버네티스의 가장 기본적인 컨트롤러로 지정한 숫자만큼 파드를 항상 보장해준다. 지정한 파드의수 보다 적거나,많으면 파드의갯수를 조절하여 지정된 갯수만큼 보장.자동&수동으로 스케일링 기능 가능 레플리케이션 컨트롤러를 구성하는 가장중요한 3가지 요소. ●replicas -> 보장해 줄 파드의 갯수 ●selector -> 복제할 파드의 레이블 셀렉터 key:value 타입 ●template -> 복제할 파드를 만들기위한 파드템플릿 레플리케이션 컨트롤러 구성방법. yaml 예제 apiVersion: v1 kind: ReplicationController metadata: name: rc-nginx spec: replicas: 3 selector: app..
kubernetes controller kubernetes controller 쿠버네티스의 컨트롤러기능은 파드들을 다양한 목적(감시,안정적관리 등)에 따라 운영되게하는 기능이다. Auto healing , S/W update , Audo scaling , jog 제공하는 컨트롤러 기능은 다음과 같이 몇가지 가 있다. ●레플리케이션 컨트롤러(Replication controller) ●레플리카 셋(ReplicaSet) ●디플로이먼트(Deployment) ●데몬세트(Deamon Set) ●스테이트 풀 세트(StatefulSet) ●잡(Job) ●크론잡(CronJob) 각 컨트롤러별 설정방법과 특징은 차례로 포스팅예정~~
kubernetes Multi-Container Pod & 파드 디자인 패턴 kubernetes Multi-Container Pod & 파드 디자인 패턴. 멀티 컨테이너 파드(Multi-Container Pod)란 2개이상의 서로다른 APP컨테이너를 포함하고있는 Pod를 의미한다 하나의 pod안에는 하나의 app컨테이너를 동작시키게 되지만 필요에따라서 메인 app컨테이너에 보조적인 역할을 할수있는 컨테이너를 추가하여 운영하기도함 이미지 출처 : Matthew Palmer Multi-Container Pod Design Patterns - CKAD Course Multi-Container Pod Design Patterns in Kubernetes Multi-container pods are extremely useful for specific purposes in Kubernet..
kubernetes pod 환경변수 설정 kubernetes pod 환경변수 설정 Pod내의 컨테이너가 실행될때 필요로 하는 변수 컨테이너 제작시 미리 정의할수있음. Pod 실행시 미리 정의된 컨테이너 환경변수를 변경할수있음. apiVersion: v1 kind: Pod metadata: name: ngin-pod-env spec: containers: - image: nginx:1.14 name: ngin-pod-env ports: - containerPort: 80 env: - name: MYVAR value: "testvalue" ●env: 필드값 name: 사용할 환경변수의 이름을 설정 value: 문자열이나 숫자 형식의 값을 설정 valueFrom:값을 직접 할당하는 것이 아니라 어딘가 다른곳에서 참조하는 값을 설정 fieldRef:파..