GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare e configurare Kubernetes e Docker su Ubuntu 18.04 LTS

Kubernetes è una piattaforma open source per la gestione di applicazioni containerizzate. Ti consente di gestire, ridimensionare e distribuire automaticamente le tue applicazioni containerizzate nell'ambiente cluster. Kubernetes è sviluppato da Google.

Con Kubernetes puoi orchestrare container su più host, ridimensionare al volo le applicazioni containerizzate con tutte le risorse e disporre di un ambiente di gestione dei container centralizzato.

In questo tutorial, ti mostrerò passo dopo passo come installare e configurare Kubernetes su Ubuntu 18.04. Utilizzeremo 1 server "k8s-master" come Kubernetes Host Master e 2 server come lavoratori Kubernetes, "worker01" e "worker02".

Prerequisiti

  • 3 Server Ubuntu
    • 10.0.15.10  k8s-master
    • 10.0.15.21 lavoratore01
    • 10.0.15.22 lavoratore02
  • Privilegi di root

Cosa faremo

  1. Installazione di Kubeadm
    1. Imposta host
    2. Installa Docker
    3. Disabilita SWAP
    4. Installa i pacchetti Kubeadm
  2. Inizializzazione del cluster Kubernetes
  3. Aggiunta di nodi di lavoro al cluster Kubernetes
  4. Test

Passaggio 1 - Installazione di Kubeadm

In questo primo passaggio, prepareremo quei 3 server per l'installazione di Kubernetes, quindi esegui tutti i comandi sui nodi master e di lavoro.

Prepareremo tutti i server per l'installazione di Kubernetes modificando la configurazione esistente sui server e installando anche alcuni pacchetti, inclusi docker e kubernetes stesso.

Installa host

Modifica il file hosts su tutti i server utilizzando l'editor vim.

sudo vim /etc/hosts

Incolla la configurazione degli host di seguito.

10.0.15.10  k8s-master
10.0.15.21  worker01
10.0.15.22  worker02

Salva ed esci.

Ora prova il ping di tutti i server hostname.

ping -c 3 k8s-master
ping -c 3 worker01
ping -c 3 worker02

Assicurati che tutti gli indirizzi IP vengano risolti come nome host.

Installa Docker

In questo tutorial installeremo Docker dal repository di Ubuntu.

Installa Docker usando il comando apt di seguito.

sudo apt install docker.io -y

Al termine dell'installazione, avvia il servizio Docker e abilitalo per l'avvio ogni volta all'avvio del sistema.

sudo systemctl start docker
sudo systemctl enable docker

L'installazione di Docker è stata completata.

Disabilita SWAP

Per configurare i server Kubernetes Linux, dobbiamo disabilitare lo SWAP.

Controlla l'elenco di scambio e disabilitalo.

sudo swapon -s
sudo swapoff -a

Per disabilitare lo SWAP in modo permanente, dobbiamo modificare il file '/etc/fstab'.

sudo vim /etc/fstab

Fai un commento sul tipo di partizione SWAP.

#/dev/mapper/hakase--labs--vg-swap_1 none            swap    sw              0       0

Salva ed esci, quindi riavvia il sistema.

sudo reboot

Installa i pacchetti Kubeadm

In questo tutorial utilizzeremo i pacchetti Kubeadm per configurare il cluster Kubernetes. Installeremo i pacchetti Kubeadm dal repository ufficiale di Kubernetes.

Installa apt-transport-https.

sudo apt install -y apt-transport-https

Aggiungi la chiave Kubernetes.

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

E aggiungi il repository Kubernetes creando un nuovo file repo.list nella directory '/etc/apt/sources.list.d'.

cd /etc/apt/
sudo vim sources.list.d/kubernetes.list

incolla il repository kubernetes di seguito.

deb http://apt.kubernetes.io/ kubernetes-xenial main

Nota:

Stiamo ancora utilizzando il repository Xenial Ubuntu 16.04 per la nostra installazione Kubeadm.

Ora aggiorna il repository e installa i pacchetti kubeadm usando i comandi apt di seguito.

sudo apt update
sudo apt install -y kubeadm kubelet kubectl

Attendi l'installazione dei pacchetti kubeadm.

Passaggio 2:inizializzazione del cluster Kubernetes

In questo passaggio, inizializzeremo Kubernetes sul nodo 'k8s-master'. Esegui tutti i comandi in questa fase solo sul server 'k8s-master'.

Inizializza il cluster Kubernetes utilizzando il comando kubeadm riportato di seguito.

sudo kubeadm init --pod-network-cidr=10.244.10.0/16 --apiserver-advertise-address=10.0.15.10 --kubernetes-version "1.11.0"

Nota:

  • --apiserver-advertise-advertise =determina su quale indirizzo IP Kubernetes deve pubblicizzare il proprio server API.
  • --pod-network-cidr =specifica l'intervallo di indirizzi IP per la rete pod. Stiamo usando la rete virtuale "flanella". Se desideri utilizzare un'altra rete pod come weave-net o calicò, modifica l'indirizzo IP dell'intervallo.

Al termine dell'inizializzazione di Kubernetes, otterrai il risultato mostrato di seguito.

Copia il 'kubeadm join ... ... ... ' comando al tuo editor di testo. Il comando verrà utilizzato per registrare nuovi nodi di lavoro nel cluster kubernetes.

Ora per utilizzare Kubernetes, dobbiamo eseguire alcuni comandi come mostrato nel risultato.

Crea una nuova directory di configurazione '.kube' e copia la configurazione 'admin.conf' dalla directory '/etc/kubernetes'.

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

Quindi, distribuisci la rete di flanella al cluster kubernetes utilizzando il comando kubectl.

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

La rete di flanella è stata distribuita nel cluster Kubernetes.

Attendi un minuto, quindi controlla il nodo e i pod kubernetes utilizzando i comandi seguenti.

kubectl get nodes
kubectl get pods --all-namespaces

E otterrai che il nodo "k8s-master" è in esecuzione come cluster "master" con lo stato "ready" e tutti i pod "kube-system" necessari per il cluster sono attivi e funzionanti.

L'inizializzazione e la configurazione del master cluster Kubernetes sono state completate.

Passaggio 3:aggiunta di nodi di lavoro al cluster Kubernetes

In questo passaggio, aggiungeremo due nodi di lavoro "worker01" e "worker02" al cluster Kubernetes.

Collegati al server 'worker01' ed esegui il comando kubeadm join che ottieni dall'inizializzazione del cluster.

kubeadm join 10.0.15.10:6443 --token daync8.5dcgj6c6xc7l8hay --discovery-token-ca-cert-hash sha256:65a3e69531d323c335613dea1e498656236bba22e6cf3d5c54b21d744ef97dcd

Collegati al server 'worker02' ed esegui il comando kubeadm join che ottieni dall'inizializzazione del cluster..

kubeadm join 10.0.15.10:6443 --token daync8.5dcgj6c6xc7l8hay --discovery-token-ca-cert-hash sha256:65a3e69531d323c335613dea1e498656236bba22e6cf3d5c54b21d744ef97dcd

Attendi qualche minuto e torna al master del nodo 'k8s-master' e controlla lo stato del nodo.

kubectl get nodes

Vedrai che i nodi di lavoro "worker01" e "worker02" fanno parte del cluster Kubernetes.

Fase 4 - Test

In questo passaggio, implementeremo il server Web Nginx all'interno del cluster. Distribuiremo il server web Nginx utilizzando il modello YAML.

Crea una nuova directory denominata 'nginx' e vai a quella directory.

mkdir -p nginx/
cd nginx/

Ora crea il file YAML di Nginx Deployment 'nginx-deployment.yaml' usando l'editor vim.

sudo vim nginx-deployment.yaml

Incolla le configurazioni di seguito.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.0
        ports:
        - containerPort: 80

Salva ed esci.

Nota:

  • Stiamo creando un nuovo "Deployment" chiamato "nginx-deployment".
  • Imposta l'etichetta dell'app come 'nginx' con '3' repliche.
  • La 'nginx-deployment' avrà contenitori denominati 'nginx', basati sull'immagine della finestra mobile 'nginx:1.14.0', ed esporrà la porta HTTP predefinita 80.

Ora crea la distribuzione eseguendo il comando kubectl di seguito.

kubectl create -f nginx-deployment.yaml

Dopo aver creato un nuovo 'nginx-deployment', controlla l'elenco delle distribuzioni all'interno del cluster.

kubectl get deployments
kubectl describe deployment nginx-deployment

Ora controlla Kubernetes Pods e vedrai il pod 'nginx-deployment-xxx', controlla i dettagli del pod.

kubectl get pods
kubectl describe pods nginx-deployment-6cb5f7bf4f-t5xfh

Otterrai pod di distribuzione nginx con 3 repliche sui nodi di lavoro.

Successivamente, dobbiamo creare un nuovo servizio per il nostro 'nginx-deployment'.

Crea un nuovo file YAML denominato 'nginx-service.yaml'.

vim nginx-service.yaml

Incolla la configurazione qui sotto.

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  labels:
    run: nginx-service
spec:
  type: NodePort
  ports:
  - port: 80
    protocol: TCP
  selector:
    app: nginx

Salva ed esci.

Nota:

  • Stiamo creando un nuovo servizio kubernetes chiamato 'nginx-service'.
  • Il tipo di servizio è 'NodePort' con la porta HTTP predefinita TargetPort 80.
  • Il servizio appartiene all'app denominata 'nginx' basata sulla nostra distribuzione 'nginx-deployment'.

Crea il servizio kubernetes usando il comando kubectl di seguito.

kubectl create -f nginx-service.yaml

Ora controlla tutti i servizi disponibili sul cluster e otterrai il "servizio nginx" nell'elenco, quindi controlla i dettagli del servizio.

kubectl get service
kubectl describe service nginx-service

E vedrai il "servizio nginx" NodePort è in esecuzione sulla porta "32649".

Verifica utilizzando il comando curl su tutti i nodi di lavoro.

Sul lavoratore01.

curl worker01:32649

Vedrai la pagina predefinita di Nginx.

Sul lavoratore02.

curl worker02:32649

L'installazione e la configurazione del cluster Kubernetes su Ubuntu 18.04 sono state completate con successo.


Ubuntu
  1. Come installare Kubernetes su Ubuntu 18.04

  2. Come installare e configurare Redis su Ubuntu 18.04

  3. Come installare Docker su Ubuntu 22.04 / 20.04 LTS

  4. Come installare e configurare Ansible su Ubuntu 18.04 LTS

  5. Come installare e configurare Fail2ban su Ubuntu 20.04 LTS

Come installare e configurare Odoo ERP su Ubuntu 20.04 LTS

Come installare e configurare MySQL in Ubuntu 20.04 LTS

Come installare Docker su Ubuntu 16.04 LTS

Come installare e configurare il server DNS su Ubuntu 16.04 LTS

Come installare Docker su Ubuntu 18.04 LTS

Come installare e configurare Kitematic su Ubuntu Linux