Maison >base de données >tutoriel mysql >Qu'est-ce que Kubernetes ? Comment déployer une base de données MySQL basée sur celle-ci

Qu'est-ce que Kubernetes ? Comment déployer une base de données MySQL basée sur celle-ci

藏色散人
藏色散人avant
2021-11-03 16:30:551978parcourir

Kubernetes est un moteur d'orchestration de conteneurs open source par Google. Il prend en charge le déploiement automatisé, l'évolutivité à grande échelle et la gestion des conteneurs d'applications. Lorsque vous déployez une application dans un environnement de production, vous déployez généralement plusieurs instances de l'application pour équilibrer la charge des demandes d'application.

Dans Kubernetes, nous pouvons créer plusieurs conteneurs, chaque conteneur exécute une instance d'application, puis utiliser la stratégie d'équilibrage de charge intégrée pour gérer, découvrir et accéder à ce groupe d'instances d'application, et ces détails ne sont pas requis Exploitation et maintenance le personnel doit effectuer une configuration et un traitement manuels complexes.

Cet article expliquera comment déployer une base de données MySQL basée sur Kubernetes.

Créer un service Service

Créez un service pour corriger l'adresse IP de la connexion à la base de données MySQL à déployer et assurer l'équilibrage de charge. Voici le contenu du fichier mysql-service.yaml :

apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  selector:
    app: mysql
  ports:
    - port: 3306

Ce qui précède. la configuration crée un service nommé mysql. Un objet de service qui transmet les requêtes à un pod en utilisant le port TCP 3306 et ayant l'étiquette app=mysql.

Créer des ressources :

kubectl create -f mysql-service.yaml

Créer un volume persistant PV

Créer un volume persistant MySQL mysql-pv.yaml (Kubernetes détruira également le volume temporaire lorsque le Pod n'existe plus ; cependant, Kubernetes ne détruira pas le volume persistant . ):

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

Créer des ressources :

kubectl create -f mysql-pv.yaml

Créer des revendications de volume persistant PVC

Les volumes persistants sont des ressources dans le cluster, et les revendications de volume persistants sont des demandes pour ces ressources et sont également utilisées pour effectuer des vérifications de réclamation sur les ressources. Ci-dessous, nous allons créer une déclaration de volume persistant mysql-pvc.yaml nommée mysql-pvc :

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

Créer des ressources :

kubectl create -f mysql-pvc.yaml

Déployer MySQL

Créer un pod en utilisant l'image MySQL 5.7 sur le 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

Créer des ressources :

kubectl create -f mysql-deployment.yaml

Connectez-vous à MySQL

kubectl run -it --rm --image=mysql:5.6 --restart=Never mysql-client -- mysql -hmysql -ppassword

Apprentissage recommandé : "Tutoriel vidéo mysql"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer