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 ]

Kommentarer

     
    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 ]

    Kommentarer

       
      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 ]

      Kommentarer

         

          
        RSS