Site blog

Vem som helst (även för gäster)

ETCDCTL


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.

scp ca.pem

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.

sudo mkdir /etc/etcd /var/lib/etcd

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.

sudo mv ~/ca.pem

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

wget 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

tar xvzf

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

sudo mv etcd

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)

sudo nano /etc/systemd/system/etcd.service

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.

sudo systemctl daemon-reload

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

sudo systemctl enable etcd

4. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att starta etcd vid uppstart:

                     sudo systemctl enable etcd

sudo systemctl start 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

ETCDCTL

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











[ Modifierad: Wednesday, 18 March 2020, 14:25 ]
 
Vem som helst (även för gäster)


Miljö

Del 1: Klientverktyg


På klientdator kommer två verktyg att behövas installeras, Cloud Flare SSL för att generera de olika certifikat som behövs och kubectl för att hantera klustret. Dessa verktyg installeras på Easec-Linux8.

 

Arbetsuppgift 1: Installera cfssl

1. Anslut till Easec-Linux8 och logga på som easec med lösenordet Pa$$w0rd.


Installation av cfssl

2. På Easec-Linux8 öppna terminalfönstret (ctrl+alt+t) och skriv in följande kommando och klicka på Enter:

          wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 && wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64

3. I terminalfönstret skriv in följande kommando och klicka på Enter, för att sätta exekveringsrättigheter:

           chmod +x cfssl*

Flytt av binärer

4. I terminalfönstret skriv in följande kommando och klicka på Enter, för att flytta binärer till /usr/local/bin:

            sudo mv cfssl_linux-amd64 /usr/local/bin/cfssl

            Ange Pa$$w0rd som lösenord för sudo.

5. I terminalfönstret skriv in följande kommando och klicka på Enter, för att flytta binärer till /usr/local/bin:

             sudo mv cfssljson_linux-amd64 /usr/local/bin/cfssljson

cfssl version

6. I terminalfönstret skriv in följande kommando och klicka på Enter, för att verifiera installationen:

             cfssl version


Arbetsuppgift 2: Installera kubectl

Installera kubectl

1. I terminalfönstret skriv in följande kommando och klicka på Enter, för att ladda ner binärer för kubectl:

              wget https://storage.googleapis.com/kubernetes-release/release/v1.17.3/bin/linux/amd64/kubectl

 2. I terminalfönstret skriv in följande kommando och klicka på Enter, för att sätta exekveringsrättigheter:

              chmod +x kubectl*

3. I terminalfönstret skriv in följande kommando och klicka på Enter, för att flytta binärer till /usr/local/bin:

              sudo mv kubectl /usr/local/bin

kubectl version

4. I terminalfönstret skriv in följande kommando och klicka på Enter, för att verifiera installationen:

              kubectl version

              Felmeddelande om att verktyget inte kan ansluta till server, kan du ignorera. Det finns ingen server eller servrar i detta läge!


Del 2: Certifikat

Ett antal certifikat kommer att behöva genereras.

Arbetsuppgift 1: Skapa Certificate Authority och generera certifikat

Konfiguration av CA

1. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att skapa konfiguration för CA (Certificate Authority):

               nano ca-config.json

2. I fönstret med nano, skriv in följande:

               {

                   "signing": {

                      "default": {

                         "expiry": "8760h"

                       },

                       "profiles": {

                           "kubernetes": {

                               "usages": ["signing", "key encipherment", "server auth", "client auth"],

                               "expiry": "8760h"

                        }

                     }

                   }

                 }

Klicka på ctrl+x, skriv in ett J och klicka på Enter för att spara filen. 

nano ca-csr.json

3. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att skapa certifikatbegäran för CA:

                  nano ca-csr.json

4. I fönstret med nano, skriv in följande:

                  {

                     "CN": "Kubernetes",

                     "key": {

                     "algo": "rsa",

                     "size": 2048

                   },

                   "names": [

                   {

                      "C": "SE",

                      "L": "Lomma",

                      "O": "Kubernetes",

                      "OU": "CA",

                      "ST": "easec"

                     }

                   ]

                  }

 Klicka på ctrl+x, skriv in ett J och klicka på Enter för att spara filen.

cfssl gencert

5. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att skapa certifikat och privat nyckel:

                  cfssl gencert -initca ca-csr.json | cfssljson -bare ca

ls -la ca*

6. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att verifiera att ca-key.pem och ca.pem har blivit genererade:

                   ls -la ca*

7. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att skapa certifikatbegäran för etcd-kluster:

                   nano kubernetes-csr.json

nano kubernetes-csr.json

8. I fönstret med nano, skriv in följande:

                 {

                     "CN": "kubernetes",

                     "key": {

                     "algo": "rsa",

                     "size": 2048

                   },

                   "names": [

                   {

                      "C": "SE",

                      "L": "Lomma",

                      "O": "Kubernetes",

                      "OU": "Kubernetes",

                      "ST": "easec"

                     }

                   ]

                  }

 

Klicka på ctrl+x, skriv in ett J och klicka på Enter för att spara filen.


Arbetsuppgift 2: Skapa certifikat och privat nyckel

cfssl gencert

1. I terminalfönstret, skriv in följande kommando och klicka på Enter efter varje \ och efter sista raden:

                    cfssl gencert \

                    -ca=ca.pem \

                    -ca-key=ca-key.pem \

                    -config=ca-config.json \

                    -hostname=192.168.1.21,192.168.1.22,192.168.1.23, 192.168.1.27,127.0.0.1,kubernetes.default \

                    -profile=kubernetes kubernetes-csr.json | \

                    cfssljson -bare kubernetes

ls -la k*

2. I terminalfönstret, skriv in följande kommando och klicka på Enter, för att verifiera att kubernetes-key.pem och kubernetes.pem har skapats:

                     ls -la k*



[ Modifierad: Monday, 16 March 2020, 20:31 ]
 
Bild av Mats Johannesson
av Mats Johannesson - Sunday, 15 March 2020, 21:16
Vem som helst (även för gäster)

Kluster

.easec kommer att publicera ett antal artiklar där konfiguration av Kubernetes i drift beskrivs. 


De olika delarna:

Del 1: Certifikat och klientverktyg. https://portal.easec.se/moodle/blog/index.php?entryid=39

Del 2: HA-Proxy. https://portal.easec.se/moodle/blog/index.php?entryid=40

Del 3: Installera och konfigurera etcd. https://portal.easec.se/moodle/blog/index.php?entryid=41

Del 4: Installera master. https://portal.easec.se/moodle/blog/index.php?entryid=44

Del 5: Installera worker. https://portal.easec.se/moodle/blog/index.php?entryid=45



[ Modifierad: Friday, 20 March 2020, 11:52 ]
 

  
RSS