>시스템 튜토리얼 >리눅스 >Kubernetes가 널리 인기를 얻는 이유는 정확히 무엇입니까?

Kubernetes가 널리 인기를 얻는 이유는 정확히 무엇입니까?

王林
王林앞으로
2024-01-03 08:30:031701검색
소개 컨테이너화된 워크로드를 실행하기 위한 Kubernetes 플랫폼은 클라우드 네이티브 애플리케이션을 개발하고 배포할 때 중요한 역할을 합니다. 당연히 클라우드 네이티브 애플리케이션을 개발하고 배포하는 것이 매우 대중화되었습니다. 버그 수정과 새로운 기능을 신속하게 배포하고 지속적으로 제공할 수 있는 프로세스에는 분명한 이점이 있지만 아무도 닭과 달걀 문제에 대해 이야기하지 않습니다. 이를 달성하는 방법은 무엇입니까? 클라우드 네이티브 애플리케이션을 처음부터 개발하고 유지 관리하기 위한 인프라와 개발 프로세스를 구축하는 것은 결코 쉽지 않고 시간이 많이 걸리는 작업입니다.

Kubernetes가 널리 인기를 얻는 이유는 정확히 무엇입니까?

Kubernetes는 이러한 문제를 해결하는 컨테이너화된 워크로드를 실행하기 위한 비교적 새로운 플랫폼입니다. 원래 Google 내 프로젝트였던 Kubernetes는 2015년에 Cloud Native Computing Foundation에 기부되었으며 전 세계 오픈 소스 커뮤니티의 개발자를 끌어 모았습니다. Kubernetes는 Google의 15년 간의 프로덕션 및 개발 환경 운영 경험을 바탕으로 설계되었습니다. 오픈소스이기 때문에 누구나 다운로드하여 사용할 수 있으며, 그 장점을 실감할 수 있습니다.

그렇다면 Kubernetes에는 왜 그렇게 큰 놀라움이 있을까요? 저는 이것이 OpenStack과 같은 IaaS(Infrastructure as a Service)의 리소스와 기본 런타임 구현이 공급업체에 의해 완전히 제어되는 전체 PaaS(Platform as a Service) 간의 최상의 균형을 유지한다고 생각합니다. Kubernetes는 인프라 관리를 위한 추상화와 베어 메탈에 대한 심층적인 문제 해결을 위한 도구 및 기능이라는 두 가지 이점을 제공합니다.

IaaS와 PaaS

OpenStack은 대부분 물리적 리소스 풀(프로세서, 네트워크, 스토리지 등)이 할당되어 여러 사용자에게 공유되는 IaaS 솔루션으로 분류됩니다. 전통적인 하드웨어 기반 가상화를 사용하여 사용자 간의 격리를 달성합니다.

OpenStack의 REST API를 사용하면 코드를 사용하여 자동화된 인프라 생성이 가능하지만 여기에 문제가 있습니다. IaaS 제품은 인프라도 수출합니다. 일단 만들어진 후에는 더 많은 인프라를 지원하고 관리할 수 있는 서비스 방법이 많지 않았습니다. OpenStack이 서버 및 IP 주소와 같은 기본 인프라를 생성하는 정도까지는 관리 우선순위가 됩니다. 잘 알려진 결과는 가상 머신(VM)의 확산이지만 네트워크, 암호화 키, 스토리지 볼륨에서도 마찬가지입니다. 이렇게 하면 개발자는 애플리케이션을 구축하고 유지 관리하는 데 소요되는 시간을 줄일 수 있습니다.

다른 클러스터 기반 솔루션과 마찬가지로 Kubernetes는 개별 서버 수준에서 작동하여 수평적 확장을 지원합니다. 이를 통해 쉽게 새 서버를 추가하고 새 하드웨어에 대한 로드 일정을 즉시 예약할 수 있습니다. 마찬가지로, 서버가 효과적으로 활용되지 않거나 유지 관리가 필요한 경우 클러스터에서 서버를 제거할 수 있습니다. Kubernetes가 자동으로 처리할 수 있는 다른 작업으로는 작업 예약, 상태 모니터링, 고가용성 유지 관리 등의 조정 활동이 있습니다.

네트워크는 IaaS 환경에서 안정적으로 조정하기 어려울 수 있는 또 다른 영역입니다. IP 주소를 통해 마이크로서비스 간 통신은 까다로울 수 있습니다. Kubernetes는 IP 주소 관리, 로드 밸런싱, 서비스 검색 및 DNS 이름 등록을 구현하여 클러스터 내에 간편하고 투명한 네트워킹 환경을 제공합니다.

배포용으로 설계됨

애플리케이션을 실행할 환경을 조성하고 나면 배포는 매우 쉽습니다. 애플리케이션을 안정적으로 배포하는 것은 말처럼 쉽지는 않지만 가장 쉬운 작업은 아닙니다. 다른 환경에 비해 Kubernetes의 큰 장점은 배포가 일류 시민이라는 것입니다.

단일 Kubernetes 명령줄 인터페이스(CLI) 명령을 사용하여 클러스터에 애플리케이션을 설명하고 설치할 수 있습니다. Kubernetes는 초기 배포, 새 버전 출시, 중요한 기능이 중단될 때 롤백까지 전체 애플리케이션 수명 주기를 지원합니다. 실행 중인 배포를 일시 중지하고 재개할 수도 있습니다. 배포 시스템을 직접 구축하는 것보다 애플리케이션 배포를 위한 기성 도구와 지원이 내장되어 있다는 점은 과소평가되어서는 안되는 이점입니다. Kubernetes 사용자는 애플리케이션 배포의 바퀴를 다시 만들 필요도 없고 이를 어려운 작업으로 생각할 필요도 없습니다.

Kubernetes는 실행 중인 배포 상태도 모니터링할 수 있습니다. 이 기능을 IaaS 환경의 배포 프로세스와 동일한 방식으로 작성할 수는 있지만 이는 매우 어려운 작업이며 이와 같은 경우가 많이 있습니다.

DevOps를 위해 설계

Kubernetes 애플리케이션 개발 및 배포에 대한 더 많은 경험을 쌓으면 Google 및 앞서 온 다른 사람들과 동일한 길을 따르게 됩니다. 다중 서비스 애플리케이션의 효과적인 개발 및 문제 해결에 중요한 몇 가지 Kubernetes 기능이 있다는 것을 알게 될 것입니다.

첫째, 로그나 SSH(보안 셸)를 통해 실행 중인 서비스를 쉽게 검사하는 Kubernetes의 기능이 매우 중요합니다. 단일 명령줄 호출을 통해 관리자는 Kubernetes에서 실행되는 서비스의 로그를 검사할 수 있습니다. 이는 간단한 작업처럼 들릴 수 있지만 IaaS 환경에서는 이미 작업을 수행하지 않은 이상 쉽지 않습니다. 대규모 애플리케이션에는 로그 수집 및 분석을 전담하는 하드웨어와 인력이 있는 경우가 많습니다. Kubernetes에 로그인하면 모든 기능을 갖춘 로깅 및 메트릭 솔루션을 대체할 수는 없지만 기본적인 문제 해결을 제공하는 데는 충분합니다.

둘째, Kubernetes는 내장된 키 관리 기능을 제공합니다. 처음부터 자체 배포 시스템을 개발한 또 다른 문제 팀은 비밀번호 및 API 토큰과 같은 민감한 데이터를 가상 머신에 안전하게 배포하는 것이 어렵다는 사실을 알고 있습니다. Kubernetes는 키 관리를 최우선으로 삼아 팀이 안전하지 않고 잘못된 키 배포 시스템을 개발하거나 배포 스크립트에 자격 증명을 하드코딩하는 것을 방지합니다.

마지막으로 Kubernetes에는 확장 자동화, 로드 밸런싱 및 애플리케이션 다시 시작을 위한 기능이 있습니다. 다시 말하지만, 이는 IaaS 또는 베어메탈을 사용할 때 개발자가 직접 작성해야 하는 기능입니다. Kubernetes 애플리케이션의 크기 조정 및 상태 확인은 서비스 정의에 선언되며, Kubernetes는 올바른 수의 인스턴스가 정상적으로 실행되고 있는지 확인합니다.

요약

IaaS와 PaaS 시스템의 차이는 엄청나며 PaaS를 포함하면 개발 및 디버깅 시간을 많이 절약할 수 있습니다. PaaS로서 Kubernetes는 클라우드 네이티브 애플리케이션을 개발, 배포 및 디버그하는 데 도움이 되는 강력하고 효과적인 기능을 구현합니다. 아키텍처와 디자인은 수십 년간의 흔치 않은 경험을 대표하며, 귀하의 팀은 이러한 이점을 무료로 누릴 수 있습니다.


작가 소개:

Tim Potter - Tim은 Hewlett Packard Enterprise의 수석 소프트웨어 엔지니어입니다. 그는 Samba, Wireshark, OpenPegasus 및 Docker와 같은 프로젝트를 포함하여 거의 20년 동안 무료 오픈 소스 소프트웨어 작업을 해왔습니다. Tim은 Docker, Kubernetes 및 기타 인프라 관련 주제에 대해 https://elegantinfrastructure.com/의 블로그에 게시합니다.


위 내용은 Kubernetes가 널리 인기를 얻는 이유는 정확히 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 linuxprobe.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제