클러스터 구성 방법

7529 단어 docker

클러스터 구성 방법
이것은 swarm 그룹을 어떻게 설정하는지 (어떤 명령을 사용하고 어떻게 사용하는지) 이다.
집단 설정에 대해 play with docker를 사용했습니다.
나는 네가 노동자나 사장이 무엇인지 알고 있다고 가정한다. 만약 모른다면, 살펴보세요. here

그룹 초기화
그룹 초기화:

  • docker swarm init
  • docker swarm init --advertise-addr  192.168.0.28
    
    명령 출력:
    $ docker swarm init --advertise-addr 192.168.0.28
    Swarm initialized: current node (uckrsawa44hpn8aiyg7alplav) is now a manager.
    
    To add a worker to this swarm, run the following command:
    
        docker swarm join \
        --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
        192.168.0.28:2377
    
    To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
    
    위의 명령을 실행하면 노드가 관리자가 됩니다.
    명령 효과 확인:
  • 부두 일꾼 정보
  • 명령 출력:
    Swarm: active
      NodeID: uckrsawa44hpn8aiyg7alplav
      Is Manager: true
      Managers: 1
      Nodes: 1
    
    출력 알림 현재 노드가 관리자입니다 (예: is 관리자:true)
  • docker 노드 ls
  • 명령 출력:
    ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
    uckrsawa44hpn8aiyg7alplav *  manager1  Ready   Active        Leader
    
    *현재 연결된 노드(현재 고유 노드)를 나타냅니다.
    그 밖에 열 관리자 상태는 노드가 swarm 집단의 지도자(또는 관리자)임을 알려줍니다.

    일꾼 추가
    swarm을 실례화하면 output 명령은 서버에서 실행해야 하는 명령을 표시합니다
    노드가 그룹에 가입합니다.

  • docker swarm 가입-영패 [token] [IP:2377]
  • docker swarm join \
    --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
    192.168.0.28:2377
    
    docker swarm join token worker 명령을 실행할 수도 있습니다.
    명령 효과 확인:
  • docker 노드 ls
  • 처리 중인 노드가 관리자가 아니면 관리자 노드에서 상기 명령을 실행할 수 있습니다
    다음과 같은 메시지가 표시됩니다.
    Error response from daemon: This node is not a swarm manager. Worker nodes can\'t be used to view or modify cluster state.
    Please run this command on a manager node or promote the current node to a manager.
    
    관리자 노드에서 다음을 수행합니다.
    ID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    uckrsawa44hpn8aiyg7alplav *   node1      Ready     Active         Leader           20.10.0
    enemrsanyskdatph4kevf93tc     node2      Ready     Active                          20.10.0
    
    두 번째 줄에서 볼 수 있듯이 노드 2에서 관리자 상태가 비어 있는데 이것은 노드 2가 일꾼임을 나타낸다.

    작업 노드 관리자 만들기
  • docker 노드 업데이트 - 역할 관리자 [HOSTNAME]
  • 현재 그룹 설정에서 node2는 작업 노드입니다. node2를 관리자로 업데이트하는 데 사용됩니다
    관리자 노드(예: node1)에서 다음 명령을 실행합니다.
    docker node update --role manger node2
    
    명령 효과 확인:

  • docker 노드
  • ID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    uckrsawa44hpn8aiyg7alplav *   node1      Ready     Active         Leader           20.10.0
    enemrsanyskdatph4kevf93tc     node2      Ready     Active         Reachable        20.10.0
    
    관리자 상태가 비어 있는 상태에서 액세스 가능한 상태로 바뀐 것을 볼 수 있습니다.

    관리자 추가
  • docker swarm 영패 관리자 가입
  • 관리자의 신분으로 swarm 그룹에 가입하기 위해서 관리자 노드에서 상기 명령을 실행할 수 있습니다
    그런 다음 출력을 관리자로 추가할 노드에 붙여 넣습니다.
    위의 명령 출력(관리자 노드에서):
    To add a manager to this swarm, run the following command:
    
        docker swarm join --token SWMTKN-1-15hse3mbkcunho3vd03zsgx4ak6zzjh8yi6rckee3pn41dhl8s-3lm0r9ohlxuls3vbrf0hp44ky 192.168.0.28:2377
    
    명령 효과 확인:

  • docker 노드
  • ID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
    uckrsawa44hpn8aiyg7alplav     node1      Ready     Active         Leader           20.10.0
    enemrsanyskdatph4kevf93tc     node2      Ready     Active         Reachable        20.10.0
    u1gh6f5phbv68251oqfzwyk9e *   node3      Ready     Active         Reachable        20.10.0
    
    노드 3은 그룹에 관리자로 추가됩니다(예를 들어 관리자 상태에 접근할 수 있음).

    클러스터에서 서비스 만들기
    가령 내가 세 개의 용기/임무를 실행하고 싶다면, 노드마다 한 개의 용기/임무를 실행한다.
    예를 들어 노드 1에는 용기가 있고 노드 2에는 용기가 있으며 노드 3에는 용기가 있다.
    관리자 노드에서 명령을 실행합니다(컨테이너는 alpine image에서 생성됨).
  • docker 서비스 만들기 - 복제본 3 alpine ping 8.8.8.8
  • 명령 효과 확인:
  • 부두 서비스 ls
  • 출력:
    ID             NAME             MODE         REPLICAS   IMAGE           PORTS
    nn7rcguvkbal   trusting_allen   replicated   3/3        alpine:latest
    
    출력에서 우리는 세 개의 던전(3/3)이 실행 중인 것을 볼 수 있다.
  • docker 서비스 ps[서비스 이름]
  • 위의 명령을 사용하여 다음을 확인할 수 있습니다.
  • 주어진 서비스를 수행하는 노드
  • 서비스 상태(예: 실행, 시작 등)
  • 서비스 이름 trusting allen의 출력은 다음과 같습니다.
    ID             NAME               IMAGE           NODE      DESIRED STATE   CURRENT STATE           ERROR     PORTS
    plnrxhc9izj7   trusting_allen.1   alpine:latest   node2     Running         Running 4 minutes ago
    jjhbo65o785z   trusting_allen.2   alpine:latest   node3     Running         Running 4 minutes ago
    rwwlu5n1lfbr   trusting_allen.3   alpine:latest   node1     Running         Running 4 minutes ago
    
    wee se가 출력에서 시작할 때, 노드마다 작업/용기 (--replications 3) 를 실행하고, 상태는running입니다.

    요약/메모
  • 클러스터 초기화, 현재 노드가 관리자/리더가 됨: docker swarminit
  • 그룹에 속하는 노드를 검사합니다. 관리자 노드만 명령을 수행할 수 있습니다: docker node ls
  • 일꾼/매니저를 swarm에 추가:
  • docker swarm 가입 영패 실행 [관리자 | worker] (관리자 노드에서 명령 실행)
    관리자를 추가하고 싶으면, 마지막 인자로 manger를 쓸 수 있습니다.
    워크맨을 추가하려면 워크맨을 마지막 매개 변수로 사용할 수 있습니다.
  • 관심 있는 노드에 명령 출력을 복사하여 붙여 넣고 관리자/일꾼으로 추가
  • worker를 관리자:docker 노드 업데이트 - 역할 관리자 [HOSTNAME]
  • 던전 생성 서비스 사용: docker 서비스 생성 - 던전 [던전 수량][이미지]
  • 클러스터 검사 서비스: docker 서비스 ls
  • 특정 서비스 검사(현재 상태, 어떤 노드가 작업을 실행하는지 등): docker 서비스 ps[서비스 이름]
  • 좋은 웹페이지 즐겨찾기