Proceso de implementación de KubeSphere nativo de Zidian Cloud

Autor: Chi Xiaodong, director técnico de Spider Point Commercial Network Services Co., Ltd., se dedica al desarrollo y diseño de software durante más de 10 años y le gusta estudiar diversas tecnologías nuevas y compartirlas. Fuente: Este artículo fue compilado por Chi Xiaodong, profesor en la reunión de la estación de Guangzhou el 25 de noviembre, y a partir del contenido del mismo nombre compartido por el profesor Chi en el evento.

Introducción a la plataforma de la empresa

Spider Point se estableció en abril de 2016 y está comprometido a construir negocios de comercio electrónico comunitario (resolviendo el problema de entrega de los últimos 3 kilómetros). Inicialmente, logramos el desarrollo del negocio de comercio electrónico en la comunidad y la distribución localizada a través de canales de venta directa de construcción propia, almacenes de construcción propia, grandes almacenes comunitarios de construcción propia y el uso de almacenes de franquicia. Como máximo, tiene sucursales y filiales en todas las provincias del país, almacenes provinciales en todas las provincias y grandes almacenes en las principales ciudades del norte y del sur.

Más tarde, con el fin de la industria del comercio electrónico, la empresa se transformó en una solución digital empresarial integral (en la dirección de Internet industrial). El desarrollo general es el siguiente:

Introducción a los antecedentes de la plataforma

La empresa estableció una nube interna mediante la compra de servidores y la alojó en la sala de ordenadores de IDC y ha estado utilizando la tecnología de virtualización de VMware para gestionar máquinas virtuales. A medida que aumenta el negocio, los proyectos evolucionan de una arquitectura única a una arquitectura distribuida, y también aumenta el número de máquinas virtuales, lo que trae muchos problemas al desarrollo y la gestión de operación y mantenimiento. Con el desarrollo de la tecnología de microservicios, la adopción de la arquitectura en contenedores se ha convertido en una solución. problemas con la arquitectura subyacente de la empresa.

  • El negocio se está desarrollando rápidamente, no hay nuevos hosts virtuales y el entorno es complejo de configurar, lo que se puede resolver mediante plantillas de máquinas virtuales en la etapa inicial;
  • Todas las llamadas comerciales entre varios equipos de proyecto se realizan a través de interfaces HTTP, lo que no es eficiente;
  • La implementación se basa en la compilación manual, el empaquetado, la carga, las pruebas/en línea, sin CI/CD y con una baja eficiencia de desarrollo;
  • La presión de operación y mantenimiento es alta, faltan recursos de operación y mantenimiento y no existe el monitoreo de diversos servicios y middleware, aunque Zabbix está disponible, no se puede administrar y carece de un panel de monitoreo unificado;
  • Es difícil asignar y utilizar dinámicamente recursos de máquinas virtuales, y los recursos son fijos;
  • Falta personal profesional de operación y mantenimiento, la instalación y el monitoreo del entorno no son perfectos y el uso de recursos es difícil de visualizar (solo hay un personal de operación y mantenimiento);
  • El equipo de front-end también quiere adoptar una implementación en contenedores, en lugar de empaquetar localmente, y cargar archivos estáticos a través de FTP;
  • Si el personal de operación y mantenimiento desea reducir la cantidad de máquinas virtuales, no necesita crear muchas máquinas virtuales para nuevos servicios en línea y solo necesita agregar una pequeña cantidad de nodos.

Selección de plataforma

Puntos débiles empresariales

Desde la introducción anterior, en la evolución de una arquitectura única a una arquitectura distribuida, con el rápido descubrimiento y la rápida respuesta de las empresas, hay cada vez más módulos básicos y módulos comerciales, y el equipo está ocupado en el proceso de empaquetado e implementación. .

  • Corrija errores y empaquete para su implementación.
  • Empaquetado e implementación en línea.
  • Cada vez que todo el equipo se conecta, permanecen ocupados hasta altas horas de la noche.
  • Ineficiencia y versiones retrasadas.

Presentamos la implementación semiautomática de Jenkins

Para resolver el problema de eficiencia del equipo, se introdujo Jenkins por primera vez y la mayoría de los problemas de implementación se resolvieron a través de Jenkins.

Presentamos Kubernetes (K8)

La introducción de Jenkins ha mejorado enormemente la eficiencia, pero todavía existen algunos problemas:

  • Hay demasiados servicios y cada implementación debe ponerse en cola.
  • Hay demasiadas máquinas virtuales y el costo de mantener los scripts de shell es alto.
  • La utilización de recursos es baja y no se utiliza en toda su extensión.

La creación de un clúster K8s autoconstruido puede resolver el problema de los engorrosos scripts de Shell y, combinado con el complemento K8s de Jenkins, se puede implementar a través de Dockerfile + yaml.

Puntos débiles de mantenimiento de los K8 de fabricación propia:

  • Es difícil operar y mantener el clúster, faltan herramientas de visualización simples y convenientes, la mayor parte del equipo son desarrolladores y tienen experiencia limitada en operación y mantenimiento.
  • Todas las operaciones de K8 se realizan en forma de scripts puros y el mantenimiento es difícil. Debido a la falta de herramientas visuales, la implementación de aplicaciones y las modificaciones de configuración dependen de la ejecución manual de scripts de comandos.
  • El propósito de recuperar los permisos del servidor aún no se logra, para solucionar el problema aún necesitamos usar K8, que carece de monitoreo y programación de recursos.

Razones para elegir KubeSphere

Durante el proceso de investigación de las herramientas de gestión visual de K8, se descubrió que KubeSphere es más adecuado para empresas y, en comparación con Kubernetes Dashboard y Rancher de código abierto extranjero, KubeSphere es aún más adecuado para uso doméstico.

  • Herramienta de gestión Visual K8s, que incluye todas las funciones de K8s.
  • DevOps integrado reduce la complejidad de la implementación y el ciclo de vida de las aplicaciones.
  • La gestión multiinquilino satisface las necesidades de aislamiento empresarial de diferentes filiales.
  • Integre funciones de gestión de permisos de roles para satisfacer las necesidades de asignar diferentes permisos a diferentes personas.
  • La función de visualización de registros en línea reduce la administración de los usuarios del servidor.
  • Gestión visual del cluster y visualización de seguimiento.
  • Todas las funciones de la plataforma son conectables y están acopladas libremente, y los componentes funcionales necesarios se pueden instalar opcionalmente según los escenarios comerciales.

Práctica de implementación y resultados.

Implementación de arquitectura de microservicios de plataforma

Planificación e instalación del entorno de producción de KubeSphere.

El plan de configuración del anillo de producción es: 3 Master Nodes: disco 8C 16G 100G, 10+ Worker Node (inicial), 20+ Worker Node (sujeto a aumento).

Implemente el conjunto de microservicios de SpringCloud, incluidos Eureka, Redis y microservicios de plataformas de comercio electrónico, como productos, pedidos, membresías, etc. Microservicios ToB, más de 10 proyectos de digitalización empresarial.

Reglas de uso de KubeSphere

División de equipos y proyectos.

  • Establecer diferentes espacios corporativos basados ​​en filiales y diferentes terminales - espacios corporativos.
  • En la gestión de proyectos se establecen diferentes carteras de proyectos según diferentes líneas de negocio.
  • Cree usuarios con roles habituales en la plataforma.
  • Agregue miembros en el espacio empresarial, la gestión de proyectos y la canalización.

Gestión e implementación de nodos

  • Etiqueta de nodo, etiqueta de configuración para cada nodo, utilizada junto con yml.
  • No se utiliza el modo de red de host.
  • Los archivos de datos importantes se montan en el directorio del host.
  • Los servicios externos deben proporcionar la configuración de NodePort.

Clúster KubeSphere

Implementación y canalización de aplicaciones KubeSphere

Efectos del uso de KubeSphere

  • DevOps de proceso completo libera el trabajo de empaquetado e implementación frecuentes del desarrollo y se centra en I + D.
  • El monitoreo visual de recursos, combinado con alarmas y otras medidas, mejora las capacidades de operación y mantenimiento.
  • La multiinquilino, el multiespacio, el aislamiento de proyectos y la división de permisos de usuario hacen que la gestión de equipos entre empresas sea más precisa.
  • Reduzca el host virtual original (4C 8G) para formar un nodo con mayores recursos, mejorando la utilización de recursos.
  • Admite expansión dinámica en línea y es fácil de operar. Si desea agregar o reducir instancias, puede hacerlo con una sola operación.
  • El front-end también implementa una implementación en contenedores, lo que libera la carga de trabajo de empaquetado y carga manual.

Problemas y soluciones

La versión oficial de Maven en ese momento no era la versión 3.6 ¿Cómo solucionarlo?

Solución: cree usted mismo una imagen base de Maven 3.6, luego busque la imagen de Maven en la configuración del clúster y modifíquela.

Yo mismo construí Nexus, ¿cómo modificar maven settings.xml?

Solución: filtre kubesphere-devops-system en CRD, busque ks-install y modifique maven settings.xml en él. Después de la modificación, inicie sesión en Jenkins y vuelva a cargar la configuración.

¿Cómo acceder a Jenkins?

Solución: IP del maestro + 30180, contraseña de la cuenta de inicio de sesión y administrador de KubeSphere. Puede consultar el archivo: https://juejin.cn/post/7124589639536476190

¿Cómo acceder a archivos compartidos en un contenedor?

Solución: Acceso montando el sistema NFS.

Los archivos en el contenedor desaparecen cuando se destruye el contenedor. ¿Quiere guardar los archivos por más tiempo?

Solución: monte los archivos o discos del host.

¿Se destruirá el contenedor durante el proceso de implementación continua? ¿Se seguirá accediendo a otras llamadas de servicio a través de la antigua IP, 404?

Solución: Llame (SVC) a través del Servicio en Kubernetes.

¿Cómo funciona DevOps con Gitlab autoconstruido para activar una compilación?

Solución: ingrese a Jenkins y use activadores de gancho universal en la tubería.

plan futuro

Al introducir la plataforma de gestión de middleware KubeSphere, la eficiencia general de la entrega mejora enormemente, se ahorra tiempo en el proceso de implementación y la CI/CD se realiza mejor a través de herramientas; se proporciona una interfaz de recursos visual para proporcionar una comprensión más clara de cada servidor. puede ser bien monitoreado.

A medida que madure el uso de la plataforma, más y más empresas se trasladarán a la plataforma, incluidas las de front-end, .net u otras empresas subsidiarias. Más funciones de KubeSphere proporcionarán una buena base para el desarrollo empresarial.

¡Este artículo es publicado por OpenWrite, un blog que publica varios artículos !

Tang Xiaoou, fundador de SenseTime, falleció a la edad de 55 años . PHP se estancó en 2023. El sistema Hongmeng está a punto de independizarse y muchas universidades han creado "clases Hongmeng". La versión para PC de Quark Browser ha comenzado a realizar pruebas internas. . ByteDance fue "prohibido" por OpenAI. La nueva empresa de Zhihuijun refinanciada, con una cantidad de más de 600 millones de yuanes y una valoración previa al dinero de 3.500 millones de yuanes. Los asistentes de código de IA son tan populares que ni siquiera pueden competir en la programación. Clasificación de idiomas El módem 5G y la tecnología de radiofrecuencia del Mate 60 Pro están muy por delante No Star, No Fix MariaDB se separa de SkySQL y se forma como empresa independiente
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/4197945/blog/10322584
Recomendado
Clasificación