CoreOS AWS Cloudinit Проблема

Я пытаюсь настроить экземпляры EC2, используя CoreOS стабильный AMI с некоторыми пользовательскими настройками 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"

Я не могу снова использовать SSH для экземпляров coreos ни как "основной" пользователь с моей парой ключей aws, ни как с личным ключом, и создал пользователя "oba11" с моим личным ключом. Я также пробовал альфа-AMI, но та же проблема. Я не знаю, делаю ли я что-то не так.

Большое спасибо за помощь.

2 ответа

Вы используете устаревший идентификатор токена обнаружения etcd.

Как только узлы вашего кластера используют этот идентификатор, токен помечается как использованный, если по какой-либо причине ни одно из узлов etcd не отправляет пульс по этому адресу, токен становится бесполезным.

Если вы попытаетесь запустить новый кластер или отдельный узел с тем же URI обнаружения etcd, процесс начальной загрузки завершится неудачно.

В вашем случае узлы EC2 включат службу ssh, но они не будут должным образом сконфигурированы с этим cloud-config.

Ожидаемое поведение (подключение, но отклонение вашего PK) может вызвать головную боль, если вы не прочитали документацию по адресу https://coreos.com/docs/cluster-management/setup/cluster-discovery/ где заявлено, что;

Другая распространенная проблема с обнаружением кластера - попытка загрузить новый кластер с устаревшим URL-адресом обнаружения. Как объяснено выше, первоначальные выборы лидера записываются в URL, который указывает, что новый экземпляр etcd должен присоединиться к существующему кластеру.

Если вы укажете устаревший URL-адрес обнаружения, новые машины будут пытаться подключиться к каждому из старых адресов одноранговых узлов, что приведет к сбою, так как они не существуют, и процесс начальной загрузки завершится неудачей.

Я успешно загрузил 3 машинный кластер CoreOS, и ssh'd без проблем. Используя ваш конфиг. Проверьте свои группы безопасности, возможно, в этом проблема. Я использовал этот 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"
Другие вопросы по тегам