我尝试使用CoreOS稳定的AMI设置EC2实例,并使用一些自定义的cloud-init配置但存在一些问题。
#cloud-config
coreos:
etcd:
discovery: https://discovery.etcd.io/5996f1b49fd642c5d1bc2f62cbff2fba
addr: $private_ipv4:4001
peer-addr: $private_ipv4:7001
units:
- name: etcd.service
command: start
- name: fleet.service
command: start
write_files:
- path: /etc/fleet/fleet.conf
content: |
public_ip="$private_ipv4"
metadata="elastic_ip=true,public_ip=$public_ipv4"
上面的cloud-config工作正常,但一旦我在cloud-config下面使用
#cloud-config
coreos:
etcd:
discovery: https://discovery.etcd.io/5996f1b49fd642c5d1bc2f62cbff2fba
addr: $private_ipv4:4001
peer-addr: $private_ipv4:7001
units:
- name: etcd.service
command: start
- name: fleet.service
command: start
users:
- name: core
coreos-ssh-import-github: oba11
write_files:
- path: /etc/fleet/fleet.conf
content: |
public_ip="$private_ipv4"
metadata="elastic_ip=true,public_ip=$public_ipv4"
或
#cloud-config
coreos:
etcd:
discovery: https://discovery.etcd.io/5996f1b49fd642c5d1bc2f62cbff2fba
addr: $private_ipv4:4001
peer-addr: $private_ipv4:7001
units:
- name: etcd.service
command: start
- name: fleet.service
command: start
users:
- name: oba11
groups:
- sudo
- docker
coreos-ssh-import-github: oba11
write_files:
- path: /etc/fleet/fleet.conf
content: |
public_ip="$private_ipv4"
metadata="elastic_ip=true,public_ip=$public_ipv4"
我无法再次通过核心'核心'用户使用我的aws密钥对或个人密钥并创建用户' oba11'用我的个人钥匙。 我也试过alpha AMI,但同样的问题。 我不知道我做错了什么。
非常感谢您的帮助。
答案 0 :(得分:1)
您使用的是陈旧的etcd发现令牌ID。
只要您的群集节点使用了此ID,就会将令牌标记为已使用,如果由于某种原因,没有etd节点心跳到此地址,则令牌将变为无用。
如果您尝试使用相同的etcd发现URI启动新群集或单个节点,则引导过程将失败。
在您的情况下,EC2节点将启动ssh服务,但它们将无法使用该cloud-config正确配置。
您所遇到的行为(连接但拒绝您的PK)是预期的,如果您还没有阅读https://coreos.com/docs/cluster-management/setup/cluster-discovery/所述的文档,可能会引起令人头疼的问题;
群集发现的另一个常见问题是尝试启动 具有陈旧发现URL的新集群。如上所述, 初始领导者选举记录在URL中,表明这一点 新的etcd实例应该加入现有的集群。
如果您提供过时的发现URL,新计算机将尝试 连接到每个旧的对等地址,因为它们会失败 不存在,引导过程将失败。
答案 1 :(得分:0)
我已经成功启动了3个CoreOS机器群集,并且没有任何问题。使用您的配置。检查您的安全组,也许这就是问题所在。我正在使用这个AMI ami-00158768
#cloud-config
coreos:
etcd:
discovery: https://discovery.etcd.io/b0ac83415ff737c16670ce015a5d4eeb
addr: $private_ipv4:4001
peer-addr: $private_ipv4:7001
units:
- name: etcd.service
command: start
- name: fleet.service
command: start
users:
- name: gxela
groups:
- sudo
- docker
coreos-ssh-import-github: gxela
write_files:
- path: /etc/fleet/fleet.conf
content: |
public_ip="$private_ipv4"
metadata="elastic_ip=true,public_ip=$public_ipv4"