Consul を Rancher で実行しようとしています。すでにカタログアイテムがあるので、これは簡単にできるはずです。
ただし、それを機能させることができませんでした。起動時に、server.json の json が無効であるという例外がスローされます。(この server.json がどこにあるのか、何に使われるのかはまだ謎です)
それで、私はそれを手動で起動して実行しようとしました。docker-compose スクリプトはいくつかありますが、どれも rancher では機能しません。
各サーバーを手動でセットアップしようとしましたが、まだ失敗しています。各ノードは、他のノードから ping を取得していないと不平を言っています。
これが私が構築しようとしている docker-compose ファイルです: https://github.com/AsynkronIT/ConsulCluster/blob/master/docker-compose.yml
consul1:
ports:
- 8400:8400/tcp
- 8500:8500/tcp
- 8600:8600/tcp
- 8301:8301/tcp
- 8301:8301/udp
- 8302:8302/tcp
- 8302:8302/udp
environment:
CONSUL_LOCAL_CONFIG: '{"skip_leave_on_interrupt": true}'
labels:
io.rancher.container.pull_image: always
tty: true
command:
- agent
- -server
- -bootstrap-expect=3
- -ui
hostname: consulserver1
image: consul:latest
stdin_open: true
consul2:
ports:
- 8400:8400/tcp
- 8500:8500/tcp
- 8600:8600/tcp
- 8301:8301/tcp
- 8301:8301/udp
- 8302:8302/tcp
- 8302:8302/udp
environment:
CONSUL_LOCAL_CONFIG: '{"skip_leave_on_interrupt": true}'
labels:
io.rancher.container.pull_image: always
tty: true
command:
- agent
- -server
- -bootstrap-expect=3
- -retry-join=consul1
hostname: consulserver2
image: consul:latest
stdin_open: true
links:
- consul1
consul3:
ports:
- 8400:8400/tcp
- 8500:8500/tcp
- 8600:8600/tcp
- 8301:8301/tcp
- 8301:8301/udp
- 8302:8302/tcp
- 8302:8302/udp
environment:
CONSUL_LOCAL_CONFIG: '{"skip_leave_on_interrupt": true}'
labels:
io.rancher.container.pull_image: always
tty: true
command:
- agent
- -server
- -bootstrap-expect=3
- -retry-join=consul1
hostname: consulserver3
image: consul:latest
stdin_open: true
links:
- consul1
私は何を間違っていますか?領事にランチャーと仕事をさせることに成功した人は他にいますか?
このビットは私には非常に奇妙に見えます:
memberlist: Suspect consulserver1 has failed, no acks received
memberlist: Got ping for unexpected node 'consulserver1' from=172.17.0.3:8301
memberlist: Got ping for unexpected node consulserver1 from=172.17.0.3:47164
memberlist: Failed TCP fallback ping: EOF
memberlist: Marking consulserver1 as failed, suspect timeout reached (0 peer confirmations)
ログには、consulserver1 から ack を受け取っていないと書かれており、同時に、予期しないノード consulserver1 が ping を実行していると不平を言っています..なぜですか?