Déployer le conteneur HCL Digital Experience 9.5 sur Amazon EKS
Apprenez à déployer la version de conteneur HCL DX 9.5 CF_171 et ultérieure avec Ambassador vers Kubernetes, comme vérifié dans Amazon EKS Container Service.
Avant de commencer
- Configurez
KUBECONFIGpour faire référence au serveur cible. Ainsi, toutes les commandeskubectlexécutées localement affecteront l'environnement cible. - Utilisez
kubectl get {pods, pv, storageclass}pour obtenir des informations appropriées sur les artefacts exécutés dans l'environnement Kubernetes cible.
Pourquoi et quand exécuter cette tâche
Procédure
-
Téléchargez et extrayez le contenu du package HCL DX 9.5 CF_171 dans le système de fichiers local.
Figure 1. Téléchargez et extrayez :
- Ouvrez une fenêtre de terminal et accédez au répertoire racine du package extrait.
-
Chargez les conteneurs dans votre référentiel Docker.
-
docker load < hcl-dx-core-image-v95_xxxxxxxx-xxxx.tar.gz -
docker load < hcl-dx-ambassador-image-v95_xxxxxxxx-xxxx.tar.gz -
docker load -i hcl-dx-cloud-operator-image-v95_xxxxxxxx-xxxx.tar.gzRemarque :-iou<fonctionne pour la commande de chargement. Si vous rencontrez une erreur lorsque vous utilisez un de ces éléments, essayez d'exécuter la commande en utilisant l'autre élément.
Figure 2. Chargement des conteneurs dans votre référentiel Docker.
-
-
Récupérez les images Docker dans votre référentiel Docker local et placez-les dans votre système Kubernetes cible en les étiquetant et en les envoyant de manière appropriée. Si vous avez utilisé
docker loadpour obtenir vos images sur l'environnement cible, passez à l'étape suivante. -
Extrayez les scripts de déploiement HCL DX dans votre environnement comme suit :
unzip hcl-dx-deployment-scripts-v95_xxxxxxxx-xxxx.zipFigure 3. Extraction des scripts de déploiement
- Accédez au répertoire des fichiers extraits, ./hcl-dx-deployment-scripts.
-
Installez la définition de ressource personnalisée DxDeployment. (Ne modifiez pas le fichier git_v1_dxdeployment_crd.yaml. Veuillez personnaliser ./deploy/crds/git_v1_dxdeployment_cr.yaml si nécessaire.) Utilisez l'une des commandes suivantes :
-
'hcl-dx-deployment-scripts/scripts/deployCrd.sh' -
'kubectl create -f hcl-dx-deployment-scripts/deploy/crds/git_v1_dxdeployment_crd.yaml'Figure 4. Installez la définition de ressource personnalisée DX
Remarque : Vous pouvez personnaliser ./deploy/crds/git_v1_dxdeployment_cr.yaml si nécessaire. -
-
Créez (ou demandez à l'administrateur Kubernetes de s'en charger) un volume persistant et une classe de stockage où AccessMode doit être ReadWriteMany et où la stratégie de récupération de volume persistant doit être "Retain".
Figure 5. Classes de stockage
Figure 6. Volumes persistants
- Utilisez
chownetchgrppour définir l'utilisateur et le groupe sur ID 1000.
- Utilisez
-
Fournissez l'accès à l'image Docker HCL DX 9.5 CF_171 et version ultérieure au montage de volume créé afin de copier le profil. Il existe différentes façons de le faire, NFS est une option. Si NFS est utilisé, voici les paramètres qui fonctionnent :
-
rw,(Implicite) -
sync,(Par défaut après nfs 1.0 : cela signifie que le serveur ne répond pas avant la validation) -
insecure,** (Requiert que les demandes proviennent de ports inférieurs à 1024) -
root_squash,** (Mapper les demandes à l'utilisateur personne). -
hard,** (Requis, car cela signifie que le système continuera d'essayer à écrire jusqu'à ce que cela fonctionne.) -
nfsvers=4.1, -
rsize=4194304,(Evite les paquets perdus, par défaut 8192) -
wsize=4194304,(Avoids dropped packages, default 8192) -
timeo=600,(60 secondes) -
retrans=2,(Nombre de nouvelles tentatives après un délai d'attente) -
noresvport** (Indique au client NFS d'utiliser un nouveau port source TCP (Transmission Control Protocol) lorsqu'une connexion réseau est rétablie. Cela permet de garantir que le système de fichiers EFS a une disponibilité ininterrompue après un événement de récupération réseau.)
Remarque : Les paramètres portant la marque ** sont essentiels et, dans de nombreux cas, il est recommandé de définir les paramètres rsize et wsize sur 4194304. -
-
Exécutez le script
deployDx.shpour créer l'espace de noms, installez le compte de service de portée du projet, le rôle, la liaison de rôle, l'opérateur et le déploiement, puis exécutez le script deployDx.sh../scripts/deployDx.sh NAMESPACE REPLICAS REPOSITORY IMAGENAME IMAGETAG VOLUMENAME STORAGECLASS DBTYPE INGRESSIMAGE INGRESSTAG- NAMESPACE : le projet ou l'espace de noms à créer ou à utiliser pour le déploiement. Cet espace de noms sera utilisé dans les commandes suivantes.
- REPLICAS : le nombre d'instances initiales pour le déploiement.
- REPOSITORY : votre référentiel local, le référentiel utilisé par Kubernetes.
- IMAGENAME : le nom de l'image dxCore, tel qu'il a été ajouté au référentiel ci-dessus.
- IMAGETAG : la balise de l'image cible ajoutée au référentiel ci-dessus.
- VOLUMENAME : le volume à utiliser par le déploiement pour la persistance, qui doit utiliser AccessMode ReadWriteMany.
- STORAGECLASS : le nom de la classe de stockage utilisé pour créer le volume persistant.
- DBTYPE : le type de base de données. Par défaut, et initialement, il s'agit de Derby. HCL DX 9.5 utilise Apache Derby, Oracle Database, IBM DB2 ou Microsoft SQL Server. Les valeurs acceptables sont
derby,oracle,db2oumsSql. - INGRESSIMAGE : le nom de l'image à utiliser pour Ambassador (Native K8s).
- INGRESSTAG : la balise de l'image à utiliser pour Ambassador (Native K8s).
Par exemple:/scripts/deployDx.sh aws-mynamespace 1 aRemoteRepo.amazonaws.com dxen my-upload aws-volume-name aws-storage-class derby dxen 171_ambassador -
Créez une certification TLS à utiliser par le déploiement :
-
kubectl create secret tls dx-tls-cert --cert=my-cert.pem --key=my-key.pem -n aws-mynamespaceRemarque : Le nom par défaut estdx-tls-cert. Il peut être modifié dans la configuration.aws-mynamespaceest votre espace de noms Kubernetes. Vous pouvez définir votre espace de noms préféré, mais vous devez utiliser cet espace de noms de façon cohérence dans les commandes suivantes. Voir Personnalisation du déploiement Kubernetes. - A des fins de développement :
- Grâce à SSL, vous pouvez créer une clé privée :
'openssl genrsa -out my-key.pem 2048' - Grâce à OpenSSL, vous pouvez créer un certificat signé par la clé privée :
'openssl req -x509 -key my-key.pem -out my-cert.pem -days 365 -subj '/CN=my-cert'
- Grâce à SSL, vous pouvez créer une clé privée :
-
-
Créez le déploiement de conteneur DX.
- Comme on peut le voir sur l'image, le script génère les valeurs d'entrée avec le nom du champ.
-
Voir les sections sous Comprendre le déploiement de conteneur HCL DX 9.5 sur Amazon Elastic Kubernetes Service et Personnalisation du déploiement Kubernetes
Remarque : Pour la version initiale 9.5 CF_171 et les versions ultérieures, vous devez modifier le fichier operator.yaml et vous assurer que IMAGENAME et IMAGETAG sont corrects.Mettre à jour
- Pour mettre à jour le déploiement, exécutez le script updateDx.sh avec les valeurs mises à jour :
./scripts/updateDx.sh NAMESPACE REPLICAS REPOSITORY IMAGENAME IMAGETAG VOLUMENAME STORAGECLASS DBTYPE INGRESSIMAGE INGRESSTAG- ESPACE DE NOMS : le projet ou l'espace de noms à créer ou à utiliser pour le déploiement.
- REPLIQUES : le nombre d'instances initiales pour le déploiement.
- REFERENTIEL : votre référentiel local, le référentiel utilisé par Kubernetes.
- IMAGENAME : le nom de l'image dxCore, tel qu'il a été ajouté au référentiel ci-dessus.
- IMAGETAG : la balise de l'image cible ajoutée au référentiel ci-dessus.
- VOLUMENAME : le volume à utiliser par le déploiement pour la persistance, qui doit utiliser AccessMode ReadWriteMany.
- STORAGECLASS : le nom de la classe de stockage utilisé pour créer le volume persistant.
- DBTYPE : le type de base de données. Par défaut, et initialement, il s'agit de Derby. HCL DX 9.5 utilise Apache Derby, Oracle Database, IBM DB2 oU Microsoft SQL Server. Les valeurs acceptables sont
derby,oracle,db2oumsSql. - INGRESSIMAGE : le nom de l'image à utiliser pour Ambassador (Native K8s).
- INGRESSTAG : la balise de l'image à utiliser pour Ambassador (Native K8s).
Par exemple:/scripts/updateDx.sh aws-mynamespace 1 aRemoteRepo.amazonaws.com dxen my-upload aws-volume-name aws-storage-class derby dxen 171_ambassadorUne fois la base de données transférée, DBTYPE devra être mis à jour afin que vous puissiez augmenter l'échelle des instances. En outre, une fois la base de données transférée, le nombre de répliques peut être augmenté. II existe des options supplémentaires pour Personnalisation du déploiement KubernetesFigure 7. Exemple de mise à niveau
Remarque : Le script de mise à niveau (upgradeDx.sh) utilise la même syntaxe pour le déploiement et la balise d'image est modifiée.Supprimer- Remarque : à cause de la conception, la suppression de l'ensemble du déploiement nécessite plusieurs étapes.
- Pour supprimer le déploiement dans un espace de noms spécifique, exécutez le script removeDx.sh :
./scripts/removeDx.sh NAMESPACE- ESPACE DE NOMS : le projet ou l'espace de noms à créer ou à utiliser pour le déploiement.
- Pour supprimer le déploiement dans un espace de noms spécifique, exécutez le script removeDx.sh :
- Pour supprimer un espace de noms, utilisez l'une des commandes suivantes.
- Commande Kubernetes :
'kubectl delete -f dxNameSpace_NAMESPACE.yaml' where NAMESPACE is the namespace to be removed
- Commande Kubernetes :
- Le volume persistant associé au déploiement doit être nettoyé par votre administrateur. Pour réutiliser un volume persistant, procédez comme suit :
- Ouvrez le volume persistant dans un éditeur visuel (vi) à l'aide de la
- commande Kubernetes :
kubectl edit pv awseks-demo
- commande Kubernetes :
- Supprimez la section
claimRef.claimRef: apiVersion: v1 kind: PersistentVolumeClaim name: dx-deploy-pvc namespace: awseks-demo resourceVersion: "488931120" uid: ebd58361-0e2a-11ea-b02e-02f8fe687954 - Vérifiez que vous avez reçu le message
'persistentvolume/your_namespace edited'. - Vous devrez peut-être supprimer manuellement toutes les données restantes du déploiement précédent.
- Ouvrez le volume persistant dans un éditeur visuel (vi) à l'aide de la
Pour plus d'informations, reportez-vous aux sections suivantes : - Pour mettre à jour le déploiement, exécutez le script updateDx.sh avec les valeurs mises à jour :