2024/08/29 4

[k8s] 클러스터의 주요 구성 요소와 문제 발생 시 영향

Kubernetes 클러스터는 제어 평면(Control Plane)과 워커 노드(Worker Node)로 구성되어 있으며, 각 노드는 클러스터의 안정적 운영을 위해 중요한 역할을 수행한다. 클러스터의 주요 구성 요소로는 Kubelet, ContainerD, 스케줄러(Scheduler), 그리고 제어 평면의 각 요소가 있다. 다음은 시스템 서비스로 실행되며 systemctl로 관리되기 때문에 문제 발생 시 영향을 미칠 수 있는 요소들이다 제어 평면(Control Plane)제어 평면은 마스터 노드에서 실행되며 클러스터의 상태를 관리하고 조정하는 역할을 한다. 제어 평면의 주요 구성 요소는 다음과 같다.API 서버 (kube-apiserver)역할: 클러스터의 모든 요청을 처리하고, 클러스터 상태를 저장하는..

DevOps/K8S 2024.08.29

[k8s] Deployment

Deployment는 애플리케이션을 관리하고 자동으로 배포하는 객체로, 주로 애플리케이션의 상태를 선언적으로 정의하는 데 사용된다. Deployment는 애플리케이션의 여러 인스턴스를 안정적으로 운영하고, 롤링 업데이트, 롤백, 확장과 같은 작업을 간단하게 수행할 수 있도록 해 준다. Deployment의 구성 요소Pod: 각 Deployment는 여러 개의 Pod를 관리한다.ReplicaSet: Deployment가 관리하는 Pod의 복제본을 유지하는 역할을 하며, 특정 수의 Pod가 항상 실행 중인지 보장한다.Label Selector: Deployment는 Label을 사용하여 어떤 Pod가 관리 대상인지를 지정한다. Deployment의 주요 기능애플리케이션 배포 및 관리:Deployment를 사..

DevOps/K8S 2024.08.29

[k8s] Pod

Pod는 Kubernetes에서 가장 기본적인 배포 단위로, 하나 이상의 컨테이너를 포함할 수 있다. 같은 Pod에 있는 컨테이너들은 동일한 네트워크와 저장소를 공유한다. 예제다음은 Kubernetes에서 nginx라는 이름의 Pod를 생성하고, 상태를 확인하며, 컨테이너에 접근하는 과정이다Pod 생성nginx라는 이름의 Pod가 nginx 이미지를 사용하여 생성된다.$ k run nginx --image=nginxpod/nginx createdPod 상태 확인Pod가 생성되었지만 아직 컨테이너가 준비되지 않았다. ContainerCreating 상태는 컨테이너가 생성되는 중임을 나타낸다.$ k get podNAME READY STATUS RESTARTS AGEngin..

DevOps/K8S 2024.08.29

[k8s] NodePort

NodePort는 Kubernetes 서비스 유형 중 하나로, 클러스터의 모든 노드에서 지정된 포트를 열어 외부에서 접근할 수 있도록 해준다. NodePort 유형의 서비스는 다음과 같은 방식으로 작동한다.NodePort 할당: NodePort 서비스가 생성되면, Kubernetes는 클러스터 내의 모든 노드에서 동일한 포트를 열어둔다. 이 포트는 30000-32767 범위 내에서 할당된다. 트래픽 라우팅: 클러스터 외부의 클라이언트가 노드의 외부 IP와 NodePort를 통해 접속하면, 해당 요청은 Kubernetes의 kube-proxy에 의해 처리된다. kube-proxy는 요청을 적절한 Pod로 라우팅 하며, 이 Pod는 클러스터 내 어디에 위치하든 접근할 수 있다.로드 밸런싱: kube-prox..

DevOps/K8S 2024.08.29