Inlägg i blogg av Mats Johannesson
Installera och konfigurera etcd
etcd kommer att installeras på easec-linux1, easec-linux2 och easec-linux3. Versionen är 3.4.4 som är den senaste när denna dokumentation skrevs (200317).
Arbetsuppgift 1: Kopiera certifikat till respektive maskin
1. Anslut till easec-linux8 och logga på som easec med lösenordet Pa$$w0rd.
2. På easec-linux8 öppna terminalfönstret (ctrl+alt+t) och skriv in följande kommando och klicka på Enter, för att kopiera certifikat till respektive maskin:
scp ca.pem kubernetes.pem kubernetes-key.pem easec@192.168.1.21:~
Ange Pa$$w0rd som lösenord. Om det är första gången du ansluter, får du skriva yes och klicka på Enter.
3. I terminalfönstret, upprepa föregående kommando, men ändra IP-adress till 192.168.1.22 respektive 192.168.1.23.
Arbetsuppgift 2: Installera etcd
1. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att ansluta till easec-linux1:
ssh easec-linux1
Om det är första gången du ansluter, får du skriva in yes och klicka på Enter, skriv därefter in Pa$$w0rd för att ansluta.
2. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att skapa konfigurationskataloger för etcd:
sudo mkdir /etc/etcd /var/lib/etcd
Skriv in Pa$$w0rd som lösenord för sudo.
3. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att flytta certifikat till katalogen /etc/etcd:
sudo mv ~/ca.pem ~/kubernetes.pem ~/kubernetes-key.pem /etc/etcd
4. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att ladda ner binärer för etcd:
wget https://github.com/etcd-io/etcd/releases/download/v3.4.4/etcd-v3.4.4-linux-amd64.tar.gz
5. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att packa upp binärer för etcd:
tar xvzf etcd-v3.4.4-linux-amd64.tar.gz
6. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att flytta binärer till /usr/local/bin:
sudo mv etcd-v3.4.4-linux-amd64/etcd* /usr/local/bin/
Arbetsuppgift 3: Skapa systemd-fil
1. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att skapa systemd-fil:
sudo nano /etc/systemd/system/etcd.service
I mitt förråd på GitHub finns etcd.service-filer för respektive maskin (https://github.com/easec/cluster/tree/master/stacked)
2. I fönstret för nano, skriv in följande:
[Unit]
Description=etcd
Documentation=https://github.com/coreos
[Service]
ExecStart=/usr/local/bin/etcd \
--name 192.168.1.21 \
--cert-file=/etc/etcd/kubernetes.pem \
--key-file=/etc/etcd/kubernetes-key.pem \
--peer-cert-file=/etc/etcd/kubernetes.pem \
--peer-key-file=/etc/etcd/kubernetes-key.pem \
--trusted-ca-file=/etc/etcd/ca.pem \
--peer-trusted-ca-file=/etc/etcd/ca.pem \
--peer-client-cert-auth \
--client-cert-auth \
--initial-advertise-peer-urls https://192.168.1.21:2380 \
--listen-peer-urls https://192.168.1.21:2380 \
--listen-client-urls https://192.168.1.21:2379,http://127.0.0.1:2379 \
--advertise-client-urls https://192.168.1.21:2379 \
--initial-cluster-token etcd-cluster-0 \
--initial-cluster 192.168.1.21=https://192.168.1.21:2380,192.168.1.22=https://192.168.1.22:2380,192.168.1.23=
https://192.168.1.23:2380 \
--initial-cluster-state new \
--data-dir=/var/lib/etcd
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
Klicka på ctrl+x, skriv in ett J och klicka på Enter för att spara filen.
3. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att återinläsa konfigurationen för daemon:
sudo systemctl daemon-reload
4. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att starta etcd vid uppstart:
sudo systemctl enable etcd
5. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att starta etcd:
sudo systemctl start etcd
6. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att avsluta session mot Easec-Linux1:
exit
7. Gör om arbetsuppgift 2 och 3 på easec-linux2 och easec-linux3 med respektive IP-adresser.
Arbetsuppgift 4: Verifiera klustret
1. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att verifiera klustret och att det är igång:
ETCDCTL_API=3 etcdctl member list
Notering felsökning:
Ibland händer det att det går fel :-), när systemd används så är kommandot journalctl ett bra verktyg för att se vad som har gått fel.
Exempelvis: sudo journalctl -u etcd.service (om det är etcd), eftersom det kan bli väldigt mycket information kan det vara bra att lägga denna i en textfil, för att sedan undersöka denna textfil lite närmare sudo journalctl -u etcd.service > logg.txt.
Gör du förändringar, kör dessa kommando:
sudo systemctl daemon-reload
sudo systemctl restart etcd