To facilitate the management of Oracle WebLogic Server domains in Kubernetes, we have made available the WebLogic Server Kubernetes Operator images in the Docker Hub repository, https://hub.docker.com/r/oracle/weblogic-kubernetes-operator/.
In this repository, we provide several WebLogic Kubernetes Operator images:
The open source code and documentation for the WebLogic Kubernetes Operator can be found in the GitHub repository, https://github.com/oracle/weblogic-kubernetes-operator.
The WebLogic Server Kubernetes Operator uses the standard Oracle WebLogic Server 18.104.22.168 Docker image from the Docker store. It treats this image as immutable and all of the state is persisted in a Kubernetes persistent volume. This allows us to treat all of the pods as throwaway and replaceable, and it completely eliminates the need to manage state written into Docker containers.
To obtain the WebLogic Kubernetes Operator image from Docker Hub, run:
$ docker pull oracle/weblogic-kubernetes-operator:1.0
The operator is deployed with the provided installation script, kubernetes/create-weblogic-operator.sh. The input to this script is the file, kubernetes/create-operator-inputs.yaml, which needs to be updated to reflect the target environment. Parameters must be provided in the input file. For a description of each parameter, see https://github.com/oracle/weblogic-kubernetes-operator/blob/master/site/installation.md.
The operator provides three REST certificate options:
The operator provides some optional features that can be enabled in the configuration file.
You can choose a load balancer provider for your WebLogic domains running in a Kubernetes cluster. Please refer to Load balancing with Voyager/HAProxy, Load balancing with Traefik, and Load balancing with the Apache HTTP Server for information about the current capabilities and setup instructions for each of the supported load balancers.
Note these limitations:
Note that Ingresses are not created for servers that are not part of a WebLogic Server cluster, including the Administration Server. Such servers are exposed externally using NodePort services.
The operator can install the Elastic Stack and publish its logs to it. If enabled, Elasticsearch and Kibana will be installed in the default namespace, and a Logstash container will be created in the operator pod. Logstash will be configured to publish the operator’s logs to Elasticsearch, and the log data will be available for visualization and analysis in Kibana.
To enable the ELK integration, set the enableELKintegration option to true.
To deploy the operator, run the deployment script and give it the location of your inputs file,
./create-weblogic-operator.sh –i /path/to/create-operator-inputs.yaml.
The script will carry out the following actions:
The script will validate each action before it proceeds.
This will deploy the operator in your Kubernetes cluster. Please refer to the documentation for next steps including using the REST services, creating a WebLogic Server domain, starting a domain, and so on.
Our future plans include, enhancements to the WebLogic Server Kubernetes Operator which can manage a WebLogic domain inside a Docker image as well as on a persistent volume. Enhancements to add CI/CD of WebLogic deployments on Kubernetes with Oracle Container Pipelines, and new features and enhancements over time. Please stay tuned for more information. We hope this announcement is helpful to those of you seeking to deploy WebLogic Server on Kubernetes, and look forward to your feedback.