JavaRush /Java Blog /Random-KO /Docker, Kubernetes, OpenShift는 누구이며 서로 어떻게 관련되어 있나요?
Павел
레벨 11

Docker, Kubernetes, OpenShift는 누구이며 서로 어떻게 관련되어 있나요?

Random-KO 그룹에 게시되었습니다
모든 것은 포장으로 시작됩니다. 예를 들어, 산업 개발에서는 조립된 애플리케이션을 "패키지"하여 개발자가 자신의 컴퓨터에 응용 프로그램을 조립한 형태로 작동할 서버로 전송할 수 있도록 "패키징"해야 합니다. 일종의 보호 역할을 해야 합니다. 이렇게 하면 테스트 중에는 애플리케이션이 작동하지만 프로덕션으로 전환하면 중단되는 등의 예상치 못한 일이 방지됩니다. 또한 "패키징"은 동일한 서버에 있는 다른 응용 프로그램과 하나의 응용 프로그램을 격리합니다. 이러한 격리를 통해 하나의 응용 프로그램이 다른 응용 프로그램의 작업을 방해하지 않도록 할 수 있습니다(예: 하나의 응용 프로그램이 서버의 RAM 전체를 차지할 수 없으므로 운명에 대한 두 번째 적용). 마이크로서비스 아키텍처를 사용한 "패키징"의 장점은 특히 두드러지며 이는 이해할 수 있습니다. 많은 마이크로서비스가 있습니다. 즉, 서로 통신해야 하지만 동시에 서로 간섭해서는 안 되는 많은 작은 애플리케이션이 있습니다. 예를 들어 다양한 서랍이 있는 서랍장(서버)이 있으며, 서로 다른 양말을 한 서랍에서 다른 서랍으로 쉽게 이동할 수 있으며 동시에 서로 또는 팬티와 섞이지 않습니다. Docker, Kubernetes, OpenShift는 누구이며 서로 어떻게 관련되어 있나요?  - 1 패키징은 가상화 도구로 생성됩니다. 옛날에는 가상머신(VM)이 '패키징'으로 사용되었습니다. 노인들은 가상 머신에서 Vista에 Windows XP를 배포한 방법을 기억할 것입니다. 이제 애플리케이션 패키징을 위한 VM은 과거의 일입니다. 컨테이너가 전 세계를 장악했습니다. 더 가볍고, 더 생산적이고, 더 안전하기 때문입니다. 더 자세히 말하자면, 컨테이너는 가상 머신과 어떻게 다릅니까? Docker, Kubernetes, OpenShift는 누구이며 서로 어떻게 관련되어 있나요?  - 2 컨테이너의 몇 가지 장점을 기억해야 합니다. • 크기가 더 작습니다(서버에서 메모리를 덜 차지합니다). • 공유 서버 리소스(RAM, 프로세서 컴퓨팅 시간)에 액세스할 수 있습니다. • 다른 환경(테스트에서 산업까지)으로의 이식성이 향상됩니다. • 더 빠른 실행 속도를 제공합니다(컨테이너가 가벼우므로 더 빠르게 실행됩니다). Docker는 컨테이너의 어머니입니다. 컨테이너라고 하면 Docker를 의미합니다. Docker는 컨테이너화된 환경에서 애플리케이션 배포 및 관리를 자동화하는 소프트웨어입니다. 예를 들어 Docker는 온라인 디자이너와 크레인이 있는 3D 프린터 사이의 교차점입니다. 즉, 먼저 컨테이너에 대한 템플릿(이미지)을 디자인하고, 주어진 조건(이미지)에 따라 컨테이너를 인쇄(생성)한 후 필요한 곳으로 이동할 수 있습니다. Dockerfile은 레버 대신 사용됩니다. 관리 프로세스는 간단합니다. 파일, 명령을 작성하고 실행하고 무슨 일이 일어나는지 확인하면 됩니다. Docker, Kubernetes, OpenShift는 누구이며 서로 어떻게 관련되어 있나요?  - 삼 Docker Docker Compose에 대한 첫 만남 - 업그레이드된 Docker 이제 한 위치에서 여러 컨테이너를 실행해야 하는 시나리오를 살펴보겠습니다. 이에 사용되는 유틸리티는 Docker Compose입니다. Docker Compose는 Docker에 포함된 도구입니다. 프로젝트 배포와 관련된 문제를 해결하도록 설계되었습니다. Docker와 Docker Compose의 차이점: Docker는 개별 컨테이너를 관리하는 데 사용됩니다. Docker Compose는 여러 컨테이너를 동시에 관리하는 데 사용됩니다. 이 도구는 Docker와 동일한 기능을 제공하지만 더 복잡한 구조로 작업할 수 있습니다. Docker, Kubernetes, OpenShift는 누구이며 서로 어떻게 관련되어 있나요?  - 4 Docker Compose 사용에 대한 일반적인 시나리오: 당신이 웹 프로젝트의 개발자라고 상상해 보세요. 이 프로젝트에는 두 개의 웹사이트가 포함되어 있습니다. 첫 번째는 사업가들이 단 몇 번의 클릭만으로 온라인 상점을 만들 수 있게 해줍니다. 두 번째는 고객 지원을 목표로 합니다. 이 두 사이트는 동일한 데이터베이스와 상호 작용합니다. 귀하의 프로젝트는 점점 더 대중화되고 있으며, 프로젝트가 실행되는 서버의 성능이 더 이상 충분하지 않은 것으로 나타났습니다. 결과적으로 전체 프로젝트를 다른 시스템으로 이동하기로 결정했습니다. Docker Compose와 같은 것을 사용해 본 적이 없다면 프로세스에서 아무것도 잊지 않기를 바라면서 컨테이너를 한 번에 하나씩 마이그레이션하고 재구성해야 합니다. Docker Compose를 사용하는 경우 프로젝트를 새 서버로 이동하는 것은 몇 가지 명령을 실행하여 해결할 수 있는 문제입니다. 프로젝트를 새 위치로 이전하는 작업을 완료하려면 몇 가지 설정을 지정하고 데이터베이스의 백업 복사본을 새 서버에 업로드하기만 하면 됩니다. 일반적인 DockerComposer: Docker, Kubernetes, OpenShift는 누구이며 서로 어떻게 관련되어 있나요?  - 5 여기서 기억해야 할 사항: 컨테이너는 애플리케이션을 "패키징"하는 주요 수단입니다. Docker는 컨테이너를 처리하고, 컨테이너 이미지를 생성하고, 컨테이너를 집어 이동합니다. 여러 컨테이너를 동시에 관리하기 위해 Docker에 포함된 Docker Compose가 사용됩니다. 이러한 프로그램은 무료 소프트웨어입니다. Kubernetes(K8s) - Docker 자동화 그래서 우리는 컨테이너를 배포했고, 이를 기계에서 기계로 "일괄"로 전송하는 방법을 알고 있습니다. 그런데 갑자기 컨테이너 중 하나가 떨어졌습니다! 무엇을 해야 할까요? 누가 또 올릴까요? Docker, Kubernetes, OpenShift는 누구이며 서로 어떻게 관련되어 있나요?  - 6 물론 Docker를 통해 수동으로 이 작업을 수행할 수도 있습니다. 하지만 뭔가를 해야 하고, 뭔가를 써야 하고, 일종의 자동화 도구가 필요합니다. Kubernetes(약어로 K8s)가 등장하는 곳이며, 컨테이너의 관리 및 오케스트레이션(관련 엔터티의 자동화된 관리)도 처리합니다. K8을 마음대로 사용하면 밤낮으로 컨테이너를 모니터링할 필요가 없습니다. 행동 시나리오를 정의하는 것만으로도 충분하며 K8은 모든 것을 스스로 수행합니다. Kubernetes의 주요 기능 1. 구성의 확장성과 관리 기능을 제공합니다. 2. 클러스터를 배포할 때 얻고자 하는 것이 무엇인지 설명하면 K8s가 이를 수행합니다. 예를 들어 포드 수를 지정합니다., 할당할 메모리 양은 포드에 배포된(컨테이너에) 애플리케이션의 복제본(인스턴스) 수를 나타냅니다. 3. 시스템을 특정 상태로 유지하는 역할을 담당하며, 무언가가 떨어지면 설정된 구성에 따라 K8이 이를 수거합니다. 여기서 기억해야 할 사항: Kubernetes는 컨테이너화된 애플리케이션을 조정하고 클러스터에서 배포, 확장 및 조정을 자동화하는 도구입니다. Docker를 포함한 주요 컨테이너화 기술을 지원합니다. K8s는 오픈 소스 소프트웨어입니다. Docker, Kubernetes, OpenShift는 누구이며 서로 어떻게 관련되어 있나요?  - 7 OpenShift는 가상화 세계의 페라리입니다. 멋지고 빠르며 비용이 많이 듭니다 . 주제를 발전시켜 OpenShift로 넘어가겠습니다. OpenShift는 추가 기능을 제공하는 Kubernetes의 추가 기능으로, 즉시 사용할 수 있고 길고 번거로운 구성이 필요하지 않으며 즉시 프로덕션에 투입할 수 있습니다. Kubernetes 위에 얼마나 많은 아이콘이 있는지 확인하세요. 그리고 그들 각자는 자신만의 멋진 일을 합니다. Docker, Kubernetes, OpenShift는 누구이며 서로 어떻게 관련되어 있나요?  - 8 OpenShift 하이라이트: • K8s와 달리 유료 제품입니다. • 즉시 사용 가능한 DevOps, 기본 블루/그린, 카나리아 배포 시나리오 지원; • 내장형 Jenkins 지원; • 클러스터 관리 및 작업을 위한 편리한 도구를 제공합니다. • 더욱 엄격한 보안 모델과 내장된 모니터링 기능을 갖추고 있습니다. OpenShift는 Kubernetes와 달리 유료 제품이라는 점을 다시 한 번 강조할 가치가 있습니다. 차이점은 이것이다. Kubernetes를 그대로 사용하면 모든 문제를 스스로 해결한다는 것입니다. OpenShift에 대해 이야기하면 이는 유료 지원의 일부로 새로운 문제를 해결하는 Red Hat의 제품입니다. 요약하자면, 산업 개발에는 애플리케이션을 "패키지"해야 하는 필요성이 있으며, 이 접근 방식은 특히 마이크로서비스 아키텍처와 관련이 있습니다. 컨테이너는 애플리케이션을 패키징하는 주요 수단입니다. Docker는 컨테이너를 처리하고, 컨테이너 이미지를 생성하고, 컨테이너를 집어 이동합니다. 여러 컨테이너를 동시에 관리하기 위해 Docker에 포함된 Docker Compose가 사용됩니다. 이러한 프로그램은 무료 소프트웨어입니다. Kubernetes(K8s)는 컨테이너화된 애플리케이션을 조정하여 클러스터에서 배포, 확장 및 조정을 자동화하는 도구입니다. Docker를 포함한 주요 컨테이너화 기술을 지원합니다. K8s는 오픈 소스 소프트웨어입니다. OpenShift는 추가 기능을 제공하는 Kubernetes의 추가 기능입니다. K8s와 달리 기업용으로 제작된 유료 제품입니다. 즉시 사용 가능한 DevOps 제공: 기본 배포 시나리오 블루/그린, Canary 지원, Jenkins 지원 기능이 내장되어 있으며 클러스터 관리 및 작업을 위한 편리한 도구를 제공합니다. 더욱 엄격한 보안 모델과 내장된 모니터링 기능을 갖추고 있습니다. 코딩이 귀찮은 분들을 위해: Spring Boot 애플리케이션을 컨테이너로 패키징 Docker에 Postgres를 배포하고 Spring-Boot 애플리케이션에 연결하는 방법 웹 세미나: Docker - 컨테이너를 사용하는 방법은 무엇입니까? — Java로 백엔드 개발
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION