Etcd pour SUSE

Actuellement, il n’existe pas de packages pour etcd3. Ce guide utilise l’installation par archive tar comme solution de contournement le temps qu’une distribution par packages soit disponible.

The etcd service runs on the controller node.

Installer et configurer les composants

  1. Installer d’etcd:

    • Créer l’utilisateur etcd:

      # groupadd --system etcd
      # useradd --home-dir "/var/lib/etcd" \
            --system \
            --shell /bin/false \
            -g etcd \
            etcd
      
    • Créer les répertoires nécessaires:

      # mkdir -p /etc/etcd
      # chown etcd:etcd /etc/etcd
      # mkdir -p /var/lib/etcd
      # chown etcd:etcd /var/lib/etcd
      
    • Determine your system architecture:

      # uname -m
      
    • Download and install the etcd tarball for 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
      

      Or download and install the etcd tarball for 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. Créer et éditer le fichier /etc/etcd/etcd.conf.yml et définir les valeurs initial-cluster, initial-advertise-peer-urls, advertise-client-urls, listen-client-urls avec l’IP de management du nœud contrôleur pour permettre l’accès par les autres nœuds via le réseau de management:

    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. Créer et éditer le fichier /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
    

    Recharger le fichier du service systemd avec :

    # systemctl daemon-reload
    

Finaliser l’installation

  1. Activer et démarrer le service etcd:

    # systemctl enable etcd
    # systemctl start etcd