Etcd для SUSE

В текущий момент пакет для etcd3 в дистрибутиве недоступен. В этом руководстве мы используем инсталляцию из tar архива, как временный вариант, пока в дистрибутиве не появится пакет.

Сервис etcd работает на ноде контроллера.

Установите и сконфигурируйте компоненты

  1. Установите etcd:

    • Создайте пользователя etcd:

      # groupadd --system etcd
      # useradd --home-dir "/var/lib/etcd" \
            --system \
            --shell /bin/false \
            -g etcd \
            etcd
      
    • Создайте необходимые директории:

      # mkdir -p /etc/etcd
      # chown etcd:etcd /etc/etcd
      # mkdir -p /var/lib/etcd
      # chown etcd:etcd /var/lib/etcd
      
    • Определите архитектуру вашей системы:

      # uname -m
      
    • Скачайте tar архив и установите etcd для x86_64/amd64:

      # ETCD_VER=v3.2.7
      # rm -rf /tmp/etcd && mkdir -p /tmp/etcd
      # curl -L \
            https://github.com/coreos/etcd/releases/download/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz \
            -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
      # tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz \
            -C /tmp/etcd --strip-components=1
      # cp /tmp/etcd/etcd /usr/bin/etcd
      # cp /tmp/etcd/etcdctl /usr/bin/etcdctl
      

      Или скачайте tar архив и установите etcd для arm64:

      # ETCD_VER=v3.2.7
      # rm -rf /tmp/etcd && mkdir -p /tmp/etcd
      # curl -L \
            https://github.com/coreos/etcd/releases/download/${ETCD_VER}/etcd-${ETCD_VER}-linux-arm64.tar.gz \
            -o /tmp/etcd-${ETCD_VER}-linux-arm64.tar.gz
      # tar xzvf /tmp/etcd-${ETCD_VER}-linux-arm64.tar.gz \
            -C /tmp/etcd --strip-components=1
      # cp /tmp/etcd/etcd /usr/bin/etcd
      # cp /tmp/etcd/etcdctl /usr/bin/etcdctl
      
  1. Создайте и отредактируйте файл /etc/etcd/etcd.conf.yml задав опции initial-cluster, initial-advertise-peer-urls, advertise-client-urls, listen-client-urls как IP адресс менеджмент сети ноды контроллера чтобы обеспечить доступ других нод по менеджмент сети:

    name: controller
    data-dir: /var/lib/etcd
    initial-cluster-state: 'new'
    initial-cluster-token: 'etcd-cluster-01'
    initial-cluster: controller=http://10.0.0.11:2380
    initial-advertise-peer-urls: http://10.0.0.11:2380
    advertise-client-urls: http://10.0.0.11:2379
    listen-peer-urls: http://0.0.0.0:2380
    listen-client-urls: http://10.0.0.11:2379
    
  2. Создайте и отредактируйте файл /usr/lib/systemd/system/etcd.service:

    [Unit]
    After=network.target
    Description=etcd - highly-available key value store
    
    [Service]
    # Uncomment this on ARM64.
    # Environment="ETCD_UNSUPPORTED_ARCH=arm64"
    LimitNOFILE=65536
    Restart=on-failure
    Type=notify
    ExecStart=/usr/bin/etcd --config-file /etc/etcd/etcd.conf.yml
    User=etcd
    
    [Install]
    WantedBy=multi-user.target
    

    Перезагрузите файлы конфигурации сервиса systemd:

    # systemctl daemon-reload
    

Завершите установку

  1. Разрешите и запустите сервис etcd:

    # systemctl enable etcd
    # systemctl start etcd