Kubernetes 아키텍처: 2022년에 알아야 할 모든 것
게시 됨: 2021-01-05목차
쿠버네티스 정보
Kubernetes는 리소스 최대화, 자동 배포 프로세스 및 업데이트, 자동 크기 조정, 자가 치유, 자동 롤백 및 롤아웃, 컨테이너 오케스트레이터 로드 밸런싱, 서비스 검색, 자동 재시작, 자동 배치, 및 자동 복제 등. Kubernetes는 단순한 컨테이너 조정자가 아닙니다. 클라우드 기반 애플리케이션을 위한 OS이기도 합니다.
Windows, MacOS 또는 Linux에서 실행되는 다른 응용 프로그램과 유사한 응용 프로그램을 보다 유연하게 실행하기 위한 플랫폼과 같습니다. 오케스트레이션 부하를 줄이고 개발자가 셀프 서비스 운영을 위해 컨테이너 중심 워크플로에 완전히 집중할 수 있도록 합니다. 개발자는 배포 및 응용 프로그램 관리에서 매우 높은 수준의 자동화 이점이 있습니다. 어떤 환경과도 통합되어 기능을 향상시킬 수 있습니다.
읽기: 인도의 Kubernetes 급여
쿠버네티스 아키텍처
Kubernetes 아키텍처 는 상위 계층과 하위 계층으로 구성됩니다. 이 개별에서 물리적 또는 가상 머신은 클러스터로 함께 제공됩니다. 각 서버 간의 통신에는 공유 네트워크가 사용됩니다. Kubernetes에는 분산 스토리지 시스템인 제어 평면 역할을 하는 하나의 마스터(최소한)가 있습니다. 다중 클러스터 노드는 Kubelet이라고도 합니다.
- Kubernetes의 마스터인 제어 평면은 배포를 예약하고 API를 공개하고 전체 Kubernetes 클러스터를 관리합니다.
- 클러스터 노드는 컨테이너 런타임, 마스터와 통신하기 위한 에이전트 및 기타 모니터링 구성 요소, 로깅 등을 실행합니다.
Kubernetes 아키텍처 및 Kubernetes 구성 요소 는 아래 이미지에 나와 있습니다.
원천

Kubernetes 구성 요소 를 살펴보겠습니다 .
쿠버네티스 구성요소
마스터: Kubernetes 제어 평면
마스터는 Kubernetes에 있는 모든 개체의 데이터를 유지 관리합니다. 클러스터 전체를 관리하므로 마스터라고 합니다. 객체 상태를 제어하고 시스템의 실제 상태와 필요한 상태의 일치를 유지하며 변경 사항에 응답합니다.
여기에는 다음 세 가지 중요한 구성 요소가 포함됩니다.
- Kube- API 서버: Kubernetes API 서버
- Kube-스케줄러: 작업자 노드의 포드 스케줄링
- Kube- 컨트롤러: 포드 복제 관리
여러 마스터 노드가 있는 경우 이러한 구성 요소는 모든 마스터 노드에 복제됩니다.
업데이트, 스케일링 등을 포함하는 다양한 애플리케이션에 대한 수명 주기 오케스트레이션은 API 서버에서 수행됩니다. 클러스터 내에 있지 않은 클라이언트에 대한 게이트웨이로 작동합니다. API 서버가 인증을 수행합니다. 또한 포드 및 노드에 대한 중개자 역할도 합니다.
컨트롤러는 다음 작업을 수행합니다.
- 핵심 제어 루프 실행
- 필요한 상태로 운전 상태를 변경합니다.
- 클러스터 상태 보기
또한 공용 클라우드에 통합하여 라우팅, 스토리지 서비스, 로드 밸런싱, DNS 네트워크 서비스, VM 인스턴스를 제공합니다. 자동 크기 조정, 노드, 서비스 및 포드, 네임스페이스에 대한 상태를 구동하는 다양한 컨트롤러.
노드 전체에 걸친 컨테이너 스케줄링은 클러스터 내의 스케줄러에 의해 수행됩니다. 다양한 리소스 제한/보증 또는 반친화성/친화성 사양을 고려합니다.
Kubernetes 제어 평면 분류는 다음과 같습니다.
원천
클러스터 노드: Kubelets
Kubelet은 컨테이너 실행을 담당하는 다른 기계입니다. 마스터는 클러스터 노드의 관리를 수행합니다. 미니언이라고도 합니다. 클러스터 노드는 Kubernetes의 기본 컨트롤러로 간주됩니다. 컨테이너의 실행 계층인 Docker를 구동합니다.
다음 구성 요소가 포함되어 있습니다.
- Pod: 컨테이너 그룹
- Docker: 컨테이너 기반 기술, OS의 사용자 공간
- Kubelet: 포드 집합을 유지 관리하는 컨테이너 에이전트입니다.
- Kube-proxy: 서비스에서 노드로 들어오는 트래픽을 라우팅합니다.
Kubernetes 클러스터 노드 분류는 다음과 같습니다.
원천
포드 및 서비스
Pod는 개발자가 상호 작용하는 Kubernetes의 중요한 개념입니다. 실행 중인 프로세스를 나타냅니다. WordPress LAMP 애플리케이션과 같이 수직으로 통합된 애플리케이션 스택을 호스팅할 수 있습니다. 다음은 다양한 포드 유형입니다.
포드 유형 | 기능 |
레플리카세트 | 단순 포드 유형![]() 고정 포드 실행 보장 |
전개 | ReplicaSet 을 통한 선언적 방식의 포드 관리 롤링 업데이트 및 롤백 메커니즘이 포함됩니다. |
스테이트풀셋 | 지속되어야 하는 포드를 관리합니다. |
데몬셋 | 각 노드가 포드 인스턴스를 실행하는지 확인합니다. 로그 전달 및 상태 모니터링과 같은 클러스터 서비스를 관리합니다. |
크론잡과 잡 | 수명이 짧은 작업을 스케줄러로 실행 |
포드는 여러 컨테이너와 외부 볼륨으로 구성될 수 있습니다. Pod의 분류는 아래 다이어그램에 나와 있습니다.
원천
서비스는 Pod를 추적합니다. 포드 및 서비스 연결을 정의하기 위해 IP 주소 할당 대신 선택기 또는 레이블이 사용됩니다. 이렇게 하면 서비스에 포드를 추가하고 새 버전을 릴리스할 수 있습니다. 다음은 다양한 서비스 유형입니다.
서비스 종류 | 기능 |
클러스터IP | 기본 유형; 내부 IP에 서비스를 노출하고 서비스에 도달할 수 있도록 합니다. |
노드포트 | 개발자가 자체 로드 밸런서를 설정할 수 있습니다. |
로드밸런서 | 구성 자동화 |
외부 이름 | Kubernetes 내에서 서비스를 생성하는 데 일반적으로 사용됩니다. |
사용되는 일반적인 클라우드 배포는 LoadBalancer 유형입니다. Kubernetes는 복잡성을 해결하기 위해 상위 수준 Ingress의 추상화를 지원합니다. 사용자는 동일한 로드 밸런서를 사용하여 동일한 IP 주소 내에서 다른 서비스를 표시할 수 있습니다.
더 읽어보기: Openshift 대 Kubernetes: Openshift와 Kubernetes의 차이점
쿠버네티스 네트워킹
대부분 CNI(Container Network Interface) 는 기본 네트워크를 가리는 데 사용됩니다. 전체 라우팅 옵션인 Calico도 사용할 수 있습니다. 두 옵션 모두에서 통신은 클러스터 전체의 포드 네트워크에서 수행되며 Calico 또는 Flannel(CNI 공급자)에 의해 제어됩니다. 컨테이너는 제한 없이 로컬 호스트를 통해 포드 내에서 통신할 수 있습니다. 외부 소스에서 서비스로 또는 포드에서 서비스로의 이동은 Kube-proxy를 통해 수행됩니다.
영구 스토리지
일부 데이터가 있는 디렉토리를 Kubernetes에서 볼륨이라고 합니다. 디렉터리는 포드에 액세스할 수 있습니다. Kubernetes에는 많은 스토리지 유형이 있습니다. 포드 내의 컨테이너는 모든 스토리지를 사용할 수 있습니다. NFS, Amazon Elastic Block Store, Iscsi, CephFS 등과 같은 퍼블릭 클라우드 서비스는 Pod에 파일 및 블록 스토리지를 탑재하는 데 사용됩니다. PV(PersistentVolumes)는 기존 스토리지 리소스에 연결된 클러스터 전체 개체입니다.
네임스페이스 내에서 스토리지 소비에 대한 요청은 PersistentVolumeClaim에 의해 시작됩니다. PV의 다양한 상태는 사용 가능, 바인딩, 해제 및 실패입니다. StorageClass는 추상화 계층입니다. 기본 저장 품질을 차별화하고 다양한 특성을 구분합니다. 포드는 StorageClasses 및 PersistentVolumeClaim을 사용하여 새 스토리지를 동적으로 요청할 수 있습니다.
원천
서비스 검색 및 게시
클러스터 버전에 따라 Kubernetes는 서비스 검색을 위해 Kube-DNS 또는 CoreDNS에 의존합니다. 이러한 통합 DNS 서비스는 DNS 레코드를 생성, 업데이트 및 제거합니다. 일관되고 간단한 이름 지정 체계를 통해 애플리케이션이 다른 포드 및 서비스를 대상으로 지정할 수 있습니다.
예( 소스 )
Kubernetes 서비스의 경우 DNS 레코드는 service.namespace.svc.cluster.local 일 수 있습니다.
DNS 레코드, 포드는 다음을 가질 수 있습니다. 10.32.0.125.namespace.pod.cluster.local
원천
네임스페이스
가상 클러스터를 포함하는 물리적 클러스터를 네임스페이스라고 합니다. Kubernetes 객체에 대한 각각의 접근 권한과 함께 여러 사용자에게 별도의 가상 환경을 제공합니다.
라벨
레이블은 단일 네임스페이스에 있는 리소스를 구별하는 데 사용됩니다. 속성은 키 또는 값 쌍으로 정의됩니다. 레이블은 Kubernetes 개체에 조직 구조를 매핑하는 데 사용됩니다. 환경, 릴리스 상태, 앱 계층 또는 고객 식별을 설명할 수 있습니다. 개체의 하드 링크를 방지합니다.
주석
주석은 임의의 미확인 수하물 또는 메타데이터를 객체에 추가하는 데 사용됩니다. 선언적 구성 도구로 사용됩니다.

반드시 읽어야 함: Kubernetes와 비교 Docker: 알아야 할 주요 차이점
세계 최고의 대학에서 소프트웨어 공학 학위 를 취득하십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
결론
Kubernetes의 기술은 빠르게 발전하고 있으며 미래를 위한 비용 효율적인 솔루션입니다. 응용 프로그램에 큰 안정성을 제공합니다.
이 문서에서는 Kubernetes 아키텍처 및 Kubernetes 구성 요소 의 모든 기본 개념을 설명합니다.
Kubernetes , 빅 데이터에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9개 이상의 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
