๋ค์ ์๋๋ฆฌ์ค๋ฅผ ๊ณ ๋ คํ์ญ์์ค.
docker-machine create -d amazonec2 --swarm --swarm-master
(๊ธฐํ)docker-machine env
๋ tls ์ธ์ฆ์ IP ๋ถ์ผ์น์ ๋ํด ๋ถํํฉ๋๋ค.docker-machine regenerate-certs
๋ docker-machine env์ ํจ๊ป docker๊ฐ ๋ค์ ์๋ํ๋๋ก ํฉ๋๋ค.docker-machine env --swarm
๋ ์๋ฌด ๋ฌธ์ ๊ฐ ์๋ ๊ฒ์ฒ๋ผ ์๋ํ์ง๋ง docker ๋๋ docker-compose ๋ช
๋ น์ ์๋ฌด ์์
๋ ์ํํ์ง ์์ต๋๋ค. cli์๋ ์ค๋ฅ๊ฐ ์์ผ๋ฉฐ ์๋ฌด ๊ฒ๋ ์์ต๋๋ค. --swarm IP๋ฅผ ์ฌ์ฉํ์ง ์์ ๋ docker ์ด๋ฏธ์ง๋ ์ ์ ํ ์ด๋ฏธ์ง ๋ชฉ๋ก์ ์์ฑํ์ง๋ง --swarm IP๋ฅผ ์ฌ์ฉํ๋ฉด ํค๋๋ง ๋์ดํ๊ณ ์ด๋ฏธ์ง๋ ๋์ดํ์ง ์์ต๋๋ค.regenerate-certs
๋ ๊ธฐ์กด ์ค์๊ณผ ํจ๊ป ์๋ํด์ผ ํฉ๋๊น?
swarm์ ์คํํ๋ฉด ์ฒ์ ์ด๊ธฐํ๋ ๋ ๊ณต์ฉ IP์์ ์์ ๋๊ธฐํฉ๋๋ค. docker inspect
swarm manage
ํ๋ก์ธ์ค์ docker inspect
๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{
"Path": "/swarm",
"Args": [
"manage",
"--tlsverify",
"--tlscacert=/etc/docker/ca.pem",
"--tlscert=/etc/docker/server.pem",
"--tlskey=/etc/docker/server-key.pem",
"-H",
"tcp://0.0.0.0:3376",
"--strategy",
"spread",
"--advertise",
"PUBLICIP:2376",
"--replication",
"etcd://ectd.host:2379/swarm"
]
}
๋ด๊ฐ ์ฐพ์ ๋น ๋ฅธ (๊ทธ๋ฆฌ๊ณ ๋ค์ ๊ฒ์ผ๋ฅธ) ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋จ์ํ docker-machine ๋ช ๋ น์ ๋ค์ ์คํํ์ง๋ง ๋์ ์ผ๋ฐ ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ๋ผ๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๋๋ค.
docker-machine --debug create NEWNAME -d generic \
--generic-ip-address SERVERIP \
--generic-ssh-key KEYPATH \
--generic-ssh-user core \
--engine-label public=false \
--swarm \
--swarm-master \
--swarm-opt replication \
--swarm-discovery=etcd:/URL:PORT/swarm \
--engine-opt "cluster-store=etcd://URL:PORT/store" \
--engine-opt "cluster-advertise=eth0:2376"
์ด ํ @dustinblackman์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ง์ ๋์์ด ๋ฉ๋๋ค!
์ค์ ๋ง์คํฐ๋ฅผ ์ฌ์์ฑํ ํ ์ด๋ฌํ ๊ธฐ๊ณ ์ค ํ๋๋ฅผ ์ ๊ฑฐํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๊น?
๋์ผํ ์๋ฒ๊ฐ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ๋ ๋ฒ ๋์ด๋๋ฉด ์ฝ๊ฐ ๊ตฌ์ฑ๋์ด ๋ณด์
๋๋ค.
@rm-jamotion docker-machine rm
์ฌ์ฉํ์ง ์๊ณ ? ~/.docker/machine/machines
์์ ๋จธ์ ํด๋๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค.
@dustinblackman ์, ์์ง๋ง aws ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ์ฒซ ๋ฒ์งธ ๋จธ์ ์ ์ ๊ฑฐํด์ผ ํฉ๋๋ค. ํ์ง๋ง ์ผ๋ฐ ๋๋ผ์ด๋ฒ๋ก ์์ฑ๋ ๋จธ์ ์ ์ ๊ฑฐํ๊ณ ํค๋ฅผ aws ๋จธ์ ์ผ๋ก ์ฎ๊ธธ ์ ์๋ค๋ฉด ๋ ์ข์ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ aws์ ์์/์ค์ง ๊ธฐ๋ฅ์ ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๋ค...
๋์ปค ๋จธ์ ๋ฒ์ 0.7.0, ๋น๋ 783b3a8,
๊ทธ๊ฒ์ IP ์ฃผ์์ ๋ฌธ์ ๊ฐ ์๋๋๋ค. Virtualbox ๋๋ผ์ด๋ฒ์์ IP ์ฃผ์๋ฅผ ๋ณ๊ฒฝํ์ง ์์๋ regenerate-certs๊ฐ ์๋ชป๋ ํค ์ฌ์ฉ์ ์์ฑํ๋ค๋ ๊ฒ์ ์์์ต๋๋ค.
sudo openssl x509 -in /var/lib/boot2docker/server.pem -noout -text | grep -A8 "X509v3 extensions"
X509v3 extensions:
X509v3 Key Usage: critical
Digital Signature, Key Encipherment, Key Agreement
X509v3 Extended Key Usage:
TLS Web Server Authentication
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Alternative Name:
DNS:localhost, IP Address:10.10.0.148
docker ๋ฐ๋ชฌ์ ๋ก๊ทธ์์ ๋ค์์ ์ฐพ์ ์ ์์ต๋๋ค.
2016-07-29 13:13:58.745094 I | http: TLS handshake error from 10.10.0.60:33214: tls: failed to verify client's certificate: x509: certificate specifies an incompatible key usage
๋์ปค ์ ๋ณด์์ ์ค์์ ์ฐ๊ฒฐ๋๋ฉด ๋ชจ๋ ๋ ธ๋๊ฐ ๋ณด๋ฅ ์ค์ด๊ณ ์ค์ ๋ง์คํฐ ๋ก๊ทธ์์:
time="2016-07-29T13:22:58Z" level=debug msg="Failed to validate pending node: The server probably has client authentication (--tlsverify) enabled. Please check your TLS client certification settings: Get https://10.10.0.60:2376/info: remote error: bad certificate" Addr="10.10.0.60:2376"