Introducción a K8s Container Cloud Platform

Uno, descripción general de Kubernetes

  • Kubernetes es un sistema de gestión de clústeres de contenedores de código abierto de Google en 2014. Kubernetes se conoce como K8S.
  • K8S se utiliza para la implementación, expansión y gestión de aplicaciones en contenedores.
  • K8S proporciona una serie de funciones como la orquestación de contenedores, la programación de recursos, el escalado elástico, la gestión de la implementación, el descubrimiento de servicios, etc.
  • El objetivo de Kubernetes es hacer que la implementación de aplicaciones en contenedores sea simple y eficiente

1.1, características de Kubernetes

Autorrecuperación
Reinicie el contenedor fallido cuando el nodo falle, reemplace y vuelva a implementar para garantizar el número esperado de copias; elimine el contenedor que no supera la verificación de estado y no procesará las solicitudes de los clientes hasta que esté listo para garantizar que los servicios en línea no se interrumpan

Escalado elástico
Utilice comandos, U, o expanda y reduzca automática y rápidamente las instancias de la aplicación según el uso de la CPU para garantizar una alta disponibilidad durante la concurrencia máxima de servicios de aplicaciones; recuperación de recursos cuando los picos comerciales son bajos para ejecutar servicios a un costo mínimo


Implementación y reversión automáticas K8S utiliza una estrategia de actualización continua para actualizar las aplicaciones, actualizando un Pod a la vez (primero crear y luego eliminar) en lugar de eliminar todos los Pods al mismo tiempo. Si hay un problema durante el proceso de actualización, los cambios ser revertido para asegurar que la actualización no se vea afectada.

El descubrimiento de servicios y el equilibrio de carga
K8S proporciona una entrada de acceso unificado (dirección IP interna y un nombre DNS) para varios contenedores, y equilibra la carga de todos los contenedores asociados para que los usuarios no tengan que considerar problemas de IP del contenedor.

Gestión de la confidencialidad y la configuración
Gestione la configuración de aplicaciones y datos confidenciales sin exponer los datos confidenciales en el espejo, mejorando la seguridad de los datos confidenciales. Y puede almacenar algunas configuraciones de uso común en K8S, lo cual es conveniente para el uso de aplicaciones

Orquestación del almacenamiento
Monte sistemas de almacenamiento externos, ya sea desde almacenamiento local, nubes públicas (como ANS) o almacenamiento en red (como NFS, GlusterFS, Ceph), como parte de los recursos del clúster, lo que mejora enormemente la flexibilidad del almacenamiento.

Procesamiento por lotes
Proporciona tareas únicas y tareas cronometradas; cumple con los escenarios de procesamiento y análisis de datos por lotes

1.3, arquitectura y componentes del clúster de Kubernetes (nodo único)

Inserte la descripción de la imagen aquí

Análisis de estructura:

  • En primer lugar, k8s tiene dos entradas accesibles, una es de kubectl (acceso de administrador) y la otra es de Internet (acceso de cliente)
  • Los administradores pueden administrar k8s a través de las instrucciones de kubectl. Primero, deben aprobar la autenticación (verificación de identidad) y obtener permisos de administración antes de poder administrar k8s. API Server maneja todas las solicitudes.
  • El servidor API es la única entrada para la gestión de solicitudes. Al recibir la solicitud, escribirá la solicitud en Etcd (base de datos distribuida, almacenamiento de pares clave-valor, con mecanismo de descubrimiento de servicios), y luego Etcd devolverá la información al servidor API (la información ha ha sido creado con éxito en Etcd)
  • El servidor API determinará qué recurso de nodo es más adecuado para crear un contenedor de acuerdo con el programador (algoritmo de programación, contabilización de todos los recursos del nodo) y luego devolverá la información al servidor API, y el servidor API escribirá la información del nodo de recursos que puede crear. el contenedor en Etcd, una vez completada la grabación de Etcd, devuelva la información al servidor API
  • El servidor API buscará controlador-administrador (administrador del controlador) antes de crear recursos. El controlador-administrador define el tipo de recurso (como recursos con estado o recursos sin estado) y luego devuelve la información al servidor API
  • El servidor de API encuentra el kubelet para los recursos que se crearán y el kubelet completa la creación y administración del contenedor. El kubelet administra el ciclo de vida del pod y el pod mantiene el ciclo de vida del contenedor. El kubelet emitirá el comando al Pod y el Pod lo enviará al contenedor. El contenedor descarga la imagen y genera el contenedor, y luego el contenedor expone los puertos relevantes.
  • Finalmente, kube-proxy actúa como un proxy inverso para completar el balanceo de carga de cada puerto. El cliente puede acceder a los servicios en el contenedor correspondiente a través del proxy inverso. Kubelet devolverá la información al servidor API, diciéndole al servidor API que el contenedor está en el estado de ejecución. API Server escribe la información en Etcd nuevamente, y Etcd actualizará automáticamente el estado a ejecución. Luego, al ver el comando kubectl, encontrará que el contenedor está en estado de ejecución

1.4, componentes K8S

Componente maestro

kube-apiserver
Kubernetes API, la entrada unificada del clúster, el coordinador de cada componente, proporciona servicios de interfaz con RESTful API, todas las operaciones de adición, eliminación, modificación y monitoreo de todos los recursos de objetos se entregan al APIServer para su procesamiento y luego enviado al almacenamiento Etcd

kube-controller-manager
maneja tareas regulares en segundo plano en el clúster. Un recurso corresponde a un controlador, y ControllerManager es responsable de administrar estos controladores.

kube-Scheduler
selecciona un nodo de nodo para el Pod recién creado de acuerdo con el algoritmo de programación. Se puede implementar de forma arbitraria. Se puede implementar en el mismo nodo o en diferentes nodos.

Etcd
sistema de almacenamiento de valor clave distribuido. Se utiliza para guardar datos de estado del clúster, como Pod, Servicio y otra información de objeto.

Componente de nodo

kubelet
kubelet es el Agente del Maestro en el nodo Nodo. ​​Gestiona el ciclo de vida de los contenedores en ejecución en la máquina, como la creación de contenedores, los volúmenes de datos de montaje de pod, la descarga de secretos y la obtención del estado del contenedor y del nodo. kubelet convierte cada pod en un conjunto de contenedores

kube-proxy
implementa el proxy de la red Pod en los nodos del nodo, mantiene las reglas de la red y el trabajo de equilibrio de carga de cuatro capas


motor de contenedor de carga o cohete para hacer funcionar el contenedor

Dos, el concepto central de Kubernetes

La
unidad de implementación de pod más pequeña
Una colección de
un conjunto de contenedores. Los contenedores de un pod comparten un espacio de nombres de red. El
pod es de corta duración (sin función de reinicio)

Controllers
ReplicaSet: Asegúrese de la cantidad esperada de réplicas de Pod
Implementación: Sin estado (sin información de identidad propia) Implementación de la
aplicación
StatefulSet: Implementación de la aplicación con estado DaemonSet: Asegúrese de que todos los nodos ejecuten el mismo Pod
Job: Tarea única
Cronjob: Tarea cronometrada
objeto de nivel superior, Implementar y administrar Pod

El servicio
evita que el pod pierda la conexión.
Defina un conjunto de
etiquetas de políticas de acceso al pod : etiquetas, que se adjuntan a un recurso para asociar objetos, consultar y filtrar
espacios de nombres: espacios de nombres y aislar objetos de forma lógica.
Anotaciones: anotaciones

En tercer lugar, el método de implementación de Kubernetes

3,1 、 perla

Kubeadm también es una herramienta que proporciona kubeadm init y kubeadm join para la implementación rápida de clústeres de Kubernetes.

3.2, paquete binario

Se recomienda descargar el paquete binario de la distribución del oficial, implementar manualmente cada componente para formar un clúster de Kubernetes

Supongo que te gusta

Origin blog.csdn.net/weixin_50344814/article/details/114992642
Recomendado
Clasificación