Heim > Datenbank > MySQL-Tutorial > Was ist Kubernetes? So stellen Sie eine darauf basierende MySQL-Datenbank bereit

Was ist Kubernetes? So stellen Sie eine darauf basierende MySQL-Datenbank bereit

藏色散人
Freigeben: 2021-11-03 16:30:55
nach vorne
1982 Leute haben es durchsucht

Kubernetes ist eine Open-Source-Container-Orchestrierungs-Engine von Google. Sie unterstützt die automatisierte Bereitstellung, Skalierbarkeit in großem Maßstab und die Verwaltung von Anwendungscontainern. Wenn Sie eine Anwendung in einer Produktionsumgebung bereitstellen, stellen Sie normalerweise mehrere Instanzen der Anwendung bereit, um die Anwendungsanforderungen auszugleichen.

In Kubernetes können wir mehrere Container erstellen, jeder Container führt eine Anwendungsinstanz aus und verwendet dann die integrierte Lastausgleichsstrategie, um diese Gruppe von Anwendungsinstanzen zu verwalten, zu erkennen und darauf zuzugreifen. Diese Details sind nicht erforderlich. Betrieb und Wartung Das Personal muss komplexe manuelle Konfigurationen und Verarbeitungen durchführen.

In diesem Artikel erfahren Sie, wie Sie eine MySQL-Datenbank auf Basis von Kubernetes bereitstellen.

Dienstdienst erstellen

Erstellen Sie einen Dienst, um die IP der Verbindung für die bereitzustellende MySQL-Datenbank festzulegen und den Lastausgleich bereitzustellen. Das Folgende ist der Inhalt der Datei mysql-service.yaml:

apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  selector:
    app: mysql
  ports:
    - port: 3306
Nach dem Login kopieren

Das Obige Durch die Konfiguration wird ein Dienst mit dem Namen „mysql“ erstellt. Ein Dienstobjekt, das Anforderungen an einen Pod weiterleitet, indem es den TCP-Port 3306 und die Bezeichnung „app=mysql“ verwendet.

Ressourcen erstellen:

kubectl create -f mysql-service.yaml
Nach dem Login kopieren

Persistentes Volume PV erstellen

Erstellen Sie ein persistentes MySQL-Volume mysql-pv.yaml (Kubernetes zerstört auch das temporäre Volume, wenn der Pod nicht mehr existiert; Kubernetes zerstört jedoch nicht das persistente Volume .):

apiVersion: v1
kind: PersistentVolume
metadata:
  name: mysql-pv
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 20Gi
  accessModes:
    - ReadWriteOnce # 卷可以被一个节点以读写方式挂载
  hostPath:
    path: "/mnt/data"
Nach dem Login kopieren

Ressourcen erstellen:

kubectl create -f mysql-pv.yaml
Nach dem Login kopieren

Persistente Volume-Ansprüche erstellen (PVC) Nachfolgend erstellen wir eine persistente Volume-Deklaration mysql-pvc.yaml mit dem Namen mysql-pvc:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-pvc
spec:
  storageClassName: manual
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
Nach dem Login kopieren

Ressourcen erstellen:

kubectl create -f mysql-pvc.yaml
Nach dem Login kopieren

MySQL bereitstellen

Erstellen Sie einen Pod mit dem MySQL 5.7-Image auf Port 3306, mysql-deployment. yaml :

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
spec:
  selector:
    matchLabels:
      app: mysql
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
        - image: mysql:5.7
          name: mysql
          env:
            - name: MYSQL_ROOT_PASSWORD # 生产环境中请使用 secret
              value: password
          ports:
            - containerPort: 3306
              name: mysql
          volumeMounts:
            - name: mysql-data
              mountPath: /var/lib/mysql
      volumes:
        - name: mysql-data
          persistentVolumeClaim:
            claimName: mysql-pvc
Nach dem Login kopieren

Ressourcen erstellen:

kubectl create -f mysql-deployment.yaml
Nach dem Login kopieren

Mit MySQL verbinden

kubectl run -it --rm --image=mysql:5.6 --restart=Never mysql-client -- mysql -hmysql -ppassword
Nach dem Login kopieren
Empfohlenes Lernen: „MySQL-Video-Tutorial“

Das obige ist der detaillierte Inhalt vonWas ist Kubernetes? So stellen Sie eine darauf basierende MySQL-Datenbank bereit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:juejin.im
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage