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.