Artículos de nodo de nodo de las notas de estudio de Kubernetes (4)

1. Concepto de nodo

Los nodos son máquinas de trabajo en un clúster de Kubernetes, son unidades de trabajo, que pueden ser máquinas físicas, máquinas virtuales o instancias de servidor en la nube.
Kubernetes ejecuta cargas de trabajo colocando contenedores en pods que se ejecutan en nodos. Cada nodo contiene todos los servicios y configuraciones necesarios para ejecutar un Pod.

2. Gestión de nodos

El clúster de Kubernetes no crea el nodo, en esencia, Kubernetes solo administra los recursos en el nodo (como pod, implementación).

2.1 Cómo agregar nodos:

2.1.1 El kubelet en el nodo realiza el registro automático en el plano de control;

2.1.2 Utilice solo la lista de recursos para crear un objeto de nodo (el objeto de nodo debe cumplir con todos los requisitos para ejecutar Pod).

# 示例
{
    
    
  "kind": "Node",
  "apiVersion": "v1",
  "metadata": {
    
    
    "name": "192.168.1.10", # 节点的IP地址
    "labels": {
    
    
      "name": "k8s-node01" 
    }
  }
}

Al usar el método de lista de recursos para crear un objeto de recurso de nodo, kubernetes creará internamente un objeto de nodo como una representación del nodo. Kubernetes verifica que el campo metadata.name utilizado por el kubelet para registrar el nodo con el servidor API
coincida. Si se supervisa el nodo, el nodo se puede usar para ejecutar pods; de lo contrario, toda la actividad del clúster ignora el nodo hasta que el nodo esté en buen estado.

2.2 Unicidad de nombre de nodo

El nombre del nodo se utiliza para identificar el objeto Nodo. Dos nodos no pueden usar el mismo nombre al mismo tiempo. Kubernetes también asume que los recursos con el mismo nombre son el mismo objeto. En el caso de Node, se asume implícitamente que las instancias con el mismo nombre tendrán el mismo estado (como configuración de red, contenido del disco raíz) y propiedades como etiquetas de nodo. Esto puede conducir a un estado del sistema incoherente cuando se cambia un nodo pero su nombre no cambia. Si es necesario reemplazar o cambiar mucho un nodo, el objeto de nodo existente debe eliminarse del servidor API y luego volver a agregarse después de la actualización.

2.3 Expansión y contracción de nodos

2.3.1 Expansión

En el sistema de producción real, cuando la capacidad de los nodos del clúster es insuficiente, es necesario agregar nuevos nodos (con todos los servicios necesarios para el funcionamiento del Pod) al clúster para lograr la expansión horizontal del clúster y lograr el objetivo de expansión de la capacidad.
2.3.2 Reducir
Puede eliminar el nodo para lograr el propósito de reducir la capacidad. Antes de eliminar, debe expulsar todos los pods del nodo y establecer el nodo como no programable.

kubectl delete node k8s-node1
2.4 Operaciones comunes de los nodos

2.4.1 Establecer el nodo como no planificable

kubectl cordon k8s-node1

2.4.2 Establecer el nodo como programable

kubectl uncordon k8s-node1

2.4.3 Expulsión de pods en nodos

kubectl drain k8s-node1

2.4.4 Etiquetado de nodos

kubectl label node k8s-node1 key1=value1

2.4.5 Eliminar etiquetas de nodos
Para eliminar una etiqueta, solo necesita especificar el nombre clave de la etiqueta al final de la línea de comando y agregar un signo menos:

kubectl label node k8s-node1 key1-

3. Estado del nodo

El estado de un nodo contiene la siguiente información:

  • direcciones
  • Condición
  • Capacidad y asignable
  • Información (Información)
3.1.direcciones

direcciones registra la lista de direcciones de los nodos accesibles y, por lo general, puede contener los siguientes atributos:

  • nombre de host (nombre de host)
  • externalip (IP de red externa)
  • IP interna (IP de la intranet)
3.2.Condición

condition describe una serie de estados cuando el nodo se está ejecutando. Generalmente tienen el siguiente estado:

  • Ready True indica que el nodo está en buen estado y puede aceptar solicitudes de programación de pods, y puede transportar pods, y False indica que el nodo no está en buen estado y no puede aceptar solicitudes de programación de pods
  • Desconocido significa que el nodo no envió el último latido al controlador del nodo dentro del tiempo especificado, y el nodo perdió la conexión con el clúster. En este momento, significa que el nodo es anormal
  • DiskPressure True indica la presión del tamaño del disco (menos capacidad libre del disco)
  • MemoryPressure True indica la presión de la memoria (la capacidad de la memoria es demasiado pequeña)
  • PIDPressure True indica que hay una gran cantidad de procesos en el nodo
  • NetworkUndisponible True indica que la red del nodo está mal configurada
3.3 Capacidad y asignables

Estos dos valores describen los recursos disponibles en el nodo: CPU, memoria y la cantidad máxima de pods que se pueden programar en el nodo.
Los campos en el bloque de capacidad indican la cantidad total de recursos que posee el nodo, y el bloque Asignable indica la cantidad de recursos en el nodo que pueden consumir los pods ordinarios.

3.4 Información (info)

El valor info es la información general del nodo, como la versión del kernel, la versión de kubernetes (versión de kubelet y kube-proxy), los detalles del tiempo de ejecución del contenedor y el sistema operativo utilizado por el nodo. El kubelet recopila esta información de los nodos y la publica en la API de kubernetes.

Supongo que te gusta

Origin blog.csdn.net/Habo_/article/details/127089889
Recomendado
Clasificación