我想在 VirtualBox 上设置一个 coreOS 集群。我已经阅读了官方网站上的 coreOS 文档,据说我必须使用相同的配置启动每个虚拟机,并且它们应该自动集群。我正在使用 ct 命令将容器 Linux 配置转换为 coreOS 点火文件。
ct --platform=vagrant-virtualbox<containerLinuxConfig>ignition.json
这是我的容器 Linux 配置文件
etcd:
name: "{HOSTNAME}"
listen_peer_urls: "http://{PRIVATE_IPV4}:2380"
listen_client_urls: "http://0.0.0.0:2379"
initial_advertise_peer_urls: "http://{PRIVATE_IPV4}:2380"
advertise_client_urls: "http://{PRIVATE_IPV4}:2379"
# replace "<token>" with a valid etcd discovery token
discovery: "https://discovery.etcd.io/b89df44ae2643afed5d3f05ea774ba6b"
systemd:
units:
- name: docker-tcp.socket
enable: true
contents: |
[Unit]
Description=Docker Socket for the API
[Socket]
ListenStream=2375
Service=docker.service
BindIPv6Only=both
[Install]
WantedBy=sockets.target
- name: flanneld.service
dropins:
- name: 50-network-config.conf
contents: |
[Service]
ExecStartPre=/usr/bin/etcdctl set /flannel/network/config '{ "Network": "10.2.0.0/16", "Backend":{"Type":"vxlan"} }'
flannel:
etcd_prefix: "/flannel/network"
passwd:
users:
- name: core-01
password_hash: $1$B61gfKDk$ALsU28o4XGSro4Uqd00FW/
groups:
- sudo
- docker
但是当我启动第一台虚拟机时,我使用
etcdctl 成员列表
命令为了检查集群的第一个成员是否启动,我得到了这个输出。
Error: client: etcd cluster is unavailable or misconfigured; error #0: dial tcp 127.0.0.1:2379: connect: connection refused
; error #1: dial tcp 127.0.0.1:4001: connect: connection refused
error #0: dial tcp 127.0.0.1:2379: connect: connection refused
error #1: dial tcp 127.0.0.1:4001: connect: connection refused
当输出应该类似于
e601a65b304e868f: name=core-01 peerURLs=http://192.168.1.30:2380 clientURLs=http://192.168.1.30:2379 isLeader=true
为什么会这样?我应该在容器 linux 配置中进行哪些更改以使机器集群化?