Conceptos básicos preliminares y tutoriales detallados sobre la creación de un clúster de Kubernetes (k8s) basado en Linux
Sitio web oficial de k8s: /get-docker/
1. Deshabilitar la partición de intercambio
K8s requiere que la partición de intercambio esté deshabilitada. De lo contrario, se producirá un error de inicialización. ser reportado.
En cada host:
2. Asegúrese de que la zona horaria y la hora sean correctas
Configuración de la zona horaria
3. Apague el firewall y selinux
ubuntu Verifique que el comando del firewall y el estado de ufw Ubuntu20.04 estén desactivados de forma predeterminada y no se requieren configuraciones.
4. Nombre del host y configuración del host (opcional)
No es necesario, pero para visualización y administración conveniente, se recomienda configurarlo.
Establezca el nombre del host en el host: k8s-master, k8s-node01, k8s-node02
Configuración del host
1. Cambie el controlador predeterminado de Docker a systemd
Para evitar una serie de errores de inicialización
Compruebe si los controladores de Docker y kubectl son consistentes; de lo contrario, kubectl no puede iniciarse y provocará errores. Algunas versiones de Docker son diferentes, algunas son cgroupfs y el controlador predeterminado de kubectl es systemd, por lo que es necesario cambiar el controlador de Docker.
Puedes comprobar el comando del controlador de la ventana acoplable:
Para cambiar el controlador de la ventana acoplable, edita /etc/docker/daemon.json (o crea uno nuevo si no tienes uno). ) y agregue los siguientes parámetros de inicio:
Reiniciar la ventana acoplable
Debe instalar los siguientes paquetes en cada máquina:
Debe instalar los siguientes paquetes en cada máquina: Instale los siguientes paquetes.
2. Actualice el índice del paquete de software de apt e instale los paquetes de software necesarios para usar la biblioteca de recursos de Kubernetes apt
Instale el paquete de software que permite a apt usar la biblioteca de recursos a través de HTTPS. ignorando el software instalado
3. Descargue la clave de firma pública y agregue la biblioteca k8s.
En el extranjero: descargue la clave de firma pública de Google Cloud:
Nacional: puede utilizar AliSource para completar esta operación:
Tenga en cuenta que el comando utilizado es Ubuntu Versión 16.04 de Xenial, que es el último repositorio de Kubernetes disponible. Por lo tanto, utilice focal 20.04.
4. Actualice el índice del paquete apt para instalar kubelet, kubeadm y kubectl y bloquear sus versiones
Bloquear versiones para evitar incompatibilidades, por ejemplo, kubelet versión 1.7. 0 es totalmente compatible con la versión 1.8.0 de kubelet, que es totalmente compatible con la versión 1.8.0 de kubelet, que es totalmente compatible con la versión 1.8.0 del servidor API y viceversa.
Simplemente ejecute en master.
1. Resolución del error de inicialización (si no hay errores, omita este)
Error 1:
Motivo: kubectl no se puede iniciar a través de journalctl - xe para ver los mensajes de error de inicio.
Solución: k8s recomienda utilizar el controlador systemd, así que cambie el controlador de la ventana acoplable. Edite /etc/docker/daemon.json (si no existe, también puede crear uno nuevo) y agregue los siguientes parámetros de inicio:
Reinicie Docker y Kubectel
Mensaje de error 2:
Motivo: Inicializar archivos de producción, reinicializarlos, simplemente eliminarlos
Mensaje de error 3:
Solución: Restablecer configuración
2. Inicialización completada
No hay errores Finalmente, ocurre la siguiente situación, es decir, se completa la inicialización y se completa la inicialización. Debes seguir las instrucciones.
La operación depende de si el usuario es un usuario root o un usuario normal. Porque en la mayoría de los entornos no será un usuario root, y yo también soy un usuario normal, así que elijo la operación de usuario normal. comando:
Si es usuario root, ejecute el siguiente comando:
Una vez completada la inicialización, utilice el último comando kubeadm join.... para unirse al clúster en la máquina de nodos.
3. Configuración de red del pod del nodo maestro
El nodo maestro admite complementos de red: es.io/zh/docs/concepts/cluster-administration/addons/
El complemento de red Calico se instala aquí: es /self-managed-onprem/onpremises
El sitio web de Calico proporciona tres métodos de instalación: 1) menos de 50 nodos 2) más de 50 nodos; ) almacenamiento de datos etcd (este método no se recomienda oficialmente).
Aquí, elegimos el primero:
Una vez completada la instalación, kubectl get node puede verificar el estado del nodo. Es normal pasar de No listo a Listo. tardará unos minutos en completarse.
1. El nodo se une al nodo maestro
Cuando todas las máquinas del nodo se están ejecutando, la instalación de kubelet, kubeadm y kubectl se ha completado y el último comando de solicitud se agrega después del maestro. La inicialización del nodo está completa. Recuerde utilizar el usuario root.
Después de unirse exitosamente, el mensaje es el siguiente:
Verifique nuevamente si el servicio kubelet se ha iniciado normalmente.
2. Errores que necesitan atención
1: Al unirse al nodo maestro, el usuario raíz debe ejecutar el comando de palabra antes de unirse al nodo maestro.
Antes de unirse al nodo maestro, el servicio kubelet no se puede iniciar. Esta es una situación normal y el error se informará de la siguiente manera:
El motivo es que falta el archivo. y el nodo maestro se inicializa con `kubeadm init`.
No es necesario inicializar el nodo, por lo que solo necesita usar `kubeadm join` del usuario raíz para unirse a la generación del nodo maestro.
2. Si le indica que algunos archivos ya existen al unirse, como:
El motivo es que ya se ha unido al nodo maestro Incluso si la unión no es exitosa, se creará el archivo, por lo que necesitará restablecer el nodo y volver a unirse:
3. Ver en el nodo maestro
Una vez completada la unión, haga clic en
.