Vous pouvez déployer le fichier image dans le cluster Tanzu Kubernetes Grid.
Conditions préalables
- Cluster Tanzu Kubernetes Grid.
- Conteneurisation réussie sur un composant Oracle WebLogic Server.
- Effectuez les étapes suivantes pour déployer l'opérateur Kubernetes WebLogic d'Oracle dans le cluster.
- Exécutez les commandes suivantes :
- Installer l'opérateur WebLogic :
Procédure
- Téléchargez le fichier ZIP d'artefacts d'image à partir du lien fourni dans les détails du composant et extrayez-le.
- Mettez à jour
create_k8s_secrets.sh
avec des détails spécifiques tels que l'espace de noms, le nom d'utilisateur et le mot de passe pour tous les codes secrets.
- Créez un espace de noms de domaine.
# create domain namespace
kubectl create namespace demo
# upgrade weblogic-operator with the Domain namespace
kubectl label ns demo weblogic-operator=enabled
- Créez des codes secrets pour le registre dans le même espace de noms.
#!/bin/bash
set -eu
# Edit these values to change the namespace or domain UID
NAMESPACE=demo
DOMAIN_UID=wldomain1
function create_k8s_secret {
kubectl -n $NAMESPACE delete secret ${DOMAIN_UID}-$1 --ignore-not-found
kubectl -n $NAMESPACE create secret generic ${DOMAIN_UID}-$1 --from-literal=password=$2
kubectl -n $NAMESPACE label secret ${DOMAIN_UID}-$1 weblogic.domainUID=${DOMAIN_UID}
}
function create_paired_k8s_secret {
kubectl -n $NAMESPACE delete secret ${DOMAIN_UID}-$1 --ignore-not-found
kubectl -n $NAMESPACE create secret generic ${DOMAIN_UID}-$1 --from-literal=username=$2 --from-literal=password=$3
kubectl -n $NAMESPACE label secret ${DOMAIN_UID}-$1 weblogic.domainUID=${DOMAIN_UID}
}
# Update <admin-user> and <admin-password> for weblogic-credentials
create_paired_k8s_secret weblogic-credentials <admin-user> <admin-password>
# Update <user> and <password> for jdbc-jdbc-data-source-0
create_paired_k8s_secret jdbc-jdbc-data-source-0 c##test <password>
# Update <password> for runtime-encryption-secret, This is a special secret required by Model in Image.
create_k8s_secret runtime-encryption-secret <password>
- Exécutez le script, vérifiez que les codes secrets sont créés dans l'espace de noms et vérifiez que les codes secrets sont créés.
kubectl get secrets -n demo
#Output
NAME TYPE DATA AGE
default-token-6ls2z kubernetes.io/service-account-token 3 5d13h
docker-secret kubernetes.io/dockerconfigjson 1 4d22h
harbor-cred kubernetes.io/dockerconfigjson 1 4d22h
wldomain1-jdbc-jdbc-data-source-0 Opaque 2 3d14h
wldomain1-runtime-encryption-secret Opaque 1 3d14h
wldomain1-weblogic-credentials Opaque 2 3d14h
- Préparez et déployez le domaine.
- Téléchargez le fichier Domain.yaml.extn, puis ajoutez et mettez à jour les paramètres suivants pour créer le fichier Domain.yaml pour le déploiement.
- image : entrez le nom de l'image de domaine WebLogic
- domainHomeSourceType: FromModel
- webLogicCredentialsSecret
- JAVA_OPTIONS "-Dweblogic.security.SSL.ignoreHostnameVerification=true"
- runtimeEncryptionSecret
- Ajoutez introspectorJobActiveDeadlineSeconds avec une durée en secondes (600, par exemple) pour les réseaux lents si l'espace d'introspection continue de créer et de se terminer en boucle.
- Secrets supplémentaires créés après l'exécution du script précédent, le cas échéant.
Exemple de fichier Domain.yaml
kind: Domain
metadata:
name: wldomain1
spec:
domainHome: /home/oracle/WLDOMAIN1
image: 'imthangadurai/wl_12_1_0_3:1.0.0'
domainHomeSourceType: FromModel
imagePullSecrets:
- name: 'docker-secret'
webLogicCredentialsSecret:
name: wldomain1-weblogic-credentials
clusters:
- clusterName: 'Cluster-0'
replicas: 2
serverPod:
env:
- name: JAVA_OPTIONS
value: "-Dweblogic.security.SSL.ignoreHostnameVerification=true"
configuration:
introspectorJobActiveDeadlineSeconds: 600
model:
domainType: WLS
runtimeEncryptionSecret: 'wldomain1-runtime-encryption-secret'
secrets:
- 'wldomain1-weblogic-credentials'
- 'wldomain1-jdbc-jdbc-data-source-0'
- Déployez le fichier Domain.yaml mis à jour dans le même espace de noms et le même espace d'introspection qui s'affiche en premier et extrait l'image Oracle WebLogic Server ainsi que les espaces de domaine créés (admin, server-0 ou server-1, par exemple)
kubectl apply -f Domain.yaml -n <namespace>
# Watch for the status of the pods
# admin server, managed-server1 and managed-server2 needs to be in running state
kubectl get pods -n demo --watch
NAME READY STATUS RESTARTS AGE
wldomain1-introspector-bq4dt 1/1 Running 0 100s
wldomain1-introspector-bq4dt 0/1 Completed 0 114s
wldomain1-introspector-bq4dt 0/1 Terminating 0 115s
wldomain1-introspector-bq4dt 0/1 Terminating 0 115s
wldomain1-adminserver 0/1 Pending 0 0s
wldomain1-adminserver 0/1 Pending 0 0s
wldomain1-adminserver 0/1 ContainerCreating 0 0s
wldomain1-adminserver 0/1 Running 0 2s
# This confirms the pods are running successfully
kubectl get pods -n demo
NAME READY STATUS RESTARTS AGE
wldomain1-adminserver 1/1 Running 0 16m
wldomain1-server-0 1/1 Running 0 15m
wldomain1-server-1 1/1 Running 0 15m
wldomain1-server-3 1/1 Running 0 15m
wldomain1-server-4 1/1 Running 0 15m
- Effectuez l'une des opérations suivantes pour accéder au serveur d'administration Oracle WebLogic Server :
- Créez un contrôleur d'entrée tel que traefik ou
- Exposez les services à l'aide des commandes suivantes :
kubectl expose pod <pod-name> --port=<port> --target-port=<port> --name porname --type=LoadBalancer
kubectl patch svc portname-p '{"spec": {"type" : "LoadBalancer", "externalIPs":["<LB-IP>"]}}'