@@ -39,50 +39,53 @@ If you want to create external access services manually, follow the instructions
39
39
### Single server
40
40
41
41
For a single server deployment, the operator creates a single
42
- ` Service ` named ` <cluster -name> ` . This service has a normal cluster IP
42
+ ` Service ` named ` <deployment -name> ` . This service has a normal cluster IP
43
43
address.
44
44
45
45
### Full cluster
46
46
47
47
For a full cluster deployment, the operator creates two ` Services ` .
48
48
49
- - ` <cluster -name>_servers ` a headless ` Service ` intended to provide
49
+ - ` <deployment -name>-int ` a headless ` Service ` intended to provide
50
50
DNS names for all pods created by the operator.
51
51
It selects all ArangoDB & ArangoSync servers in the cluster.
52
52
53
- - ` <cluster -name> ` a normal ` Service ` that selects only the coordinators
53
+ - ` <deployment -name> ` a normal ` Service ` that selects only the coordinators
54
54
of the cluster. This ` Service ` is configured with ` ClientIP ` session
55
55
affinity. This is needed for cursor requests, since they are bound to
56
56
a specific coordinator.
57
57
58
58
When the coordinators are asked to provide endpoints of the cluster
59
59
(e.g. when calling ` client.SynchronizeEndpoints() ` in the go driver)
60
60
the DNS names of the individual ` Pods ` will be returned
61
- (` <pod>.<cluster -name>_servers .<namespace>.svc ` )
61
+ (` <pod>.<deployment -name>-int .<namespace>.svc ` )
62
62
63
63
### Full cluster with DC2DC
64
64
65
65
For a full cluster with datacenter replication deployment,
66
66
the same ` Services ` are created as for a Full cluster, with the following
67
67
additions:
68
68
69
- - ` <cluster -name>_sync ` a normal ` Service ` that selects only the syncmasters
69
+ - ` <deployment -name>-sync ` a normal ` Service ` that selects only the syncmasters
70
70
of the cluster.
71
71
72
72
## Load balancer
73
73
74
- To reach the ArangoDB servers from outside the Kubernetes cluster, you
75
- have to deploy additional services.
74
+ If you want full control of the ` Services ` needed to access the ArangoDB deployment
75
+ from outside your Kubernetes cluster, set ` spec.externalAccess.Type ` of the ` ArangoDeployment ` to ` None `
76
+ and create a ` Service ` as specified below.
76
77
77
- You can use ` LoadBalancer ` or ` NodePort ` services , depending on your
78
+ Create a ` Service ` of type ` LoadBalancer ` or ` NodePort ` , depending on your
78
79
Kubernetes deployment.
79
80
80
81
This service should select:
81
82
82
- - ` arangodb_cluster_name : <cluster -name>`
83
+ - ` arango_deployment : <deployment -name>`
83
84
- ` role: coordinator `
84
85
85
- For example:
86
+ The following example yields a service of type ` LoadBalancer ` with a specific
87
+ load balancer IP address.
88
+ With this service, the ArangoDB cluster can now be reached on ` https://1.2.3.4:8529 ` .
86
89
87
90
``` yaml
88
91
kind : Service
@@ -91,7 +94,27 @@ metadata:
91
94
name : arangodb-cluster-exposed
92
95
spec :
93
96
selector :
94
- arangodb_cluster_name : arangodb-cluster
97
+ arango_deployment : arangodb-cluster
98
+ role : coordinator
99
+ type : LoadBalancer
100
+ loadBalancerIP : 1.2.3.4
101
+ ports :
102
+ - protocol : TCP
103
+ port : 8529
104
+ targetPort : 8529
105
+ ` ` `
106
+
107
+ The following example yields a service of type ` NodePort` with the ArangoDB
108
+ cluster exposed on port 30529 of all nodes of the Kubernetes cluster.
109
+
110
+ ` ` ` yaml
111
+ kind: Service
112
+ apiVersion: v1
113
+ metadata:
114
+ name: arangodb-cluster-exposed
115
+ spec:
116
+ selector:
117
+ arango_deployment: arangodb-cluster
95
118
role: coordinator
96
119
type: NodePort
97
120
ports:
0 commit comments