CoreOS AWS Cloudinit问题

时间:2014-09-10 06:55:24

标签: amazon-web-services coreos cloud-init

我尝试使用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,但同样的问题。 我不知道我做错了什么。

非常感谢您的帮助。

2 个答案:

答案 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"