본문 바로가기

클라우드/쿠버네티스(Kubernetes)

(47)
쿠버네티스 Kubernetes 레플리카셋 (ReplicaSet) In ( a : b ) => ( a : b ) NotIn ( a : b ) =>( a : !b ) Exists ( a : b ) => ( a : all ) DoseNotExist ( a : b ) => ( !a : all ) 더보기 # 레플리카셋과 레플리케이션 컨트롤러 비교 셀렉터만 다르다 레플리케이션 컨트롤러 : 일치성기준 레이블 셀렉터 지원 레플리카셋 : 일치성 및 집합성 기준 레이블 셀렉터 지원 # 일치성 기준 레이블 셀렉터 키(key)와 값(value) 모두 일치 # 집합성 기준 레이블 셀렉터 키=값 모두 일치하더나 키(key)만 일치하는것도 지원 # YAML 파일 작성 # 레플리카셋은 apps/v1 API버전 사용 vagrant@k-control:~$ cat ldh-rs.yml apiVersio..
쿠버네티스 Kubernetes 레플리케이션 컨드롤러 (Replication Controller) 더보기 # 레플리케이션 컨트롤러 ReplicationController(RC) 컨트롤러에 따라 파드를 관리하는 방법이 다르다 파드단위로 복제 된 복제본을 제어 복제= 서비스를 지속시키는데에 좋다 Scale out (로드밸런서 필요) 분산 아키텍처 구성에는 레플리케이션 컨트롤러가 가장 적합 레플리케이션 컨트롤러가 레이블 셀렉터를 이용하여 관리할 대상의 선택 # 레플리케이션 컨트롤러 구성 1. 파드를 지정하는 레이블 셀렉터 2. 파드를 생서아기위한 파드 템플릿? 3. 복제본 수 # 레플리케이션 컨트롤러가 제공하는 기능 원하는 복제본 수의 파드가 없는경우 파드 템플릿을 이용하여 파드를 생성 노드에 장애가 발생하면 장에가 발생한 노드에서 실행중이던 파드를 다른 노드에 복제본을 생성 수동이나 자동으로 파드를 수평..
쿠버네티스 Kubernetes 컨테이너 프로브(Probe) 더보기 # 컨테이너 프로브 탐지, 탐색 컨테이너 프로브는 kubelet이 컨테이너를 주기적으로 진단하는 프로브 핸들러를 호출 컨테이너 상태를 조금 더 구체적이게 탐지 # 프로브 핸들러 메커니즘 # HTTPGetAction 특정 경로에 HTTP GET 요청 HTTP 응답 코드가 2xx인지 3xx인지 확인 #TCPSocketAction 특정 TCP 포트 연결 포트가 활성화되어 있는지 확인 # 프로브(Probe)의 결과 상태 Success : 컨테이너가 진단을 통과 Failure : 컨테이너가 진단에 실패 UnKnown : 진단 자체가 실패 # 프로브의 종류 #livenessProbe 컨테이너가 동작중인지 주기적으로 체크 진단에 실패하면 재시작 정책 작용 livenessProbe를 선언하지 않으면 기본상태는 ..
쿠버네티스 Kubernetes 파드(Pod)의 생명 주기 더보기 # 파드의 생명주기 Pending -> Running -> Succeeded, Failed 쿠버네티스의 구성 요소인 kubelet는 파드의 컨테이너 상태를 추적 오류가 발생하면 재시작한다 파드는 최초에 생성될 때 한번 스케줄링 된다 중지되거나 종료될때까지 같은 노드에서 실행 # 파드의 생명주기 파드를 일회용으로 간주 컨트롤러 리소스를 이용하여 파드 관리 # 파드의 단계 확인 # kubectl get pods 명령어 결과중에 STATUS 필드에서 확인 # 파드 오브젝트의 .status.phase 필드에서 확인 vagrant@k-control:~$ kubectl get pod ldh-pod -o jsonpath='{.status.phase}' Running # 파드의 단계 #Pending pullin..
쿠버네티스 Kubernetes 네임스페이스(namespace) 더보기 # 네임스페이스 # 오브젝트를 논리적으로 분리할 수 있는 논리적 파티션 # 네임스페이스 확인 vagrant@k-control:~$ kubectl get namespace NAME STATUS AGE default Active 44h # 기본 네임스페이스 -설정 안하면 default kube-node-lease Active 44h # 쿠버네티스 노드의 가용성을 체크 kube-public Active 44h # 모든 사용자가 읽기 권한으로 접근 가능 kube-system Active 44h # 쿠버네티스 클러스터의 핵심 리소스 배치 # 네임스페이스의 오브젝트 확인 vagrant@k-control:~$ kubectl get pods -n kube-system NAME READY STATUS RESTAR..
쿠버네티스 Kubernetes 어노테이션 (Annotation) 더보기 # 어노테이션 # 주석 비슷한것,검색용 아님 # 비식별 메타데이타 1. 정보성 2. 다른 어플리케이션이 어노케이션 특정키를 참조 # 어노테이션 추가 vagrant@k-control:~$ kubectl annotate pods ldh-pod ldhgood="good" pod/ldh-pod annotated # 확인 vagrant@k-control:~$ kubectl describe pod ldh-pod vagrant@k-control:~$ kubectl get pods ldh-pod -o yaml Name: ldh-pod Namespace: default Priority: 0 Node: k-node1/192.168.200.51 Start Time: Wed, 07 Jul 2021 07:34:50 +0..
쿠버네티스 Kubernetes 레이블 (Label) # 레이블 1.검색의 기능 2.리소스-리소스의 관계를 정의해 줄 때 레이블(라벨) 태그의 의미랑 비슷 검색을 할 수 있다 관리목적상 의미를 부여하고 검색한다 key value 형태 메타데이타에 정의한다 파드의 메인어플리케이셔는 하나 다른것들은 보조 더보기 # 레이블 1.검색의 기능 2.리소스-리소스의 관계를 정의해 줄 때 레이블(라벨) 태그의 의미랑 비슷 검색을 할 수 있다 관리목적상 의미를 부여하고 검색한다 key value 형태 메타데이타에 정의한다 파드의 메인어플리케이셔는 하나 다른것들은 보조 # 레이블을 이용한 파드 정의 vagrant@k-control:~$ cat ldh-pod-label.yaml apiVersion: v1 kind: Pod metadata: name: ldh-pod-label ..
쿠버네티스 Kubernetes 오브젝트 관리 / 명령형 커맨드 (Imperative Commands) 더보기 # 명령형 커맨드 YAML 파일을 작성하지 않는다 명령어와 옵션만 사용 가장 단순하게 리소스 오브젝트 만드는법 # deployment 생성 # deployment가 replicasets를 만들고 replicasets가 pod를 만든다 # 사용자가 직접 pod를 만들지 않는다 vagrant@k-control:~$ kubectl create deployment ldh --image=gsfo/c1tfsf7/go-sddf deployment.apps/ldh created vagrant@k-control:~$ kubectl get deployments # 리소스 확인 vagrant@k-control:~$ kubectl get deployments,replicasets,pods NAME READY UP-TO..