Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(k8s): base with google-kubernetes-engine overlay example #6041

Merged
merged 2 commits into from
Nov 17, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 2 additions & 7 deletions k8s/base/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
---
resources:
- eth66-peering-tcp.yaml
- eth66-peering-udp.yaml
- http.yaml
- metrics.yaml
- snap-sync-tcp.yaml
- snap-sync-udp.yaml
- statefulset.yaml
- statefulset.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
apiVersion: v1
kind: Service
metadata:
Expand All @@ -6,13 +7,13 @@ metadata:
name: eth66-peering-tcp
spec:
ipFamilies:
- IPv4
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: eth66-pr-tcp
port: 30303
protocol: TCP
targetPort: 30303
- name: eth66-pr-tcp
port: 30303
protocol: TCP
targetPort: 30303
selector:
app: erigon
type: LoadBalancer
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
apiVersion: v1
kind: Service
metadata:
Expand All @@ -6,13 +7,13 @@ metadata:
name: eth66-peering-udp
spec:
ipFamilies:
- IPv4
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: eth66-pr-udp
port: 30303
protocol: UDP
targetPort: 30303
- name: eth66-pr-udp
port: 30303
protocol: UDP
targetPort: 30303
selector:
app: erigon
type: LoadBalancer
13 changes: 7 additions & 6 deletions k8s/base/http.yaml → k8s/base/services/http.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
apiVersion: v1
kind: Service
metadata:
Expand All @@ -6,13 +7,13 @@ metadata:
name: http
spec:
ipFamilies:
- IPv4
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: http
port: 8545
protocol: TCP
targetPort: 8545
- name: http
port: 8545
protocol: TCP
targetPort: 8545
selector:
app: erigon
type: LoadBalancer
type: LoadBalancer
8 changes: 8 additions & 0 deletions k8s/base/services/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
resources:
- eth66-peering-tcp.yaml
- eth66-peering-udp.yaml
- http.yaml
- metrics.yaml
- snap-sync-tcp.yaml
- snap-sync-udp.yaml
11 changes: 6 additions & 5 deletions k8s/base/metrics.yaml → k8s/base/services/metrics.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
apiVersion: v1
kind: Service
metadata:
Expand All @@ -6,12 +7,12 @@ metadata:
name: metrics
spec:
ipFamilies:
- IPv4
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: metrics
port: 6060
protocol: TCP
targetPort: 6060
- name: metrics
port: 6060
protocol: TCP
targetPort: 6060
selector:
app: erigon
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
apiVersion: v1
kind: Service
metadata:
Expand All @@ -6,13 +7,13 @@ metadata:
name: snap-sync-tcp
spec:
ipFamilies:
- IPv4
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: snap-sync-tcp
port: 42069
protocol: TCP
targetPort: 42069
- name: snap-sync-tcp
port: 42069
protocol: TCP
targetPort: 42069
selector:
app: erigon
type: LoadBalancer
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
apiVersion: v1
kind: Service
metadata:
Expand All @@ -6,13 +7,13 @@ metadata:
name: snap-sync-udp
spec:
ipFamilies:
- IPv4
- IPv4
ipFamilyPolicy: SingleStack
ports:
- name: snap-sync-udp
port: 42069
protocol: UDP
targetPort: 42069
- name: snap-sync-udp
port: 42069
protocol: UDP
targetPort: 42069
selector:
app: erigon
type: LoadBalancer
102 changes: 43 additions & 59 deletions k8s/base/statefulset.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
Expand All @@ -17,65 +18,48 @@ spec:
app: erigon
spec:
containers:
- args:
- '--authrpc.vhosts=*'
- '--datadir=/home/erigon/.local/share/erigon'
- '--healthcheck'
- '--log.json'
- '--metrics'
- '--metrics.addr=0.0.0.0'
- '--metrics.port=6060'
- '--nat=none'
- '--private.api.ratelimit=50000'
- '--private.api.addr=0.0.0.0:9090'
- '--torrent.download.rate=3000mb'
- '--torrent.download.slots=200'
- '--verbosity=3'
- —-batchSize=8000M
command:
- erigon
image: erigon-image
livenessProbe:
initialDelaySeconds: 1800
periodSeconds: 20
tcpSocket:
port: 9090
name: erigon
ports:
- containerPort: 9090
name: private-api
- containerPort: 8551
name: engine
- containerPort: 30303
name: eth66-pr-tcp
protocol: TCP
- containerPort: 30303
name: eth66-pr-udp
protocol: UDP
- containerPort: 6060
name: metrics
- containerPort: 6070
name: pprof
- containerPort: 42069
name: snap-sync-tcp
protocol: TCP
- containerPort: 42069
name: snap-sync-udp
protocol: UDP
readinessProbe:
initialDelaySeconds: 1800
periodSeconds: 20
tcpSocket:
port: 9090
resources:
requests:
cpu: 2462m
memory: 16Gi
securityContext:
allowPrivilegeEscalation: false
runAsGroup: 1000
runAsUser: 1000
volumeMounts: []
- args: []
command:
- erigon
env: []
image: thorax/erigon
name: erigon
ports:
- containerPort: 9090
name: private-api
- containerPort: 8551
name: engine
- containerPort: 30303
name: eth66-pr-tcp
protocol: TCP
- containerPort: 30303
name: eth66-pr-udp
protocol: UDP
- containerPort: 8545
name: http
protocol: TCP
- containerPort: 6060
name: metrics
- containerPort: 6070
name: pprof
- containerPort: 42069
name: snap-sync-tcp
protocol: TCP
- containerPort: 42069
name: snap-sync-udp
protocol: UDP
readinessProbe:
tcpSocket:
port: 8545
resources:
requests:
cpu: 2462m
memory: 16Gi
securityContext:
allowPrivilegeEscalation: false
runAsGroup: 1000
runAsUser: 1000
volumeMounts: []
initContainers: []
volumes: []
volumeClaimTemplates: []
12 changes: 12 additions & 0 deletions k8s/google-kubernetes-engine/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
patchesJson6902:
- path: statefulset-erigon-patch.yaml
target:
group: apps
kind: StatefulSet
name: erigon
version: v1
resources:
- ../base
- ../base/services
- podmonitoring.yaml
13 changes: 13 additions & 0 deletions k8s/google-kubernetes-engine/podmonitoring.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
name: erigon
spec:
endpoints:
- interval: 30s
path: /debug/metrics/prometheus
port: metrics
selector:
matchLabels:
app: erigon
70 changes: 70 additions & 0 deletions k8s/google-kubernetes-engine/statefulset-erigon-patch.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
- op: replace
path: /spec/replicas
value: 3
- op: add
path: /spec/template/spec/containers/0/resources/limits
value:
cpu: '9'
memory: 110Gi
- op: replace
path: /spec/template/spec/containers/0/resources/requests/cpu
value: '9'
- op: replace
path: /spec/template/spec/containers/0/resources/requests/memory
value: 110Gi
- op: replace
path: /spec/template/spec/containers/0/args
value:
- '--chain=mainnet'
- '--datadir=/home/erigon/.local/share/erigon'
- '--db.pagesize=64KB'
- '--healthcheck'
- '--http'
- '--http.addr=0.0.0.0'
- '--http.api=eth,erigon,web3,net,debug,ots,trace,txpool'
- '--http.corsdomain=*'
- '--http.vhosts=*'
- '--log.console.verbosity=1'
- '--log.json'
- '--metrics'
- '--metrics.addr=0.0.0.0'
- '--metrics.port=6060'
- '--nat=none'
- '--torrent.download.rate=3000mb'
- '--torrent.download.slots=200'
- '--ws'
- '--ws.compression'
- op: replace
path: /spec/template/spec/containers/0/volumeMounts
value:
- mountPath: /home/erigon/.local/share/erigon
name: mainnet
- op: add
path: /spec/template/spec/initContainers/-
value:
command:
- sh
- '-c'
- chown 1000 -R /home/erigon/.local/share/erigon
image: busybox
name: chown-datadir
securityContext:
capabilities:
add:
- CHOWN
volumeMounts:
- mountPath: /home/erigon/.local/share/erigon
name: mainnet
- op: add
path: /spec/volumeClaimTemplates/-
value:
metadata:
name: mainnet
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 3000Gi
storageClassName: premium-rwo
Loading