You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: site/domains.md
+55-9Lines changed: 55 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,8 +2,22 @@
2
2
3
3
## Create and manage WebLogic domains
4
4
5
-
In this version of the operator, a WebLogic domain can be persisted either to a persistent volume (PV) or in a Docker image.
6
-
(Describe the pros and cons of both these approaches.)
5
+
In this version of the operator, a WebLogic domain can be located either in a persistent volume (PV) or in a Docker image.
6
+
There are advantages to both approaches, and there are sometimes technical limitations of various
7
+
cloud providers that may make one approach better suited to your needs.
8
+
You can also mix and match on a domain by domain basis.
9
+
10
+
| Domain on a persistent volume | Domain in a Docker image |
11
+
| --- | --- |
12
+
| Allows you to use the same standard read-only Docker image for every server in every domain. | Requires a different image for each domain, but all servers in that domain use the same image. |
13
+
| No state is kept in Docker images making them completely throw away (cattle not pets). | Runtime state should not be kept in the images, but applications and confguration are. |
14
+
| The domain is long-lived, so you can mutate the configuration or deploy new applications using standard methods (admin console, WLST, etc.) | If you want to mutate the domain configuration or deploy application updates, you must create a new image. |
15
+
| Logs are automatically placed on persistent storage. | Logs are kept in the images, and sent to the Pod's log (stdout) unless you manually place them on persistent storage. |
16
+
| Patches can be applied by simply changing the image and rolling the domain. | To apply patches, you must create a new domain-specific image and then roll the domain. |
17
+
| Many cloud providers do not provide persistent volumes that are shared across availability zones, so you may not be able to use a single persistent volume. You may need to use some kind of volume replication technology or a clustered file system. | You do not have to worry about volume replication across availability zones since each Pod has its own copy of the domain. WebLogic replication will handle propagation of any online configuration changes. |
18
+
| CI/CD pipelines may be more complicated because you would probably need to run WLST against the live domain directory to effect changes. | CI/CD pipelines are simpler because you can create the whole domain in the image and don't have to worry about a persistent copy of the domain. |
19
+
| There are less images to manage and store, which could provide significant storage and network savings. | There are more images to manage and store in this approach. |
20
+
| You may be able to use standard Oracle-provided images or at least a very small number of self-built images, e.g. with patches installed. | You may need to do more work to set up processes to build and maintain your images. |
7
21
8
22
* WebLogic binary image when domain is persisted to a PV (as in Operator v1.1)
9
23
* WebLogic domain image where the domain is persisted to a Docker image (new for Operator v2.0). The WebLogic domain image will contain the WebLogic binaries, domain configuration, and applications.
@@ -17,26 +31,58 @@ You create the WebLogic domain inside of a Docker image or in a PV using WebLogi
17
31
18
32
Perform these steps to prepare your Kubernetes cluster to run a WebLogic domain:
19
33
20
-
* Create the domain namespace. One or more domains can share a namespace.
21
-
* Define RBAC roles for the domain.
22
-
* Create a Kubernetes secret for the Administration Server boot credentials.
23
-
* Optionally, [create a PV & persistent volume claim (PVC)](kubernetes/samples/scripts/create-weblogic-domain-pv-pvc/README.md) which can hold the domain home, logs, and application binaries.
24
-
*[Configure a load balancer](kubernetes/samples/charts/README.md) to manage the domains and ingresses.
34
+
1. Create the domain namespace(s). One or more domains can share a namespace. A single instance of the operator can manage multiple namespaces.
35
+
36
+
```
37
+
kubectl create namespace domain-namespace-1
38
+
```
39
+
40
+
Replace `domain-namespace-1` with name you want to use. The name must follow standard Kubernetes naming conventions, i.e. lower case,
41
+
numbers and hyphens.
42
+
43
+
1. Define RBAC roles for the domain. **TODO** what RBAC roles?
44
+
1. Create a Kubernetes secret containing the Administration Server boot credentials. You can do this manually or using
45
+
[the provided sample](/kubernetes/samples/scripts/create-weblogic-domain-credentials/README.md). To create
Replace `domain-namespace-1` with the namespace that the domain will be in.
56
+
Replace `domain1-weblogic-credentials` with the name of the secret. The operator expects the secret name to be
57
+
the `domainUID` followed by the literal string `-weblogic-credentials` and many of the samples assume this name.
58
+
Replace the string `weblogic` in the third line with the username for the administrative user.
59
+
Replace the string `welcome1` in the fourth line with the password.
60
+
61
+
1. Optionally, [create a PV & persistent volume claim (PVC)](kubernetes/samples/scripts/create-weblogic-domain-pv-pvc/README.md) which can hold the domain home, logs, and application binaries.
62
+
Even if you put your domain in a Docker image, you may wish to put the logs on a persistent volume so that they are avilable after the Pods terminate.
63
+
This may be instead of, or as well as, other approaches like streaming logs into Elasticsearch.
64
+
1.[Configure load balancer(s)](kubernetes/samples/charts/README.md) to manage access to any WebLogic clusters.
25
65
26
66
### Important considerations for WebLogic domains in Kubernetes
27
67
28
68
Please be aware of the following important considerations for WebLogic domains
29
69
running in Kubernetes.
30
70
31
-
* Channel Listen Addresses in a configuration must either be left completely unset (e.g. not set to anything), or must be set to the exact required value of ‘DOMAIN_UID-SERVER_NAME’ (with all lower case, underscores converted to dashes). This includes default, SSL, admin, and custom channels.
71
+
* Channel Listen Addresses in a configuration must either be left completely unset (e.g. not set to anything), or must be set to the exact required value, which will be in the form of the `domainUID`
72
+
followed by a hyphen and then the server name (with all lower case, underscores converted to dashes). For example `domain1-admin-server`. This includes default, SSL, admin, and custom channels.
73
+
* If you choose to expose any WebLogic channels outside the Kubernetes cluster, e.g. the administration port or a T3 channel to
74
+
allow WLST access, you need to ensure that you allocate each channel a unique port number across the entire
75
+
Kubernetes cluster. If you expose the administration port in each WebLogic domain in the Kubernetes cluster, then each one must
76
+
have a different port. This is required because `NodePorts` are used to expose channels outside the Kubernetes cluster.
77
+
* If using a `hostPath` persistent volume, then it must be available on all worker nodes in the cluster and have read/write/many permissions for all container/pods in the WebLogic Server deployment. Be aware
78
+
that many cloud provider's volume providers may no support volumes across availability zones. You may want to use NFS or a clustered file system to work around this limitation.
32
79
33
80
The following features are not certified or supported in this release:
34
81
35
82
* Whole Server Migration,
36
83
* Consensus Leasing,
37
84
* Node Manager (although it is used internally for the liveness probe and to start WebLogic Server instances),
38
85
* Multicast,
39
-
* If using a hostPath persistent volume, then it must have read/write/many permissions for all container/pods in the WebLogic Server deployment,
0 commit comments