꾸준히 오래오래

데이터 엔지니어의 공부 곳간✏️

Data/Kubernetes 4

[Kubernetes] 파드 라이프 사이클과 Probe(liveness, readiness, startup)

파드(pod)는 쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위이다. 파드는 하나 이상의 컨테이너로 구성되어 있다. apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - name: nginx image: nginx:1.14.2 ports: - containerPort: 80 일반적으로 파드는 직접 생성하지 않고, 워크로드 리소스(디플로이먼트, 레플리카셋 등)를 사용하여 생성한다. 실제로 운영 환경에서는 애플리케이션을 단일 파드로 운영하는 경우가 거의 없기 때문이다. 파드는 기본적으로 파드에 속한 컨테이너에 네트워킹과 스토리지라는 두 가지 종류의 공유 리소스를 제공한다. 워크로드 리소스를 통하여 여러 파드를 만들고..

Data/Kubernetes 2024.03.31

[Kubernetes] 쿠버네티스 클러스터 아키텍쳐

노드 쿠버네티스 워커머신으로 각 노드는 컨트롤 플레인에 의해 관리된다. 하나의 노드는 여러 개의 파드를 가질 수 있으며, kubelet과 컨테이너 런타임 그리고 kube-proxy로 구성된다. 노드 상태 노드의 상태의 경우 다음과 같이 확인 가능하다. kubectl describe node 여기서 얻을 수 있는 상태 정보의 경우는 다음과 같다. 주소 HostName(노드의 커널에 의해 알려진 호스트명) ExternalIP (외부로 라우트 가능한 ip) InternalIP(클러스터 내에서만 라우트 가능한 ip) 컨디션 먼저, conditions 필드는 모든 Running 노드의 상태를 기술한다. 그 외에 용량과 할당 가능 그리고 기타 세부 정보 노드 상에 사용 가능한 리소스 커널 버전, 쿠버네티스 버전, ..

Data/Kubernetes 2024.03.24

[Kubernetes] 쿠버네티스 오브젝트

쿠버네티스 오브젝트는 클러스터 상태를 나타내는 단위로 의도를 담은 레코드이다. 오브젝트를 생성하게 되면 k8s는 그 오브젝트 생성을 보장하기 위해 지속적으로 작동한다. 오브젝트를 생성함으로써, 클러스터 워크로드가 어떤 형태로 보이고자 하는지에 대해 효과적으로 쿠버네티스 시스템에 전달한다. 이것이 바로 클러스터에 대한 의도한 상태가 된다. 공식 문서의 정의를 조금 풀어보면 오브젝트는 쿠버네티스 클러스터 내에서 일어나는 모든 것을 설명해 주는 레코드인데, 복제본이 몇 개 필요하고 네트워크 설정은 어떻게 하고 등이 이 레코드에 담기게 된다. 이들은 영속성을 가지기 때문에 쿠버네티스는 이 레코드에 적힌 대로 유지하기 위해서 노력한다. 오브젝트에는 무엇이?👀 오브젝트에 대해서 더 알아보기 전에 그럼 오브젝트에는 ..

Data/Kubernetes 2024.03.17

[Kubernetes] 쿠버네티스 컴포넌트

쿠버네티스 컴포넌트는, 쿠버네티스 클러스터를 구성하는 핵심 프로세스나 구성 요소로 크게 컨트롤 플레인 컴포넌트, 노드 컴포넌트, 애드온이 있다. 컨트롤 플레인 컴포넌트 컨트롤 플레인은 클러스터에 관한 전반적인 결정(ex: 스케줄링)을 수행하고 클러스터 이벤트 감지하고 반응한다. 일종의 두뇌역할 kube-apiserver k8s API를 노출하는 컴포넌트, 컨트롤플레인의 프런트엔드이다. etcd 모든 클러스터 데이터를 담는 저장하는 분산형 키- 값 저장소이다. kube-scheduler 새로운 파드의 배치를 결정한다. 어피니티 등을 고려한다. kube-controller-manager 다양한 리소스 컨트롤러들을 실행하며, 클러스터의 상태를 지속적으로 감시하고 조정한다. API 서버를 통해서 클러스터의 공유..

Data/Kubernetes 2024.03.10