초보자를 위한 Kubernetes 튜토리얼: 기본 사항, 기능, Archi강의

이 Kubernetes 튜토리얼을 시작하기 전에 다음을 알아봅시다.

쿠 버네 티스 란?

Kubernetes Google 플랫폼에서 개발된 컨테이너 관리 시스템입니다. Kubernetes는 다양한 유형의 물리적, 가상 및 클라우드 환경에서 컨테이너화된 애플리케이션을 관리하는 데 도움이 됩니다. Google Kubernetes는 COM을 일관되게 제공하는 매우 유연한 컨테이너 도구입니다.plex 수백에서 수천 개의 개별 서버 클러스터에서 실행되는 애플리케이션.

왜 컨테이너가 필요한가요?

오늘날의 인터넷 사용자는 다운타임을 결코 용납하지 않습니다. 따라서 개발자는 서비스를 중단하지 않고 유지 관리 및 업데이트를 수행할 수 있는 방법을 찾아야 합니다.

따라서 격리된 환경인 컨테이너입니다. 여기에는 응용 프로그램을 실행하는 데 필요한 모든 것이 포함되어 있습니다. 개발자가 앱을 쉽게 편집하고 배포할 수 있습니다. 또한 컨테이너화는 웹 앱을 패키징, 배포 및 업데이트하는 데 선호되는 방법이 되었습니다.

Kubernetes는 어떤 작업을 수행하나요?

Kubernetes는 분산 시스템에 사용되는 Linux 커널입니다. 이는 노드(서버)의 기본 하드웨어를 추상화하는 데 도움이 되며 공유 리소스 풀을 소비하는 애플리케이션에 일관된 인터페이스를 제공합니다.

쿠버네티스를 사용하는 이유

Kubernetes는 클라우드 애플리케이션 및 마이크로서비스에 대한 리소스 할당 및 트래픽 관리를 제어하는 ​​데 도움이 됩니다. 또한 서비스 지향 인프라의 다양한 측면을 단순화하는 데 도움이 됩니다. Kubernetes를 사용하면 컨테이너화된 애플리케이션이 언제 어디서 실행되는지 확인하고 작업하려는 리소스와 도구를 찾는 데 도움이 됩니다.

쿠 버네 티스의 특징

필수 Kubernetes 기능은 다음과 같습니다.

  • 자동화된 스케줄링
  • 자가 치유 기능
  • 자동 출시 및 롤백
  • 수평적 확장 및 로드 밸런싱
  • 개발, 테스트, 생산을 위한 환경 일관성 제공
  • 인프라는 각 구성 요소와 느슨하게 결합되어 별도의 장치로 작동할 수 있습니다.
  • 더 높은 밀도의 리소스 활용도 제공
  • 기업용 기능 제공
  • 애플리케이션 중심 관리
  • 자동 확장 가능한 인프라
  • 예측 가능한 인프라를 구축할 수 있습니다.

쿠버네티스 기초

이제 이 Kubernetes 튜토리얼에서는 Kubernetes의 몇 가지 중요한 기본 사항을 알아봅니다.

  • 클러스터

    사용 가능한 리소스를 집계하는 데 도움이 되는 호스트(서버) 모음입니다. 여기에는 램, CPU, 램, 디스크 및 해당 장치가 사용 가능한 풀에 포함됩니다.

  • 마스터

    마스터는 Kubernetes의 제어판을 구성하는 구성 요소 모음입니다. 이러한 구성 요소는 모든 클러스터 결정에 사용됩니다. 여기에는 클러스터 이벤트 예약 및 응답이 모두 포함됩니다.

  • 노드

    물리적 또는 물리적 환경에서 실행될 수 있는 단일 호스트입니다. 가상 머신. 노드는 클러스터의 일부로 간주되는 kube-proxy, minikube 및 kubelet을 모두 실행해야 합니다.

  • 네임 스페이스

    논리적 클러스터 또는 환경입니다. 접근 범위를 지정하거나 클러스터를 분할하는 데 널리 사용되는 방법입니다.

Kubernetes Archi강의

아래는 자세한 Kubernetes입니다. archi구조 다이어그램:

Kubernetes Archi강의 다이어그램
Kubernetes Archi강의 다이어그램

마스터 노드

마스터 노드는 Kubernetes 클러스터 관리를 담당하는 첫 번째이자 가장 중요한 구성 요소입니다. 모든 종류의 관리 작업을 위한 시작점입니다. 내결함성을 확인하기 위해 클러스터에 마스터 노드가 두 개 이상 있을 수 있습니다.

마스터 노드에는 API 서버, 컨트롤러 관리자, 스케줄러 및 ETCD와 같은 다양한 구성 요소가 있습니다. 그들 모두를 보자.

API 서버: API 서버는 클러스터 제어에 사용되는 모든 REST 명령의 진입점 역할을 합니다.

스케줄러

스케줄러는 슬레이브 노드에 대한 작업을 예약합니다. 모든 슬레이브 노드에 대한 자원 사용 정보를 저장합니다. 작업량을 분산하는 역할을 담당합니다.

또한 클러스터 노드에서 작업 로드가 사용되는 방식을 추적하는 데도 도움이 됩니다. 이는 사용 가능한 리소스에 작업 부하를 배치하고 작업 부하를 수용하는 데 도움이 됩니다.

기타

etcd 구성 요소는 구성 세부 정보와 Wright 값을 저장합니다. 가장 많은 구성 요소와 통신하여 명령을 받고 작업합니다. 또한 네트워크 규칙 및 포트 전달 활동을 관리합니다.

작업자/슬레이브 노드

작업자 노드는 컨테이너 간의 네트워킹을 관리하고 마스터 노드와 통신하는 데 필요한 모든 서비스를 포함하는 또 다른 필수 구성 요소입니다. 이를 통해 예약된 컨테이너에 리소스를 할당할 수 있습니다.

  • Kubelet: API 서버에서 Pod 구성을 가져오고 설명된 컨테이너가 실행 중인지 확인합니다.
  • 도커 컨테이너: 도커 컨테이너는 구성된 포드를 실행하는 각 작업자 노드에서 실행됩니다.
  • Kube-proxy: Kube-proxy는 단일 작업자 노드에서 서비스를 수행하는 로드 밸런서 및 네트워크 프록시 역할을 합니다.
  • 포드(Pod): 포드는 노드에서 논리적으로 함께 실행되는 단일 또는 여러 컨테이너의 조합입니다.

기타 주요 용어

복제 컨트롤러

복제 컨트롤러는 포드 템플릿을 정의하는 객체입니다. 또한 실행 중인 복사본 수를 늘리거나 줄여 Pod의 동일한 복제본을 수평으로 확장하는 매개변수를 제어합니다.

복제 세트

복제 세트는 컨트롤러가 관리하려는 포드를 인식하는 방식에 유연성을 제공하는 복제 컨트롤러 설계에 대한 상호 작용입니다. 더 높은 복제 선택 기능으로 인해 복제 컨트롤러를 대체합니다.

배포

배포는 직접 생성하고 관리할 수 있는 일반적인 워크로드입니다. 배포에서는 수명주기 관리 기능을 추가하는 빌딩 블록으로 복제 세트를 사용합니다.

상태 저장 세트

순서와 독창성을 제공하는 특수 포드 컨트롤입니다. 주로 배포 순서, 안정적인 네트워킹 및 영구 데이터와 관련하여 특별한 요구 사항이 있는 세부적인 제어를 갖는 데 사용됩니다.

데몬 세트

데몬 세트는 클러스터의 모든 노드에서 포드 복사본을 실행하는 또 다른 특수 형태의 포드 컨트롤러입니다. 이러한 유형의 포드 컨트롤러는 유지 관리를 수행하고 노드 자체에 대한 서비스를 제공할 수 있는 포드를 배포하는 효과적인 방법입니다.

Kubernetes 대 Docker Swarm

다음은 중요한 차이점입니다. 쿠버네티스 대 도커.

매개 변수 도커 스웜 Kubernetes
스케일링 자동 확장 없음 자동 확장
로드 균형 조정 자동 로드 밸런싱을 수행합니까? 부하 분산 설정을 수동으로 구성
스토리지 볼륨 공유 Shares 다른 컨테이너의 저장 볼륨 Shares 동일한 포드 내 여러 컨테이너 간의 스토리지 볼륨
로그인 및 모니터링 도구 사용 3 사용rd ELK와 같은 파티 도구 로깅 및 모니터링을 위한 내장 도구를 제공합니다.
설치 쉽고 빠르다 복잡하고 시간이 많이 소요됨
GUI GUI를 사용할 수 없음 GUI를 사용할 수 있습니다
확장성 확장은 K8S보다 빠르지만 클러스터 강도는 그다지 강력하지 않습니다. Swarm에 비해 확장 속도는 느리지만 더 강력한 클러스터 상태를 보장합니다. 로드 밸런싱에는 수동 서비스 구성이 필요합니다.
로드 균형 조정 내장된 로드 밸런싱 기술 제공 업데이트하는 동안 서비스를 유지하기 위한 프로세스 예약
업데이트 및 롤백 데이터 볼륨 로깅 및 모니터링 점진적인 업데이트 및 서비스 상태 모니터링. 동일한 Pod 내장 로깅 및 모니터링 도구의 컨테이너와만 공유됩니다.

쿠버네티스의 장점

  • 포드를 통한 손쉬운 서비스 구성
  • 수년간의 귀중한 업계 경험을 바탕으로 Google에서 개발했습니다.
  • 컨테이너 오케스트레이션 도구 중 최대 커뮤니티
  • 온프레미스, SAN, 퍼블릭 클라우드를 포함한 다양한 스토리지 옵션 제공
  • 불변 인프라의 원칙을 준수합니다.
  • Kubernetes는 온프레미스 베어메탈, OpenStack, 퍼블릭 클라우드를 실행할 수 있습니다. 구글, 하늘빛, AWS
  • Kubernetes가 추상화(예: 로드 밸런서 및 스토리지)를 제공하는 경우를 제외하고 모든 공급업체별 API 또는 서비스를 사용할 수 있으므로 공급업체 잠금 문제를 방지하는 데 도움이 됩니다.
  • Kubernetes를 사용한 컨테이너화를 통해 패키지 소프트웨어가 이러한 목표를 달성할 수 있습니다. 이를 통해 다운타임 없이 출시 및 업데이트해야 하는 애플리케이션을 활성화할 수 있습니다.
  • Kubernetes를 사용하면 컨테이너화된 애플리케이션이 원하는 장소와 시간에 실행되도록 보장하고 작업하려는 리소스와 도구를 찾는 데 도움이 됩니다.

쿠버네티스의 단점

  • Kubenetes 대시보드는 예상만큼 유용하지 않습니다.
  • Kubernetes는 모든 개발이 로컬에서 수행되는 환경에서는 약간 복잡하고 불필요합니다.
  • 보안은 별로 효과적이지 않습니다.

요약

  • 컨테이너는 조직이 서비스를 중단하지 않고 유지 관리 및 업데이트를 수행할 수 있도록 지원합니다.
  • Kubernetes는 Google 플랫폼에서 개발된 컨테이너 관리 시스템의 한 예입니다.
  • 쿠버네티스를 사용하는 가장 큰 장점은 온프레미스 OpenStack, 퍼블릭 클라우드 Google, Azure, AWS 등을 실행할 수 있다는 점입니다.
  • Kubernetes는 자동화된 예약 및 자가 치유 기능을 제공합니다.
  • 클러스터, 마스터, 노드, 네임스페이스는 쿠버네티스의 중요한 기본
  • 마스터 노드와 워크 노드는 Kubernetes의 중요한 구성 요소입니다. archi강의.
  • 복제 컨트롤러, 복제 세트, 배포, 상태 저장 세트, 데몬 세트는 Kubernetes에서 사용되는 다른 중요한 용어입니다.
  • Docker Swarm은 자동 크기 조정을 허용하지 않지만 Kubernetes는 자동 크기 조정을 허용합니다.
  • Kubenetes의 가장 큰 단점은 대시보드가 ​​별로 유용하지 않고 효과적이지 않다는 것입니다.