본문 바로가기

Kubenetes

(35)
kubernetes Resource map (physical 중심)
K8S 모니터링 및 로그 ㅁ 모니터링 기본 메트릭 - 특정 기간에 측정한 일련의 숫자 로그 - 시스템을 탐색적으로 분석하기 위해 사용 블랙박스 모니터링 - 애플리케이션 외부에 초점을 두어 CPU, MEMORY, STORAGE등의 시스템 컴포넌트를 모니터링한다. 이것은 인프라 수준의 모니터링에 유용하지만 애플리케이션이 어떻게 동작하는지 파악하거나 현상을 이해하기는 힘들다. 화이트박스 모니터링 - 화이트박스 모니터링은 애플리케이션 상태에 초점을 둔다. 예를 들면 전체 HTTP 요청, 500 오류 수, Request Latency 등. ㅁ 모니터링 패턴 USE 패턴. - U(Utilization): 사용률 - S(Saturation): 포화도 - E(Error): 오류율 RED 패턴 - R(Request): 요청 - E(Error):..
Pod의 Lifecycle Pod는 단일 애플리케이션만 실행하는 VM과 비교할 수 있다. Pod 내부에서 실행되는 애플리케이션은 VM에서 실행중인 애플리케이션과 다르지 않지만 중요한 차이가 있다. 한 가지 예는 쿠버네티스가 어떤 이유로 Pod를 다른 Node로 재배치해야 할 필요가 있거나 Node의 ScaleDown 요청 등이 있을 때 실행 중인 애플리케이션을 언제든지 종료할 수 있다는 것이다. 1. Application 종료/재배치 쿠버네티스 밖에서는 VM에서 실행되는 애플리케이션이 한 컴퓨터에서 다른 컴퓨터로 거의 이동하지 않는다. 운영자가 애플리케이션을 이동한다면 애플리케이션을 다시 구성하고 새 위치에서 애플리케이션이 정상적으로 작동하는지 수동으로 확인해야 한다. 쿠버네티스를 사용하면 애플리케이션을 훨씬 자주 그리고 자동으로..
Kubernetes Resource Map (Resource 생성자 기준) 아래는 일반적인 애플리케이션이 쿠버네티스로 작동될때 사용하는 쿠버네티스의 전체 구성 요소이다. 일반적인 애플리케이션 매니페스트에는 하나 이상의 Deployment 또는 StatefulSet 객체가 포함돼 있다. 여기에는 컨테이너가 하나 이상 포함된 Pod Template이 있고 각각 Liveness Probe가 있다. ㅁ Kubernetes Network 다른 사용자에게 서비스를 제공하는 Pod는 하나 이상의 Service를 통해 노출된다. Cluster 밖에서 연결할 수 있어야 할 때 서비스는 Load Balancer 또는 NodePort 유형의 서비스로 구성되거나 Ingress Resource를 통해 노출된다. ㅁ Kubernetes Configuration 관리 Pod Template(및 Templ..
Kubernetes Resource Map (Resource 기능 영역별) Kubernetes 전체 Resource Map을 그려보면서 각 영역에 대한 연관관계에 대한 이해를 한눈에 볼 수 있다. 아래는 전체 Resource Map이다. ㅁ 전체 Kubernetes Resource Map 이제부터 Pod중심으로 각 영역별 연관 관계와 각 리소스에 대한 설명이다. ㅁ Pod Generator 역할 항목 설명 Pod Pod는 host에서 실행할 수 있는 container의 모음으로 클라이언트에 의해 성생되고 host에서 스케줄 되는 리소스이다. ReplicaSet 지정된 수의 Pod 복제본이 주어진 시간안에 실행되도록 함 Deployment Pod와 ReplicaSet에 대한 선언적 업데이트가 가능하도록 함 DaemonSet 각 노드 또는 특정 노드에서 포드를 실행하도록 함 Job..
포드와 클러스터 노드의 오토스케일링 쿠버네티스의 스케일링 방안 - 포드에서 실행되는 애플리케이션은 리플리케이션컨트롤러, 레플리카셋, 디플로이먼트 또는 확장 가능한 리소스의 복제본 필드를 늘려서 수동으로 스케일링 가능 - 컨테이너의 리소스 요청 및 제한을 늘려 수직적으로 스케일 조정 가능 (현재 포드가 실행되는 동안이 아니라 포드 생성 시에만 수행할 수 있음) 1. 포드의 수평적 오토스케일링 [HorizontalPodAutoscaler(HPA)] 포드의 수평적 오토스케일링은 컨트롤러가 관리하는 포드 복제본의 수를 자동으로 조정한다. 이것은 HorizontalPodAutoscalet 리소스를 만들어 활성화 및 구성되는 Horizontal 컨트롤러가 수행한다. 컨트롤러는 포드 매트릭을 주기적으로 확인하고 HorizontalPodAutoscale..
Readiness Probe - Pod가 연결을 수락할 준비가 됐을 때 신호 보내기 레디네스 프로브는 주기적으로 호출되고 특정 포드가 클라이언트 요청의 수락 여부를 결정한다. 컨테이너의 레디네스 프로브가 성공을 반환한다면 컨테이너가 요청을 받아드릴 준비가 되었다는 신호다. 준비가 됐다는 표시는 분명히 각 컨테이너에 국한된 것이다. 쿠버네티스는 단지 컨테이너에서 실행 중인 애플리케이션이 간단한 GET/ 요청에 응답하는지 또는 특정 URL 경로에 도달할 수 있는지 확인하거나 필요에 따라서 애플리케이션이 준비됐는지 확인하기 위해 전체 체크리스트를 수행하기도 한다. ㅁ 레디네스 프로브(Readiness Probe)의 타입 ㅇ 프로세스를 실행시키는 Exec 프로브, 컨테이너의 상태는 프로세스의 종료 상태 코드에 의해 결정 ㅇ HTTP GET 요청을 컨테이너에게 보내고 응답의 HTTP 상태 코드를..
쿠버네티스 API 서버 보안 (미완료) 보호되어 있는 글입니다.