Running a Containerized WebCenter Content Cluster via Kubernetes

Summary:

In a prior blog written by us, “The Benefits of Running WebCenter Content on Docker,” we discussed the benefits of containerizing WCC instances. However, most enterprise customers will want to scale and cluster their WebCenter instances. Kubernetes provides an easy solution to accomplish this and comes with additional benefits.

  • Better application manageability – Easier to monitor your application’s health. Server logs can be integrated into the Elastic Stack (ElasticSearch/Kibana) as well as Prometheus/Grafana.
  • Setting up clustered environments is easier and automated.
  • Zero downtime patching.
  • Deploy on-prem and in the cloud and migrate between both deployments easily.

So, what is Kubernetes?

Kubernetes is an open-source container orchestration system for automating computer application deployment, scaling, and management. A good analogy for describing Kubernetes is that applications are like a symphony (individual instruments) and the Kubernetes master node that controls actions and monitors the Kubernetes domain is like a conductor.

Architecture:

This section will cover the architecture and available options for deploying a WebCenter environment in Kubernetes.

WebLogic Operator Extension for Kubernetes Operator

Without going into complex detail, about the functions of the master node, and how it monitors and manages applications within the Kubernetes domain, a WebLogic Operator comes as a part of the WebCenter deployment to Kubernetes that extends the functionality of the Operator’s (Master Node’s) API to manage and perform actions properly against the WebCenter domain. It is basically an application-specific controller that gives additional functionalities to the default controller.

Capturing Metrics from Kubernetes Environments

Oracle has developed a new tool called the WebLogic Monitoring Exporter that takes advantage of the WLS RESTful Management API. This tool proves far simpler and more efficient than scraping metrics from WebLogic using a JMX exporter. It is recommended you read our other blog on this, which goes into much more detail about the WebLogic Monitoring Exporter vs. JMX.

Integrating Metrics with the ElasticSearch Stack in Kubernetes

A tool, called the WebLogic Logging Exporter adds an event handler to WebLogic, so that WLS logs can be integrated into Elastic/Kibana in Kubernetes, by utilizing the ElasticSearch REST API.

Load Balancer with Ingress Controller

The WLS Kubernetes Operator supports Traefik, Voyager, NGINX, and Apache webtier loadbalancer. Oracle provides sample installation/configuration scripts and documentation here.

Configuring the Environment

  1. Configuring the Clustered Environment

First, you must configure a Kubernetes cluster on a single or multi-node machine. Multi-node environments are always recommended for production environments. Oracle provides a guide here on creating a cluster consisting of Docker, Kubernetes, and Helm, along with the network configuration. Kubernetes also provides documentation on this found here.

  • Code Repository & Database
  • Get WebCenter Content and Dependent Images

The WebCenter Content image is a self-contained image based upon 12.2.1.4 and above. There are multiple ways to install WCC container images:

  • Build and patch your own WebCenter Content Container Image by using the WebLogic Image Tool. See building the WCC Image documentation.
  • Download a prebuilt image from Oracle Support. Refer to Document 2785094.1. This image is prebuilt by Oracle and contains WCC 12.2.1.4.0 and the latest patch set.
  • For test and development purposes, you can create a WCC image using the Dockerfile described here.
  • Install from the top

You should have the following resources ready before beginning:

  • WebLogic-Kubernetes operator image
  • WebCenter Content Image
  • Database details
  • Kubernetes cluster machine up and running
  • Source code from GitHub

Before creating the domain, you need to perform the WebLogic-Kubernetes Operator install, create a persistent volume, create Kubernetes secrets, and run RCU.  Oracle provides a document on these steps here.

Next, you will need to provide the required details on the create-domain-inputs.yaml file and create and run your domain by following this document.

Next (Refer to prior steps in document)—

  1. Set up load balancer.
  2. Monitor the domain using a JMX exporter with Prometheus/Grafana or the newer and more efficient WebLogic Exporter.
  3. Analyze logs with the Elastic Stack (if necessary).

Note: WebCenter Sites has also been certified by Oracle on Kubernetes.

Is your business looking to take advantage of Docker or Kubernetes-based WebCenter environments? Oftentimes, customers with large WebCenter infrastructure can reap massive benefits when upgrading their environments to containerized environments. Contact Inspired ECM today to learn how we can assist your organization.