소개 | 몇 주 전에 CentOS 7.2에서 시작한 작업을 계속해 보겠습니다. 이 가이드에서는 Docker 1.12에 내장된 기본 클러스터링 및 오케스트레이션 기능을 초기화하고 시작하는 방법을 배웠습니다. 하지만 관리자 노드만 있고 다른 작업자 노드는 없습니다. 오늘 우리는 이에 대해 확장해 보겠습니다. |
CentOS 옆에 Fedora 24와 같이 Sawrm에 비대칭 노드를 추가하는 방법을 보여 드리겠습니다. 두 노드 모두 멋진 로드 밸런싱 기능과 함께 클러스터에 합류하게 됩니다. 물론 쉽지 않을 것이고 몇 가지 장애물에 직면하게 될 것이므로 꽤 재미있을 것입니다.
티저
전제조건Swarm에 다른 노드를 성공적으로 추가하기 전에 몇 가지 작업을 수행해야 합니다. 이상적으로는 모든 노드가 동일한 버전의 Docker를 실행해야 하며 기본 오케스트레이션 기능을 지원하려면 버전이 1.12 이상이어야 합니다. CentOS와 마찬가지로 Fedora의 내장 리포지토리에는 최신 빌드 버전이 없으므로 수동으로 빌드하거나 Docker 리포지토리를 사용하여 올바른 버전을 수동으로 추가 및 설치하고 일부 종속성 충돌을 수정해야 합니다. 이미 CentOS에서 수행하는 방법을 보여 드렸으며 프로세스는 동일합니다.
또한 모든 노드는 서로 통신할 수 있어야 합니다. 이를 위해서는 관리자와 작업자 노드가 서로 통신할 수 있도록 올바른 라우팅 및 방화벽 규칙이 필요합니다. 그렇지 않으면 Swarm에 노드를 추가할 수 없습니다. 가장 쉬운 해결 방법은 일시적으로 방화벽 규칙을 지우는 것(iptables -F)이지만, 이렇게 하면 보안이 손상될 수 있습니다. 수행 중인 작업을 완전히 이해하고 노드 및 포트에 대한 올바른 규칙을 작성하십시오.
데몬의 오류 응답: 노드가 가입되기 전에 시간 초과에 도달했습니다. 스웜에 참여하려는 시도는 백그라운드에서 계속됩니다. 노드의 현재 스웜 상태를 보려면 "docker info" 명령을 사용하세요.
데몬의 오류 응답: 참여하기 전에 노드 시간이 초과되었습니다. Swarm에 참여하려는 시도는 백그라운드에서 계속됩니다. 노드의 현재 Swarm 상태를 보려면 "docker info" 명령을 사용하십시오.
호스트 머신에 동일한 Docker 이미지를 제공해야 합니다. 이전 튜토리얼에서는 Apache 이미지를 생성했으므로 작업자 노드에서 동일한 작업을 수행하거나 생성된 이미지를 배포해야 합니다. 이렇게 하지 않으면 오류가 발생합니다. Docker 설정에 도움이 필요하면 소개 가이드와 웹 튜토리얼을 읽어보세요.
으아악 지금 시작하세요이제 CentOS 머신이 부팅되었고 컨테이너가 성공적으로 생성되었습니다. 호스트 포트를 사용하여 서비스에 연결할 수 있으며 모두 괜찮아 보입니다. 현재 Swarm에는 관리자만 있습니다.
매니저
직원 가입새 노드를 추가하려면 Join 명령을 사용해야 합니다. 하지만 작업자 노드가 Swarm 관리자에 대해 올바르게 인증할 수 있도록 먼저 토큰, IP 주소 및 포트를 제공해야 합니다. 그런 다음 (Fedora에서) 다음을 실행합니다:
으아악방화벽 및 라우팅 규칙을 수정하지 않으면 시간 초과 오류가 발생합니다. 이미 Swarm에 가입한 경우 가입 명령을 반복하면 오류가 발생합니다:
으아악의심스러운 경우 Swarm을 종료하고 다시 시도할 수 있습니다.
으아악작업자 노드에서는 docker info를 사용하여 상태를 확인할 수 있습니다.
으아악 서비스 생성 또는 확장이제 Docker가 노드 간에 컨테이너를 배포하는지, 어떻게 배포하는지 확인해야 합니다. 내 테스트에서는 매우 가벼운 부하에서 매우 간단한 균형 조정 알고리즘을 보여줍니다. 한두 번 시도한 후에는 확장 및 업데이트를 시도한 후에도 Docker가 실행 중인 서비스를 새 작업자에게 재할당하지 않았습니다. 마찬가지로 어느 시점에서 작업자 노드에 새 서비스를 생성합니다. 어쩌면 이것이 최선의 선택일지도 모릅니다.
스케일 서비스
서비스 ls
서비스 ls, 더보기
새 작업자 노드에서 새 서비스를 완전히 생성합니다.
잠시 후 두 컨테이너 간에 기존 서비스를 일부 재배포하는 작업이 있었지만 시간이 좀 걸렸습니다. 새로운 서비스가 잘 작동합니다. 이것은 단지 초기 관찰일 뿐이므로 지금은 더 이상 말할 수 없습니다. 이제 탐색과 조정을 시작할 때입니다.
잠시 후 로드 밸런싱이 작동했습니다.
요약Docker는 계속 성장하면서 더욱 복잡해지고 강력해지고 우아해지는 민첩한 작은 짐승입니다. 대기업에 먹히는 것은 시간문제일 뿐이었다. Swarm 모드는 기본 오케스트레이션 기능을 제공할 때 잘 작동하지만 단지 몇 개의 컨테이너를 넘어 알고리즘과 확장성을 최대한 활용합니다.
내 튜토리얼에서는 CentOS에서 실행되는 클러스터에 Fedora 노드를 추가하고 두 노드가 병렬로 작동하도록 하는 방법을 보여줍니다. 로드 밸런싱에 관해 여전히 몇 가지 질문이 있지만 이에 대해서는 향후 기사에서 살펴보겠습니다. 전체적으로 이것이 기억할 가치가 있는 교훈이 되기를 바랍니다. 우리는 Swarm을 설정하려고 할 때 발생할 수 있는 몇 가지 전제 조건과 일반적인 문제를 검토했고, 여러 컨테이너를 출시했으며, 서비스 확장 및 배포 방법도 간략하게 다루었습니다. 기억하세요, 이것은 시작에 불과합니다.
건배.
작가 소개:
저는 Igor Ljubuncic입니다. 이제 약 38세이며 결혼했지만 자녀는 없습니다. 저는 지금 대담하고 혁신적인 클라우드 기술 회사에서 수석 엔지니어로 일하고 있습니다. 2015년 초까지 저는 세계 최대 IT 기업 중 한 곳에서 시스템 아키텍처 엔지니어로 근무하면서 엔지니어링 컴퓨팅 팀과 협력하여 새로운 Linux 기반 솔루션을 개발하고 커널을 최적화하며 Linux 문제를 해결했습니다. 그 전에는 고성능 컴퓨팅 환경을 위한 혁신적인 솔루션을 설계하는 팀의 기술 책임자였습니다. 시스템 전문가, 시스템 프로그래머 등을 포함한 다른 멋진 직함도 있습니다. 이 모든 것이 한때는 취미였지만 2008년부터 급여를 받는 직업이 되었습니다. 이보다 더 만족스러운 일은 무엇일까요?
2004년부터 2008년까지 저는 의료 영상 업계에서 물리학자로 일하며 생계를 유지했습니다. 내 업무 전문 분야는 문제 해결 및 알고리즘 개발에 중점을 두고 있습니다. 이를 위해 저는 주로 신호 및 이미지 처리를 위해 Matlab을 광범위하게 사용합니다. 또한 저는 MEDIC Six Sigma Green Belt, 실험 설계 및 통계 공학을 포함한 여러 주요 엔지니어링 방법론에 대한 인증을 받았습니다.
저는 또한 Linux에서 판타지 작업과 기술 작업 모두에 관한 책을 쓰기 시작했습니다. 서로 혼합됩니다.
내 오픈 소스 프로젝트, 출판물 및 특허의 전체 목록을 보려면 아래로 스크롤하세요.
내 수상, 후보 및 IT 관련 인증의 전체 목록을 기다려 주세요.
위 내용은 Docker 엔진 Swarm에 작업자 노드를 추가하세요!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!