GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar y configurar Kubernetes y Docker en Ubuntu 18.04 LTS

Kubernetes es una plataforma de código abierto para administrar aplicaciones en contenedores. Le permite administrar, escalar e implementar automáticamente sus aplicaciones en contenedores en el entorno agrupado. Kubernetes es desarrollado por Google.

Con Kubernetes, puede orquestar contenedores en múltiples hosts, escalar las aplicaciones en contenedores con todos los recursos sobre la marcha y tener un entorno de administración de contenedores centralizado.

En este tutorial, le mostraré paso a paso cómo instalar y configurar Kubernetes en Ubuntu 18.04. Usaremos 1 servidor 'k8s-master' como Kubernetes Host Master y 2 servidores como trabajadores de Kubernetes, 'worker01' y 'worker02'.

Requisitos

  • 3 servidores Ubuntu
    • 10.0.15.10  k8s-maestro
    • 10.0.15.21  trabajador01
    • 10.0.15.22  trabajador02
  • Privilegios de raíz

Lo que haremos

  1. Instalación de Kubeadm
    1. Configurar hosts
    2. Instalar Docker
    3. Desactivar SWAP
    4. Instalar paquetes de Kubeadm
  2. Inicialización del clúster de Kubernetes
  3. Agregar nodos trabajadores al clúster de Kubernetes
  4. Pruebas

Paso 1:instalación de Kubeadm

En este primer paso, prepararemos esos 3 servidores para la instalación de Kubernetes, así que ejecute todos los comandos en los nodos maestro y trabajador.

Prepararemos todos los servidores para la instalación de Kubernetes cambiando la configuración existente en los servidores y también instalando algunos paquetes, incluidos docker y kubernetes.

Instalación de hosts

Edite el archivo de hosts en todos los servidores usando el editor vim.

sudo vim /etc/hosts

Pegue la configuración de hosts a continuación.

10.0.15.10  k8s-master
10.0.15.21  worker01
10.0.15.22  worker02

Guardar y salir.

Ahora prueba hacer ping a todos los nombres de host de los servidores.

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

Asegúrese de que todas las direcciones IP se resuelvan como un nombre de host.

Instalar Docker

En este tutorial, instalaremos Docker desde el repositorio de Ubuntu.

Instale Docker con el siguiente comando apt.

sudo apt install docker.io -y

Una vez completada la instalación, inicie el servicio Docker y habilítelo para que se inicie cada vez que se inicie el sistema.

sudo systemctl start docker
sudo systemctl enable docker

La instalación de Docker se ha completado.

Desactivar SWAP

Para configurar los servidores Linux de Kubernetes, debemos deshabilitar el SWAP.

Compruebe la lista de intercambio y desactívela.

sudo swapon -s
sudo swapoff -a

Para deshabilitar el SWAP permanentemente, necesitamos editar el archivo '/etc/fstab'.

sudo vim /etc/fstab

Haga un comentario sobre el tipo de partición SWAP.

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

Guarde y salga, luego reinicie el sistema.

sudo reboot

Instalar paquetes de Kubeadm

En este tutorial, utilizaremos paquetes de Kubeadm para configurar el clúster de Kubernetes. Instalaremos los paquetes de Kubeadm desde el repositorio oficial de Kubernetes.

Instale apt-transport-https.

sudo apt install -y apt-transport-https

Agregue la clave de Kubernetes.

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

Y agregue el Repositorio de Kubernetes creando un nuevo archivo repo.list en el directorio '/etc/apt/sources.list.d'.

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

pegue el repositorio de kubernetes a continuación.

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

Nota:

Seguimos usando el repositorio de Xenial Ubuntu 16.04 para nuestra instalación de Kubeadm.

Ahora actualice el repositorio e instale los paquetes kubeadm usando los comandos apt a continuación.

sudo apt update
sudo apt install -y kubeadm kubelet kubectl

Espere a que se instalen los paquetes de kubeadm.

Paso 2:inicialización del clúster de Kubernetes

En este paso, inicializaremos Kubernetes en el nodo 'k8s-master'. Ejecute todos los comandos en esta etapa solo en el servidor 'k8s-master'.

Inicialice el clúster de Kubernetes con el siguiente comando kubeadm.

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

Nota:

  • --apserver-advertise-address =determina en qué dirección IP Kubernetes debe anunciar su servidor API.
  • --pod-red-cidr =especificar el rango de direcciones IP para la red de pod. Estamos usando la red virtual 'franela'. Si desea utilizar otra red de pod, como weave-net o calico, cambie la dirección IP del rango.

Cuando se complete la inicialización de Kubernetes, obtendrá el resultado como se muestra a continuación.

Copie el 'kubeadm join ... ... ... ' comando a su editor de texto. El comando se usará para registrar nuevos nodos trabajadores en el clúster de kubernetes.

Ahora, para usar Kubernetes, necesitamos ejecutar algunos comandos como se muestra en el resultado.

Cree un nuevo directorio de configuración '.kube' y copie la configuración 'admin.conf' del directorio '/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

A continuación, implemente la red de franela en el clúster de kubernetes mediante el comando kubectl.

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

La red de franela se implementó en el clúster de Kubernetes.

Espere un minuto y luego verifique el nodo y los pods de Kubernetes usando los comandos a continuación.

kubectl get nodes
kubectl get pods --all-namespaces

Y obtendrá que el nodo 'k8s-master' se está ejecutando como un clúster 'maestro' con el estado 'listo', y todos los pods 'kube-system' que se necesitan para el clúster están en funcionamiento.

Se ha completado la inicialización y configuración del maestro de clúster de Kubernetes.

Paso 3:agregar nodos trabajadores al clúster de Kubernetes

En este paso, agregaremos dos trabajadores de nodo 'worker01' y 'worker02' al clúster de Kubernetes.

Conéctese al servidor 'worker01' y ejecute el comando kubeadm join que obtiene de la inicialización del clúster.

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

Conéctese al servidor 'worker02' y ejecute el comando kubeadm join que obtiene de la inicialización del clúster.

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

Espere unos minutos y vuelva al maestro de nodo 'k8s-master' y verifique el estado del nodo.

kubectl get nodes

Verá que esos nodos trabajadores 'worker01' y 'worker02' son parte del clúster de Kubernetes.

Paso 4 - Prueba

En este paso, implementaremos el servidor web Nginx dentro del clúster. Implementaremos el servidor web Nginx utilizando la plantilla YAML.

Cree un nuevo directorio llamado 'nginx' y vaya a ese directorio.

mkdir -p nginx/
cd nginx/

Ahora cree el archivo YAML de Nginx Deployment 'nginx-deployment.yaml' usando el editor vim.

sudo vim nginx-deployment.yaml

Pegue las configuraciones a continuación.

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

Guardar y salir.

Nota:

  • Estamos creando una nueva 'Implementación' llamada 'nginx-deployment'.
  • Configure la etiqueta de la aplicación como 'nginx' con '3' réplicas.
  • La 'implementación de nginx' tendrá contenedores llamados 'nginx', basados ​​en la imagen acoplable 'nginx:1.14.0', y expondrá el puerto HTTP predeterminado 80.

Ahora cree la implementación ejecutando el siguiente comando kubectl.

kubectl create -f nginx-deployment.yaml

Después de crear un nuevo 'nginx-deployment', verifique la lista de implementaciones dentro del clúster.

kubectl get deployments
kubectl describe deployment nginx-deployment

Ahora verifique los pods de Kubernetes y verá el pod 'nginx-deployment-xxx', verifique los detalles del pod.

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

Obtendrá pods de implementación de nginx con 3 réplicas en los nodos trabajadores.

A continuación, debemos crear un nuevo servicio para nuestro 'despliegue de nginx'.

Cree un nuevo archivo YAML llamado 'nginx-service.yaml'.

vim nginx-service.yaml

Pegue la configuración a continuación.

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

Guardar y salir.

Nota:

  • Estamos creando un nuevo servicio de kubernetes llamado 'nginx-service'.
  • El tipo de servicio es 'NodePort' con el puerto predeterminado HTTP TargetPort 80.
  • El servicio pertenece a la aplicación denominada 'nginx' según nuestra implementación 'nginx-deployment'.

Cree el servicio de kubernetes con el siguiente comando kubectl.

kubectl create -f nginx-service.yaml

Ahora verifique todos los servicios disponibles en el clúster y obtendrá el 'servicio nginx' en la lista, luego verifique los detalles del servicio.

kubectl get service
kubectl describe service nginx-service

Y verá que el NodePort 'nginx-service' se está ejecutando en el puerto '32649'.

Verifique usando el comando curl para todos los nodos trabajadores.

En el trabajador01.

curl worker01:32649

Verá la página predeterminada de Nginx.

En el trabajador02.

curl worker02:32649

La instalación y configuración de Kubernetes Cluster en Ubuntu 18.04 se completó con éxito.


Ubuntu
  1. Cómo instalar Kubernetes en Ubuntu 18.04

  2. Cómo instalar y configurar Redis en Ubuntu 18.04

  3. Cómo instalar Docker en Ubuntu 22.04/20.04 LTS

  4. Cómo instalar y configurar Ansible en Ubuntu 18.04 LTS

  5. Cómo instalar y configurar Fail2ban en Ubuntu 20.04 LTS

Cómo instalar y configurar Odoo ERP en Ubuntu 20.04 LTS

Cómo instalar y configurar MySQL en Ubuntu 20.04 LTS

Cómo instalar Docker en Ubuntu 16.04 LTS

Cómo instalar y configurar el servidor DNS en Ubuntu 16.04 LTS

Cómo instalar Docker en Ubuntu 18.04 LTS

Cómo instalar y configurar Kitematic en Ubuntu Linux