1. Introducción detallada de k8s - arquitectura técnica

1. Arquitectura técnica K8S

Kubernetes (K8S) es un sistema de orquestación de contenedores de código abierto que proporciona una plataforma escalable para administrar aplicaciones y servicios en contenedores. Kubernetes puede ayudar a los usuarios a automatizar la implementación, el escalado y la administración de aplicaciones, mejorando así la confiabilidad y la escalabilidad de las aplicaciones. Este artículo presentará la arquitectura técnica de Kubernetes en detalle, incluidos los componentes principales de Kubernetes, el principio de funcionamiento de Kubernetes, el diseño arquitectónico de Kubernetes y la escalabilidad de Kubernetes.

Componentes principales de Kubernetes

Los componentes principales de Kubernetes incluyen nodos maestros y nodos trabajadores. El nodo maestro es el centro de control de Kubernetes, que se encarga de gestionar el estado de todo el clúster y controlar el funcionamiento de todo el clúster. Los nodos de trabajo son nodos de trabajo en el clúster que ejecutan aplicaciones y servicios en contenedores e informan su estado al nodo principal.

El nodo maestro incluye los siguientes componentes:

Servidor API

API Server es uno de los componentes principales de Kubernetes. Es la interfaz REST API de Kubernetes. Los usuarios pueden administrar el estado y la configuración de todo el clúster a través de API Server. API Server proporciona algunas herramientas de línea de comandos y una interfaz web para que los usuarios puedan administrar y monitorear fácilmente el clúster.

Etc.

Etcd es un sistema de almacenamiento de clave-valor distribuido que se utiliza como backend de almacenamiento de datos para Kubernetes. Etcd almacena la información de estado de todo el clúster, incluido el estado de ejecución, la información de configuración y la información de supervisión del contenedor.

programador

Scheduler es el programador de Kubernetes, que es responsable de implementar aplicaciones y servicios en contenedores en los nodos de Worker. El programador selecciona el nodo trabajador óptimo para implementar la aplicación de acuerdo con algunas estrategias de programación predefinidas y garantiza el equilibrio de carga del clúster.

Administrador del controlador

Controller Manager es el administrador de controladores de Kubernetes, que es responsable de administrar los controladores en el clúster. Un controlador es un componente de Kubernetes que se utiliza para garantizar que las aplicaciones y los servicios del clúster se ejecuten de acuerdo con las expectativas del usuario. Controller Manager incluye varios controladores, como el controlador de conjuntos de réplicas, el controlador de servicios, el controlador de nodos, etc.

Los nodos trabajadores incluyen los siguientes componentes:

Kubelet

Kubelet es el agente de nodo de trabajo de Kubernetes, que es responsable de administrar los contenedores en el nodo de trabajo. Kubelet obtendrá la información de configuración del contenedor del servidor API y se asegurará de que el contenedor se ejecute de acuerdo con la información de configuración.

era un apoderado

Kube-proxy es el proxy de red de Kubernetes, que se encarga de administrar la red en el clúster. Kube-proxy crea una dirección IP virtual para cada Pod y garantiza que los Pods puedan comunicarse entre sí.

Tiempo de ejecución del contenedor

Container Runtime es el tiempo de ejecución de contenedores de Kubernetes, que es responsable de ejecutar contenedores en nodos de trabajo. Kubernetes admite múltiples tiempos de ejecución de contenedores, como Docker, rkt, CRI-O, etc.

Cómo funciona Kubernetes

El principio de funcionamiento de Kubernetes se puede resumir simplemente como "configuración declarativa + autorreparación". Kubernetes utiliza la configuración declarativa para describir el estado deseado de las aplicaciones y los servicios y, luego, corrige automáticamente cualquier estado anómalo en el clúster para garantizar que las aplicaciones y los servicios funcionen de acuerdo con el estado deseado por el usuario.

Los archivos de configuración de Kubernetes suelen constar de dos partes: Pod y Servicio. Pod es la unidad de implementación más pequeña de Kubernetes, que contiene uno o más contenedores y recursos de red y almacenamiento compartidos. El servicio es una abstracción de red en Kubernetes, que define un conjunto de métodos de acceso al Pod y políticas de equilibrio de carga.

Cuando un usuario envía un archivo de configuración de Pod y Servicio, Kubernetes lo almacenará en Etcd e implementará el Pod y el Servicio en el nodo Worker de acuerdo con las reglas del archivo de configuración. Kubernetes monitorea automáticamente el clúster en busca de estados anormales y los corrige automáticamente para garantizar que las aplicaciones y los servicios se ejecuten como los usuarios esperan.

Diseño de arquitectura de Kubernetes

El diseño arquitectónico de Kubernetes se basa en los principios y mejores prácticas de los sistemas distribuidos. La arquitectura de Kubernetes incluye los siguientes aspectos:

Arquitectura de sistema distribuido
La arquitectura de Kubernetes es una arquitectura de sistema distribuido, que divide todo el clúster en varios nodos y divide los nodos en nodos maestros y nodos de trabajo. El nodo maestro es responsable de administrar el estado de todo el clúster y controlar el funcionamiento de todo el clúster, mientras que el nodo trabajador es responsable de ejecutar aplicaciones y servicios en contenedores.

Arquitectura de microservicios
La arquitectura de Kubernetes es una arquitectura de microservicios, que divide toda la aplicación y el servicio en varias unidades de implementación pequeñas, a saber, Pod. Pod es la unidad de implementación más pequeña de Kubernetes, que contiene uno o más contenedores y recursos de red y almacenamiento compartidos. Los pods se pueden crear, eliminar y expandir rápidamente para acomodar diferentes cargas.

Arquitectura en contenedores
La arquitectura de Kubernetes es una arquitectura en contenedores que utiliza contenedores como unidad de implementación para aplicaciones y servicios. Los contenedores se pueden crear, eliminar y expandir rápidamente para adaptarse a diferentes cargas de trabajo. Kubernetes admite múltiples tiempos de ejecución de contenedores, como Docker, rkt, CRI-O, etc.

Arquitectura conectable
La arquitectura de Kubernetes es una arquitectura conectable, que utiliza complementos para ampliar y personalizar su funcionalidad. Kubernetes admite una variedad de complementos, como complementos de red, complementos de almacenamiento y complementos de supervisión. Los usuarios pueden elegir e instalar complementos apropiados según sus necesidades.

Escalabilidad de Kubernetes

La escalabilidad de Kubernetes es una de sus características más importantes. Kubernetes puede escalar fácilmente a miles de nodos y millones de contenedores para cumplir con diferentes requisitos de carga. La escalabilidad de Kubernetes se refleja en los siguientes aspectos:

Escalamiento horizontal
Kubernetes puede escalar el clúster horizontalmente agregando más nodos de trabajo. Kubernetes admite múltiples plataformas en la nube y tecnologías de virtualización, como AWS, Azure, GCE, OpenStack, etc. Los usuarios pueden elegir y utilizar la plataforma en la nube y la tecnología de virtualización adecuadas según sus propias necesidades.

Escalamiento vertical
Kubernetes puede escalar un clúster verticalmente aumentando la capacidad de CPU, memoria y almacenamiento de cada nodo en el clúster. Kubernetes admite una variedad de hardware y sistemas operativos, como x86, ARM, Linux, Windows, etc. Los usuarios pueden elegir y utilizar el hardware y los sistemas operativos apropiados según sus necesidades.

Compatibilidad con varios inquilinos
Kubernetes admite varios inquilinos, que pueden dividir el clúster en varias áreas lógicas, y cada área puede ser administrada por diferentes usuarios o equipos. Kubernetes admite el control de acceso basado en roles (RBAC), que puede controlar los derechos de acceso de cada usuario o equipo al clúster.

Extensión de complemento
Kubernetes admite la extensión de complemento, y sus funciones se pueden ampliar y personalizar mediante la instalación y configuración de complementos apropiados. Kubernetes admite una variedad de complementos, como complementos de red, complementos de almacenamiento y complementos de supervisión. Los usuarios pueden elegir e instalar complementos apropiados según sus necesidades.

Resumir

Kubernetes es un poderoso sistema de orquestación de contenedores que proporciona una plataforma escalable para administrar aplicaciones y servicios en contenedores. Los componentes principales de Kubernetes incluyen nodos maestros y nodos de trabajo, que trabajan juntos para administrar el estado de todo el clúster y controlar el funcionamiento de todo el clúster. El principio de funcionamiento de Kubernetes se basa en el principio de configuración declarativa y autorreparación. Puede reparar automáticamente cualquier estado anómalo en el clúster para garantizar que las aplicaciones y los servicios se ejecuten de acuerdo con el estado esperado por el usuario. El diseño arquitectónico de Kubernetes se basa en los principios y las mejores prácticas de los sistemas distribuidos y es compatible con la arquitectura de microservicios, la arquitectura de contenedores y la arquitectura de complementos. La escalabilidad de Kubernetes es una de sus características más importantes, se puede extender fácilmente a miles de nodos y millones de contenedores para cumplir con diferentes requisitos de carga.

Supongo que te gusta

Origin blog.csdn.net/qq_27016363/article/details/130011452
Recomendado
Clasificación