Colección de citas famosas - Slogan de motivación - 2021-10-¡Creo que puedes aprender sobre K8S (Kubernetes) en este artículo! ! ! 28

2021-10-¡Creo que puedes aprender sobre K8S (Kubernetes) en este artículo! ! ! 28

Kubernetes es la plataforma de gestión de contenedores distribuidos de código abierto de Google, que está diseñada para hacer más cómoda la gestión de nuestras aplicaciones en contenedores en el servidor.

A Kubernetes se le conoce como K8S. ¿Por qué tiene este título? Debido a que K y S son la primera y la última letra de Kubernetes, y hay ocho letras entre K y S, la abreviatura es K8S. Además, Kubernetes es más complicado, por lo que generalmente se usa la abreviatura K8S.

Kubernetes es una herramienta de orquestación de contenedores y una nueva solución de arquitectura distribuida basada en tecnología de contenedores. Basado en Docker, puede proporcionar servicios desde la creación de aplicaciones > implementación de aplicaciones > provisión de servicios > escalado dinámico > actualizaciones de aplicaciones. una serie de servicios para mejorar la conveniencia de la gestión de clústeres de contenedores.

Puede echar un vistazo a la imagen a continuación, que contiene nuestra información de configuración de mysql, redis, tomcat, nginx y otra. Si queremos instalar los datos internos, debemos instalarlos manualmente uno por uno. , como si estuviera bien, es solo uno de todos modos, es un poco problemático, pero no será una demora.

Sin embargo, con el desarrollo de la tecnología y las necesidades comerciales, un solo servidor ya no puede satisfacer nuestras necesidades diarias. Cada vez más empresas requieren más entornos de clúster e implementación de múltiples contenedores, entonces, si aún implementamos uno por uno. uno, la operación y el mantenimiento pueden volverse locos y desplegar las máquinas sin hacer nada durante un día. A veces puede ser por un error en un determinado enlace y tenemos que empezar de nuevo, lo que realmente es un desperdicio de sangre. . . . . , como se muestra en la siguiente figura:

Si quiero implementar, las siguientes máquinas:

Si quiero implementar una por una, la gente será estúpida. ¿Cuándo terminará esto? ?, si hay 20.000 máquinas en un determinado país, ¿es necesario presentar una carta de renuncia en el momento? Entonces, K8S nos ayuda a hacer estas cosas, facilita nuestra gestión de contenedores y la implementación automatizada de aplicaciones, reduce la duplicación de trabajo y puede. automatizar la implementación de aplicaciones y la autoreparación de fallas.

Y si K8S tiene un buen soporte para microservicios y una copia de un microservicio se puede ajustar a medida que cambia la carga del sistema, el mecanismo de expansión elástica del servicio inherente de K8S también puede manejar bien el tráfico repentino.

Docker-Compose se utiliza para administrar contenedores, de manera similar al administrador de contenedores de usuarios. Cuando tenemos más de N contenedores o aplicaciones que deben iniciarse, hacerlo manualmente requiere mucho tiempo. Tiene Docker-Compose, solo necesita un archivo de configuración para ayudarnos, pero Docker-Compose solo puede administrar Docker en el host actual y no puede administrar servicios en otros servidores. Significa un entorno independiente.

Docker Swarm es una herramienta desarrollada por Docker para administrar contenedores Docker en un clúster. Compensa las deficiencias del nodo único Docker-Compose que puede ayudarnos a iniciar contenedores y monitorear el estado de los contenedores. Si el servicio de contenedor se cuelga, se reiniciará un nuevo contenedor para garantizar la prestación normal de servicios externos y también admitir el equilibrio de carga entre servicios.

Y estas cosas no son compatibles con Docker-Compose.

El posicionamiento de roles de Kubernetes es el mismo que el de Docker Swarm, lo que significa que el trabajo del que son responsables es el mismo en el campo del contenedor. También se necesitan algunas características diferentes. Kubernetes es un producto propio de Google. Después de mucha práctica y experimentos de alojamiento, Kubernetes se está convirtiendo en un líder en el campo de la orquestación de contenedores, con su capacidad de configuración, confiabilidad y amplio soporte comunitario. soporte, superando así a Docker Swarm Como proyecto de código abierto de Google, funciona en coordinación con toda la plataforma en la nube de Google.

En la imagen a continuación, es un clúster K8S. Este clúster contiene tres hosts. Cada bloque aquí es nuestra máquina virtual física. A través de estas tres máquinas físicas, formamos un clúster completo que se puede dividir en dos tipos. en términos de roles

Para usar una metáfora más vívida, podemos entender Pod como una vaina, y el contenedor es el frijol que contiene, que es un organismo.

¿Qué hay exactamente dentro del Pod?

El método específico de desplegar los contenedores en el Pod es una elección razonable en función de las características de nuestro proyecto y la asignación de recursos.

contenedor de pausa:

El nombre completo del contenedor de pausa es contenedor de infraestructura (también llamado infra). Existe como un pod de inicio. Otros pods se bifurcarán a partir de la pausa. contenedor. Este contenedor es para Pods. Se dice que es necesario

Los contenedores de aplicaciones en un Pod comparten el mismo recurso:

En la figura anterior, si no hay un contenedor de pausa, nuestro Nginx y Ghost, dentro del Pod. Si los contenedores quieren comunicarse entre sí, deben usar sus propias direcciones IP y puertos para acceder entre sí. Si hay un contenedor de pausa, para todo el Pod, podemos considerarlo como un contenedor. En su conjunto, es decir, nuestro Nginx y Ghost pueden acceder directamente usando localhost. La única diferencia entre ellos es el puerto. Puede parecer relativamente simple, pero de hecho utiliza muchas cosas de red de bajo nivel para lograrlo. los amigos pueden aprenderlo por sí mismos.

En Kubernetes, a cada Pod se le asignará una dirección IP separada, pero no hay interacción directa entre los Pods. Si desea comunicarse a través de la red, debe pasar por otro componente. nos comunicamos, que es nuestro Servicio

Servicio significa servicio El trabajo principal del Servicio en K8S es conectar Pods en múltiples hosts diferentes a través del Servicio, para que los Pods puedan funcionar normalmente entre sí. >

Podemos pensar en el Servicio como un nombre de dominio, y los clústeres de Pod del mismo servicio son direcciones IP diferentes. El Servicio se define a través del Selector de etiquetas.

Para utilizar NodePort para proporcionar acceso externo, solo necesita abrir un puerto real del host en cada Nodo, de modo que se pueda acceder al Servicio interno a través del cliente del Nodo.

La etiqueta generalmente se adjunta a varios objetos en forma de kv. La etiqueta es una etiqueta explicativa, que juega un papel muy importante cuando implementamos un contenedor, debemos determinar en qué Pods estamos operando. Al buscar y filtrar según la etiqueta, podemos entender que la etiqueta es el alias de cada Pod. Solo tomando el nombre, el nodo maestro K8S puede encontrar el Pod correspondiente para operar.

El usuario envía una solicitud para crear un controlador de replicación a través de Kubectl. Esta solicitud se escribe en etcd a través del servidor API. En este momento, el administrador del controlador escucha el nombre creado a través del servidor API. , se descubre que no hay una instancia de Pod correspondiente en el clúster actual. Cree rápidamente un objeto Pod de acuerdo con la definición de la plantilla del Controlador de replicación y luego escríbalo en nuestro etcd a través del servidor Api.

Vaya a Abajo, si lo descubre el Programador, ¡qué sorpresa, cuéntame! Vagabundo desempleado, este tipo no es una buena persona a primera vista. Inmediatamente ejecutará un complejo proceso de programación para seleccionar un Nodo para que se instale este nuevo Pod. Finalmente tiene una identidad, lo cual es realmente preocupante, y luego pasa por The. El servidor API también escribe este resultado en etcd. Luego, el pequeño proceso de Kubelet que se ejecuta en nuestro nodo detecta el nuevo bebé - "Pod" a través del servidor API, lo seguirá y seguirá las funciones del bebé, iniciará este pod y se ocupará. de él por el resto de su vida sin quejas, hasta el final de la vida del Pod.

Luego enviamos una nueva solicitud de creación para el Servicio asignado a este Pod a través de Kubectl. El Administrador del controlador consultará la instancia del Pod asociada a través de la etiqueta Etiqueta, generará la información de los puntos finales del Servicio y se la pasará. el servidor API escribe en etcd. A continuación, los procesos de proxy que se ejecutan en todos los nodos consultan y monitorean el objeto de servicio y la información de sus puntos finales correspondientes a través del servidor Api, y establecen un equilibrador de carga de software para implementar la función de reenvío de tráfico del acceso al servicio hacia atrás. -Fin de la vaina.

kube-proxy: es un proxy que actúa como un agente para la comunicación entre múltiples hosts. Como mencionamos anteriormente, el servicio implementa la comunicación de red entre hosts y contenedores. Técnicamente, es a través de kube-proxy. Para lograr esto, el servicio agrupa los Pods lógicamente y la capa inferior se comunica a través de kube-proxy

kubelet: se usa para ejecutar comandos K8S, y también es el comando central de K8S, se usa para ejecutar K8S Las instrucciones relevantes son responsables para la gestión del ciclo de vida de la creación, modificación, monitoreo y eliminación de Pods en el nodo actual. Al mismo tiempo, Kubelet "informa" periódicamente la información de estado de este nodo al servidor API.

etcd: se utiliza para almacenar de forma persistente todos los objetos de recursos en el clúster. API Server proporciona API de interfaz encapsuladas para operar etcd. Estas API son básicamente interfaces para operar objetos de recursos y monitorear cambios de recursos.

Servidor API: proporciona recursos La operación. Otros componentes deben proporcionar API operativas a través de él para operar los datos de recursos. A través de la "consulta completa" + "monitoreo de cambios" de los datos de recursos relevantes, las funciones comerciales relevantes se pueden completar en tiempo real.

Programador: Programador, responsable de la programación y distribución de Pods entre los nodos del clúster.

Controller Manager: el centro de control de gestión interno del clúster, principalmente para realizar la automatización de la detección de fallas y la recuperación del clúster de Kubernetes. Por ejemplo, el Administrador del controlador completa la replicación y eliminación de Pods, la creación y actualización de objetos Endpoints, el descubrimiento, la administración y el monitoreo del estado de Nodos, etc.

En este punto hemos terminado de explicar la situación básica de K8S. Si te gusta, recuerda darle me gusta y seguirlo. En comparación con Docker, K8S tiene funciones más maduras. practicado por Google. Un sistema relativamente maduro y completo.

Si tienes algo que quieras saber o tienes alguna pregunta sobre K8S, déjame un mensaje y házmelo saber.

Soy un pequeño agricultor, un humilde trabajador migrante. Si cree que el contenido de este artículo le resulta útil, recuerde hacer clic en tres enlaces. Sus tres enlaces son la mayor motivación para los pequeños agricultores.