Ce didacticiel d'exemple décrit comment déployer l'application WordPress à l'aide des Espaces vSphere dans l'environnement vSphere IaaS control plane.
Le déploiement WordPress inclut des conteneurs pour le serveur frontal WordPress et le serveur principal MySQL, ainsi que des services pour ces deux serveurs. Des objets secrets sont également requis.
Ce didacticiel utilise un objet de déploiement. Dans un environnement de production, vous utilisez généralement des ressources StatefulSets pour les conteneurs WordPress et MySQL.
Conditions requises
- Créez un Superviseur à une zone avec mise en réseau NSX. Seuls les Superviseurs à une seule zone avec NSX prennent en charge les Espaces vSphere. Reportez-vous à la section Déployer un superviseur à une zone avec la mise en réseau NSX.
- Créez un espace de noms pour déployer les Espaces vSphere. Reportez-vous à la section Créer et configurer un Espace de noms vSphere sur le Superviseur.
- Créez une stratégie de stockage (par exemple, vwt-storage-policy) et attribuez-la à l'espace de noms.
- Téléchargez les outils d'interface de ligne de commande Kubernetes de vSphere. Reportez-vous à la section Télécharger et installer les outils d'interface de ligne de commande Kubernetes pour vSphere.
- Créez les fichiers YAML requis pour ce didacticiel et vérifiez l'accès à la ligne de commande aux fichiers.
Catégorie Fichiers Stockage -
Note : Assurez-vous que les fichiers font référence à une classe de stockage correcte.
Secrets Services Déploiements
Déployer WordPress
Utilisez ce workflow pour déployer l'application WordPress à l'aide de Espaces vSphere.
Partie 1. Accéder à votre espace de noms
Pour accéder à votre espace de noms, procédez comme suit.
Procédure
Partie 2. Créer des PVC WordPress
Utilisez ces commandes pour créer des PVC WordPress.
Procédure
Partie 3. Créer des secrets
Le Docker Hub public est le registre de conteneur par défaut pour Kubernetes. Docker Hub limite désormais les extractions d'images. Vous devez disposer d'un compte payant et ajouter la clé de compte au secret YAML dans le champ data.dockerconfigjson
.
Procédure
Partie 4. Créer des services
Pour créer des services, procédez comme suit.
Procédure
Partie 5. Créer des déploiements d'espaces
Utilisez cette tâche pour créer des déploiements d'espaces.
Procédure
Partie 6. Tester WordPress
Pour tester votre déploiement de WordPress, procédez comme suit.
Procédure
Exemples de fichiers YAML pour le déploiement de WordPress
Utilisez ces exemples de fichiers YAML lorsque vous déployez l'application WordPress avec des Espaces vSphere.
mysql-pvc.yaml
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pvc labels: app: wordpress spec: accessModes: - ReadWriteOnce storageClassName: vwt-storage-policy resources: requests: storage: 20Gi
wordpress-pvc.yaml
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: wordpress-pvc labels: app: wordpress spec: accessModes: - ReadWriteOnce storageClassName: vwt-storage-policy resources: requests: storage: 20Gi
regcred.yaml
apiVersion: v1 kind: Secret metadata: name: regcred data: .dockerconfigjson: ewoJImF1dGhzIjog....zZG1KcE5WUmtXRUozWpc type: kubernetes.io/dockerconfigjson
mysql-pass.yaml
apiVersion: v1 data: password: YWRtaW4= #admin base64 encoded kind: Secret metadata: name: mysql-pass
mysql-service.yaml
apiVersion: v1 kind: Service metadata: name: wordpress-mysql labels: app: wordpress spec: ports: - port: 3306 selector: app: wordpress tier: mysql clusterIP: None
wordpress-service.yaml
apiVersion: v1 kind: Service metadata: name: wordpress labels: app: wordpress spec: ports: - port: 80 selector: app: wordpress tier: frontend type: LoadBalancer
mysql-deployment-vsphere-pod.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: wordpress-mysql labels: app: wordpress spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: wordpress tier: mysql template: metadata: labels: app: wordpress tier: mysql spec: containers: - image: mysql:5.6 name: mysql #increased resource limits required for this pod vm #default pod VM RAM is 512MB; MySQL container needs more #without extra RAM OOM error prevents deployment #extra RAM not required for Kuberentes cluster resources: limits: memory: 1024Mi cpu: 1 env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-pass key: password ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pvc imagePullSecrets: - name: regcred
wordpress-deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: wordpress labels: app: wordpress spec: selector: matchLabels: app: wordpress tier: frontend strategy: type: Recreate template: metadata: labels: app: wordpress tier: frontend spec: containers: - image: wordpress:4.8-apache name: wordpress env: - name: WORDPRESS_DB_HOST value: wordpress-mysql - name: WORDPRESS_DB_PASSWORD valueFrom: secretKeyRef: name: mysql-pass key: password ports: - containerPort: 80 name: wordpress volumeMounts: - name: wordpress-persistent-storage mountPath: /var/www/html volumes: - name: wordpress-persistent-storage persistentVolumeClaim: claimName: wordpress-pvc imagePullSecrets: - name: regcred