Kubernetes는 실제로 무엇을합니까? [닫은]


134

Kubernetes 는 컨테이너 클러스터 "스케줄러 / 오케 스트레이터"로 청구되지만 이것이 무엇을 의미하는지 잘 모르겠습니다. Kubernetes 사이트와 (모호한) GitHub 위키를 읽은 후에는 Docker 컨테이너를 실행할 수있는 VM이 ​​무엇인지 파악한 다음 배포합니다. 그러나 그것은 단지 내 추측 일 뿐이며,이를 뒷받침하는 문서에서 구체적인 언어를 보지 못했습니다.

그래서는 Kubernetes은 무엇 정확하게 , 일부 무엇 특정의 그것을 해결하는 것이 문제가?


모든 도커 월드 프로젝트 (kubernetes / fleet / swarm / etc)가 그들이하는 일과 그 차이점을 설명하는 데 어려움이 있다고 생각하면 다소 소름 끼치는 질문은 우리가 사용자가 제공 할 수있는 전부라고 생각합니다 ... "함대와 kubernetes의 차이점은 무엇입니까?"를 묻고 대답은 "집단을 사용하여 kubernetes를 시작할 수 있습니다"입니다. 버머. ;-)
Torsten Bronger

3
나는 그것이 완전히 유효한 질문이라고 생각하며 doco의 짧은 오는 것을 지적합니다. 너무 광범위하게 닫는 것은 장애입니다. 나에게 가장 좋은 방법은 k8s 코드베이스를 다운로드하고 포드가 무엇인지 찾기 위해 예를 들어 보는 것입니다. 그것은 크게 도움이되었습니다.
Beezer 2018 년

답변:


113

Kubernetes의 목적은 여러 대의 컴퓨터에서 응용 프로그램을보다 쉽게 ​​구성하고 예약 할 수 있도록하는 것입니다. 높은 수준에서는 클러스터의 운영 체제입니다.

기본적으로 각 응용 프로그램이 실행되는 데이터 센터의 특정 시스템에 대해 걱정할 필요가 없습니다. 또한이 시스템에서 애플리케이션을 상태 점검 및 복제 할 수있는 일반 기본 요소와 애플리케이션을 마이크로 서비스에 연결하는 서비스를 제공하므로 애플리케이션의 각 계층이 다른 계층과 분리되어 확장 / 업데이트 / 유지 보수 할 수 있습니다 독립적으로.

응용 프로그램 계층에서 이러한 많은 작업을 수행하는 것이 가능하지만 이러한 솔루션은 일회성이며 취성 경향이 있지만 오케스트레이션 시스템이 응용 프로그램을 실행하는 방법에 대해 걱정하는 걱정을 분리하는 것이 훨씬 좋습니다. 응용 프로그램을 구성하는 코드


3
감사합니다 @ brendan (+1)-당신의 대답은 확실히 도움이됩니다. 하나의 후속 질문 : 이것은 Apache Mesos 가하는 것이 아닙니까? Kubernetes와 Mesos는 서로 경쟁 업체입니까? 그렇지 않다면, 그들은 서로 협력하여 사용될 수 있습니까 (그렇다면 어떻게)? 다시 감사합니다!
Smeeb

2
@smeeb Mesos와 Kubernetes는 서로 보완합니다 (후자는 Mesos 프레임 워크로 지원됨). Mesos는보다 정교한 리소스 관리 기능을 제공합니다. 즉, Kubernetes를 통해 Mesos는 사용 가능한 용량에 따라 사용할 호스트를 결정할 수 있습니다. Mesos는 다른 프레임 워크를 지원합니다. 문서를 읽으면 Marathon이 Mesos 관리 서버 클러스터에서 컨테이너를 시작하는 또 다른 방법임을 알 수 있습니다.
Mark O'Connor

18

Github 페이지 에서 읽을 때 :

Kubernetes는 여러 호스트에서 컨테이너화 된 응용 프로그램을 관리하기위한 오픈 소스 시스템으로 응용 프로그램의 배포, 유지 관리 및 확장을위한 기본 메커니즘을 제공합니다.

쿠 버네 티스는 :

lean: lightweight, simple, accessible
portable: public, private, hybrid, multi cloud
extensible: modular, pluggable, hookable, composable
self-healing: auto-placement, auto-restart, auto-replication

Kubernetes는 Google에서 프로덕션 워크로드를 대규모로 실행하는 데있어 10 년 반의 경험을 바탕으로 커뮤니티의 최고 아이디어와 사례를 결합했습니다.

나를 위해 Kubernetes는 Google의 컨테이너 오케스트레이션 도구입니다. 디자인으로 인해 모든 컨테이너 엔진과의 호환성을 구현할 수 있지만 이제는 Docker로 제한됩니다. 아키텍처에는 몇 가지 중요한 개념이 있습니다.

Kubernetes는 다음 개념으로 작동합니다.

클러스터는 컨테이너가 구축되는 컴퓨팅 리소스입니다. Kubernetes는 어디서나 실행할 수 있습니다! 다양한 서비스에 대한 지침은 시작 안내서를 참조하십시오.

포드는 공유 볼륨을 가진 함께 배치 된 Docker 컨테이너 그룹입니다. Kubernetes를 사용하여 생성, 예약 및 관리 할 수있는 가장 작은 배포 가능 단위입니다. 포드는 개별적으로 생성 할 수 있지만 단일 포드를 생성하더라도 복제 컨트롤러를 사용하는 것이 좋습니다. 포드에 대해 자세히 알아보십시오.

복제 컨트롤러는 포드의 수명주기를 관리합니다. 필요에 따라 포드를 만들거나 종료하여 지정된 수의 포드를 언제든지 실행할 수 있습니다. 복제 컨트롤러에 대한 자세한 내용

서비스는 일련의 포드에 대해 안정적인 단일 이름과 주소를 제공합니다. 기본로드 밸런서 역할을합니다. 서비스에 대한 추가 정보.

레이블은 키 : 값 쌍을 기반으로 개체 그룹을 구성하고 선택하는 데 사용됩니다. 라벨에 대한 추가 정보.

따라서 컨테이너가 실행되는 클러스터를 형성하는 시스템 그룹이 있습니다. 또한 fig와 같은 다른 도구를 사용하는 것과 유사한 방식으로 서비스를 제공하는 컨테이너 그룹을 정의 할 수도 있습니다 (예 : webapp pod는 rails 서버 및 postgres 데이터베이스 일 수 있음). 또한 동시에 실행되는 서비스의 많은 컨테이너 / 포드, 키-값 저장소, 내장 된로드 밸런서 등을 보장하는 다른 도구가 있습니다.

coreos에 대해 알고 있다면 Google과 매우 유사한 솔루션입니다. Algo Kubernetes는 Google Cloud Engine과 잘 통합되어 있습니다.


2
감사합니다 @jcortejoso (+1)-마음에 들지 않으면 몇 가지 후속 질문이 있습니다. (1) Kubernetes는 CoreOS와 비슷하지만 Google에서 말합니다. 이는 Kubernetes와 CoreOS가 동일한 문제를 해결한다는 것을 의미합니다. 그러나 [Kubernetes 자체 웹 사이트] () 에서 CoreOS에 Kubernetes 설치할 수 있다고 말합니다 . 그래서 어느 쪽입니까?!? Kubernetes가 CoreOS와 동일합니까, 아니면 Kubernetes가 CoreOS에서 실행되고 특정 문제를 해결합니까?
Smeeb

1
또한 (2) Kubernetes의 "오케스트레이션"에서 여전히 가치를 볼 수 없습니다. Kubernetes를 사용하여 서비스를 제공하는 컨테이너 그룹을 정의 할 수 있다고 말하면서 두 가지 별도의 사항이 궁금합니다. (2a) 앱 계층에서 이러한 유형의 클러스터링을 수행 할 수 없으며 내 앱을 nginx로드 밸런서? 그리고 (2b) 이것이 "오케스트레이션"에있는 모든 것입니까? 다시 말해, 앱 계층에서 쉽게 달성 할 수있는로드 밸런싱과 같습니다. 생각? 멋진 답변에 다시 한번 감사드립니다!
Smeeb

1
kubernetes가 "경량"이라면, 지방 솔루션이 무엇인지 궁금합니다.
Torsten Bronger

@smeeb 나는 nginx에 익숙하지 않다 (그래서 나의 순진함을 용서한다). 그러나 나는 nginx가 충돌 한 서버를 다시 시작할 것이라고 생각하지 않는다. 머신 (또는 전체 데이터 센터)이 다운되면 nginx는 다른 머신에서 앱을 다시 시작하지 않습니다. kubernetes를 사용하면 항상 n 개의 "포드"를 어딘가에서 계속 실행할 수 있습니다.
kgreenek

10

Kubernetes는 서비스 API와 같은 인프라와 거의 동일한 기능을 제공하지만 가상 머신이 아닌 동적으로 예약 된 컨테이너와 서비스 형 플랫폼으로서 플랫폼을 목표로하지만 다음과 같은 유연성을 제공합니다.

  • 스토리지 시스템 장착,
  • 비밀 배포,
  • 응용 프로그램 상태 확인,
  • 응용 프로그램 인스턴스 복제
  • 수평 자동 스케일링
  • 명명과 발견,
  • 로드 밸런싱,
  • 지속적 업데이트
  • 자원 모니터링
  • 로그 액세스 및 처리
  • 검사 및 디버깅 지원
  • 신원 및 승인.

서비스 검색, 비밀 분배,로드 밸런싱, 모니터링 등에 이미 다른 메커니즘을 사용하는 경우 계속 사용할 수 있지만,이를 제공하여 기존 IaaS 및 PaaS 시스템에서 Kubernetes로 쉽게 전환하는 것을 목표로합니다. 기능.

https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/#why-do-i-need-kubernetes-and-what-can-it-do

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.