WebLogic Operator

1 개요[ | ]

WebLogic Operator

2 INSTALL THE OPERATOR[ | ]

Console
Copy
root@localhost:~# git clone https://github.com/oracle/weblogic-kubernetes-operator.git
Cloning into 'weblogic-kubernetes-operator'...
remote: Enumerating objects: 110720, done.
remote: Total 110720 (delta 0), reused 0 (delta 0), pack-reused 110720
Receiving objects: 100% (110720/110720), 77.14 MiB | 14.30 MiB/s, done.
Resolving deltas: 100% (66645/66645), done.
Checking out files: 100% (7452/7452), done.
Console
Copy
root@localhost:~# cd weblogic-kubernetes-operator/
root@localhost:~/weblogic-kubernetes-operator# helm install kubernetes/charts/weblogic-operator --name weblogic-operator --namespace weblogic-operator-namespace --set "javaLoggingLevel=FINE" --wait
NAME:   weblogic-operator
LAST DEPLOYED: Wed Dec 18 15:06:44 2019
NAMESPACE: weblogic-operator-namespace
STATUS: DEPLOYED

RESOURCES:
==> v1/ClusterRole
NAME                                                                      AGE
weblogic-operator-namespace-weblogic-operator-clusterrole-domain-admin    16s
weblogic-operator-namespace-weblogic-operator-clusterrole-general         16s
weblogic-operator-namespace-weblogic-operator-clusterrole-namespace       16s
weblogic-operator-namespace-weblogic-operator-clusterrole-nonresource     16s
weblogic-operator-namespace-weblogic-operator-clusterrole-operator-admin  16s

==> v1/ClusterRoleBinding
NAME                                                                             AGE
weblogic-operator-namespace-weblogic-operator-clusterrolebinding-auth-delegator  16s
weblogic-operator-namespace-weblogic-operator-clusterrolebinding-discovery       16s
weblogic-operator-namespace-weblogic-operator-clusterrolebinding-general         16s
weblogic-operator-namespace-weblogic-operator-clusterrolebinding-nonresource     16s

==> v1/ConfigMap
NAME                  DATA  AGE
weblogic-operator-cm  3     16s

==> v1/Pod(related)
NAME                                READY  STATUS   RESTARTS  AGE
weblogic-operator-67b77957ff-nq25r  1/1    Running  0         16s

==> v1/Role
NAME                    AGE
weblogic-operator-role  16s

==> v1/RoleBinding
NAME                                     AGE
weblogic-operator-rolebinding            16s
weblogic-operator-rolebinding-namespace  16s

==> v1/Secret
NAME                       TYPE    DATA  AGE
weblogic-operator-secrets  Opaque  1     16s

==> v1/Service
NAME                            TYPE       CLUSTER-IP     EXTERNAL-IP  PORT(S)   AGE
internal-weblogic-operator-svc  ClusterIP  100.67.154.21  <none>       8082/TCP  16s

==> v1beta1/Deployment
NAME               READY  UP-TO-DATE  AVAILABLE  AGE
weblogic-operator  1/1    1           1          16s
Console
Copy
root@localhost:~/weblogic-kubernetes-operator# kubectl get crd | grep weblogic
domains.weblogic.oracle                2019-12-18T05:56:35Z
Console
Copy
root@localhost:~/weblogic-kubernetes-operator# kubectl get pod -n weblogic-operator-namespace
NAME                                 READY   STATUS    RESTARTS   AGE
weblogic-operator-67b77957ff-nq25r   1/1     Running   0          98s

3 PREPARE TO RUN A DOMAIN[ | ]

Console
Copy
root@localhost:~/weblogic-kubernetes-operator# kubectl -n default create secret generic domain1-weblogic-credentials --from-literal=username=username --from-literal=password=P@ssw0rd
secret/domain1-weblogic-credentials created
Console
Copy
root@localhost:~/weblogic-kubernetes-operator# kubectl -n default get secret domain1-weblogic-credentials -o yaml
apiVersion: v1
data:
  password: UEBzc3cwcmQ=
  username: dXNlcm5hbWU=
kind: Secret
metadata:
  creationTimestamp: "2019-12-18T07:52:58Z"
  name: domain1-weblogic-credentials
  namespace: default
  resourceVersion: "27524934"
  selfLink: /api/v1/namespaces/default/secrets/domain1-weblogic-credentials
  uid: 684daadd-216b-11ea-beca-0a23738ee2fc
type: Opaque
Console
Copy
root@localhost~/weblogic-kubernetes-operator# # docker pull store/oracle/weblogic:12.2.1.3
12.2.1.3: Pulling from store/oracle/weblogic
35defbf6c365: Pull complete
e406c26b7097: Pull complete
13b4283130c6: Pull complete
6382823ee6d3: Pull complete
7f9314b90ead: Pull complete
078f242b0193: Pull complete
a57e5eac3357: Pull complete
Digest: sha256:69eff9b1d19bddd39bdb9e8ce1af23f53eb1aa40753fd85fb830f6fb95217aa0
Status: Downloaded newer image for store/oracle/weblogic:12.2.1.3
Console
Copy
root@localhost:~/weblogic-kubernetes-operator# docker images store/oracle/weblogic
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
store/oracle/weblogic   12.2.1.3            4d0e7bd02c03        6 months ago        1.16GB
Console
Copy
root@localhost:~/weblogic-kubernetes-operator# cd kubernetes/samples/scripts/create-weblogic-domain/domain-home-in-image/
root@localhost:~/weblogic-kubernetes-operator/kubernetes/samples/scripts/create-weblogic-domain/domain-home-in-image# sed 's/container-registry.oracle.com\/middleware\/weblogic/store\/oracle\/weblogic/g' -i create-domain-inputs.yaml
root@localhost:~/weblogic-kubernetes-operator/kubernetes/samples/scripts/create-weblogic-domain/domain-home-in-image# ./create-domain.sh -u username -p P@ssw0rd -i create-domain-inputs.yaml -o ~
Input parameters being used
export version="create-weblogic-sample-domain-inputs-v1"
export adminPort="7001"
export adminServerName="admin-server"
export domainUID="domain1"
export serverStartPolicy="IF_NEEDED"
export clusterName="cluster-1"
export configuredManagedServerCount="5"
export initialManagedServerReplicas="2"
export managedServerNameBase="managed-server"
export managedServerPort="8001"
export productionModeEnabled="true"
export imagePullPolicy="IfNotPresent"
export weblogicCredentialsSecretName="domain1-weblogic-credentials"
export includeServerOutInPodLog="true"
export logHomeOnPV="false"
export logHome="/shared/logs/domain1"
export t3ChannelPort="30012"
export exposeAdminT3Channel="false"
export adminNodePort="30701"
export exposeAdminNodePort="false"
export namespace="default"
javaOptions=-Dweblogic.StdoutDebugEnabled=false
export persistentVolumeClaimName="domain1-weblogic-sample-pvc"
export domainPVMountPath="/shared"
export domainHomeImageBase="store/oracle/weblogic:12.2.1.3"
export domainHomeImageBuildPath="./docker-images/OracleWebLogic/samples/12213-domain-home-in-image"

Cloning into './docker-images'...
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 11423 (delta 0), reused 2 (delta 0), pack-reused 11415
Receiving objects: 100% (11423/11423), 9.24 MiB | 4.80 MiB/s, done.
Resolving deltas: 100% (6704/6704), done.
Generating /root/weblogic-domains/domain1/domain.properties
Generating /root/weblogic-domains/domain1/domain.yaml
Checking to see if the secret domain1-weblogic-credentials exists in namespace default
Context for docker build is /root/weblogic-kubernetes-operator/kubernetes/samples/scripts/create-weblogic-domain/domain-home-in-image/docker-images/OracleWebLogic/samples/12213-domain-home-in-image
Export environment variables from the /root/weblogic-kubernetes-operator/kubernetes/samples/scripts/create-weblogic-domain/domain-home-in-image/docker-images/OracleWebLogic/samples/12213-domain-home-in-image/properties/docker-build/domain.properties properties file
 env_arg: CUSTOM_DOMAIN_NAME=domain1
 env_arg: CUSTOM_ADMIN_NAME=admin-server
 env_arg: CUSTOM_ADMIN_HOST=wlsadmin
 env_arg: CUSTOM_DEBUG_PORT=8453
 env_arg: CUSTOM_IMAGE_TAG=domain-home-in-image:12.2.1.3
 env_arg: CUSTOM_CLUSTER_NAME=cluster-1
BUILD_ARG= --build-arg CUSTOM_DOMAIN_NAME=domain1 --build-arg CUSTOM_ADMIN_NAME=admin-server --build-arg CUSTOM_ADMIN_HOST=wlsadmin --build-arg CUSTOM_ADMIN_HOST=wlsadmin --build-arg CUSTOM_ADMIN_HOST=wlsadmin --build-arg CUSTOM_DEBUG_PORT=8453 --build-arg CUSTOM_CLUSTER_NAME=cluster-1
CUSTOM_IMAGE_TAG  domain-home-in-image:12.2.1.3
Sending build context to Docker daemon  43.52kB
Step 1/19 : FROM  store/oracle/weblogic:12.2.1.3
 ---> 4d0e7bd02c03
Step 2/19 : MAINTAINER Monica Riccelli <monica.riccelli@oracle.com>
 ---> Running in 1764cb1d64d2
Removing intermediate container 1764cb1d64d2
 ---> ed73c8184733
Step 3/19 : ARG CUSTOM_DOMAIN_NAME="${CUSTOM_DOMAIN_NAME:-domain1}"
 ---> Running in 4430e415d0d7
Removing intermediate container 4430e415d0d7
 ---> a17ea37c901a
Step 4/19 : ARG CUSTOM_ADMIN_PORT="${CUSTOM_ADMIN_PORT:-7001}"
 ---> Running in e4c5f6fadc51
Removing intermediate container e4c5f6fadc51
 ---> dc0da74a46a5
Step 5/19 : ARG CUSTOM_MANAGED_SERVER_PORT="${CUSTOM_MANAGED_SERVER_PORT:-8001}"
 ---> Running in 898c35d92dc0
Removing intermediate container 898c35d92dc0
 ---> 23c0d2cb7858
Step 6/19 : ARG CUSTOM_DEBUG_PORT="${CUSTOM_DEBUG_PORT:-8453}"
 ---> Running in 81718d7f7209
Removing intermediate container 81718d7f7209
 ---> 8ef918ebf7b6
Step 7/19 : ARG CUSTOM_ADMIN_NAME="${CUSTOM_ADMIN_NAME:-admin-server}"
 ---> Running in f79c3cbba00a
Removing intermediate container f79c3cbba00a
 ---> 6ecfacca108b
Step 8/19 : ARG CUSTOM_ADMIN_HOST="${CUSTOM_ADMIN_HOST:-wlsadmin}"
 ---> Running in 1484f47fcef8
Removing intermediate container 1484f47fcef8
 ---> 5b1af2b55ea9
Step 9/19 : ARG CUSTOM_CLUSTER_NAME="${CUSTOM_CLUSTER_NAME:-DockerCluster}"
 ---> Running in d086a9c52b3c
Removing intermediate container d086a9c52b3c
 ---> 3105c79a81d1
Step 10/19 : ENV ORACLE_HOME=/u01/oracle     PROPERTIES_FILE_DIR="/u01/oracle/properties"     DOMAIN_NAME="${CUSTOM_DOMAIN_NAME}"     DOMAIN_HOME="/u01/oracle/user_projects/domains/${CUSTOM_DOMAIN_NAME}"     ADMIN_PORT="${CUSTOM_ADMIN_PORT}"     ADMIN_NAME="${CUSTOM_ADMIN_NAME}"     ADMIN_HOST="${CUSTOM_ADMIN_HOST}"     CLUSTER_NAME="${CUSTOM_CLUSTER_NAME}"     MANAGED_SERVER_PORT="${CUSTOM_MANAGED_SERVER_PORT}"     MANAGED_SERV_NAME="${MANAGED_SERV_NAME}"     DEBUG_PORT="8453"     PATH=$PATH:/u01/oracle/oracle_common/common/bin:/u01/oracle/wlserver/common/bin:${DOMAIN_HOME}:${DOMAIN_HOME}/bin:/u01/oracle
 ---> Running in 93d787bbed8f
Removing intermediate container 93d787bbed8f
 ---> 5cc77b401b2f
Step 11/19 : COPY --chown=oracle:oracle container-scripts/* /u01/oracle/
 ---> a6635087655f
Step 12/19 : USER root
 ---> Running in 757ed31d1c9f
Removing intermediate container 757ed31d1c9f
 ---> 52e1e512376d
Step 13/19 : RUN chmod +xw /u01/oracle/*.sh &&     chmod +xw /u01/oracle/*.py &&     mkdir -p ${PROPERTIES_FILE_DIR} &&     chown -R oracle:oracle ${PROPERTIES_FILE_DIR} &&     mkdir -p $DOMAIN_HOME &&     chown -R oracle:oracle $DOMAIN_HOME/.. &&     chmod -R a+xwr $DOMAIN_HOME/..
 ---> Running in ab4d695923c9
Removing intermediate container ab4d695923c9
 ---> c47cd273fc38
Step 14/19 : COPY --chown=oracle:oracle properties/docker-build/domain*.properties ${PROPERTIES_FILE_DIR}/
 ---> b348eea53291
Step 15/19 : USER oracle
 ---> Running in 4e0e162dc38c
Removing intermediate container 4e0e162dc38c
 ---> d8619864cc71
Step 16/19 : RUN /u01/oracle/createWLSDomain.sh &&     echo ". $DOMAIN_HOME/bin/setDomainEnv.sh" >> /u01/oracle/.bashrc &&     chmod -R a+x $DOMAIN_HOME/bin/*.sh  &&     rm ${PROPERTIES_FILE_DIR}/*.properties
 ---> Running in 130389fe4a23
Domain Home is:  /u01/oracle/user_projects/domains/domain1

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

cluster_name             : [cluster-1]
domain_path              : [/u01/oracle/user_projects/domains/domain1]
domain_name              : [domain1]
admin_server_name        : [admin-server]
admin_port               : [7001]
cluster_name             : [cluster-1]
server_port              : [8001]
number_of_ms             : [5]
cluster_type             : [DYNAMIC]
managed_server_name_base : [managed-server]
production_mode_enabled  : [true]
t3_channel_port          : [30012]
t3_public_address        : []
Configuring Dynamic Cluster cluster-1
Creating Server Template: cluster-1-template
Done creating Server Template: cluster-1-template
Done setting attributes for Dynamic Cluster: cluster-1
Domain Created
Domain Updated
Done


Exiting WebLogic Scripting Tool.

Removing intermediate container 130389fe4a23
 ---> 97f98c012524
Step 17/19 : EXPOSE $ADMIN_PORT $MANAGED_SERVER_PORT $DEBUG_PORT
 ---> Running in ddc7e62a586c
Removing intermediate container ddc7e62a586c
 ---> a283bd1dc78f
Step 18/19 : WORKDIR $DOMAIN_HOME
 ---> Running in f77210148b8c
Removing intermediate container f77210148b8c
 ---> 9a7ad87493fa
Step 19/19 : CMD ["startAdminServer.sh"]
 ---> Running in 193d856f89c7
Removing intermediate container 193d856f89c7
 ---> f199d661a5f3
Successfully built f199d661a5f3
Successfully tagged domain-home-in-image:12.2.1.3

Create domain domain1 successfully.

Domain domain1 was created and will be started by the WebLogic Kubernetes Operator

The following files were generated:
  /root/weblogic-domains/domain1/create-domain-inputs.yaml
  /root/weblogic-domains/domain1/domain.yaml

Completed

4 IMAGE[ | ]

Console
Copy
root@localhost:~/weblogic-kubernetes-operator/kubernetes/samples/scripts/create-weblogic-domain/domain-home-in-image# cd /root/weblogic-domains/domain1/
root@localhost:~/weblogic-domains/domain1# ll
total 20
drwxr-xr-x 2 root root 4096 Dec 18 16:54 ./
drwxr-xr-x 3 root root 4096 Dec 18 16:46 ../
-rw-r--r-- 1 root root 6427 Dec 18 16:53 create-domain-inputs.yaml
-rw-r--r-- 1 root root 3820 Dec 18 16:53 domain.yaml
Console
Copy
root@localhost:~/weblogic-domains/domain1# docker images | grep domain-home-in-image
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
domain-home-in-image   12.2.1.3            f199d661a5f3        9 minutes ago       1.16GB
Console
Copy
root@localhost:~/weblogic-domains/domain1# docker tag domain-home-in-image:12.2.1.3 registry:30000/domain-home-in-image:12.2.1.3
root@localhost:~/weblogic-domains/domain1# docker push registry:30000/domain-home-in-image:12.2.1.3
The push refers to repository [registry:30000/domain-home-in-image]
ff713bf8ae11: Pushed
34c9b18ea6ba: Pushed
689dfd4c7253: Pushed
2b97efd03d32: Pushed
ddb8c9c78c7e: Pushed
1d280e199935: Pushed
5983ff8851a6: Pushed
f559b8d9d7be: Pushed
07e3a765efde: Pushed
e06cfdefa4c5: Pushed
c4a7cf6a6169: Pushed
12.2.1.3: digest: sha256:0611a8713bbd32cfc340262250b0d269515f7aa7a1e43a5a141e7de835e032b8 size: 2619
Console
Copy
root@localhost:~/weblogic-domains/domain1# docker images | grep domain-home-in-image
domain-home-in-image                  12.2.1.3            f199d661a5f3        9 minutes ago       1.16GB
registry:30000/domain-home-in-image   12.2.1.3            f199d661a5f3        9 minutes ago       1.16GB
Console
Copy
root@localhost:~/weblogic-domains/domain1# grep image: domain.yaml
  image: "domain-home-in-image:12.2.1.3"
root@localhost:~/weblogic-domains/domain1# sed 's/domain-home-in-image:12.2.1.3/registry:30000\/domain-home-in-image:12.2.1.3/g' -i domain.yaml
root@localhost:~/weblogic-domains/domain1# grep image: domain.yaml
  image: "registry:30000/domain-home-in-image:12.2.1.3"

5 DOMAIN[ | ]

Console
Copy
root@localhost:~/weblogic-domains/domain1# kubectl apply -f domain.yaml
domain.weblogic.oracle/domain1 created
Console
Copy
root@localhost:~/weblogic-domains/domain1# kubectl get all | grep domain1
pod/domain1-admin-server                  1/1     Running   0          8m48s
pod/domain1-managed-server1               1/1     Running   0          8m14s
pod/domain1-managed-server2               1/1     Running   0          8m14s
service/domain1-admin-server        ClusterIP   None             <none>        30012/TCP,7001/TCP          8m48s
service/domain1-cluster-cluster-1   ClusterIP   100.66.79.188    <none>        8001/TCP                    8m14s
service/domain1-managed-server1     ClusterIP   None             <none>        8001/TCP                    8m14s
service/domain1-managed-server2     ClusterIP   None             <none>        8001/TCP                    8m14s

6 삭제[ | ]

Console
Copy
root@localhost:~/weblogic-domains/domain1# kubectl delete domain domain1
domain.weblogic.oracle "domain1" deleted
Console
Copy
root@localhost:~/weblogic-domains/domain1# helm del --purge weblogic-operator
release "weblogic-operator" deleted

7 참고[ | ]