Cómo instalar Kubernetes en un servidor Ubuntu sin Docker

imagen



Kubernetes está abandonando el soporte para Docker. Ahora, todo el arduo trabajo que dedicas a aprender cambiará mucho. Incluso desde el principio, usar Kubernetes no será lo mismo.



Estoy hablando de instalar la propia herramienta de gestión de contenedores. Por supuesto, no puede implementar Kubernetes de la misma manera que lo hizo antes, con Docker instalado como su tiempo de ejecución.



Juntos ahora intentaremos instalar Kubernetes en Ubuntu Server 20.04 sin Docker.



Que necesitas



  • Usuario con privilegios de sudo
  • Instancia de Ubuntu Server 20.04 (esto servirá como controlador; necesitará otras instancias para ejecutarse como nodos, pero solo voy a demostrar en el controlador ya que la configuración será la misma en todas las máquinas)


Cómo instalar el tiempo de ejecución de containerd



Lo primero que haremos es instalar el tiempo de ejecución en contenedor, que tomará el lugar de Docker. Inicie sesión en su instancia de Ubuntu Server y asegúrese de actualizar apt usando el comando:



sudo apt-get update
      
      





Después de eso, debe iniciar la actualización con el comando:



sudo apt-get upgrade -y
      
      





Si el kernel se está actualizando, debe reiniciar el servidor (a menos que tenga Live Patch instalado y en ejecución).

 

Instale containerd usando el comando:



sudo apt-get install containerd -y
      
      





Configure containerd e inicie el servicio usando los comandos:



sudo mkdir -p /etc/containerd
sudo su -
containerd config default  /etc/containerd/config.toml
      
      





Cómo instalar Kubernetes



A continuación, instalaremos Kubernetes. Primero debe agregar la clave GPG del repositorio usando el comando:



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





Agregue el repositorio de Kubernetes con el comando:

 

sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
      
      





Ahora puede instalar todos los componentes de Kubernetes necesarios con el comando:



sudo apt-get install kubeadm kubelet kubectl –y
      
      





Cómo resolver múltiples problemas en contenedores



Aquí es donde las cosas se ponen un poco complicadas. Docker ha resuelto muchas cosas internas. Cuando va a containerd, necesita realizar algunos cambios de configuración manuales. 



El primer cambio es agregar una línea a /etc/sysctl.conf. Abra el archivo con el comando:



sudo nano /etc/sysctl.conf
      
      





Con este archivo abierto, agregue lo siguiente a continuación:



net.bridge.bridge-nf-call-iptables = 1
      
      





Guarde y cierre el archivo. 



Luego ingrese los comandos:



sudo -s
sudo echo '1' > /proc/sys/net/ipv4/ip_forward
exit
      
      





Recargue las configuraciones con el comando:



sudo sysctl --system
      
      





También necesitará cargar un par de módulos requeridos usando los comandos:



sudo modprobe overlay
sudo modprobe br_netfilter
      
      





Una vez que se encargue de esto, puede inicializar Kubernetes.



Cómo completar la configuración



Deberá enumerar todos sus hosts en / etc / hosts. Asegúrese de que la pantalla tenga el siguiente formato:



IP Address hostname
      
      





El siguiente paso es establecer el nombre de host de su controlador (asegúrese de que coincida con el nombre de host que utilizó en / etc / hosts) usando el comando:



sudo hostnamectl set-hostname HOSTNAME
      
      





Donde HOSTNAME es el nombre de host que desea utilizar.



Desactive el intercambio abriendo el archivo fstab para editarlo con el comando:



sudo nano /etc/fstab
      
      





En este archivo, comente (agregando un # al principio de la línea) la entrada que comienza con:



/swap.img
      
      





Esta línea ahora comenzará con:



# / swap.img
      
      





Guarde y cierre el archivo. 



Desactive el intercambio con el comando:



sudo swapoff -a
      
      





Extrae los contenedores necesarios con el comando:



sudo kubeadm config images pull
      
      





En el controlador, inicialice Kubernetes con el comando:



sudo kubeadm init --pod-network-cidr=IPADDRESS/24
      
      





Donde IPADDRESS es la dirección IP de su controlador.



Con el tiempo, volverá al comando que necesita ejecutar en sus nodos para que puedan conectarse al clúster. Copie este comando. 



Antes de poder unir los nodos al clúster, debe ocuparse de algunos bits más del clúster.



En el controlador, cree el directorio del clúster con el comando:



mkdir -p $ HOME / .kube
      
      





Copie el archivo de configuración en este directorio usando el comando:



sudo cp -i /etc/kubernetes/admin.conf $ HOME / .kube / config
      
      





Otorgue al archivo de configuración los permisos adecuados con el comando:



sudo chown $(id -u):$(id -g) $HOME/.kube/config
      
      





Implemente una red de contenedores (en este caso usaremos weave-net) en el clúster usando el comando:



kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
      
      





Ahora puede ejecutar un comando de conexión en cada uno de los nodos para apagar el clúster.



El proceso no es tan simple como solía ser. Con suerte, en el futuro, implementar un clúster de Kubernetes será tan fácil como usar Docker. 



All Articles