Tutorial definitivo sobre instalación de K8S y creación de clústeres (un solo maestro, varios trabajadores)
En primer lugar, debemos comprender brevemente los tres conceptos centrales de este artículo:
Se recomienda utilizar al menos 4G de memoria.
P: ¿Cómo comprobar el nombre del host?
Respuesta: Ejecute el comando hostname.
P: ¿Cómo modificar el nombre del host?
Respuesta: La forma de hacerlo permanente: ejecute el comando vi /etc/hostname, elimine la primera línea (no puede comentarla, es necesario eliminarla) y luego vuelva a escribir el nombre de host personalizado (preste atención). según los estándares de nombres), guarde y reinicie. Tendrá efecto más tarde;
Efectivo temporalmente: ejecute el siguiente comando
P: ¿Cómo verificar la dirección MAC?
Respuesta: Ejecute el comando ip link y luego verifique su primera tarjeta de red.
P: ¿Cómo comprobar product_uuid?
Respuesta: Ejecute el comando sudo cat/sys/class/DMI/id/product_uuid.
Nota: El rango de puertos 30000-32767 es el rango que debemos configurar al crear un puerto de servicio (si excede el rango de configuración, habrá un mensaje de restricción y la creación fallará), que es estipulado por K8S.
Además, si quieres apagar el firewall directamente, también puedes hacerlo.
⑥El intercambio debe estar deshabilitado.
El número total de intercambios es mayor que 0, lo que indica que la partición de intercambio está abierta.
P: ¿Cómo desactivar el intercambio?
Respuesta: Edite el archivo /etc/fstab, agregue un # antes de la línea de intercambio para guardar y reinicie el servidor.
Comprueba nuevamente el estado de la partición, ha tenido efecto.
Tiempo de ejecución de contenedor público (runtime):
El motor de contenedor utilizado en este artículo es Docker.
Comprueba la versión después de la instalación:
Cuando hay una excepción extraña que puede estar relacionada con el motor Docker, puedes intentar desinstalar Docker y reinstalarlo, pero asegúrate de pagar. Preste atención a si necesita hacer una copia de seguridad de imágenes, contenedores, volúmenes o archivos de configuración.
Los pasos para desinstalar el motor Docker se registran a continuación:
① Desinstale el motor Docker, la CLI y el paquete Containerd:
② La imagen, el contenedor y el volumen o Los perfiles personalizados no se eliminan automáticamente. Elimine todas las imágenes, contenedores y volúmenes:
③ Si el archivo de configuración contiene caracteres ilegales, provocará un error de inicio. Necesitamos eliminarlo y reconstruirlo.
En este punto, el motor Docker ha sido desinstalado.
El sitio web oficial utiliza Yum Source de Google. Debido a que no se puede conectar en China, fue reemplazado por Yum Source proporcionado por Alibaba.
①Instalación
Como se puede ver en la información de instalación, el número de versión es 1.22.
Instalación:
kube ADM x86_64 1.22.4-0 kubernetes 9.3m
kubectl x86_64 1.22.4-0 kubernetes 9.7M
Kubernet x86_64 1.22.4-0 Kubernet 20 metros
② Inicio.
Este es un controlador. Tenga cuidado de no confundir cgroups y cgroupfs.
Citar un texto oficial
Dado que Kubean ADM administra kubelet como un servicio del sistema, recomendamos utilizar el controlador systemd en lugar del controlador cgroupfs para instalaciones basadas en Kubean ADM
p>
Kubeadm usa el controlador systemd de forma predeterminada, y nuestro controlador predeterminado de Docker es cgroupfs (se puede ver la información de Docker), por lo que debemos cambiar el controlador de Docker a systemd.
①Edite el archivo de configuración de Docker.
②Reinicie el servicio Docker
La información de Docker vuelve a comprobar la información del controlador, ha cambiado a systemd.
La configuración mínima del nodo trabajador está aquí.
①Descripción del parámetro de origen de la imagen
De forma predeterminada, kubeadm extraerá la imagen del almacén k8s.gcr.io, lo cual no es posible en China. El documento oficial establece claramente que está permitido usar otro repositorio de imágenes en lugar de k8s.gcr.io
- image-repository la dirección del almacén de imágenes
A continuación, encontré algunas fuentes espejo nacionales e hizo un análisis simple.
Basado en las estadísticas anteriores, elegí la fuente de imágenes de Alibaba Cloud.
②Descripción del parámetro del rango de direcciones IP
-pod-network-CIDR = 192.168. 0/16
Nota: Si 192.168. Ya utilizado en su red, debe seleccionar un CIDR de red de pod diferente y reemplazar 192.168.0.0/16 en el comando anterior.
Comando de inicialización del clúster:
Debido a que estoy usando una máquina de demostración, publico aquí la información de ejecución completa para facilitar su referencia. Debe prestar atención a proteger la información confidencial en su trabajo diario (mi rango de direcciones IP está personalizado para la siguiente demostración de función. El primer inicio requiere descargar el archivo de imagen, lo que generalmente demora unos minutos).
Como se muestra arriba, el clúster se ha inicializado correctamente. En este momento, debe prestar atención a la última parte del mensaje de operación del resultado de la ejecución anterior. Marqué los tres pasos que deben realizarse después de una inicialización exitosa.
Nota: Si necesita ajustar los parámetros después de una inicialización exitosa, puede ejecutar kubeadm reset para restaurar los cambios realizados por kubeadm init o kubeadm join tanto como sea posible.
Para comenzar a usar tu clúster, necesitas ejecutar el siguiente comando como usuario normal:
Antes de comenzar a usar el clúster, si eres un usuario normal (no root) , necesitas Ejecutar el siguiente comando:
O, si eres el usuario root, puedes ejecutar:
O, si eres el usuario root, puedes ejecutar el siguiente comando :
(Nota: la exportación solo tiene efecto temporalmente, lo que significa que debe ejecutarse cada vez que inicia sesión).
La configuración de red es la red del Pod y mi red El complemento es calico.
Cidr es el rango de direcciones IP. Si usa PODCDR 192.168 0 0/16, salte al siguiente paso.
Pero el PODCDR utilizado en este artículo es 192.100.0/16, por lo que necesito descomentar la variable CALICO_IPV4POOL_CIDR en la lista y establecerla en el mismo valor que el PODCDR que seleccioné. (Preste atención al formato y la alineación).
Puede personalizar la lista según sea necesario. De lo contrario, generalmente omita este paso.
Ejecute el comando de unión en todos los nodos de trabajo (copie el comando de unión del clúster devuelto después de una inicialización exitosa y ejecútelo en todos los nodos de trabajo).
Ver el estado de todos los nodos en el nodo maestro.
El clúster se ha creado aquí.
Finalmente, instalaré la interfaz visual kubernetes-dashboard K8S para nuestro uso diario.
①Descarga el archivo yaml.
② Modifique el archivo yaml y agregue el tipo y el puerto de nodo para que se pueda acceder al servicio externamente.
③Instalar y comprobar el funcionamiento.
④Crear un nuevo usuario
Crea el archivo, guárdalo y aplícalo.
⑤Obtenga el token de inicio de sesión de la interfaz.
⑥Inicie sesión en el panel de control.
192.168.189.128 es la IP de mi servidor principal. Cabe señalar que se debe usar https y no se puede usar el modo kernel de IE.
Copie el token generado en el cuadro de entrada y haga clic en Iniciar sesión.
La instalación y configuración del panel está completa.
P: ¿Cómo ver los recursos?
Respuesta: Ejecute el siguiente comando en el servidor principal para ver los recursos (-o amplio significa mostrar información más detallada).
①Ver todos los nodos
②Ver todos los espacios de nombres
③Verifique los pods en el espacio de nombres.
④Panel de visualización para todos los espacios de nombres.
⑤ Verifique el estado de ejecución de los pods en el espacio de nombres en tiempo real.
P: Se produjo una excepción en kubeadm join [error puerto-10250]: el puerto 10250 está en uso, ¿cómo solucionarlo?
Respuesta: Esto se debe a que no pudo unirse antes y necesita restablecer kubeadm antes de poder unirse nuevamente.
P: ¿Cómo solucionar el problema de que la tarjeta de red desaparezca repentinamente al realizar pruebas en una máquina virtual (registro de problemas fuera de tema)?
Respuesta:
①Confirme la información de la tarjeta de red perdida, comenzando desde ens (paso opcional)
Archivo de configuración-a
② Ejecutar el siguiente comando para resolver el problema
P: ¿Cómo comprobar la versión K8S?
Respuesta: versión de kubectl
P: ¿Qué pasa si el comando de unión se olvida o caduca?
Respuesta:
Generar nunca caduca.
Envejecimiento de la generación de 24 horas
P: ¿Qué debo hacer si el Pod se sigue reiniciando y no hay otros mensajes de error?
Respuesta: Esto generalmente se debe a que solo hay un nodo maestro en su clúster y no hay nodos trabajadores. De forma predeterminada, la creación del nodo maestro está contaminada, es decir, no se permite programar nuevos pods. Si es necesario (y ciertamente no recomendado), es necesario eliminar las manchas del maestro. Para eliminar una mancha, puede ejecutar el siguiente comando.
Debería devolver lo siguiente.