


Service Kubernetes : un bref exemple d'exécution d'un service avec état à instance unique
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
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
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
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
1. Déployez le contenu dans le fichier YAML.
kubectl create -f https://k8s.io/docs/tasks/run-application/mysql-deployment.yaml
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
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
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.
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.
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
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>
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
另外,如果你使用的是GCE disk,还需要删除对应的disk:
gcloud compute disks delete mysql-disk
文章转自:
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

"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

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

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.

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.

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

À 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.

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.

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
