Dans ce démarrage rapide, vous déployez une application WordPress sur un cluster Azure Kubernetes Service (AKS) avec Azure Database pour MySQL – Serveur flexible (préversion) à l’aide de l’interface de ligne de commande Azure.
AKS est un service Kubernetes géré qui vous permet de provisionner et de gérer rapidement des clusters. Azure Database pour MySQL – Serveur flexible (préversion) est un service de base de données entièrement géré qui offre un contrôle et une flexibilité plus granulaires sur les fonctions d’administration de base de données et les paramètres de configuration. Le serveur flexible est actuellement dans l’aperçu.

Noter

  • La base de données Azure pour MySQL Flexible Server est actuellement en préversion publique
  • Ce démarrage rapide suppose une compréhension de base des concepts de Kubernetes WordPress et MySQL.

Si vous n’en avez pas Abonnement Azurecréer un … compte gratuit Avant de commencer.

conditions

  • Utilisez l’environnement bash dans Azure Cloud Shell.

    Démarrez Cloud Shell dans une nouvelle fenêtre

  • Si tu préfères À installer Azure CLI pour exécuter les commandes de référence CLI.

    • Si vous utilisez une installation locale, connectez-vous à l’aide d’Azure CLI le login Commander. Suivez les étapes indiquées dans votre terminal pour terminer le processus d’authentification. Vous pouvez trouver plus d’options de connexion sur Connectez-vous avec Azure CLI.

    • Si vous y êtes invité, installez les extensions Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.

    • Cours la version pour rechercher la version et les bibliothèques dépendantes installées. Passez à la dernière version mise à jour az.

  • Cet article nécessite la dernière version de l’interface de ligne de commande Azure. Si vous utilisez Azure Cloud Shell, la dernière version est déjà installée.

Noter

Si vous exécutez les commandes de ce démarrage rapide localement (au lieu d’utiliser Azure Cloud Shell), assurez-vous que vous exécutez les commandes en tant qu’administrateur.

Créer un groupe de ressources

Un groupe de ressources Azure est un groupe logique dans lequel les ressources Azure sont provisionnées et gérées. Créons un groupe de ressources. Projet WordPress Utilisation de [az group create][az-group-create] Commandez dans le Eastus Emplacement.

az group create --name wordpress-project --location eastus

Noter

L’emplacement du groupe de ressources est l’emplacement des métadonnées du groupe de ressources. C’est là que vos ressources s’exécuteront également dans Azure si vous ne spécifiez pas de région différente lors de la création de la ressource.

L’exemple de sortie suivant montre le groupe de ressources créé avec succès:

{
  "id": "/subscriptions/<guid>/resourceGroups/wordpress-project",
  "location": "eastus",
  "managedBy": null,
  "name": "wordpress-project",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Créer un cluster AKS

Utilisez le créer des az aks Commande pour créer un cluster AKS. L’exemple suivant crée un cluster nommé myAKSCluster avec un nœud. Cela prendra quelques minutes.

az aks create --resource-group wordpress-project --name myAKSCluster --node-count 1 --generate-ssh-keys

Après quelques minutes, la commande se termine et renvoie des informations au format JSON sur le cluster.

Connectez-vous au cluster

Pour gérer un cluster Kubernetes, utilisez kubectl, le client de ligne de commande Kubernetes. Si vous utilisez Azure Cloud Shell, kubectl Est déjà installé. À installer kubectl utiliser localement le aks install-cli Commander:

az aks install-cli

Configurer kubectl Utilisez le bouton pour vous connecter à votre cluster Kubernetes az aks get-credentials Commander. Cette commande télécharge les informations d’identification et configure la CLI Kubernetes pour les utiliser.

az aks get-credentials --resource-group wordpress-project --name myAKSCluster

Noter

La commande ci-dessus utilise l’emplacement par défaut pour le Fichier de configuration Kubernetes, lequel est ~/.kube/config. Vous pouvez utiliser pour spécifier un emplacement différent pour votre fichier de configuration Kubernetes –Déposer.

Utilisez l’option pour vérifier la connectivité à votre cluster obtenir kubectl Commande pour renvoyer une liste de nœuds de cluster.

kubectl get nodes

L’exemple de sortie suivant montre le nœud unique qui a été créé au cours des étapes précédentes. Assurez-vous que l’état du nœud est prêt::

NAME                       STATUS   ROLES   AGE     VERSION
aks-nodepool1-31718369-0   Ready    agent   6m44s   v1.12.8

Créer une base de données Azure pour MySQL – Serveur flexible

Créez un serveur flexible avec créer az mysql flexible-serverCommander. La commande suivante crée un serveur à l’aide des normes de service et des valeurs du contexte local de votre interface de ligne de commande Azure:

az mysql flexible-server create --public-access <YOUR-IP-ADDRESS>

Le serveur créé possède les attributs suivants:

  • Une nouvelle base de données vide flexibleserverdb créé lorsque le serveur est provisionné pour la première fois. Dans ce démarrage rapide, nous utiliserons cette base de données.
  • Nom du serveur généré automatiquement, nom d’utilisateur administrateur, mot de passe administrateur, nom du groupe de ressources (s’il n’est pas déjà spécifié dans le contexte local) et au même emplacement que votre groupe de ressources
  • Paramètres standard du service pour les configurations de serveur restantes: couche de calcul (extensible), taille de calcul / SKU (B1MS), période de rétention de la sauvegarde (7 jours) et version MySQL (5.7)
  • Vous pouvez utiliser l’argument d’accès public pour créer un serveur d’accès public protégé par des règles de pare-feu. Fournissez votre adresse IP pour ajouter la règle de pare-feu et autoriser l’accès à partir de votre ordinateur client.
  • Étant donné que la commande utilise le contexte local, le serveur est créé dans le groupe de ressources wordpress-project et dans la région eastus.

Créez votre image Docker WordPress

Téléchargez le dernier WordPress Exécution. Créer un nouveau répertoire my-wordpress-app pour votre projet et utilisez cette structure de dossiers simple

└───my-wordpress-app
    └───public
        ├───wp-admin
        │   ├───css
      	. . . . . . .
        ├───wp-content
        │   ├───plugins
        . . . . . . .
        └───wp-includes
        . . . . . . .
        ├───wp-config-sample.php
        ├───index.php
        . . . . . . .
    └─── Dockerfile

Renommer wp-config-sample.php à wp-config.php et remplacez les lignes 21 à 32 par cet extrait de code. Le fragment de code suivant lit l’hôte de la base de données, le nom d’utilisateur et le mot de passe à partir du fichier manifeste Kubernetes.

//Using environment variables for DB connection information

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */

$connectstr_dbhost = getenv('DATABASE_HOST');
$connectstr_dbusername = getenv('DATABASE_USERNAME');
$connectstr_dbpassword = getenv('DATABASE_PASSWORD');

/** MySQL database name */
define('DB_NAME', 'flexibleserverdb');

/** MySQL database username */
define('DB_USER', $connectstr_dbusername);

/** MySQL database password */
define('DB_PASSWORD',$connectstr_dbpassword);

/** MySQL hostname */
define('DB_HOST', $connectstr_dbhost);

/** Database Charset to use in creating database tables. */
define('DB_CHARSET', 'utf8');

/** The Database Collate type. Don't change this if in doubt. */
define('DB_COLLATE', '');


/** SSL*/
define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);

Créer un fichier Docker

Créez un nouveau fichier Docker et copiez cet extrait de code. Ce fichier Docker est utilisé pour configurer le serveur Web Apache avec PHP et pour activer l’extension mysqli.

FROM php:7.2-apache
COPY public/ /var/www/html/
RUN docker-php-ext-install mysqli
RUN docker-php-ext-enable mysqli

Créez votre image Docker

Assurez-vous que vous êtes dans le répertoire my-wordpress-app dans un terminal avec le cd Commander. Exécutez la commande suivante pour créer l’image:


docker build --tag myblog:latest .

Déployez votre image pour Docker Hub ou alors Enregistrement du conteneur Azure.

Important

Si vous utilisez Azure Container Registration (ACR), exécutez le az aks update Commande pour attacher un compte ACR au cluster AKS.

az aks update -n myAKSCluster -g wordpress-project --attach-acr <your-acr-name>

Créer un fichier manifeste Kubernetes

Un fichier manifeste Kubernetes définit un état souhaité pour le cluster, par exemple B. quelles images de conteneurs doivent être exécutées. Créons un fichier manifeste nommé mywordpress.yaml et copiez la définition YAML suivante.

Important

  • Remplacer [DOCKER-HUB-USER/ACR ACCOUNT]/[YOUR-IMAGE-NAME]:[TAG] Par exemple, avec le nom et la balise de votre image Docker WordPress réelle docker-hub-user/myblog:latest.
  • Mettre à jour env Section ci-dessous avec votre SERVERNAME, YOUR-DATABASE-USERNAME, YOUR-DATABASE-PASSWORD Votre serveur MySQL flexible.
apiVersion: apps/v1
kind: Deployment
metadata:
  name: wordpress-blog
spec:
  replicas: 1
  selector:
    matchLabels:
      app: wordpress-blog
  template:
    metadata:
      labels:
        app: wordpress-blog
    spec:
      containers:
      - name: wordpress-blog
        image: [DOCKER-HUB-USER-OR-ACR-ACCOUNT]/[YOUR-IMAGE-NAME]:[TAG]
        ports:
        - containerPort: 80
        env:
        - name: DATABASE_HOST
          value: "SERVERNAME.mysql.database.azure.com"
        - name: DATABASE_USERNAME
          value: "YOUR-DATABASE-USERNAME"
        - name: DATABASE_PASSWORD
          value: "YOUR-DATABASE-PASSWORD"
        - name: DATABASE_NAME
          value: "flexibleserverdb"
      affinity:
        podAntiAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            - labelSelector:
                matchExpressions:
                  - key: "app"
                    operator: In
                    values:
                    - wordpress-blog
              topologyKey: "kubernetes.io/hostname"
---
apiVersion: v1
kind: Service
metadata:
  name: php-svc
spec:
  type: LoadBalancer
  ports:
    - port: 80
  selector:
    app: wordpress-blog

Déployer WordPress dans le cluster AKS

Déployez l’application en utilisant utiliser kubectl Commandez et indiquez le nom de votre manifeste YAML:

kubectl apply -f mywordpress.yaml

L’exemple de sortie suivant montre les déploiements et les services créés avec succès:

deployment "wordpress-blog" created
service "php-svc" created

Testez l’application

Lorsque l’application est en cours d’exécution, un service Kubernetes expose le frontal de l’application à Internet. Ce processus peut prendre plusieurs minutes.

Utilisez la touche pour suivre les progrès kubectl obtenir un service Commande avec le --watch Contestation.

kubectl get service wordpress-blog --watch

Initialement, le IP EXTERNE pour le Blog WordPress Le service est affiché comme En attente.

NAME               TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
wordpress-blog   LoadBalancer   10.0.37.27   <pending>     80:30572/TCP   6s

Si la IP EXTERNE Changements d’adresse de En attente pour utiliser une adresse IP publique réelle CTRL-C arrête ça kubectl Observez le processus. L’exemple de sortie suivant montre une adresse IP publique valide attribuée au service:

wordpress-blog  LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   2m

Rechercher WordPress

Ouvrez un navigateur Web à l’adresse IP externe de votre service pour afficher votre page d’installation WordPress.


Installation réussie de WordPress sur des serveurs AKS et MySQL flexibles

Nettoyez les ressources

Pour éviter les frais Azure, nettoyez les ressources inutiles. Lorsque le cluster n’est plus nécessaire, utilisez le az supprimer le groupe Commande pour supprimer le groupe de ressources, le service de conteneur et toutes les ressources associées.

az group delete --name wordpress-project --yes --no-wait

Noter

La suppression du cluster ne supprime pas le principal de service Azure Active Directory utilisé par le cluster AKS. Pour connaître les étapes de suppression du principe de service, consultez Considérations et suppressions pour le service AKS. Si vous avez utilisé une identité gérée, l’identité est gérée par la plate-forme et n’a pas besoin d’être supprimée.

Prochaines étapes



Source link

Recent Posts