Как установить кластер CoreOS на VirtualBox?

Я хотел бы установить кластер coreOS на VirtualBox. Я прочитал документацию coreOS на официальном сайте, и сказано, что я должен загружать каждую виртуальную машину с одинаковой конфигурацией, и они должны быть автоматически сгруппированы. Я использую команду ct, чтобы перевести конфигурацию контейнера Linux в файл зажигания coreOS.

ct --platform = vagrant-virtualbox 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, чтобы машина была кластеризована?

1 ответ

Мне кажется, что etcd принимает параметры по умолчанию. 127.0.0.1:2379 вы пытались указать ${HOSTNAME} а также ${PRIVATE_IPV4}и также учтите это:

-–initial-cluster-stateИсходное состояние кластера ("новый" или "существующий"). Установите новый для всех участников, присутствующих во время начальной статической загрузки или загрузки DNS. Если для этого параметра установлено значение существующий, etcd попытается присоединиться к существующему кластеру. Если установлено неправильное значение, etcd попытается запуститься, но благополучно завершится ошибкой. по умолчанию: "новая" переменная env: ETCD_INITIAL_CLUSTER_STATE

См. Конфигурацию ниже. Это поможет вам запустить один экземпляр etcd. вы можете пропустить сертификаты ssl, если хотите.

etcd:
  version:                     3.2.17
  name:                        core-01
  data_dir:                    /var/lib/etcd
  listen_client_urls:          https://10.0.2.11:2379,https://127.0.0.1:2379,https://127.0.0.1:4001
  advertise_client_urls:       https://10.0.2.11:2379
  listen_peer_urls:            https://10.0.2.11:2380
  initial_advertise_peer_urls: https://10.0.2.11:2380
  initial_cluster:             core-01=https://10.0.2.11:2380
  initial_cluster_token:       etcd-token
  initial_cluster_state:       new
  cert_file:                   /var/lib/etcd/ssl/apiserver-etcd-client.pem
  key_file:                    /var/lib/etcd/ssl/apiserver-etcd-client-key.pem
  peer_cert_file:              /var/lib/etcd/ssl/apiserver-etcd-client.pem
  peer_key_file:               /var/lib/etcd/ssl/apiserver-etcd-client-key.pem
  client_cert_auth:            true
  peer_client_cert_auth:       true
  trusted_ca_file:             /etc/ssl/certs/ca.pem
  peer_trusted_ca_file:        /etc/ssl/certs/ca.pem
  auto_compaction_retention:   1

если вы хотите добавить больше, просто добавьте IP-адрес другого узла.

...             

initial_cluster: coreos1=https://10.0.0.4:2380,coreos2=https://10.0.0.5:2380,coreos3=https://10.0.0.6:2380

...
Другие вопросы по тегам