Skip to content

Commit 94c1629

Browse files
author
Yannic Nevado Hidalgo
committed
add load balancer configuration
1 parent cc4a412 commit 94c1629

File tree

4 files changed

+267
-1
lines changed

4 files changed

+267
-1
lines changed

Readme.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ $ psql -h <LoadBalancer-IP> -p <LoadBalancer-Port> -d <databasename> -U <databa
8383
$ psql -d <databasename> -U <databaseuser>
8484
```
8585

86+
### Delete Postgres Cluster
87+
88+
```shell
89+
kubectl delete postgresql acid-minimal-cluster --namespace zalando-postgres
90+
```
91+
8692
## Referenced
8793

8894
* [Postgres Operator-Github](https://github.com/zalando/postgres-operator)
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
namespace: metallb-system
5+
name: config
6+
data:
7+
config: |
8+
address-pools:
9+
- name: default
10+
protocol: layer2
11+
# ip addr range
12+
addresses:
13+
- 192.168.224.106-192.168.224.200

loadbalancer/metallb.yaml

Lines changed: 247 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,247 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
name: metallb-system
5+
labels:
6+
app: metallb
7+
---
8+
apiVersion: v1
9+
kind: ServiceAccount
10+
metadata:
11+
namespace: metallb-system
12+
name: controller
13+
labels:
14+
app: metallb
15+
---
16+
apiVersion: v1
17+
kind: ServiceAccount
18+
metadata:
19+
namespace: metallb-system
20+
name: speaker
21+
labels:
22+
app: metallb
23+
---
24+
apiVersion: rbac.authorization.k8s.io/v1
25+
kind: ClusterRole
26+
metadata:
27+
name: metallb-system:controller
28+
labels:
29+
app: metallb
30+
rules:
31+
- apiGroups: [""]
32+
resources: ["services"]
33+
verbs: ["get", "list", "watch", "update"]
34+
- apiGroups: [""]
35+
resources: ["services/status"]
36+
verbs: ["update"]
37+
- apiGroups: [""]
38+
resources: ["events"]
39+
verbs: ["create", "patch"]
40+
---
41+
apiVersion: rbac.authorization.k8s.io/v1
42+
kind: ClusterRole
43+
metadata:
44+
name: metallb-system:speaker
45+
labels:
46+
app: metallb
47+
rules:
48+
- apiGroups: [""]
49+
resources: ["services", "endpoints", "nodes"]
50+
verbs: ["get", "list", "watch"]
51+
---
52+
apiVersion: rbac.authorization.k8s.io/v1
53+
kind: Role
54+
metadata:
55+
namespace: metallb-system
56+
name: leader-election
57+
labels:
58+
app: metallb
59+
rules:
60+
- apiGroups: [""]
61+
resources: ["endpoints"]
62+
resourceNames: ["metallb-speaker"]
63+
verbs: ["get", "update"]
64+
- apiGroups: [""]
65+
resources: ["endpoints"]
66+
verbs: ["create"]
67+
---
68+
apiVersion: rbac.authorization.k8s.io/v1
69+
kind: Role
70+
metadata:
71+
namespace: metallb-system
72+
name: config-watcher
73+
labels:
74+
app: metallb
75+
rules:
76+
- apiGroups: [""]
77+
resources: ["configmaps"]
78+
verbs: ["get", "list", "watch"]
79+
- apiGroups: [""]
80+
resources: ["events"]
81+
verbs: ["create"]
82+
---
83+
## Role bindings
84+
apiVersion: rbac.authorization.k8s.io/v1
85+
kind: ClusterRoleBinding
86+
metadata:
87+
name: metallb-system:controller
88+
labels:
89+
app: metallb
90+
subjects:
91+
- kind: ServiceAccount
92+
name: controller
93+
namespace: metallb-system
94+
roleRef:
95+
apiGroup: rbac.authorization.k8s.io
96+
kind: ClusterRole
97+
name: metallb-system:controller
98+
---
99+
apiVersion: rbac.authorization.k8s.io/v1
100+
kind: ClusterRoleBinding
101+
metadata:
102+
name: metallb-system:speaker
103+
labels:
104+
app: metallb
105+
subjects:
106+
- kind: ServiceAccount
107+
name: speaker
108+
namespace: metallb-system
109+
roleRef:
110+
apiGroup: rbac.authorization.k8s.io
111+
kind: ClusterRole
112+
name: metallb-system:speaker
113+
---
114+
apiVersion: rbac.authorization.k8s.io/v1
115+
kind: RoleBinding
116+
metadata:
117+
namespace: metallb-system
118+
name: config-watcher
119+
labels:
120+
app: metallb
121+
subjects:
122+
- kind: ServiceAccount
123+
name: controller
124+
- kind: ServiceAccount
125+
name: speaker
126+
roleRef:
127+
apiGroup: rbac.authorization.k8s.io
128+
kind: Role
129+
name: config-watcher
130+
---
131+
apiVersion: rbac.authorization.k8s.io/v1
132+
kind: RoleBinding
133+
metadata:
134+
namespace: metallb-system
135+
name: leader-election
136+
labels:
137+
app: metallb
138+
subjects:
139+
- kind: ServiceAccount
140+
name: speaker
141+
roleRef:
142+
apiGroup: rbac.authorization.k8s.io
143+
kind: Role
144+
name: leader-election
145+
---
146+
apiVersion: apps/v1beta2
147+
kind: DaemonSet
148+
metadata:
149+
namespace: metallb-system
150+
name: speaker
151+
labels:
152+
app: metallb
153+
component: speaker
154+
spec:
155+
selector:
156+
matchLabels:
157+
app: metallb
158+
component: speaker
159+
template:
160+
metadata:
161+
labels:
162+
app: metallb
163+
component: speaker
164+
annotations:
165+
prometheus.io/scrape: "true"
166+
prometheus.io/port: "7472"
167+
spec:
168+
serviceAccountName: speaker
169+
terminationGracePeriodSeconds: 0
170+
hostNetwork: true
171+
containers:
172+
- name: speaker
173+
image: metallb/speaker:v0.6.1
174+
imagePullPolicy: IfNotPresent
175+
args:
176+
- --port=7472
177+
- --config=config
178+
env:
179+
- name: METALLB_NODE_NAME
180+
valueFrom:
181+
fieldRef:
182+
fieldPath: spec.nodeName
183+
ports:
184+
- name: monitoring
185+
containerPort: 7472
186+
resources:
187+
limits:
188+
cpu: 100m
189+
memory: 100Mi
190+
securityContext:
191+
allowPrivilegeEscalation: false
192+
readOnlyRootFilesystem: true
193+
capabilities:
194+
drop:
195+
- all
196+
add:
197+
- net_raw
198+
---
199+
apiVersion: apps/v1beta2
200+
kind: Deployment
201+
metadata:
202+
namespace: metallb-system
203+
name: controller
204+
labels:
205+
app: metallb
206+
component: controller
207+
spec:
208+
revisionHistoryLimit: 3
209+
selector:
210+
matchLabels:
211+
app: metallb
212+
component: controller
213+
template:
214+
metadata:
215+
labels:
216+
app: metallb
217+
component: controller
218+
annotations:
219+
prometheus.io/scrape: "true"
220+
prometheus.io/port: "7472"
221+
spec:
222+
serviceAccountName: controller
223+
terminationGracePeriodSeconds: 0
224+
securityContext:
225+
runAsNonRoot: true
226+
runAsUser: 65534 # nobody
227+
containers:
228+
- name: controller
229+
image: metallb/controller:v0.6.1
230+
imagePullPolicy: IfNotPresent
231+
args:
232+
- --port=7472
233+
- --config=config
234+
ports:
235+
- name: monitoring
236+
containerPort: 7472
237+
resources:
238+
limits:
239+
cpu: 100m
240+
memory: 100Mi
241+
242+
securityContext:
243+
allowPrivilegeEscalation: false
244+
capabilities:
245+
drop:
246+
- all
247+
readOnlyRootFilesystem: true

manifests/minimal-postgres-manifest.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ spec:
1919
storageClass: standard
2020
# number of pods
2121
# 1 is master, others replicas
22-
numberOfInstances: 3
22+
numberOfInstances: 2
2323
# define some users with access rights
2424
users:
2525
zalando: # database owner

0 commit comments

Comments
 (0)