스터디/[쿠버네티스 인 액션] (2024.8) 25

[쿠버네티스 인 액션] 5장.서비스 - 레디니스 프로브, 헤드리스 서비스, 서비스 해결

5.6 레디니스 프로브 - 주기적으로 호출되며 특정 파드가 클라이언트 요청을 수신할 수 있는지를 결정한다. - 컨테이너의 레디니스 프로브가 성공을 반환하면 컨테이너가 요청을 수락할 준비가 됐다는 신호다. - 3가지 유형의 레디니스 프로브가 있다. 1) exec 프로브는 컨테이너의 상태를 프로세스의 종료 상태로 결정 2) get 프로브는 get 요청을 컨테이너로 보내고 결정 3) tcp 소켓 프로브는 지정된 포트로 tcp 연결 후 연결되면 준비된 것으로 간주  kubernetes-in-action/Chapter05/kubia-rc-readinessprobe.yaml at master · luksa/kubernetes-in-action (github.com) kubernetes-in-action/Chapte..

[쿠버네티스 인 액션] 5장.서비스 - 서비스 앤드포인트, 외부 클라이언트 연결 (노드포트, 로드밸러스, 인그레스)

5.5 서비스 엔드포인트 1) 서비스 엔드포인트란 - 서비스는 파드에 직접 연결되지 않는다. - 대신 앤드포인트 리소스가 그 사이에 있다.  2) externalname 서비스 생성 서비스의 엔드포인트를 수동으로 구성해 외부 서비스를 노출하는 대신 FQDN으로 외부 서비스를 참조할 수 있다. kubernetes-in-action/Chapter05/external-service-externalname.yaml at master · luksa/kubernetes-in-action (github.com)apiVersion: v1kind: Servicemetadata: name: external-servicespec: type: ExternalName externalName: api.somecompany...

[쿠버네티스 인 액션] 5장.서비스 - 서비스 생성, 서비스 검색

5.1. 서비스가 나온 배경 파드가 다른 파드에게 제공하는 서비스를 사용하려면 다른 파드를 찾는 방법이 필요하다. 이때, 제공하는 IP주소나 호스트 이름을 지정하는 것은 쿠버네티스에서 동작할 수 없다. 1) 파드는 일시적이다. 파드가 다른 파드를 위한 공간 확보하려고 노드에서 제거되거나, 누군가 파드 수를 줄이거나, 클러스터 노드의 장애로 언제든 다른 노드로 이동할 수 있다.2) 쿠버네티스틑 노드에 파드를 스케줄링한 후 바로 시작되기 전에 IP주소를 할당하기 때문에 미리 알 수 없다.3) 수평 스케일링 같은 경우, 클라이언트는 파드의 개별 IP 목록을 유지하는 것이 아니라 단일 IP 주소로 접근해야함 5.2 서비스 소개- 동일한 서비스를 제공하는 파드 그룹에 지속적인 단일 접점을 만들려고 할 때 생성하는..

[쿠버네티스 인 액션] 4장. 레플리케이션과 그 밖의 컨트롤러 - 잡, 크론잡

4.5 잡 - 작업을 완료한 후에 종료되는 테스크 일 경우 사용 - 파드의 컨테이너 내부에서 실행 중인 프로세스가 성공적으로 완료되면 컨테이너를 다시 시작하지 않는 파드 실행할 수 있음. - 장애가 발생한 경우 잡에서 컨테이너 다시 시작할 것인지 설정할 수 있음.  kubernetes-in-action/Chapter04/batch-job.yaml at master · luksa/kubernetes-in-action (github.com) kubernetes-in-action/Chapter04/batch-job.yaml at master · luksa/kubernetes-in-actionCode from the Kubernetes in Action book. Contribute to luksa/kubern..

[쿠버네티스 인 액션] 4장. 레플리케이션과 그 밖의 컨트롤러 - 레플리카셋, 데몬셋

4.3 레플리카셋- 차세대 레플리케이션컨트롤러, 레플리케이션컨트롤러를 완전히 대체- 레플리케이션 컨트롤러의 레이블 셀렉터는 특정 레이블이 있는 파드만을 매칭 시킬 수 있는 반면,레플리카셋의 셀렉터는 특정 레이블이 없는 파드나 레이블의 값과 상관없이 특정 레이블의 키를 갖는 파드를 매칭시킬 수 있음.  kubernetes-in-action/Chapter04/kubia-replicaset.yaml at master · luksa/kubernetes-in-action (github.com) kubernetes-in-action/Chapter04/kubia-replicaset.yaml at master · luksa/kubernetes-in-actionCode from the Kubernetes in Actio..

[쿠버네티스 인 액션] 4장. 레플리케이션과 그 밖의 컨트롤러 - 라이브니스 프로브, 레플리케이션 컨트롤러

4.1. 라이브니스 프로브 - 라이브니스 프로브 liveness probe : 컨테이너가 살아 있는지 확인할 수 있음. 이 작업은 노드의 kubelet에서 수행함. but 노드 자체에 크래시가 발생한 경우, 노드 크래시로 중단된 모든 파드의 대체 파드는 컨트롤 플레인에서 관리해야함.  - 3가지 종류 1) HTTP GET 프로브 : 지정한 IP주소, 포트, 경로에 HTTP GET 요청 수행. 프로브가 응답 수신하고 응답 코드가 오류 내지 않는 경우 성공했다고 간주. 서버가 오류 코드 반환하거나 응답하지 않으면 프로브가 실패한 것으로 간주돼, 컨테이너 다시 시작 2) TCP 소켓 프로브 : 컨테이너의 지정된 포트에 TCP 연결 시도. 연결 성공하면 프로브 성공, 그렇지 않으면 컨테이너 다시 시작 3) Ex..

[쿠버네티스 인 액션] 3장. 파드 : 쿠버네티스에서 컨테이너 실행 - 파드중지와 제거

1. 이름으로 파드 삭제 kubectl delete po kubia-gpu- 파드를 삭제하면 쿠버네티스는 파드 안에 있는 모든 컨테이너를 종료하도록 지시 - 쿠버네티스는 SIGTERM 신호를 프로세스에 보내고 지정된 시간동안 대기 - 시간내에 종료되지 않으면 SIGKILL 신호를 통해 종료 ㄴ 프로세스가 항상 정상적으로 종료되게 하기 위해서는 SIGTERM 신호 처리해야함    2. 레이블 셀렉터를 이용한 파드 삭제 kubectl delete po -l creation_method=manual   3. 네임스페이스 제거 (파드는 네임스페이스와 함께 자동으로 삭제)kubectl delete ns custom-namespace   4. 네임스페이스를 유지하면서 네임스페이스 안에 있는 모든 파드 삭제 kube..

[쿠버네티스 인 액션] 3장. 파드 : 쿠버네티스에서 컨테이너 실행 - 레이블을 이용한 파드 구성/어노테이션/쿠버네티스 네임스페이스

1. 레이블 소개 1) 파드와 모든 다른 쿠버네티스 리소스를 조직화할 수 있는 기능으로, 2) 리소스에 첨부하는 키-쌍 값으로, 레이블 셀렉터를 사용해 리소스 선택할 때 활용 3) 마이크로서비스 예제 - app : 파드가 속한 애플리케이션. 구성 요소 혹은 마이크로서비스 지정 - rel : 파드에서 실행 중인 애플리케이션이 안정, 베타 혹은 카나리 릴리스인지 보여줌.   2. 파드 생성할 때 레이블 지정 apiVersion: v1kind: Podmetadata: name: kubia-manual-v2 labels: creation_method: maual env: prodspec: containers: - name: kubia image: sootoance/kubia port..

[쿠버네티스 인 액션] 3장. 파드 : 쿠버네티스에서 컨테이너 실행 - 기존 배포 yaml 살펴보기

1. 기존 파드의 yaml 디스크립터 살펴보기 1) 2장에서 실행중인 배포의 전체 yaml 가져오기  [쿠버네티스 인 액션] 2장. 도커와 쿠버네티스 첫걸음 - 쿠버네티스에 첫 애플리케이션 실행 (tistory.com) [쿠버네티스 인 액션] 2장. 도커와 쿠버네티스 첫걸음 - 쿠버네티스에 첫 애플리케이션 실행1. node.js 애플리케이션 구동 : 래플리케이션 컨트롤러 생성 1) 레플리케이션 컨트롤러 생성 책에서는 이렇게 나오지만 deprecated 된 거라고 한다.  kubectl run kubia --image=sootoance/kubia --port=8080 --generatddoance.tistory.com kubectl delete deployments kubiakubectl create de..

[쿠버네티스 인 액션] 3장. 파드 : 쿠버네티스에서 컨테이너 실행 - 파드 소개, 컨테이너의 적절한 구성 w.율곡선생, devops with sina., techworld with nana.

1. 파드 1) 피드 소개- 함께 배치된 컨테이너 그룹이며 쿠버네티스의 기본 빌딩 블록 - 일반적으로 파드는 하나의 컨테이너만 포함하지만, 두 개이상의 컨테이너를 포함할 수도있다. - 핵심사항은 파드가 여러 컨테이너를 가지고 있을 경우에, 모든 컨테이너는 항상 하나의 워커 노드에서 실행되며 여러 워커 노드에 걸쳐 실행되지 않는 것.   2) 여러 프로세스를 실행할 때 한 개의 컨테이너보다 다수의 컨테이너가 더 적합한 이유 - 컨테이너는 프로세스 자체가 하위 프로세스를 생성하지 않는 한 컨테이너당 하나의 프로세스만 실행하도록 설계됨. - 또한 모든 프로세스는 동일한 표준 출력으로 로그를 남기므로 어떤 프로세스가 어떤 내용을 기록했는지 파악하기 어려울 수 있음 => 여러 개의 프로세스를 단일 컨테이너로 묶지..

반응형