k3s/cluster/addons/cluster-monitoring/stackdriver/heapster-controller.yaml

127 lines
3.9 KiB
YAML
Raw Normal View History

2017-03-20 13:34:43 +00:00
{% set base_metrics_memory = "140Mi" -%}
{% set base_metrics_cpu = "80m" -%}
{% set metrics_memory_per_node = 4 -%}
{% set metrics_cpu_per_node = 0.5 -%}
{% set num_nodes = pillar.get('num_nodes', -1) -%}
{% set nanny_memory = "90Mi" -%}
{% set nanny_memory_per_node = 200 -%}
{% if num_nodes >= 0 -%}
{% set nanny_memory = (90 * 1024 + num_nodes * nanny_memory_per_node)|string + "Ki" -%}
{% endif -%}
apiVersion: v1
kind: ServiceAccount
metadata:
name: heapster
namespace: kube-system
labels:
kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile
---
2017-03-20 13:34:43 +00:00
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
2017-08-14 19:44:58 +00:00
name: heapster-v1.4.1
2017-03-20 13:34:43 +00:00
namespace: kube-system
labels:
k8s-app: heapster
kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile
2017-08-14 19:44:58 +00:00
version: v1.4.1
2017-03-20 13:34:43 +00:00
spec:
replicas: 1
selector:
matchLabels:
k8s-app: heapster
2017-08-14 19:44:58 +00:00
version: v1.4.1
2017-03-20 13:34:43 +00:00
template:
metadata:
labels:
k8s-app: heapster
2017-08-14 19:44:58 +00:00
version: v1.4.1
2017-03-20 13:34:43 +00:00
annotations:
scheduler.alpha.kubernetes.io/critical-pod: ''
spec:
containers:
2017-08-14 19:44:58 +00:00
- image: gcr.io/google_containers/heapster-amd64:v1.4.1
2017-03-20 13:34:43 +00:00
name: heapster
livenessProbe:
httpGet:
path: /healthz
port: 8082
scheme: HTTP
initialDelaySeconds: 180
timeoutSeconds: 5
command:
- /heapster
- --source=kubernetes.summary_api:''
2017-08-14 19:44:58 +00:00
- --sink=stackdriver:?cluster_name={{ cluster_name }}&min_interval_sec=100&batch_export_timeout_sec=110
2017-03-20 13:34:43 +00:00
volumeMounts:
- name: ssl-certs
mountPath: /etc/ssl/certs
readOnly: true
- name: usr-ca-certs
mountPath: /usr/share/ca-certificates
readOnly: true
# BEGIN_PROMETHEUS_TO_SD
2017-08-08 05:05:39 +00:00
- name: prom-to-sd
image: gcr.io/google-containers/prometheus-to-sd:v0.2.1
command:
- /monitor
- --source=heapster:http://localhost:8082?whitelisted=stackdriver_requests_count,stackdriver_timeseries_count
- --stackdriver-prefix={{ prometheus_to_sd_prefix }}/addons
- --api-override={{ prometheus_to_sd_endpoint }}
2017-08-08 05:05:39 +00:00
- --pod-id=$(POD_NAME)
- --namespace-id=$(POD_NAMESPACE)
volumeMounts:
- name: ssl-certs
mountPath: /etc/ssl/certs
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
# END_PROMETHEUS_TO_SD
- image: gcr.io/google_containers/addon-resizer:2.0
2017-03-20 13:34:43 +00:00
name: heapster-nanny
resources:
limits:
cpu: 50m
memory: {{ nanny_memory }}
requests:
cpu: 50m
memory: {{ nanny_memory }}
env:
- name: MY_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: MY_POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
command:
- /pod_nanny
- --cpu={{ base_metrics_cpu }}
- --extra-cpu={{ metrics_cpu_per_node }}m
- --memory={{ base_metrics_memory }}
- --extra-memory={{metrics_memory_per_node}}Mi
2017-08-14 19:44:58 +00:00
- --deployment=heapster-v1.4.1
2017-03-20 13:34:43 +00:00
- --container=heapster
- --poll-period=300000
volumes:
- name: ssl-certs
hostPath:
path: "/etc/ssl/certs"
- name: usr-ca-certs
hostPath:
path: "/usr/share/ca-certificates"
serviceAccountName: heapster
2017-03-20 13:34:43 +00:00
tolerations:
- key: "CriticalAddonsOnly"
operator: "Exists"