Skip to content

Commit 2281152

Browse files
committed
add documentation for coherence requirements
1 parent 1b0fc7f commit 2281152

File tree

2 files changed

+105
-0
lines changed

2 files changed

+105
-0
lines changed
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
---
2+
title: "Coherence Requirements"
3+
date: 2019-08-12T12:41:38-04:00
4+
draft: false
5+
---
6+
7+
If you are running Coherence on Kubernetes, either inside a WebLogic domain
8+
or standalone, then there are some additional requirements to make sure
9+
that Coherence can form clusters.
10+
11+
Note that some Fusion Middleware products, like SOA Suite, use Coherence
12+
and so these requirements apply to them.
13+
14+
#### Unicast and Well Known Address
15+
When the first Coherence process starts, it will form a cluster. The next
16+
Coherence process to start (i.e. in a different pod) will use UDP to try
17+
to contact the master. Most Kubernetes overlay network providers do not
18+
support multicast, so you should configure Coherence to use unicast and
19+
provide a "well known address" so that members can find the master.
20+
This is normally done by using the cluster address, i.e. the address of
21+
the Kubernetes service that is pointing to all cluster members.
22+
23+
{{% notice note %}}
24+
If you create your domain using the samples provided in this project, the
25+
cluster will be able to form, you do not need to manually specify WKA.
26+
However, the information is included below for completeness.
27+
{{% /notice %}}
28+
29+
For example, suppose you have a domain called `domain1` and in that domain
30+
you have a cluster called `cluster1` and Coherence is running in that
31+
cluster. You would therefore use the cluster service that is created by
32+
the operator as the well known address. This service, in this example,
33+
would be called `domain1-cluster-cluster1` and follows the pattern:
34+
35+
```
36+
domainUID "-cluster-" cluster name
37+
```
38+
39+
Where `-cluster-` is a string literal.
40+
41+
The Coherence well known addresses are provided in a variable named
42+
`coherence.wka` as shown in the example below:
43+
44+
```
45+
-Dcoherence.wka=domain1-cluster-cluster1
46+
```
47+
48+
#### Operating system library requirements
49+
50+
In order for coherence clusters to form correctly, the `conntrack` library
51+
must be installed. Most Kubernetes distributions will do this for you.
52+
If you have issues with clusters not forming, you should check that
53+
`conntrack` is installed using this command (or equivalent):
54+
55+
```
56+
$ rpm -qa | grep conntrack
57+
libnetfilter_conntrack-1.0.6-1.el7_3.x86_64
58+
conntrack-tools-1.4.4-4.el7.x86_64
59+
```
60+
61+
You should see output similar to that shown above. If you do not, then you
62+
should install `conntrack` using your operating system tools.
63+
64+
#### Firewall (iptables) requirements
65+
66+
Some Kubernetes distributions create `iptables` rules that block some
67+
types of traffic that Coherence requires to form clusters. If you are
68+
not able to form clusters, you can check for this issue using the
69+
following command:
70+
71+
```
72+
# iptables -t nat -v -L POST_public_allow -n
73+
Chain POST_public_allow (1 references)
74+
pkts bytes target prot opt in out source destination
75+
164K 11M MASQUERADE all -- * !lo 0.0.0.0/0 0.0.0.0/0
76+
0 0 MASQUERADE all -- * !lo 0.0.0.0/0 0.0.0.0/0
77+
```
78+
79+
If you see output similar to the example above, i.e. if you see any entries
80+
in this chain, then you need to remove them. You can remove the entries
81+
using this command:
82+
83+
```
84+
# iptables -t nat -v -D POST_public_allow 1
85+
```
86+
87+
Note that you will need to run that command for each line. So in the example
88+
above, you would need to run it twice.
89+
90+
Once you are done, you can run the previous command again and verify that
91+
the output is now an empty list.
92+
93+
After making this change, restart your domain(s) and the Coherence cluster
94+
should now form correctly.
95+
96+
97+

docs-source/content/userguide/managing-domains/fmw-infra/_index.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ pre = "<b> </b>"
1515
* [Create a Kubernetes secret with the RCU credentials](#create-a-kubernetes-secret-with-the-rcu-credentials)
1616
* [Creating an FMW Infrastructure domain](#creating-an-fmw-infrastructure-domain)
1717
* [Patching the FMW Infrastructure image](#patching-the-fmw-infrastructure-image)
18+
* [Additional considerations for Coherence](#additional-considerations-for-coherence)
1819

1920

2021
Starting with the 2.2.0 release, the operator supports FMW Infrastructure domains, that is,
@@ -431,3 +432,10 @@ for more information.
431432

432433
An example of a non-ZDP compliant patch is one that includes a schema change
433434
that cannot be applied dynamically.
435+
436+
#### Additional considerations for Coherence
437+
438+
If you are running a domain which contains Coherence, please refer to
439+
[Coherence requirements]({{< relref "/faq/coherence-requirements.md" >}})
440+
for more information.
441+

0 commit comments

Comments
 (0)