Differenze tra le versioni di "Configurare un cluster Kubernetes"

Da It Ikoula wiki.
Jump to navigation Jump to search
Riga 18: Riga 18:
 
<br/>
 
<br/>
  
Ecco la configurazione che abbiamo nel nostro esempio :
+
'''Ecco la configurazione che abbiamo nel nostro esempio :'''
  
 
Node master : "k8s-master" / 10.1.1.16<br/>
 
Node master : "k8s-master" / 10.1.1.16<br/>
 
Premier node worker : "k8s-worker01" / 10.1.1.169<br/>
 
Premier node worker : "k8s-worker01" / 10.1.1.169<br/>
 
Second node worker : "k8s-worker02" / 10.1.1.87<br/>
 
Second node worker : "k8s-worker02" / 10.1.1.87<br/>
 +
 +
==Preparazione del sistema et installazione di Kubernetes tutorial==
 +
 +
Le azioni che seguono sono da effettuare in tutte le instanze (master e workers) come root.<br/>
 +
 +
Comincia con il riempire il file /etc/hosts su ognuna delle vostre instanze.<br/>
 +
 +
Nel nostro esempio ecco il file per le nostre 3 istanze :<br/>
 +
 +
<pre>
 +
    cat /etc/hosts
 +
    127.0.0.1 localhost
 +
    ::1 localhost
 +
 +
    10.1.1.16 k8s-master
 +
    10.1.1.169 k8s-worker01
 +
    10.1.1.87 k8s-worker02
 +
</pre><br/>
 +
 +
Attiva il modulo bridge e le regole iptables per quest'ultimo tramite i seguenti tre comandi:<br/>
 +
 +
<pre>
 +
    modprobe bridge
 +
    echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
 +
    sysctl -p /etc/sysctl.conf   
 +
</pre><br/>
 +
 +
Aggiungi il repository YUM  Docker :<br/>
 +
 +
<pre>
 +
    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
 +
    [kubernetes]
 +
    name=Kubernetes
 +
    baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
 +
    enabled=1
 +
    gpgcheck=1
 +
    repo_gpgcheck=1
 +
    gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
 +
    EOF     
 +
</pre><br/>
 +
 +
Installa Docker :<br/>
 +
 +
<pre>
 +
    yum install -y docker-ce
 +
 +
    Poi installa i package Kubernetes necessari :
 +
    yum install -y kubeadm kubelet kubectl
 +
</pre><br/>
 +
 +
Modifica il file di configuarzion di systemd kubelet (/etc/systemd/system/kubelet.service.d/10-kubeadm.conf) per aggiungere la seguente riga nella sezione « [Servizio] » :<br/>
 +
 +
<pre>
 +
    Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs" 
 +
</pre><br/>
 +
 +
Come :<br/>
 +
 +
<pre>
 +
    cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
 +
    # Note: This dropin only works with kubeadm and kubelet v1.11+
 +
    [Service]
 +
    Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
 +
    Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
 +
    *Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs"*
 +
    # This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
 +
    # This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use
 +
    # the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
 +
    EnvironmentFile=-/etc/sysconfig/kubelet
 +
    ExecStart=
 +
    ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
 +
</pre><br/>
 +
 +
Ricarica le impostazioni, attiva e poi riavvia i servizi docker e kubelet attraverso i tre comandi seguenti :<br/>
 +
 +
<pre>
 +
    systemctl daemon-reload
 +
    systemctl enable docker kubelet
 +
    systemctl start docker kubelet
 +
</pre><br/>
 +
 +
Disattiva la swap del sistema( kubelet non supporta la memoria swap) :<br/>
 +
 +
<pre>
 +
    swapoff -a
 +
</pre><br/>
 +
 +
Ricorda di commentare ed eliminare le linee inerenti alla swap nel file /etc/fstab di ognuno delle vostre istanze come di seguito :<br/>
 +
 +
<pre>
 +
    #/dev/mapper/vg01-swap swap swap defaults 0 0
 +
</pre>

Versione delle 10:34, 10 set 2019

it:Configurare un cluster Kubernetes fr:Deployer un cluster Kubernetes

Cosa è Kubernetes ?

Kubernetes è una piattaforma open-sorce che si pone l’obiettivo di gestire i carichi di lavoro e dei servizi containerizzati. Permette di di configurare manualmente e in maniera automatica. Kubernetes è un grande ecosistema in rapida espansione. Questa procedura vi permetterà di impostare rapidamente e facilmente un cluster Kubernetes (k8s) di tre nodi a partire da tre istanze CentOS 7 della stessa rete.

Una di queste 3 istanze sarà il nostro nodo principale e le altre due saranno i nostri nodi operativi. Riassumendo, il nodo principale è quello dal quale gestiamo il cluster Kubernetes (orchestrator container) dalla sua API e i nodi worker sono quelli su cui verranno eseguiti i pod, ovvero i container (Docker nel nostro caso).

Partiamo dal principio che le nostre 3 istanze CentOS 7 sono già installate e che eseguiamo l’accesso in SSL, queste sono condizioni assolutamente necessarie.

Ecco la configurazione che abbiamo nel nostro esempio :

Node master : "k8s-master" / 10.1.1.16
Premier node worker : "k8s-worker01" / 10.1.1.169
Second node worker : "k8s-worker02" / 10.1.1.87

Preparazione del sistema et installazione di Kubernetes tutorial

Le azioni che seguono sono da effettuare in tutte le instanze (master e workers) come root.

Comincia con il riempire il file /etc/hosts su ognuna delle vostre instanze.

Nel nostro esempio ecco il file per le nostre 3 istanze :

    cat /etc/hosts 
    127.0.0.1 localhost 
    ::1 localhost 
 
    10.1.1.16 k8s-master
    10.1.1.169 k8s-worker01
    10.1.1.87 k8s-worker02


Attiva il modulo bridge e le regole iptables per quest'ultimo tramite i seguenti tre comandi:

    modprobe bridge 
    echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf 
    sysctl -p /etc/sysctl.conf    


Aggiungi il repository YUM Docker :

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes 
    baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=1 
    repo_gpgcheck=1 
    gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg 
    EOF       


Installa Docker :

    yum install -y docker-ce

    Poi installa i package Kubernetes necessari :
    yum install -y kubeadm kubelet kubectl


Modifica il file di configuarzion di systemd kubelet (/etc/systemd/system/kubelet.service.d/10-kubeadm.conf) per aggiungere la seguente riga nella sezione « [Servizio] » :

    Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs"   


Come :

    cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 
    # Note: This dropin only works with kubeadm and kubelet v1.11+ 
    [Service] 
    Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf" 
    Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml" 
    *Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs"* 
    # This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env 
    # This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use 
    # the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
    EnvironmentFile=-/etc/sysconfig/kubelet 
    ExecStart= 
    ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS


Ricarica le impostazioni, attiva e poi riavvia i servizi docker e kubelet attraverso i tre comandi seguenti :

    systemctl daemon-reload 
    systemctl enable docker kubelet 
    systemctl start docker kubelet


Disattiva la swap del sistema( kubelet non supporta la memoria swap) :

    swapoff -a


Ricorda di commentare ed eliminare le linee inerenti alla swap nel file /etc/fstab di ognuno delle vostre istanze come di seguito :

    #/dev/mapper/vg01-swap swap swap defaults 0 0