답변:
도커 :
docker run ...
됩니다.최신 정보:
애플리케이션, 노드 및 스웜 클러스터 관리를 제공하는 Docker Cloud의 서비스는 5 월 21 일에 종료됩니다. [2020] ... 자동화 된 빌드 및 레지스트리 스토리지 서비스는 영향을받지 않으며 계속 사용할 수 있습니다.
@ yamenk 's 외에도 답변 Kubernetes를 이해하는 여행에 도움이 될 수있는 몇 가지 세부 정보를 여기에 추가하고 싶습니다.
docker-compose
:는 다중 컨테이너 애플리케이션 을 설명하는 YAML 파일을 사용 하는 도구로 , 각 컨테이너에 대해 여러 명령 을 입력하지 않고도 모든 컨테이너 를 작성 , 시작 / 중지 , 제거 할 수 있습니다 .docker ...
Kubernetes
: 컨테이너화 된 워크로드 및 서비스 를 관리하기 위한 플랫폼 으로 선언적 구성 및 자동화를 모두 용이하게합니다. 계속 읽고 계십니까 ...(문서에서) : Compose는 다중 컨테이너 Docker 응용 프로그램을 정의하고 실행하기위한 도구입니다. Compose에서는 YAML 파일을 사용하여 응용 프로그램 서비스를 구성합니다. 그런 다음 단일 명령으로 구성에서 모든 서비스를 작성하고 시작합니다.
작성에는 애플리케이션의 전체 수명주기를 관리하는 명령이 있습니다.
- 서비스 시작, 중지 및 재 구축
- 실행중인 서비스 상태보기
- 실행중인 서비스의 로그 출력 스트리밍
- 서비스에서 일회용 명령 실행
( 소개에서 Kubernetes까지 ) : Kubernetes는 Docker Swarm, Mesos Marathon, Amazon ECS, Hashicorp Nomad 와 같은 컨테이너 오케 스트레이터 입니다. 컨테이너 오케 스트레이터는 호스트를 그룹화하여 클러스터를 형성하고 응용 프로그램을 확인하는 데 도움이되는 도구입니다.
- 내결함성,
- 확장 할 수 있으며 주문형으로 수행 할 수 있습니다.
- 자원을 최적으로 사용하다
- 다른 응용 프로그램을 자동으로 검색하고 서로 통신 할 수 있습니다.
- 외부 세계에서 접근 가능
- 다운 타임없이 업데이트 / 롤백 할 수 있습니다.
많은 사람들은 Kubernetes가 배우기가 어렵다고 주장합니다. 일련의 문제를 해결하고 사람들이 모든 전제 조건을 몰라도 이해하려고하기 때문입니다. 이것은 복잡합니다. 다음과 같은 개념 / 용어를 읽으면서 퍼즐 조각을 모으십시오. 이 프로세스는 Kubernetes가 해결하려는 문제의 종류를 이해하는 데 도움이됩니다.
컨테이너와 그 관리에는 많은 다른 것들이 있기 때문에 Cloud Native 환경을 주시하십시오.
대화식 버전 : landscape.cncf.io/
2020 년 5 월 : 개방형 표준의 Docker Compose Specification
오픈 소스 커뮤니티의 AWS, Microsoft 및 기타 기관과 협력하여 기존 Compose 플랫폼 외에도 Kubernetes 및 Amazon ECS와 같은 클라우드 네이티브 플랫폼을 지원하도록 Compose Specification을 확장했습니다. 여기 더 : blog / compose-spec.io
docker stack deploy --orchestrator=kubernetes
... docs.docker.com/engine/reference/commandline/stack_deploy
첫 번째 차이점은 컨테이너 엔진과 컨테이너 오케 스트레이터입니다.
docker
컨테이너 엔진이므로 개발 목적으로 PC에서 로컬로 최대 하나의 컨테이너를 빌드하고 실행할 수 있습니다.
docker-compose
여러 컨테이너를 실행하고 Docker 엔진 기능을 통해 볼륨과 네트워킹을 공유하고 로컬에서 실행되어 서비스 구성을 에뮬레이션하고 클러스터에서 원격으로 실행하는 Docker 유틸리티입니다.
Kubernetes는 컨테이너 오케스트레이션 플랫폼으로, 컨테이너를 실행하고 엔진 기능을 향상시켜 복잡한 애플리케이션 (사용자 또는 클라우드 공급자가 관리하는 PaaS의 종류)을 제공하도록 컨테이너를 구성하고 확장 할 수 있습니다. 주요 Kubernetes 기능은 컨테이너를 사용하여 인프라와 애플리케이션을 분리하는 것이며 Docker가 rkt 또는 cri-o로 컨테이너를 실행할 수있는 다른 엔진에도 개방되어 있습니다.
Docker 클라우드는 PaaS 오퍼입니다. docker
엔진 API를 .
이제 요구 사항, 인프라 제어 수준 및 대상 청중에 따라 베어 메탈의 Kubernetes 또는 Azure ACS 또는 Google GKE 등을 사용할 수 있습니다.
이것이 도움이 되었기를 바랍니다 :)
Docker Compose 는 프로덕션 준비 도구가 아닙니다. PoC 또는 개발 환경에서는 훌륭하지만 심각한 프로덕션 용도로 사용되는 테이블 스테이크에는 많은 기능이 없습니다. Swarm은 더 생산 준비가되어 있지만 Greenfield 시나리오에서는 Swarm에 투자하지 않습니다. Kubernetes는 Docker Desktop에 포함되어 있으며 모든 주요 클라우드 제공 업체가 제공하는 것으로 입증되어 오케스트레이션 전투에서 승리했습니다. Kubernetes는 훨씬 더 유능하며 더 많은 커뮤니티 및 기업 지원을 제공합니다.
Pluralsight, Linux Academy 등에서 사용할 수있는 Kubernetes 튜토리얼에 대해 알아보고 선택한 클라우드 플랫폼 (EKS, AKS, GKE 등)에서 사용할 클러스터를 회전시키는 것이 좋습니다. 베어 메탈에서 스핀 업을 시도하는 경우 OpenShift를 살펴보십시오. 그러나이 설정에서 Kubernetes의 마법을 잃어버린다는 것을 인식하십시오.
도커 작성 :
A의 docker-compose.yml
파일의 각 항목은 선택적으로 얻을 수있는 docker-compose
이미지를 구축 할 수 있습니다. 각 항목은 구축하려는 단일 컨테이너를 나타낼 수 있으며 각 항목은 네트워킹 요구 사항 또는 포트를 정의합니다.
쿠 버네 티스 :
Kubernetes는 모든 이미지가 이미 빌드 될 것으로 예상하고 개체 당 하나의 구성 파일이 생성되도록하고 모든 네트워킹을 수동으로 설정해야합니다.
따라서 이미지가 Docker Hub에서 호스팅되도록하고 컨테이너를 만들기위한 구성 파일 하나와 네트워킹을 설정하기위한 구성 파일 하나를 만듭니다.
도커 작성 : 도커 컨테이너는 yaml 파일의 도움없이 직접 실행할 수 있습니다. 그러나 Docker compose의 도움으로 도구 컨테이너 속성을 docker-compose.yml 파일이라는 파일 안에 정의 할 수 있습니다. 자세한 내용은 아래 샘플 yml 파일을 찾으십시오.
version: "3.7"
services:
redis:
image: redis:latest
deploy:
replicas: 1
configs:
- my_config
- my_other_config
configs:
my_config:
file: ./my_config.txt
my_other_config:
external: true
yml 파일을 통해 이미지 이름, 복제 횟수 등을 구성 할 수 있습니다.
Kubernetes : Google이 빌드 한 Docker에서 실행되는 컨테이너 관리 플랫폼입니다. Docker swam은 docker 자체로 빌드 된 또 다른 컨테이너 관리 플랫폼입니다. Kubernetes는 또한 docker compose와 같은 yaml 파일에 포드 (docker의 컨테이너에 해당)와 관련된 구성을 저장하는 기능을 제공합니다. 예 yaml 파일
apiVersion: v1
kind: Pod
metadata:
name: rss-site
labels:
app: web
spec:
containers:
- name: front-end
image: nginx
ports:
- containerPort: 80
- name: rss-reader
image: nickchase/rss-php-nginx:v1
ports:
- containerPort: 88
여기에는 이미지, 열 포트 및 포트 대 호스트 포트 매핑 등도 제공됩니다. docker compose와 같이 kubectl apply -f는이 파일을 실행하는 명령입니다.