


Kubernetes-Dienst – ein kurzes Beispiel für die Ausführung eines zustandsbehafteten Einzelinstanzdiensts
Ziel
Erstellen Sie ein PV in Ihrer Umgebung
Erstellen Sie eine Bereitstellung von MySQl
MySQl für andere Pods im Cluster als DNS-Namen verfügbar machen
Zuvor starten
Sie benötigten einen Kubernetes-Cluster und ein kubectl-Befehlszeilentool, das eine Verbindung zum Cluster herstellen kann. Wenn Sie keinen Cluster haben, können Sie mit Minikube einen erstellen.
Wir erstellen ein PV (PersistentVolume) zur Datenspeicherung. Klicken Sie hier, um die unterstützten PV-Typen anzuzeigen. In diesem Handbuch wird GCEPersistentDisk zur Demonstration verwendet, aber jeder PV-Typ funktioniert normal. GCEPersistentDisk funktioniert nur auf Google Compute Engine (GCE).
Erstellen Sie die Festplatte in Ihrer Umgebung
Führen Sie in Google Compute Engine Folgendes aus:
gcloud compute disks create --size=20GB mysql-disk
Erstellen Sie dann eine PV, die auf die gerade erstellte MySQL-Festplatte verweist. Das Folgende ist eine Konfigurationsdatei zum Erstellen einer PV, die auf die oben erwähnte GCE-Festplatte verweist:
apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv spec: capacity: storage: 20Gi accessModes:- ReadWriteOnce gcePersistentDisk: pdName: mysql-disk fsType: ext4
Beachten Sie, dass die Zeile pdName: mysql-disk übereinstimmt Erstellen Sie in der oben genannten GCE-Umgebung den Namen der Festplatte. Wenn Sie PVs in anderen Umgebungen erstellen möchten, können Sie sich für weitere Details Persistent Volumes ansehen.
PV erstellen:
kubectl create -f https://k8s.io/docs/tasks/run-application/gce-volume.yaml
MySQL bereitstellen
Sie können über Kubernetes Deployment einen zustandsbehafteten Dienst erstellen und dann PVC (PersistentVolumeClaim) verwenden, um eine Verbindung zum vorhandenen PV herzustellen. Die folgende YAML-Datei beschreibt beispielsweise eine Bereitstellung, die MySQL ausführt und PVC verwendet. Die Datei definiert ein in /var/lib/mysql gemountetes Volume und erstellt einen PVC, der eine Volume-Größe von 20 GB erfordert.
Hinweis: Das Passwort ist in der YAML-Konfigurationsdatei definiert, die nicht sicher ist. Weitere sichere Lösungen finden Sie unter Kubernetes Secrets.
apiVersion: v1 kind: Service metadata: name: mysql spec: ports:- port: 3306 selector: app: mysql clusterIP: None---apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pv-claim spec: accessModes:- ReadWriteOnce resources: requests: storage: 20Gi---apiVersion: apps/v1beta1 kind: Deployment metadata: name: mysql spec: strategy: type: Recreate template: metadata: labels: app: mysql spec: containers: - image: mysql:5.6name: mysql env: # Use secret in real usage- name: MYSQL_ROOT_PASSWORD value: password ports:- containerPort: 3306 name: mysql volumeMounts:- name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim
1 Stellen Sie den Inhalt in der YAML-Datei bereit.
kubectl create -f https://k8s.io/docs/tasks/run-application/mysql-deployment.yaml
2. Bereitstellungsinformationen anzeigen.
kubectl describe deployment mysql Name: mysql Namespace: default CreationTimestamp: Tue, 01 Nov 2016 11:18:45 -0700 Labels: app=mysql Selector: app=mysql Replicas: 1 updated | 1 total | 0 available | 1 unavailable StrategyType: Recreate MinReadySeconds: 0 OldReplicaSets: <none> NewReplicaSet: mysql-63082529 (1/1 replicas created) Events: FirstSeen LastSeen Count From SubobjectPath Type Reason Message --------- -------- ----- ---- ------------- -------- ------ ------- 33s 33s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set mysql-63082529 to 1
3. Zeigen Sie die durch die Bereitstellung erstellten Pods an.
kubectl get pods -l app=mysql NAME READY STATUS RESTARTS AGE mysql-63082529-2z3ki 1/1 Running 0 3m
4.
kubectl describe pv mysql-pv Name: mysql-pv Labels: <none> Status: Bound Claim: default/mysql-pv-claim Reclaim Policy: Retain Access Modes: RWO Capacity: 20Gi Message: Source: Type: GCEPersistentDisk (a Persistent Disk resource in Google Compute Engine) PDName: mysql-disk FSType: ext4 Partition: 0 ReadOnly: false No events.
5. Überprüfen Sie das PVC.
kubectl describe pvc mysql-pv-claim Name: mysql-pv-claim Namespace: default Status: Bound Volume: mysql-pv Labels: <none> Capacity: 20Gi Access Modes: RWO No events.
Zugriff auf MySQL-Instanz
Vorherige Die Die YAML-Datei erstellt einen Dienst, der anderen Pods im Cluster den Zugriff auf die Datenbank ermöglicht. Die Dienstoption „clusterIP:None“ bewirkt, dass der DNS-Name des Dienstes direkt in die IP-Adresse des Pods aufgelöst wird. Dies ist die beste Möglichkeit, es zu verwenden, wenn Ihr Dienst nur über einen Pod verfügt und Sie nicht vorhaben, die Anzahl der Pods zu erhöhen.
Führen Sie einen MySQL-Client aus, um eine Verbindung zum MySQL-Dienst herzustellen:
kubectl run -it --rm --image=mysql:5.6 mysql-client -- mysql -h <pod-ip> -ppassword
Der obige Befehl erstellt einen neuen Client im Cluster-Pod, der einen MySQL-Client ausführt und mit dem oben bereitgestellten MySQL-Server verbunden ist. Wenn die Verbindung erfolgreich hergestellt wird, bedeutet dies, dass die zustandsbehaftete MySQL-Datenbank erfolgreich eingerichtet und ausgeführt wird.
Waiting for pod default/mysql-client-274442439-zyp6i to be running, status is Pending, pod ready: falseIf you don't see a command prompt, try pressing enter.mysql>
Update
Das Aktualisieren des Deployment-Images oder anderer Teile kann ebenfalls erfolgen done Verwenden Sie zum Abschluss wie gewohnt den Befehl kubectl apply. Folgendes ist bei der Verwendung von Stateful-Anwendungen zu beachten:
Erweitern Sie die Anwendung nicht. Diese Anwendung ist nur für Singleton-Anwendungen. Das folgende PV kann nur einem Pod zugeordnet werden. Informationen zu geclusterten zustandsbehafteten Anwendungen finden Sie in der StatefulSet-Dokumentation.
Verwenden Sie die Strategie: Typ: Neu erstellen im YAML-Konfigurationsdokument der Bereitstellung. Dadurch wird Kubernetes angewiesen, kein rollierendes Update zu verwenden. Da ein fortlaufendes Update nicht funktioniert, werden nicht mehrere Pods gleichzeitig ausgeführt. Die Strategie „Neu erstellen“ löscht den vorherigen Pod, wenn ein neuer Pod mit aktualisierter Konfiguration erstellt wird.
Bereitstellung löschen
Bereitstellungsobjekt nach Name löschen:
kubectl delete deployment,svc mysql kubectl delete pvc mysql-pv-claim kubectl delete pv mysql-pv
另外,如果你使用的是GCE disk,还需要删除对应的disk:
gcloud compute disks delete mysql-disk
文章转自:
Das obige ist der detaillierte Inhalt vonKubernetes-Dienst – ein kurzes Beispiel für die Ausführung eines zustandsbehafteten Einzelinstanzdiensts. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



„Der Verbindungsstatus in der Ereignisprotokollmeldung lautet „Standby: Aufgrund von NIC-Konformität getrennt“. Dies bedeutet, dass sich das System im Standby-Modus befindet und die Netzwerkschnittstellenkarte (NIC) getrennt wurde. Dies ist zwar normalerweise ein Netzwerkproblem, kann aber passieren auch durch Software- und Hardwarekonflikte verursacht werden. In der folgenden Diskussion werden wir untersuchen, wie dieses Problem gelöst werden kann. „Was sind die Ursachen für die Unterbrechung der Standby-Verbindung?“ NIC-Konformität? Wenn in der Windows-Ereignisanzeige die Meldung „ConnectivityStatusinStandby:DisConnected,Reason:NICCompliance“ angezeigt wird, weist dies darauf hin, dass möglicherweise ein Problem mit Ihrer Netzwerkkarte oder Ihrem Netzwerkschnittstellen-Controller vorliegt. Diese Situation ist normalerweise der Fall

Support Vector Machine (SVM) in Python ist ein leistungsstarker überwachter Lernalgorithmus, der zur Lösung von Klassifizierungs- und Regressionsproblemen verwendet werden kann. SVM eignet sich gut für den Umgang mit hochdimensionalen Daten und nichtlinearen Problemen und wird häufig in den Bereichen Data Mining, Bildklassifizierung, Textklassifizierung, Bioinformatik und anderen Bereichen eingesetzt. In diesem Artikel stellen wir ein Beispiel für die Verwendung von SVM zur Klassifizierung in Python vor. Wir werden das SVM-Modell aus der scikit-learn-Bibliothek verwenden

Momo, eine bekannte soziale Plattform, bietet Nutzern eine Fülle funktionaler Dienste für ihre täglichen sozialen Interaktionen. Auf Momo können Benutzer ganz einfach ihren Lebensstatus teilen, Freunde finden, chatten usw. Unter anderem ermöglicht die Einstellungsstatusfunktion Benutzern, anderen ihre aktuelle Stimmung und ihren Status zu zeigen und so die Aufmerksamkeit und Kommunikation von mehr Menschen zu erregen. Wie können Sie Ihren eigenen Momo-Status festlegen? Im Folgenden erhalten Sie eine detaillierte Einführung! Wie stelle ich den Status auf Momo ein? 1. Öffnen Sie Momo, klicken Sie unten rechts auf „Mehr“, suchen Sie nach „Täglicher Status“ und klicken Sie darauf. 2. Wählen Sie den Status aus. 3. Der Einstellungsstatus wird angezeigt.

Zu den Methoden zum Anzeigen des Serverstatus gehören Befehlszeilentools, grafische Schnittstellentools, Überwachungstools, Protokolldateien und Remoteverwaltungstools. Detaillierte Einführung: 1. Verwenden Sie Befehlszeilentools, um den Status des Servers anzuzeigen. 2. Verwenden Sie grafische Schnittstellentools Vom System bereitgestellte Schnittstellentools zum Anzeigen des Serverstatus. 3. Verwenden Sie Überwachungstools, um den Serverstatus usw. zu überwachen.

Möchten Sie „offline“ erscheinen oder Ihren aktuellen Status nicht mit Ihren Freunden auf WhatsApp teilen? Dafür gibt es einen einfachen, aber cleveren Trick. Sie können Ihre WhatsApp-Einstellungen so anpassen, dass Ihr aktueller Status (offline oder zuletzt gesehen) für Ihre Freunde oder andere dort nicht sichtbar ist. Wie zeige ich den Offline-Status in der WhatsApp-Statusleiste an? Dies ist ein sehr einfacher und optimierter Prozess. Befolgen Sie jetzt die folgenden Schritte. Schritt 1 – Öffnen Sie WhatsApp auf Ihrem Telefon. Schritt 2 – Tippen Sie auf ⋮ und öffnen Sie die Einstellungen. Schritt 3 – Öffnen Sie die Datenschutzeinstellungen, um darauf zuzugreifen. Schritt 4 – Öffnen Sie auf dieser Datenschutzseite die Einstellung „Zuletzt angesehen und online“, um darauf zuzugreifen. Schritt 5 – Ändern Sie das „Wer kann?“

Da die Größe des Internets immer weiter zunimmt und die Benutzeranforderungen weiter steigen, erhalten die Vorteile der Microservice-Architektur immer mehr Aufmerksamkeit. In der Folge ist die Container-Microservice-Architektur besonders wichtig geworden, da sie die Anforderungen an hohe Verfügbarkeit, hohe Leistung, hohe Skalierbarkeit und andere Aspekte besser erfüllen kann. Im Zuge dieses Trends haben sich Go-Zero und Kubernetes zu den beliebtesten Container-Microservice-Frameworks entwickelt. In diesem Artikel wird erläutert, wie Sie mit dem Go-Zero-Framework und den Kubernetes-Container-Orchestrierungstools Hochverfügbarkeit und Leistung aufbauen

Vertiefendes Verständnis der fünf Zustände von Java-Threads und ihrer Konvertierungsregeln 1. Einführung in die fünf Zustände von Threads In Java kann der Lebenszyklus eines Threads in fünf verschiedene Zustände unterteilt werden, einschließlich des neuen Zustands (NEW) und des Bereitschaftszustands (RUNNABLE), Laufstatus (RUNNING), Blockierungsstatus (BLOCKED) und Beendigungsstatus (TERMINATED). Neuer Zustand (NEU): Wenn das Thread-Objekt erstellt wird, befindet es sich im neuen Zustand. Zu diesem Zeitpunkt hat das Thread-Objekt genügend Ressourcen zugewiesen, um die Aufgabe auszuführen

Mit der rasanten Entwicklung des Internets haben immer mehr Unternehmen damit begonnen, ihre Anwendungen auf Cloud-Plattformen zu migrieren. Docker und Kubernetes sind zu zwei sehr beliebten und leistungsstarken Tools für die Anwendungsbereitstellung und -verwaltung auf Cloud-Plattformen geworden. Beego ist ein mit Golang entwickeltes Web-Framework, das umfangreiche Funktionen wie HTTP-Routing, MVC-Layering, Protokollierung, Konfigurationsverwaltung und Sitzungsverwaltung bietet. In diesem Artikel behandeln wir die Verwendung von Docker und Kub
