본문 바로가기

kubernetes(cka)

(18)
[Kubernetes, cka] 08. Static Pods kube api 를 통해서 노드 내에서 파드가 생성되는게 아니라, 노드에 자체적인 yaml 파일을 생성해서 이걸 kubelet이 보고 pod를 관리해주는걸 Static Pod 라고함. 이런 기능은 kubelet이 pod 만 담당하기에 파드만 됨. 정적 Pod의 주요 특징 및 사용 사례 특징설명 독립성 정적 Pod는 kube-apiserver가 없이도 kubelet에 의해 직접 관리됩니다. 자동 생성 및 복구 노드에 kubelet이 실행되는 한, 지정된 디렉토리에 정의 파일이 있으면 정적 Pod가 자동으로 생성되고, 애플리케이션이 충돌하는 경우 자동으로 재시작됩니다. 클러스터 제어 평면 구성 요소 배포 Kubernetes 클러스터의 핵심 구성 요소(예: kube-apiserver, etcd)를 Pod로 배..
[Kubernetes, cka] 07. DaemonSets Kubernetes에서 DaemonSet은 클러스터의 각 노드에 Pod를 자동으로 배포하고 관리하는데 사용되는 중요한 컨트롤러입니다. DaemonSet은 특히 클러스터 전체에 걸쳐 단일 인스턴스의 Pod를 유지해야 할 때 유용합니다. 이는 ReplicaSet과 비슷하지만, ReplicaSet은 지정된 수의 Pod 복사본을 유지하는 반면, DaemonSet은 클러스터의 모든 노드에 Pod를 하나씩 배치합니다. DaemonSet의 사용 사례 모니터링 에이전트: 클러스터의 모든 노드에 모니터링 도구를 배포할 때 유용합니다. 각 노드에 Pod를 배치하여 시스템 메트릭을 수집할 수 있습니다. 로그 수집기: 모든 노드에서 로그를 수집하고 중앙 집중화된 저장소로 전송하기 위해 로그 수집 에이전트를 배포하는 데 사용됩..
[Kubernetes, cka] 06. Manual Scheduling Manual scheduling수동 스케쥴링엔 크게 두가지.1. Nodename 필드 사용- 이방법이 기본 방법이라 할수 있는데, yaml 에서 nodename 필드를 사용해서 pod를 특정 node에 배치 가능. 2. 바인딩 객체 생성- 좀더 심화된 방법이라 할수 있으며, 이미 생성된 pod를 api를 사용해서 post요청을 통해 내부적 스케줄링 가능.  * 근데 실행중인 pod를 옮길순 없음. 그래서 replace --force -f 하면 삭제후 재실행됨Labels and Selectorslabels를 통해서 각 요소간에 그룹핑을 할수 있고 selector를 통해서 그 그룹된것들을 묶어서 확인 혹은 명령어를 줄수 있음kubectl get pod --selector bu=finance이런식으로 확인하면..
[Kubernetes, cka] 05. Service, Namespaces * Service 란 pod가 외부와 통신할수 있도록 함. 내부 및 외부 통신 활성화: 애플리케이션 내외부의 다양한 컴포넌트 간 통신을 가능하게 한다. 애플리케이션 연결: 프론트엔드, 백엔드, 외부 데이터 소스 등 다양한 pod 그룹 간 연결을 담당한다. 마이크로서비스 간 느슨한 결합 제공: 서비스를 통해 마이크로서비스 아키텍처 내 컴포넌트들이 서로 독립적으로 운영될 수 있도록 지원한다. * 서비스 유형 NodePort: 노드의 특정 포트를 pod로 포워딩하여 외부에서 접근 가능하게 한다. ClusterIP: 클러스터 내부에서 서로 통신할 수 있도록 가상 IP를 생성한다. LoadBalancer: 클라우드 제공자에서 제공하는 로드밸런서를 통해 애플리케이션에 대한 부하를 분산한다. * Node port 포..
[Kubernetes, cka] 04. Deployment * Deployment 의 기능 배포 목적: 프로덕션 환경에서 애플리케이션을 효율적으로 배포하고 관리하기 위함이다. 예를 들어 기존 도커 이미지가 업데이트 되었다던가 해서 배포 하고 싶을때 사용할수 있다. Rolling update: 애플리케이션 업그레이드 시 모든 인스턴스를 동시에 업그레이드하지 않고 순차적으로 업데이트하여 사용자 경험에 미치는 영향을 최소화한다. Roll back 기능: 업그레이드 후 예상치 못한 오류가 발생했을 때 최근 변경 사항을 취소하고 이전으로 돌아갈수 있음 일시 중지 및 재개: 환경에 여러 변경 사항을 적용할 때, 모든 변경을 한 번에 적용하기보다는 변경 사항을 일시 중지하고, 필요한 모든 수정을 한 후에 재개하여 모든 변경을 함께 roll out 할수 있음 그래서 위 사진과..
[Kubernetes, cka] 03. Replica set * Replica controller Kubernetes 객체를 모니터링하고 상황에 맞게 반응하여 애플리케이션의 고가용성과 부하 분산을 담당. 여러 개의 pod 인스턴스를 관리해 한 개의 pod가 실패하더라도 서비스 중단 없이 애플리케이션에 접근할 수 있도록 한다. * Replica Set Replica controller 의 후속 기술로, 세밀한 lable 및 selector 관리 기능을 통해 특정 pod 대상 작업을 보다 정확하게 수행. 위와 가장큰 차이는 셀렉터. * Label, Selectors pod 를 만들때 생성하는 label 키-값으로 레플리카셋이 어떤거를 조절할지 알수 있음. * 명령 모음
[Kubernetes, cka] 02. Pod * Pod - Container를 kubernetes에서 돌려야 할텐데, k8s에서는 이 컨테이너를 바로 실행하는게 아니라, Pod 라는걸로 컨테이너를 감싸서 worker node에서 실행하게됨. - k8s에서 가장 작은 단일 instance, 객체 - 한 pod 에서 여러 컨테이너 실행할수 있음 - 같은 파드 내에있으면 localhost로 네트워크, 스토리지 바로 공유 가능 Pod 생성 방법 kubectl run --image= kubectl run nginx-pod --image=nginx * Yaml 작성 방법 apiVersion : 생성하려는 객체를 위해 사용하는 k8s api 버전. 종류에 따라 약간 다를수 있음 kind : 생성하려는 객체 종류 metadata dictionary로 들어감 la..
[Kubernetes, cka] 01. Kubernetes cluster 구성 요소 Kubernetes란? 쿠버네티스는 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화해주는 오케스트레이션 tool. 오케스트레이션 Tool이란 여러 컴퓨터, 서비스, 애플리케이션 간의 복잡한 작업과 프로세스를 자동으로 관리하고 조정하는 소프트웨어 도구를 말함. Master Node master노드는 클러스터를 관리하고 조정하는 역할을 담당. 주요 구성 요소는 아래와 같음 ETCD : key-value 저장소로, 클러스터의 모든 정보를 저장 API Server : 쿠버네티스 API를 노출하고, 클러스터 내의 모든 조작과 통신의 중심 역할 Scheduler : 새로 생성된 컨테이너에 대해 실행될 최적의 노드를 선택 Controller Manager : Node controller, 엔드포인트 Contr..