For use in the following steps:
Create a Kubernetes Secret for the WebLogic administrator credentials containing the username
and password
for the domain, using the create-weblogic-credentials script:
$ kubernetes/samples/scripts/create-weblogic-domain-credentials/create-weblogic-credentials.sh \
-u <username> -p <password> -n sample-domain1-ns -d sample-domain1
The sample will create a secret named domainUID-weblogic-credentials
where the domainUID
is replaced
with the value you provided. For example, the command above would create a secret named
sample-domain1-weblogic-credentials
.
Create a new image with a domain home by running the create-domain script. First, copy the sample create-domain-inputs.yaml file and update your copy with:
domainUID
: sample-domain1
image
: Leave empty unless you need to tag the new image that the script builds to a different name.
For example if you are using a remote cluster that will need to pull the image from a Docker registry,
then you should set this value to the fully qualified image name. Note that you will need to
push the image manually.weblogicCredentialsSecretName
: sample-domain1-weblogic-credentials
namespace
: sample-domain1-ns
domainHomeImageBase
: container-registry.oracle.com/middleware/weblogic:12.2.1.4
For example, assuming you named your copy my-inputs.yaml
:
$ cd kubernetes/samples/scripts/create-weblogic-domain/domain-home-in-image
$ ./create-domain.sh -i my-inputs.yaml -o /<your output directory> -u <username> -p <password> -e
You need to provide the same WebLogic domain administrator user name and password in the -u
and -p
options
respectively, as you provided when creating the Kubernetes Secret in Step 2.
Confirm that the operator started the servers for the domain:
a. Use kubectl
to show that the domain resource was created:
$ kubectl describe domain sample-domain1 -n sample-domain1-ns
b. After a short time, you will see the Administration Server and Managed Servers running.
$ kubectl get pods -n sample-domain1-ns
c. You should also see all the Kubernetes Services for the domain.
$ kubectl get services -n sample-domain1-ns
Create an ingress for the domain, in the domain namespace, by using the sample Helm chart:
$ helm install sample-domain1-ingress kubernetes/samples/charts/ingress-per-domain \
--namespace sample-domain1-ns \
--set wlsDomain.domainUID=sample-domain1 \
--set traefik.hostname=sample-domain1.org
To confirm that the load balancer noticed the new ingress and is successfully routing to the domain’s server pods, you can send a request to the URL for the “WebLogic ReadyApp framework”, as shown in the example below, which will return a HTTP 200 status code.
$ curl -v -H 'host: sample-domain1.org' http://localhost:30305/weblogic/ready
About to connect() to localhost port 30305 (#0)
Trying 10.196.1.64...
Connected to localhost (10.196.1.64) port 30305 (#0)
> GET /weblogic/ HTTP/1.1
> User-Agent: curl/7.29.0
> Accept: */*
> host: domain1.org
>
< HTTP/1.1 200 OK
< Content-Length: 0
< Date: Thu, 20 Dec 2018 14:52:22 GMT
< Vary: Accept-Encoding
< Connection #0 to host localhost left intact
Depending on where your Kubernetes cluster is running, you may need to open firewall ports or update security lists to allow ingress to this port.
To access the WebLogic Server Administration Console:
a. Edit the my-inputs.yaml
file (assuming that you named your copy my-inputs.yaml
) to set exposedAdminNodePort: true
.
b. Open a browser to http://localhost:30701
.
Do not use the WebLogic Server Administration Console to start or stop servers. See Starting and stopping servers.