Red de conocimiento informático - Consumibles informáticos - Construcción de un clúster de Kubernetes de alta disponibilidad

Construcción de un clúster de Kubernetes de alta disponibilidad

Descripción de la arquitectura

Componentes del clúster de Kubernetes:

alta disponibilidad del clúster K8, generalmente la alta disponibilidad de los componentes de servicio etcd, kube-apiserver, kube-controller-manager y kube-scheduler.

Planificación:

3 nodos maestros y 2 nodos trabajadores, utilizando keepalived+haproxy para lograr alta disponibilidad.

1. Preparación preliminar del entorno

Kubernetes 1.8 comienza a requerir que se apague el cambio del sistema. Si no se apaga, kubelet no se iniciará de forma predeterminada.

El método 1 cambia esta restricción a través del parámetro de inicio de kubelet –fail-swap-on = false.

Método 2: Desactiva el Swap del sistema, swap-a.

Modifique el archivo /etc/fstab, comente el montaje automático de swap y use free -m para confirmar que SWAP se ha cerrado.

2. Instalación de Docker

Instale docker-ce, todos los nodos deben estar instalados.

Yum-utils proporciona la herramienta yum-config-manager y el almacenamiento de devicemapper requiere device-mapper-persistent-data y lvm2.

Agregar repositorio fuente de yum

Repositorio oficial

Instalar Docker

Configurar el acelerador de imágenes de Docker China, cambiar el controlador cgroup a systemd, k8s Se recomienda utilizar systemd y reiniciar Docker después de la configuración.

En tercer lugar, instale haproxy y keepalived

Instale haproxy y keepalived para lograr una alta disponibilidad de kube-apiserver.

Psmisc proporciona el comando killall.

Configuración de haproxy

Configuración del estado de mantenimiento de actividad

Nota: En los otros dos nodos, establezca el estado en copia de seguridad y la prioridad en 110 y 100.

Inicie haproxy y mantenga todos los nodos activos.

Ver VIP

Tenga en cuenta que si usa el comando ifconfig, no podrá verlo. Debes utilizar el comando ip addr.

En este momento, el vip está en 130.252.10.235, por lo que desactivamos haproxy en 235 y verificamos si el vip se desplazará a otros nodos.

Cuatro. Instalar kubeadm/kubelet/kubectl

Instalación del nodo maestro: kubeadm, kubelet, kubectl.

Instalación del nodo nodo: kubeadm, kubelet

Fijo

5. Inicialice el clúster con kubeadm.

Paso 1 Prepare el archivo de configuración de inicialización

Modifique la configuración según su propio entorno.

El paso 2 maneja la duplicación de las dependencias de Kubernetes.

El espejo requerido por el maestro es

El espejo requerido por el nodo nodo es

Ver la versión del espejo requerida.

Extraiga la imagen

6. Inicialice el primer nodo maestro

Nota: si deshabilita la partición de intercambio, no necesita agregar -ignore-prefix. -errores=intercambiar.

Configurar kubectl

Habilitar la finalización automática de comandos de kubectl

7. Instalar podnet flannel.

Octavo, agregue otros nodos maestros al clúster.

Copie el archivo de certificado del nodo1 a otros nodos maestros, nodo2 y nodo3.

Ejecute los siguientes comandos en master1 y master2 respectivamente.

9. Agregar nodos al clúster.

X. Comprobar el estado del clúster.

Ver el estado del nodo en el nodo maestro.

Todos los nodos no están listos porque cada nodo necesita iniciar varios componentes, que se ejecutan en pods y necesitan descargar imágenes de Google.

Verifique el estado del pod

Verifique la información del clúster

Verifique el clúster etcd

Compruebe si el clúster es normal.

Ver el líder del clúster

Nota: debido a que es un clúster etcd de 3 nodos, solo se puede cerrar un nodo. Si dos nodos están inactivos al mismo tiempo, ocurrirá un problema: No se puede conectar al servidor: EOF.

El clúster Etd requiere una mayoría de nodos (quórum) para acordar las actualizaciones de estado del clúster, por lo que los nodos del clúster ETCD generalmente tienen un número impar y pueden ejecutarse normalmente solo cuando el número de nodos supervivientes es mayor que el número de nodos fuera de línea. Para un clúster ETCD de 5 nodos, dos nodos pueden fallar al mismo tiempo.

Generalmente se recomiendan cinco nodos. Más de cinco nodos proporcionan una mayor tolerancia a fallos, pero la capacidad de escritura del clúster será deficiente.

Consulta IPVS