replicas 3 으로 되어있으므로 해당 Service 는 무슨 일이 있어도 컨테이너 3 개를 유지해야 한다
Endpoint Spec 에서는 일반적으로 vip 를 사용한다. 이때, Mode 를 ingress 로 한다. Ingress mode는 Service 생성시 주소가 vip 인 가상의 스위치를 두고, 외부 사용자는 해당 vip 에 접근하면, vip 에서 각 컨테이너에 접속하게 해준다
- vip 는 자동으로 생성된다
- 즉, 외부 사용자는 컨테이너에 직접 접속하는 것이 아닌, vip 를 거쳐서 컨테이너에 접속한다
- 이는, 무조건 컨테이너를 3 개 유지하게 했으므로, 컨테이너가 Shutdown 되면, 3 개를 유지하기 위해 컨테이너를 자동으로 생성한 것이다
docker service create --name web --constraint node.role==worker --mode global -p 80:80 nginx
- Docker Swarm ( Swarm clasic ) : 컨테이너 정보를 확인하기 위해 Agent 를 거쳐서 Worker 의 Docker Daemon 과 통신한다. 컨테이너와 노드, 클러스터 상태의 정보 관리 같은 경우, zookeeper, etcd 와 같은 별도의 분산 코디네이터에서 해준다
- Swarm mode : Swarm 이 Worker 의 Docker Daemon 과 직접 통신한다. Swarm mode 는 분산 코디네이터가 자체에 내장되어 있어 컨테이너와 노드, 클러스터 상태의 정보 관리를 직접한다. 따라서 추가 설치 패키지등이 없다
현재는 Swarm mode 를 사용한다. 용어에 주의하자!! Swarm mode 와 Docker Swarm 은 다르다 !! 일반적으로 Swarm Cluster 는 Swarm mode 를 지칭한다