Vai al contenuto

Laboratorio 7: Avvio del cluster etcd

Info

Si tratta di un fork dell'originale "Kubernetes the hard way" scritto originariamente da Kelsey Hightower (GitHub: kelseyhightower). A differenza dell'originale, che si basa su distribuzioni simili a Debian per l'architettura ARM64, questo fork si rivolge a distribuzioni Enterprise Linux come Rocky Linux, che gira su architettura x86_64.

I componenti di Kubernetes sono stateless e memorizzano lo stato del cluster in etcd. In questo laboratorio si avvierà un cluster a tre nodi etcd e lo si configurerà per l'alta disponibilità e l'accesso remoto sicuro.

Prerequisiti

Copiare i binari di etcd e i file dell'unità systemd nell'istanza server:

scp \
  downloads/etcd-v3.4.36-linux-amd64.tar.gz \
  units/etcd.service \
  root@server:~/

Eseguire i comandi nelle sezioni seguenti di questo laboratorio sul computer server. Accedere alla macchina server con il comando ssh. Esempio:

ssh root@server

Avvio di un Cluster etcd

Installare i binari di etcd

Se non è già installato, installare prima l'utilità tar con dnf. Quindi, estrarre e installare il server etcd e l'utilità a riga di comando etcdctl:

  dnf -y install tar
  tar -xvf etcd-v3.4.36-linux-amd64.tar.gz
  mv etcd-v3.4.36-linux-amd64/etcd* /usr/local/bin/

Configurare il Server etcd

  mkdir -p /etc/etcd /var/lib/etcd
  chmod 700 /var/lib/etcd
  cp ca.crt kube-api-server.key kube-api-server.crt \
    /etc/etcd/

Ogni membro di etcd deve avere un nome unico all'interno di un cluster etcd. Impostare il nome etcd in modo che corrisponda al nome host dell'istanza di calcolo corrente:

Crea il file dell'unità systemd etcd.service:

mv etcd.service /etc/systemd/system/
chmod 644 /etc/systemd/system/etcd.service

Nota

Sebbene sia considerata una forma di sicurezza inadeguata, potrebbe essere necessario disabilitare temporaneamente o permanentemente SELinux se si riscontrano problemi nell'avvio del servizio etcd systemd. La soluzione corretta consiste nell'analizzare e creare i file di policy necessari con strumenti quali ausearch, audit2allow e altri.\

I comandi eliminano SELinux e lo disabilitano eseguendo quanto segue:

sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

Avviare il Server etcd

  systemctl daemon-reload
  systemctl enable etcd
  systemctl start etcd

Verifica

Elencare i membri del cluster etcd:

etcdctl member list
6702b0a34e2cfd39, started, controller, http://127.0.0.1:2380, http://127.0.0.1:2379, false

Successivo: Avvio del piano di controllo Kubernetes

Author: Wale Soyinka

Contributors: Steven Spencer, Ganna Zhyrnova