본문 바로가기

K8S

(9)
kubernetes statefulset kubernetes statefulset 관리하고 구성,유지,스케일링측면에선 디플로이먼트와 유사한 특징을 갖고있지만 차이점은 각 파드의 순서,고유성을 보장하며 영구스토리지 볼륨에 할당함 -파드의 이름 (pod-1,pod-2 ....) -파드의 볼륨 즉 문제가 생긴 파드와 똑같은 이름,IP를 가진 파드로 유지생성된다 파드내의 프로그램,기타다른정보들을 저장하고자 하는경우 사용한다. ●kubernetes statefulset 생성,관리 레플리카셋,레플리케이션,디플로이등등 서비스는 기본적으로 레이블셀렉터를 기준으로 생성관리해주지만 스테이트풀셋의경우 파드를 고유하게 식별해야 관리할 수 있다. 그러기위해선 헤드리스 시버스를 지정해야한다 ( serviceName: ) 예제 apiVersion: apps/v1 kind..
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 create & apply 차이점? 쿠버네티스 create VS apply 차이점 쿠버네티스의 Pod 를 배포하는 명령어로 kubectl create 와 kubectl apply 의 두가지 명령어가있다. ●kubectl create : 명령형 관리를 위한것 create는 새로운 리소스를 생성하고 리소스가 이미 존재하면 error가 발생함 ●kubectl apply : 선언적 관리를 위한것 apply는 기존리소스에 변경사항을 적용시켜주고 유지관리시켜줌 리소스가 이미 존재하면 error없이 변경사항만 적용 command 리소스가 존재하지 않을 경우 리소스가 이미 존재할 경우 create 새로운 리소스가 생성 ERROR가 발생 apply 새로운 리소스가 생성 리소스를 구성 (부분적인 spec을 적용) replace ERROR가 발생 리소스가 삭..
kubernetes infra container pause kubernetes infra container (pause) 쿠버네티스에서 파드가 실행될때 pause 라는 컨테이너가 항상 실행되는데 이를 infra container 라고 부름 pause 컨테이너의 역할은 파드에 대한 infra 즉 IP,host를 관리하고 생성해준다. 컨테이너가 삭제되면 pause도 함께 삭제된다.
kubernetes init container kubernetes init container 초기화컨테이너(init container)는 APP컨테이너가 실행되기전에 파드를 초기화 해준다 초기화컨테이너는 여러개를 구성할 수 있다. 초기화컨테이너의 실행이 실패하면 성공할 때까지 재시작된다. 즉 필요한 명령,제어,조건들을 순서대로 실행하는데 사용 초기화컨테이너가 성공해야 APP컨테이너 실행된다. 초기화컨테이너는 파드가 모두 준비되기전에 실행한 후 종료되는 컨테이너이기 때문에 Probe기능을 지원하지 않는다. 초기화컨테이너는 파드가 재시작 되었다면 반드시 다시 실행된다. APP컨테이너 즉 Main container를 실행하는데 있어 init container 기능을 활용하여 메인컨테이너가 요구하는 환경,조건이 제데로 구성되어있는지 점검하고 완료되면 메인컨..
kubernetes Probe? self-healing kubernetes Probe self-healing 쿠버네티스 Probe self-healing 이란 kubelet에 의해 컨테이너를 주기적으로 체크해서 컨테이너를 재시작하거나 문제가있는 파드(컨테이너)를 중지 시키는 진단기능 이다 쿠버네티스는 총3가지의 probe를 제공한다. ●livenessprobe 매커니즘 쿠버네티스에서 제공하는 self-healing 기능 중 하나 컨테이너 마다 지정할수있음. 컨테이너가 동작할수있는지 확인하고 동작하지 않거나 문제가 발생할경우 정책에따라 재시작한다 livenessprobe를 컨테이너에 지정하지않으면 기본값은 success 즉 진단에성공했다고 판단함. 컨테이너(APP)의 용도,목적에 따라 livenessprobe 3가지의 매커니즘으로 관리할수있다. ● httpGe..