conceptos clave de k8s

1. diagrama de arquitectura de clúster de kubernetes

imagen


nodo maestro:

kubectl: 
herramienta de línea de comando del cliente, formatee el comando recibido y envíelo a kube-apiserver como la entrada de operación de todo el sistema; 

kube-apiserver: 
entrada unificada del clúster, coordinador de cada componente, API HTTP proporciona servicio de interfaz, todos los objetos La adición, eliminación, modificación, inspección y monitoreo de los recursos se entregan a un servidor para su procesamiento y luego se entregan a etcd para su almacenamiento; 

kube-cotraller-manager: 
maneja las tareas rutinarias en segundo plano en el clúster, un recurso corresponde a un controlador, y el administrador del controlador es responsable de administrar estos controladores; 

kubernetes planificador: 
vincula el pod para que se programe a un nodo adecuado en el clúster de acuerdo con un algoritmo específico y una estrategia de programación, y escribe la información de enlace en etcd;


nodo:

##### 
kubelet: 
cada nodo de nodo instalará un proceso de kubelet, que se utiliza para manejar las tareas que el maestro envía a este nodo, administrar el ciclo de vida del contenedor en ejecución local, como crear un contenedor, volumen de datos de montaje de pod, descargar secretos , Para obtener el estado de los contenedores y nodos. 

##### 
kube-proxy y servicio: 
kube-proxy se ejecuta en cada nodo Node, es un componente importante para realizar el mecanismo de comunicación y equilibrio de carga del Servicio Kubernetes; responsable del proxy de red Pod, se obtendrá regularmente del servicio etcd Información de servicio 
para hacer que las estrategias correspondientes, mantener las reglas de red y el trabajo de equilibrio de carga de cuatro capas; 

en k8s, un grupo de pods que proporcionan el mismo servicio se pueden abstraer en un servicio, y los servicios se proporcionan externamente a través de la entrada unificada proporcionada por el servicio, cada servicio tiene Se proporciona una dirección IP virtual (VIP) y un número de puerto para el acceso del cliente. 

kube-proxy existe en cada nodo y se utiliza principalmente para la realización de la función de servicio. Específicamente, es realizar el servicio de acceso de pod de cliente en el clúster, o el host fuera del clúster accede al servicio a través de NodePort y otros métodos. 

Comenzando con kubernetes 1.2, iptables se usa como el modo predeterminado de kube-proxy, y el equilibrio de carga de los servicios se logra a través de las reglas de iptables en cada nodo del nodo. Sin embargo, a medida que aumenta el número de servicios, el 
modo iptables se debe a la búsqueda lineal, la actualización completa, etc. Características, su rendimiento se reducirá significativamente;
 
partir de la versión 1.8 de k8s, kube-proxy introduce el modo IPVS. El modo IPVS se basa en Netfilter como iptables, pero utiliza una tabla hash.
Aparecerá la ventaja de velocidad de la tabla de búsqueda hash, mejorando así el rendimiento del servicio. 
  * Puede programar uniformemente un grupo de contenedores para el nodo especificado;

Los pods son de corta duración, la dirección IP puede cambiar al reiniciarse y el Servicio es una capa de abstracción que define una serie de Pods y las estrategias para acceder a ellos. El Servicio encuentra el grupo Pod a través de Label; 
Label es un par de pares clave / valor unidos al Pod. Por ejemplo, puede crear una etiqueta de "nivel" y "aplicación", y etiquetar el front end con Label (tier = frontend, app = myapp) Contenedor de pod, 
use Label (tier = backend, app = myapp) para marcar el Pod de fondo. Luego puede usar Selectores para seleccionar Pods con etiquetas específicas y aplicarles el Servicio o el Controlador de replicación. 

El proxy kube gestiona el punto final del servicio. El servicio expone una IP virtual, que también se denomina IP del clúster. Al acceder a esta IP del clúster: puerto en el clúster, puede acceder al Pod bajo el servicio correspondiente en el clúster. 

El servicio se basa en la etiqueta para asociar el pod, no la IP, por lo que eliminar un pod, se creará y asociará automáticamente; entre el 
Servicio y su clúster de copia de pod de back-end es a través del Selector de etiquetas para lograr un "acoplamiento continuo". El rol de RC es en realidad garantizar que las capacidades de servicio y la calidad del servicio estén dentro de los estándares esperados. 


##### 
pod: 
Pod es la unidad desplegable más pequeña que puede crear y administrar la informática de Kubernetes. ¿Por qué es Pod la unidad de programación más pequeña?  
  * Realizar comunicación local para reducir las frecuentes solicitudes de red remota a la red;
  * Recursos compartidos: los contenedores de pod pueden usar host local para comunicarse, usar volumen para compartir archivos y usar archivos de socket; 

los pods son como vainas de guisantes. Consiste en uno o más contenedores (como los contenedores Docker), que comparten el almacenamiento de contenedores Elementos de configuración de operación de red y contenedor. Los contenedores en el Pod siempre se programan al mismo tiempo y tienen un entorno operativo común. 
Puede pensar en un solo Pod como un "host lógico" que ejecuta aplicaciones independientes, donde se ejecutan uno o más contenedores de aplicaciones estrechamente acoplados, antes de que haya contenedores, estas aplicaciones se ejecutan en varias máquinas físicas o En la máquina virtual. 


##### 
docker: 
motor de contenedor, contenedor en ejecución


1.png

imagen


2 、 dns

DNS es una de las funciones principales de Kubernetes, ya que proporciona servicios de nombres a través de kube-dns o CoreDNS como una extensión necesaria del clúster. 

Kube-dns se puede configurar en el clúster para realizar la función de descubrimiento de servicios. Kube-dns implementa la relación de mapeo entre el nombre del servicio y el IP del clúster. 
Kube-dns generalmente asigna un registro A llamado "nombre de servicio.nombreespacio.svc.cluster.local" al servicio para resolver la IP del clúster del servicio. 
Si accede al servicio bajo el espacio de nombres predeterminado, puede acceder directamente a él a través del "nombre del servicio"; si accede al servicio bajo otro espacio de nombres, puede acceder a él a través del "nombre del servicio.espacio de nombres". 
k8s proporcionará la configuración predeterminada /etc/resolv.conf para cada contenedor, el contenido es: 
  buscar default.svc.cluster.local svc.cluster.local cluster.local 
  nameserver 10.0.0.10 
  opciones ndots: 5 

clúster consultando / etc / El campo del servidor de nombres del archivo resolv.conf determina el servidor dns. Este archivo se especifica en la configuración de inicio del servicio kubelet: cluster-dns y se genera automáticamente después de que se inicia el servicio. 
Al acceder a los servicios con "nombre de servicio", el servicio de búsqueda default.svc.cluster.local se usará para empalmar el nombre completo del servicio; cuando se use "nombre de servicio.nombre de espacio", eventualmente se usará svc.cluster.local buscar registro


En Kubernetes 1.11, CoreDNS ha implementado GA (Disponibilidad general, versión oficialmente lanzada) para el descubrimiento de servicios basado en DNS, que puede usarse como un sustituto del complemento kube-dns. 
coredns se clasifica como complemento en kubernetes, como un componente adicional, que admite la implementación en contenedores;

Supongo que te gusta

Origin www.cnblogs.com/weiyiming007/p/12712450.html
Recomendado
Clasificación