GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Configura un cluster Kubernetes su un'istanza AWS EC2 con Ubuntu utilizzando kubeadm

In questo articolo vedremo come configurare un cluster Kubernetes con 2 nodi di lavoro e 1 nodo master su server LTS Ubuntu 18.04. Utilizzeremo "kubeadm " strumento per configurare il cluster. Kubeadm è uno strumento creato per fornire "kubeadm init " e "kubeadm unirsi " per la creazione di cluster Kubernetes. Prima di procedere con la creazione del cluster, comprendiamo in breve alcuni termini.

    1. Docker:
      Docker è una piattaforma aperta per lo sviluppo, la spedizione e l'esecuzione di applicazioni. Docker ti consente di separare le tue applicazioni dalla tua infrastruttura in modo da poter distribuire rapidamente il software. Con Docker puoi gestire la tua infrastruttura nello stesso modo in cui gestisci le tue applicazioni.
    2. Immagine:
      Un'immagine è un modello di sola lettura con istruzioni per la creazione di un contenitore Docker. Spesso un'immagine si basa su un'altra immagine, con alcune personalizzazioni aggiuntive
    3. Contenitore:
      Un contenitore è un'istanza eseguibile di un'immagine. Puoi creare, avviare, interrompere, spostare o eliminare un container utilizzando l'API Docker o la CLI. Puoi connettere un container a una o più reti, allegarvi spazio di archiviazione o persino creare una nuova immagine in base al suo stato attuale.
    4. Kubernetes:
      Kubernetes è un sistema di orchestrazione di container open source per automatizzare la distribuzione, la scalabilità e la gestione delle applicazioni.
    5. Nodi:
      Un nodo rappresenta una singola macchina nel cluster.
    6. Cuscini:
      A è un gruppo di contenitori distribuiti insieme sullo stesso host. È l'unità di esecuzione di base di un Kubernetes applicazione.
    7. Distribuzioni:
      Una implementazione esegue più repliche dell'applicazione e sostituisce automaticamente tutte le istanze che hanno esito negativo o che non rispondono. Fornisce aggiornamenti dichiarativi per Pod e ReplicaSet.
    8. Set di repliche:
      Garantisce quante repliche di un pod devono essere in esecuzione. Può essere considerato un sostituto del controller di replica.
  • Controllore della replica:
    È un supervisore per pod di lunga durata. Avvierà un numero specifico di pod chiamati repliche e farà in modo che continuino a funzionare tutto il tempo.
  1. Servizio:
    È un'astrazione che definisce un insieme logico di Pod e una politica per accedervi.

API Server, etcd, Controller Manager e Schedule, sono i componenti di Master e Docker,  Kubelet Service e Kubernetes Proxy Service sono i componenti di Worker Node. Non discuteremo di questi componenti in questo documento. Se vuoi conoscere questi componenti, puoi visitare la pagina ufficiale di Kubernetes qui.

Prerequisiti

  1. 3 Server Ubuntu 18.04 con minimo 2 GB di RAM e 2 CPU.
  2. Un utente di sistema con accesso "sudo" su ciascun server.

Cosa faremo

  1. Configura un cluster Kubernetes con kubeadm

Configura un cluster Kubernetes con kubeadm

Ecco,

Abbiamo 3 server LTS Ubuntu 18.04.

Server 1=nodo1
Server 2=nodo2
Server 3=master

Prima di procedere con l'installazione vera e propria, cambiamo il nome host dei server.

Puoi utilizzare i seguenti comandi per impostare un nome host su ciascun server. Dopo aver eseguito i seguenti comandi su ciascun server, accedi nuovamente ai server in modo che i server ottengano un nuovo nome host.

sudo hostnamectl set-hostname "master"
sudo hostnamectl set-hostname "node1"
sudo hostnamectl set-hostname "node2"

Segui i passaggi indicati di seguito per visualizzare il cluster Kubernets funzionante.

Ottieni la chiave gpg Docker (Esegui il seguente comando su Tutti i nodi) :

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Aggiungi il repository Docker(Esegui il comando seguente su Tutti i nodi ) :

sudo add-apt-repository    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
  stable"

Ottieni la chiave gpg di Kubernetes(Esegui il comando seguente su tutti i nodi ) :

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

Aggiungi il repository Kubernetes(Esegui il comando seguente su tutti i nodi ) :

gatto <deb https://apt.kubernetes.io/kubernetes-xenial main
EOF

Aggiorna i tuoi pacchetti(Esegui il seguente comando su Tutti i nodi )

sudo apt-get update

Installa Docker, kubelet, kubeadm e kubectl(Esegui il comando seguente su tutti i nodi ) :

sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu kubelet=1.15.7-00 kubeadm=1.15.7-00 kubectl=1.15.7-00

Mantienili alla versione corrente(Esegui il comando seguente su Tutti i nodi ) :

sudo apt-mark hold docker-ce kubelet kubeadm kubectl

Aggiungi la regola iptables a sysctl.conf (Esegui il comando seguente su tutti i nodi ) :

eco "net.bridge.bridge-nf-call-iptables=1" | sudo tee -a /etc/sysctl.conf

Abilita iptables immediatamente(Esegui il seguente comando su Tutti i nodi :

sudo sysctl -p

Sul maestro :

Inizializza il cluster (Esegui il comando seguente solo sul nodo Master) :

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

Configura kubeconfig locale(Esegui il comando seguente solo sul nodo Master ) :

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Apply Flannel CNI network overlay(Esegui il comando seguente solo sul nodo Master ) :

sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Su Nodo 1 e Nodo 2:

Unisci i nodi di lavoro al cluster (Esegui il comando seguente solo su Nodo1 e Nodo2) :

sudo kubeadm join 172.31.4.161:6443 --token 0y52t6.ffsj8jkjfcl1sq8h \
    --discovery-token-ca-cert-hash sha256:7aa1825042d19d3e567f7e4b447634e942fe9ed7f4ed9f7854

Verifica che i nodi di lavoro siano entrati correttamente nel clusterEsegui il seguente comando sul nodo principale ) :

kubectl ottiene nodi

Conclusione:

In questo articolo, abbiamo imparato a configurare un cluster Kubernetes con lo strumento kubeadm. Abbiamo visto con quanta facilità è possibile creare un cluster se non si saltano i passaggi e si esegue una corretta installazione.


Ubuntu
  1. Come distribuire Nginx Load Balancing su Kubernetes Cluster su Ubuntu 18.04 LTS

  2. Crea un'istanza EC2 su AWS utilizzando Terraform

  3. Imposta il cluster Kubernetes con Rancher

  4. Configura Nextcloud con Redis usando Docker

  5. Aumento dello spazio su disco dell'istanza Ubuntu di AWS EC2

Come configurare il cluster Apache Tomcat con 3 nodi su Ubuntu

Come installare Jenkins utilizzando un file .war sull'istanza AWS EC2 Ubuntu 20.04

Come aumentare lo spazio su disco di un'istanza AWS EC2 Ubuntu

Come creare un'istanza EC2 Ubuntu su AWS

Come configurare Kubernetes 1.5 con kubeadm su CentOS

Installa Portainer con Docker su Ubuntu