Maison Java javaDidacticiel Service Kubernetes : un bref exemple d'exécution d'un service avec état à instance unique

Service Kubernetes : un bref exemple d'exécution d'un service avec état à instance unique

Jul 22, 2017 pm 03:21 PM
kubernetes 实例 状态

Cible

Créez un PV dans votre environnement
Créez un Déploiement de MySQl
Exposez MySQL à d'autres pods du cluster en tant que noms DNS

Démarrer précédemment

Vous aviez besoin d'un cluster Kubernetes et d'un outil de ligne de commande kubectl capable de se connecter au cluster. Si vous n'avez pas de cluster, vous pouvez utiliser Minikube pour en créer un.
Nous allons créer un PV (PersistentVolume) pour le stockage des données. Cliquez ici pour afficher les types PV pris en charge. Ce guide utilisera GCEPersistentDisk pour démontrer, mais tout type PV fonctionnera normalement. GCEPersistentDisk ne fonctionne que sur Google Compute Engine (GCE).

Créez le disque dans votre environnement

Dans Google Compute Engine, exécutez :

gcloud compute disks create --size=20GB mysql-disk
Copier après la connexion

Créez ensuite un PV pointant vers le disque mysql que vous venez de créer. Ce qui suit est un fichier de configuration pour créer un PV, pointant vers le disque GCE mentionné ci-dessus :

apiVersion: v1
kind: PersistentVolume
metadata:
  name: mysql-pv
spec:
  capacity:
    storage: 20Gi
  accessModes:- ReadWriteOnce
  gcePersistentDisk:
    pdName: mysql-disk
    fsType: ext4
Copier après la connexion

Notez que la ligne pdName: mysql-disk correspond l'environnement GCE ci-dessus Créez le nom du disque. Si vous souhaitez créer des PV dans d'autres environnements, vous pouvez consulter les volumes persistants pour plus de détails.
Créer un PV :

kubectl create -f https://k8s.io/docs/tasks/run-application/gce-volume.yaml
Copier après la connexion

Déployer MySQL

Vous pouvez créer un service avec état via le déploiement Kubernetes, puis utiliser PVC (PersistentVolumeClaim) pour vous connecter au PV existant. Par exemple, le fichier YAML suivant décrit un déploiement qui exécute MySQL et utilise PVC. Le fichier définit un volume monté sur /var/lib/mysql et crée un PVC qui nécessite une taille de volume de 20 Go.
Remarque : Le mot de passe est défini dans le fichier de configuration YAML, ce qui n'est pas sûr. Consultez Kubernetes Secrets pour des solutions plus sécurisées.

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
Copier après la connexion

1. Déployez le contenu dans le fichier YAML.

kubectl create -f https://k8s.io/docs/tasks/run-application/mysql-deployment.yaml
Copier après la connexion

2. Afficher les informations de déploiement.

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
Copier après la connexion

3. Affichez les pods créés par Déploiement.

kubectl get pods -l app=mysql

 NAME                   READY     STATUS    RESTARTS   AGE
 mysql-63082529-2z3ki   1/1       Running   0          3m
Copier après la connexion

4. Vérifiez PV.

 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.
Copier après la connexion

5. Vérifiez le 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.
Copier après la connexion

Accéder à l'instance MySQL

Précédent Le Le fichier YAML crée un service qui permet aux autres pods du cluster d'accéder à la base de données. L'option de service clusterIP:None entraîne la résolution directe du nom DNS du service en adresse IP du pod. C'est la meilleure façon de l'utiliser lorsque votre service ne dispose que d'un seul Pod et que vous ne prévoyez pas d'augmenter le nombre de Pods.
Exécutez un client Mysql pour vous connecter au service Mysql :

kubectl run -it --rm --image=mysql:5.6 mysql-client -- mysql -h <pod-ip> -ppassword
Copier après la connexion

La commande ci-dessus en crée un nouveau dans le cluster Pod, qui exécute un client MySQL et est connecté au serveur Mysql servi ci-dessus. S'il se connecte avec succès, cela signifie que la base de données MySQL avec état est opérationnelle et opérationnelle.

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>
Copier après la connexion

Mise à jour

La mise à jour de l'image du déploiement ou d'autres parties peut également être done Utilisez la commande kubectl apply comme d'habitude pour terminer. Voici les points à noter lors de l'utilisation d'applications avec état :

Ne développez pas l'application. Cette application est uniquement destinée aux applications singleton. Le PV suivant ne peut être mappé qu’à un seul pod. Pour les applications avec état en cluster, consultez la documentation StatefulSet.
Utiliser la stratégie : tapez : Recreate dans le document de configuration YAML du déploiement. Cela indiquera à Kubernetes de ne pas utiliser de mise à jour continue. Étant donné que la mise à jour progressive ne fonctionnera pas, plusieurs pods ne seront pas exécutés en même temps. La stratégie Recreate supprimera le Pod précédent lors de la création d'un nouveau Pod avec une configuration mise à jour.

Supprimer le déploiement

Supprimer l'objet de déploiement par son nom :

kubectl delete deployment,svc mysql
kubectl delete pvc mysql-pv-claim
kubectl delete pv mysql-pv
Copier après la connexion

另外,如果你使用的是GCE disk,还需要删除对应的disk:

gcloud compute disks delete mysql-disk
Copier après la connexion

 

文章转自:

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

État de la connexion en veille : Déconnecté, raison : Conformité de la carte réseau État de la connexion en veille : Déconnecté, raison : Conformité de la carte réseau Feb 19, 2024 pm 03:15 PM

"L'état de la connexion dans le message du journal des événements indique Veille : Déconnectée en raison de la conformité de la carte réseau. Cela signifie que le système est en mode veille et que la carte d'interface réseau (NIC) a été déconnectée. Bien qu'il s'agisse généralement d'un problème de réseau, il peut peut également être causé par des conflits logiciels et matériels. Dans la discussion suivante, nous explorerons comment résoudre ce problème « Quelles sont les causes de la déconnexion de la connexion en veille ? » Conformité de la carte réseau ? Si vous voyez le message « ConnectivityStatusinStandby:DisConnected,Reason:NICCompliance » dans l'Observateur d'événements Windows, cela indique qu'il peut y avoir un problème avec votre carte réseau ou votre contrôleur d'interface réseau. Cette situation est généralement

Exemples SVM en Python Exemples SVM en Python Jun 11, 2023 pm 08:42 PM

Support Vector Machine (SVM) en Python est un puissant algorithme d'apprentissage supervisé qui peut être utilisé pour résoudre des problèmes de classification et de régression. SVM fonctionne bien lorsqu'il s'agit de données de grande dimension et de problèmes non linéaires, et est largement utilisé dans l'exploration de données, la classification d'images, la classification de textes, la bioinformatique et d'autres domaines. Dans cet article, nous présenterons un exemple d'utilisation de SVM pour la classification en Python. Nous utiliserons le modèle SVM de la bibliothèque scikit-learn

Comment définir le statut Momo Comment définir le statut Momo Mar 01, 2024 pm 12:10 PM

Momo, une plateforme sociale bien connue, offre aux utilisateurs une multitude de services fonctionnels pour leurs interactions sociales quotidiennes. Sur Momo, les utilisateurs peuvent facilement partager leur statut de vie, se faire des amis, discuter, etc. Parmi eux, la fonction de configuration du statut permet aux utilisateurs de montrer leur humeur et leur statut actuels aux autres, attirant ainsi l'attention et la communication d'un plus grand nombre de personnes. Alors, comment définir votre propre statut Momo ? Ce qui suit vous donnera une introduction détaillée ! Comment définir le statut sur Momo ? 1. Ouvrez Momo, cliquez sur Plus dans le coin inférieur droit, recherchez et cliquez sur Statut quotidien. 2. Sélectionnez le statut. 3. L'état du réglage s'affichera.

Comment vérifier l'état du serveur Comment vérifier l'état du serveur Oct 09, 2023 am 10:10 AM

Les méthodes permettant d'afficher l'état du serveur incluent des outils de ligne de commande, des outils d'interface graphique, des outils de surveillance, des fichiers journaux et des outils de gestion à distance. Introduction détaillée : 1. Utilisez les outils de ligne de commande. Sur les serveurs Linux ou Unix, vous pouvez utiliser les outils de ligne de commande pour afficher l'état du serveur ; 2. Utilisez les outils d'interface graphique. Pour les systèmes d'exploitation de serveur dotés d'interfaces graphiques, vous pouvez utiliser les graphiques. fourni par le système. Utilisez les outils d'interface pour afficher l'état du serveur ; 3. Utilisez des outils de surveillance. Vous pouvez utiliser des outils de surveillance spéciaux pour surveiller l'état du serveur en temps réel, etc.

Comment afficher hors ligne sur WhatsApp sur un téléphone Android Comment afficher hors ligne sur WhatsApp sur un téléphone Android Jul 14, 2023 am 08:21 AM

Vous souhaitez apparaître « hors ligne » ou vous ne souhaitez pas partager votre statut actuel avec vos amis sur WhatsApp ? Il existe une astuce simple mais astucieuse pour y parvenir. Vous pouvez ajuster vos paramètres WhatsApp afin que votre statut actuel (hors ligne ou vu pour la dernière fois) ne soit pas visible par vos amis ou d'autres personnes présentes. Comment afficher le statut hors ligne sur votre barre d'état WhatsApp ? Il s’agit d’un processus très simple et rationalisé. Alors, suivez les étapes ci-dessous maintenant. Étape 1 – Ouvrez WhatsApp sur votre téléphone. Étape 2 – Appuyez sur ⋮ et choisissez d'ouvrir les paramètres. Étape 3 – Ouvrez les paramètres de confidentialité pour y accéder. Étape 4 – Sur cette page de confidentialité, ouvrez le paramètre « Dernière consultation et en ligne » pour y accéder. Étape 5 – Modifiez le champ « Qui peut

La pratique du go-zero et de Kubernetes : créer une architecture de microservices conteneurisés avec une haute disponibilité, de hautes performances et une grande évolutivité La pratique du go-zero et de Kubernetes : créer une architecture de microservices conteneurisés avec une haute disponibilité, de hautes performances et une grande évolutivité Jun 22, 2023 am 09:26 AM

À mesure que l’échelle d’Internet continue de s’étendre et que les besoins des utilisateurs continuent d’augmenter, les avantages de l’architecture des microservices font l’objet de plus en plus d’attention. Par la suite, l'architecture de microservices conteneurisés est devenue particulièrement importante, car elle peut mieux répondre aux besoins de haute disponibilité, de hautes performances, de haute évolutivité et d'autres aspects. Dans le cadre de cette tendance, go-zero et Kubernetes sont devenus les frameworks de microservices conteneurisés les plus populaires. Cet article explique comment utiliser le framework go-zero et les outils d'orchestration de conteneurs Kubernetes pour créer une haute disponibilité et des performances élevées.

Explication détaillée des cinq états des threads Java et des règles de transition d'état Explication détaillée des cinq états des threads Java et des règles de transition d'état Feb 19, 2024 pm 05:03 PM

Compréhension approfondie des cinq états des threads Java et de leurs règles de conversion 1. Introduction aux cinq états des threads En Java, le cycle de vie d'un thread peut être divisé en cinq états différents, dont l'état nouveau (NEW) et l'état prêt. (RUNNABLE), l'état d'exécution (RUNNING), l'état de blocage (BLOCKED) et l'état de fin (TERMINATED). Nouvel état (NEW) : lorsque l'objet thread est créé, il est dans le nouvel état. À ce stade, l'objet thread a alloué suffisamment de ressources pour effectuer la tâche.

Déploiement et gestion de production à l'aide de Docker et Kubernetes dans Beego Déploiement et gestion de production à l'aide de Docker et Kubernetes dans Beego Jun 23, 2023 am 08:58 AM

Avec le développement rapide d’Internet, de plus en plus d’entreprises ont commencé à migrer leurs applications vers des plateformes cloud. Docker et Kubernetes sont devenus deux outils très populaires et puissants pour le déploiement et la gestion d'applications sur les plateformes cloud. Beego est un framework Web développé à l'aide de Golang. Il fournit des fonctions riches telles que le routage HTTP, la superposition MVC, la journalisation, la gestion de la configuration et la gestion des sessions. Dans cet article, nous expliquerons comment utiliser Docker et Kub

See all articles