Add Kubernetes Deploy
This commit is contained in:
parent
e1cd3640e4
commit
ea6e299ef3
22
README.md
22
README.md
@ -0,0 +1,22 @@
|
||||
# Install Kepler and Electricitymap on HKB cluster.
|
||||
|
||||
## Install Kepler
|
||||
1 - Add Kepler helm repo
|
||||
```
|
||||
helm repo add kepler https://sustainable-computing-io.github.io/kepler-helm-chart
|
||||
```
|
||||
2 - Install Kepler with values.yaml
|
||||
```
|
||||
cd kepler
|
||||
helm install kepler kepler/kepler --namespace kepler --create-namespace --values kepler-values.yaml
|
||||
```
|
||||
3 - Add Grafana Dashboard "kepler-dashboard.json"
|
||||
|
||||
## Install electricitymap exporter
|
||||
1 - Apply all yaml files
|
||||
```
|
||||
cd electricitymap
|
||||
kubectl apply -f electricitymap-deploy.yaml -n kepler
|
||||
kubectl apply -f electricitymap-svc.yaml -n kepler
|
||||
kubectl apply -f service-monitor.yaml -n cattle-monitoring-system
|
||||
```
|
||||
3
electricitymap/.dockerignore
Normal file
3
electricitymap/.dockerignore
Normal file
@ -0,0 +1,3 @@
|
||||
electricitymap-deploy.yaml
|
||||
electricitymap-svc.yaml
|
||||
service-monitor.yaml
|
||||
@ -42,6 +42,7 @@ class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
|
||||
|
||||
self.send_response(200)
|
||||
self.end_headers()
|
||||
self.send_header('Content-type', 'text/plain; version=0.0.4')
|
||||
response_string = f'electricitymap_carbon_intensity{{zone="{ZONE}"}} ' + str(data)
|
||||
self.wfile.write(response_string.encode('utf-8'))
|
||||
|
||||
23
electricitymap/electricitymap-deploy.yaml
Normal file
23
electricitymap/electricitymap-deploy.yaml
Normal file
@ -0,0 +1,23 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: electricitymap-deployment
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: exporter
|
||||
app.kubernetes.io/name: electricitymap
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: exporter
|
||||
app.kubernetes.io/name: electricitymap
|
||||
spec:
|
||||
containers:
|
||||
- name: electricitymap
|
||||
image: hysio-kub-repos.artifact.hysio.mutu.dc1.smhg.adm.ths/electricitymap:1.0.0
|
||||
ports:
|
||||
- containerPort: 8808
|
||||
name: metrics
|
||||
|
||||
16
electricitymap/electricitymap-svc.yaml
Normal file
16
electricitymap/electricitymap-svc.yaml
Normal file
@ -0,0 +1,16 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: electricitymap-service
|
||||
labels:
|
||||
app.kubernetes.io/component: exporter
|
||||
app.kubernetes.io/name: electricitymap
|
||||
spec:
|
||||
selector:
|
||||
app.kubernetes.io/component: exporter
|
||||
app.kubernetes.io/name: electricitymap
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 8808
|
||||
targetPort: metrics
|
||||
name: metrics
|
||||
19
electricitymap/service-monitor.yaml
Normal file
19
electricitymap/service-monitor.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: electricitymap-servicemonitor
|
||||
spec:
|
||||
namespaceSelector:
|
||||
matchNames:
|
||||
- kepler
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: exporter
|
||||
app.kubernetes.io/name: electricitymap
|
||||
jobLabel: app.kubernetes.io/name
|
||||
endpoints:
|
||||
- port: metrics
|
||||
interval: 30s
|
||||
path: "/"
|
||||
scheme: http
|
||||
scrapeTimeout: 15s
|
||||
1024
kepler/kepler-dashboard.json
Normal file
1024
kepler/kepler-dashboard.json
Normal file
File diff suppressed because it is too large
Load Diff
96
kepler/kepler-values.yaml
Normal file
96
kepler/kepler-values.yaml
Normal file
@ -0,0 +1,96 @@
|
||||
---
|
||||
# -- Replaces the name of the chart in the Chart.yaml file
|
||||
nameOverride: ""
|
||||
# -- Replaces the generated name
|
||||
fullnameOverride: ""
|
||||
|
||||
image:
|
||||
# -- Repository to pull the image from
|
||||
repository: "quay.io/sustainable_computing_io/kepler"
|
||||
# -- Image tag, if empty it will get it from the chart's appVersion
|
||||
tag: ""
|
||||
# -- Pull policy
|
||||
pullPolicy: Always
|
||||
|
||||
# -- Secret name for pulling images from private repository
|
||||
imagePullSecrets: []
|
||||
|
||||
# -- Additional DaemonSet annotations
|
||||
annotations: {}
|
||||
|
||||
# -- Additional pod annotations
|
||||
podAnnotations: {}
|
||||
|
||||
# -- Additional pod labels
|
||||
podLabels: {}
|
||||
|
||||
# -- Privileges and access control settings for a Pod (all containers in a pod)
|
||||
podSecurityContext: {}
|
||||
# fsGroup: 2000
|
||||
|
||||
# -- Privileges and access control settings for a container
|
||||
securityContext:
|
||||
privileged: true
|
||||
|
||||
# -- Node selection constraint
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
node-role.kubernetes.io/worker: "true"
|
||||
|
||||
|
||||
# -- Toleration for taints
|
||||
tolerations:
|
||||
- operator: "Exists"
|
||||
|
||||
# -- Affinity rules
|
||||
affinity: {}
|
||||
|
||||
# -- CPU/MEM resources
|
||||
resources: {}
|
||||
|
||||
# -- Extra environment variables
|
||||
extraEnvVars:
|
||||
KEPLER_LOG_LEVEL: "1"
|
||||
ENABLE_GPU: "true"
|
||||
ENABLE_EBPF_CGROUPID: "true"
|
||||
EXPOSE_IRQ_COUNTER_METRICS: "true"
|
||||
EXPOSE_KUBELET_METRICS: "true"
|
||||
ENABLE_PROCESS_METRICS: "true"
|
||||
CPU_ARCH_OVERRIDE: ""
|
||||
CGROUP_METRICS: "*"
|
||||
# REDFISH_PROBE_INTERVAL_IN_SECONDS: "60"
|
||||
# REDFISH_SKIP_SSL_VERIFY: "true"
|
||||
|
||||
canMount:
|
||||
usrSrc: true # /usr/src may not available, ie GKE
|
||||
|
||||
service:
|
||||
annotations: {}
|
||||
type: ClusterIP
|
||||
port: 9102
|
||||
|
||||
serviceAccount:
|
||||
# Specifies whether a service account should be created
|
||||
create: true
|
||||
# Annotations to add to the service account
|
||||
annotations: {}
|
||||
# The name of the service account to use.
|
||||
# If not set and create is true, a name is generated using the fullname template
|
||||
name: ""
|
||||
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
namespace: "cattle-monitoring-system"
|
||||
interval: 30s
|
||||
scrapeTimeout: 5s
|
||||
labels: {}
|
||||
|
||||
redfish:
|
||||
enabled: false
|
||||
name: redfish
|
||||
labels: {}
|
||||
annotations: {}
|
||||
fileContent: |-
|
||||
your_kubelet_node1_name,redfish_username,redfish_password,https://node1_redfish_ip_or_hostname
|
||||
your_kubelet_node2_name,redfish_username,redfish_password,https://node2_redfish_ip_or_hostname
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user