Zidian Cloud Native KubeSphere-Implementierungsprozess

Autor: Chi Xiaodong, technischer Direktor von Spider Point Commercial Network Services Co., Ltd., beschäftigt sich seit mehr als 10 Jahren mit Softwareentwicklung und -design. Er studiert gerne verschiedene neue Technologien und teilt Technologien. Quelle: Dieser Artikel wurde von Chi Xiaodong, einem Dozenten beim Treffen am Bahnhof Guangzhou am 25. November, zusammengestellt und basiert auf den gleichnamigen Inhalten, die Lehrer Chi bei der Veranstaltung geteilt hat.

Einführung der Unternehmensplattform

Spider Point wurde im April 2016 gegründet und hat sich zum Ziel gesetzt, ein Community-E-Commerce-Geschäft aufzubauen (Lösung des Lieferproblems der letzten 3 Kilometer). Zunächst erreichten wir die Entwicklung des E-Commerce-Geschäfts in der Gemeinde und den lokalen Vertrieb durch selbstgebaute Direktvertriebskanäle, selbstgebaute Lagerhäuser, selbstgebaute große Gemeinschaftslagerhäuser und den Einsatz von Franchise-Lagerhäusern. Es gibt höchstens Niederlassungen und Tochtergesellschaften in allen Provinzen des Landes, Provinzlager in jeder Provinz und große Lager in Großstädten im Norden und Süden.

Später, mit dem Ende der E-Commerce-Branche, wandelte sich das Unternehmen zu einer digitalen Gesamtlösung für Unternehmen (in Richtung Industrial Internet). Die Gesamtentwicklung stellt sich wie folgt dar:

Einführung in den Plattformhintergrund

Das Unternehmen richtete durch den Kauf von Servern eine interne Cloud ein und hostete diese im IDC-Computerraum. Zur Verwaltung virtueller Maschinen nutzte es die Virtualisierungstechnologie von VMware. Mit zunehmendem Geschäftswachstum entwickeln sich Projekte von einer einzelnen Architektur zu einer verteilten Architektur, und auch die Anzahl der virtuellen Maschinen nimmt zu, was viele Probleme für die Entwicklung sowie das Betriebs- und Wartungsmanagement mit sich bringt. Mit der Entwicklung der Microservice-Technologie ist die Einführung der Containerarchitektur zu einer Lösung geworden Probleme mit der zugrunde liegenden Architektur des Unternehmens.

  • Das Geschäft entwickelt sich schnell, es gibt keine neuen virtuellen Hosts und die Umgebung ist komplex einzurichten, was durch Vorlagen für virtuelle Maschinen in der Frühphase gelöst werden kann.
  • Geschäftsanrufe zwischen verschiedenen Projektteams werden alle über HTTP-Schnittstellen abgewickelt, was nicht effizient ist;
  • Die Bereitstellung erfordert manuelles Kompilieren, Packen, Hochladen, Testen/Online, kein CI/CD und geringe Entwicklungseffizienz;
  • Der Betriebs- und Wartungsdruck ist hoch, es fehlen Betriebs- und Wartungsressourcen und die Überwachung verschiedener Dienste und Middleware ist nicht vorhanden. Obwohl Zabbix verfügbar ist, kann es nicht verwaltet werden und es fehlt ein einheitliches Überwachungspanel.
  • Es ist schwierig, virtuelle Maschinenressourcen dynamisch zuzuweisen und zu nutzen, und die Ressourcen sind fest;
  • Es mangelt an professionellem Betriebs- und Wartungspersonal, die Installation und Überwachung der Umgebung ist nicht perfekt und die Ressourcennutzung ist schwer zu visualisieren (es gibt nur ein Betriebs- und Wartungspersonal).
  • Das Front-End-Team möchte außerdem die Bereitstellung in Containern übernehmen, anstatt lokal zu packen, und statische Dateien über FTP hochladen.
  • Wenn das Betriebs- und Wartungspersonal die Anzahl der virtuellen Maschinen reduzieren möchte, muss es nicht viele virtuelle Maschinen für neue Online-Dienste erstellen und nur eine kleine Anzahl von Knoten hinzufügen.

Plattformauswahl

Geschäftsschmerzpunkte

Seit der vorherigen Einführung gibt es in der Entwicklung von einer einzelnen Architektur zu einer verteilten Architektur mit der schnellen Entdeckung und schnellen Reaktion des Geschäfts immer mehr Basismodule und Geschäftsmodule, und das Team ist mit dem Packen und Bereitstellen beschäftigt .

  • Beheben Sie Fehler und Pakete für die Bereitstellung.
  • Online-Paketierung und -Bereitstellung.
  • Jedes Mal, wenn das gesamte Team online geht, bleibt es bis spät in die Nacht beschäftigt.
  • Ineffizienz und verzögerte Versionen.

Einführung der halbautomatischen Bereitstellung von Jenkins

Um das Effizienzproblem des Teams zu lösen, wurde zunächst Jenkins eingeführt und die meisten Bereitstellungsprobleme wurden durch Jenkins gelöst.

Einführung in Kubernetes (K8s)

Die Einführung von Jenkins hat die Effizienz erheblich verbessert, es gibt jedoch immer noch einige Probleme:

  • Es gibt zu viele Dienste und jede Bereitstellung muss in die Warteschlange gestellt werden.
  • Es gibt zu viele virtuelle Maschinen und die Kosten für die Wartung von Shell-Skripten sind hoch.
  • Die Ressourcenauslastung ist gering und wird nicht in vollem Umfang genutzt.

Der Aufbau eines selbst erstellten K8s-Clusters kann das Problem umständlicher Shell-Skripte lösen und in Kombination mit dem K8s-Plug-in von Jenkins über Dockerfile + YAML bereitgestellt werden.

Wartungsprobleme bei selbstgebauten K8:

  • Es ist schwierig, den Cluster zu betreiben und zu warten. Es mangelt an einfachen und praktischen Visualisierungstools. Der größte Teil des Teams besteht aus Entwicklern und verfügt nur über begrenzte Betriebs- und Wartungserfahrung.
  • Die Vorgänge von K8 erfolgen alle in Form von reinen Skripten und die Wartung ist schwierig. Aufgrund des Mangels an visuellen Tools sind Anwendungsbereitstellung und Konfigurationsänderungen alle auf die manuelle Ausführung von Befehlsskripten angewiesen.
  • Der Zweck der Wiederherstellung der Serverberechtigungen wird immer noch nicht erreicht. Um das Problem zu beheben, müssen wir weiterhin K8s verwenden, dem es an Ressourcenüberwachung und -planung mangelt.

Gründe für die Wahl von KubeSphere

Während des Rechercheprozesses der visuellen Managementtools von K8 wurde festgestellt, dass KubeSphere besser für Unternehmen geeignet ist. Im Vergleich zu ausländischen Open-Source-Kubernetes-Dashboards und Rancher ist KubeSphere immer noch besser für den inländischen Gebrauch geeignet.

  • Visuelles K8s-Verwaltungstool, einschließlich aller K8s-Funktionen.
  • Integriertes DevOps reduziert die Komplexität der Bereitstellung und den Anwendungslebenszyklus.
  • Das Multi-Tenant-Management erfüllt die Geschäftsisolationsanforderungen verschiedener Tochtergesellschaften.
  • Integrieren Sie Rollenberechtigungsverwaltungsfunktionen, um den Anforderungen der Zuweisung unterschiedlicher Berechtigungen an verschiedene Mitarbeiter gerecht zu werden.
  • Die Online-Protokollanzeigefunktion reduziert die Verwaltung der Serverbenutzer.
  • Visuelle Clusterverwaltung und Überwachungsvisualisierung.
  • Alle Funktionen der Plattform sind steckbar und lose gekoppelt, und die erforderlichen Funktionskomponenten können je nach Geschäftsszenario optional installiert werden.

Umsetzungspraxis und Ergebnisse

Bereitstellung der Plattform-Microservice-Architektur

Planung und Installation der KubeSphere-Produktionsumgebung

Der Konfigurationsplan des Produktionsrings lautet: 3 Master-Knoten: 8C 16G 100G-Festplatte, 10+ Worker-Knoten (anfänglich), 20+ Worker-Knoten (Erhöhung vorbehalten).

Stellen Sie die Microservice-Suite von SpringCloud bereit, einschließlich Eureka-, Redis- und E-Commerce-Plattform-Microservices wie Produkte, Bestellungen, Mitgliedschaften usw. ToB-Microservices, über 10 Unternehmensdigitalisierungsprojekte.

KubeSphere-Nutzungsregeln

Team- und Projektabteilung

  • Richten Sie unterschiedliche Unternehmensräume auf der Grundlage von Tochtergesellschaften und unterschiedlichen Terminals ein – Unternehmensräume.
  • Im Projektmanagement werden je nach Geschäftsbereich unterschiedliche Projektportfolios aufgebaut.
  • Erstellen Sie Benutzer mit plattformüblichen Rollen.
  • Fügen Sie Mitglieder im Unternehmensbereich, im Projektmanagement und in der Pipeline hinzu.

Knotenverwaltung und -bereitstellung

  • Knotenbezeichnung: Konfigurieren Sie die Bezeichnung für jeden Knoten und verwenden Sie sie in Verbindung mit YML.
  • Der Host-Netzwerkmodus wird nicht verwendet.
  • Wichtige Datendateien werden im Hostverzeichnis bereitgestellt.
  • Externe Dienste müssen die NodePort-Konfiguration bereitstellen.

KubeSphere-Cluster

KubeSphere-Anwendungsbereitstellung und -Pipeline

Auswirkungen der KubeSphere-Nutzung

  • Full-Process-DevOps entlastet die Arbeit des häufigen Packens und Bereitstellens der Entwicklung und konzentriert sich auf Forschung und Entwicklung.
  • Die visuelle Ressourcenüberwachung, kombiniert mit Alarm- und anderen Maßnahmen, verbessert die Betriebs- und Wartungsfunktionen.
  • Mandantenfähigkeit, Multispace, Projektisolation und Aufteilung der Benutzerberechtigungen machen die geschäftsübergreifende Teamverwaltung präziser.
  • Reduzieren Sie den ursprünglichen virtuellen Host (4C 8G), um einen Knoten mit größeren Ressourcen zu bilden und so die Ressourcennutzung zu verbessern.
  • Es unterstützt die dynamische Online-Erweiterung und ist einfach zu bedienen. Wenn Sie Instanzen hinzufügen oder reduzieren möchten, können Sie dies mit nur einem Vorgang tun.
  • Das Front-End implementiert auch eine Container-Bereitstellung, wodurch der Arbeitsaufwand für das manuelle Packen und Hochladen entfällt.

Probleme und Lösungen

Die damals offiziell bereitgestellte Maven-Version war nicht Version 3.6. Wie kann man das Problem lösen?

Lösung: Erstellen Sie selbst ein 3.6-Maven-Basis-Image, suchen Sie dann das Maven-Image in der Cluster-Konfiguration und ändern Sie es.

Ich habe Nexus selbst erstellt. Wie ändere ich Maven Setting.xml?

Lösung: Filtern Sie kubesphere-devops-system in CRDs, suchen Sie ks-install und ändern Sie die darin enthaltene Maven-Einstellung.xml. Melden Sie sich nach der Änderung bei Jenkins an und laden Sie die Konfiguration neu.

Wie greife ich auf Jenkins zu?

Lösung: Master-IP + 30180, Passwort für das Anmeldekonto und KubeSphere-Administrator. Sie können sich auf die Datei beziehen: https://juejin.cn/post/7124589639536476190

Wie greife ich auf freigegebene Dateien in einem Container zu?

Lösung: Zugriff durch Mounten des NFS-Systems.

Die Dateien im Container verschwinden, wenn der Container zerstört wird. Möchten Sie die Dateien länger speichern?

Lösung: Mounten Sie die Dateien/oder Festplatten des Hosts.

Wird der Container während des fortlaufenden Bereitstellungsprozesses zerstört? Werden andere Serviceaufrufe weiterhin über die alte IP 404 erreicht?

Lösung: Rufen Sie (SVC) über den Dienst in Kubernetes auf.

Wie funktioniert DevOps mit selbst erstelltem Gitlab, um einen Build auszulösen?

Lösung: Geben Sie Jenkins ein und verwenden Sie universelle Hook-Trigger in der Pipeline.

Zukunftsplan

Durch die Einführung der KubeSphere-Middleware-Verwaltungsplattform wird die Gesamteffizienz der Bereitstellung erheblich verbessert, wodurch Zeit im Bereitstellungsprozess gespart wird und CI/CD besser durch Tools realisiert wird; eine visuelle Ressourcenschnittstelle wird bereitgestellt, um ein klareres Verständnis jedes Servers zu ermöglichen. Ressourcennutzung kann gut überwacht werden.

Mit zunehmender Nutzung der Plattform werden immer mehr Unternehmen auf die Plattform umsteigen, darunter Frontend-, .net- oder andere Tochterunternehmen. Weitere Funktionen von KubeSphere bieten eine gute Grundlage für die Geschäftsentwicklung.

Dieser Artikel wurde von OpenWrite veröffentlicht, einem Blog, der mehrere Artikel veröffentlicht !

Tang Xiaoou, Gründer von SenseTime, verstarb im Alter von 55 Jahren. Im Jahr 2023 stagnierte PHP . Das Hongmeng-System steht kurz vor der Unabhängigkeit und viele Universitäten haben „Hongmeng-Kurse“ eingerichtet. Die PC-Version von Quark Browser hat mit internen Tests begonnen . ByteDance wurde von OpenAI „verboten“. Das Startup-Unternehmen von Zhihuijun wurde mit einem Betrag von über 600 Millionen Yuan und einer Pre-Money-Bewertung von 3,5 Milliarden Yuan refinanziert. KI-Code-Assistenten sind so beliebt, dass sie nicht einmal in der Programmierung mithalten können Sprachrankings . Das 5G-Modem und die Hochfrequenztechnologie des Mate 60 Pro liegen weit vorne. No Star, No Fix MariaDB spaltet SkySQL ab und gründet sich als unabhängiges Unternehmen
{{o.name}}
{{m.name}}

Ich denke du magst

Origin my.oschina.net/u/4197945/blog/10322584
Empfohlen
Rangfolge