mirror of https://github.com/k3s-io/k3s
133 lines
4.1 KiB
YAML
133 lines
4.1 KiB
YAML
{% 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
|
|
---
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: heapster-config
|
|
namespace: kube-system
|
|
labels:
|
|
kubernetes.io/cluster-service: "true"
|
|
addonmanager.kubernetes.io/mode: EnsureExists
|
|
data:
|
|
NannyConfiguration: |-
|
|
apiVersion: nannyconfig/v1alpha1
|
|
kind: NannyConfiguration
|
|
---
|
|
apiVersion: extensions/v1beta1
|
|
kind: Deployment
|
|
metadata:
|
|
name: heapster-v1.5.0
|
|
namespace: kube-system
|
|
labels:
|
|
k8s-app: heapster
|
|
kubernetes.io/cluster-service: "true"
|
|
addonmanager.kubernetes.io/mode: Reconcile
|
|
version: v1.5.0
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
k8s-app: heapster
|
|
version: v1.5.0
|
|
template:
|
|
metadata:
|
|
labels:
|
|
k8s-app: heapster
|
|
version: v1.5.0
|
|
annotations:
|
|
scheduler.alpha.kubernetes.io/critical-pod: ''
|
|
spec:
|
|
containers:
|
|
- image: gcr.io/google_containers/heapster-amd64:v1.5.0
|
|
name: heapster
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /healthz
|
|
port: 8082
|
|
scheme: HTTP
|
|
initialDelaySeconds: 180
|
|
timeoutSeconds: 5
|
|
command:
|
|
- /heapster
|
|
- --source=kubernetes.summary_api:''
|
|
- --sink=stackdriver:?cluster_name={{ cluster_name }}&use_old_resources={{ use_old_resources }}&use_new_resources={{ use_new_resources }}&min_interval_sec=100&batch_export_timeout_sec=110
|
|
# BEGIN_PROMETHEUS_TO_SD
|
|
- name: prom-to-sd
|
|
image: gcr.io/google-containers/prometheus-to-sd:v0.2.2
|
|
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 }}
|
|
- --pod-id=$(POD_NAME)
|
|
- --namespace-id=$(POD_NAMESPACE)
|
|
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:1.8.1
|
|
name: heapster-nanny
|
|
resources:
|
|
limits:
|
|
cpu: 50m
|
|
memory: {{ nanny_memory }}
|
|
requests:
|
|
cpu: 50m
|
|
memory: {{ nanny_memory }}
|
|
volumeMounts:
|
|
- name: heapster-config-volume
|
|
mountPath: /etc/config
|
|
env:
|
|
- name: MY_POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.name
|
|
- name: MY_POD_NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: metadata.namespace
|
|
command:
|
|
- /pod_nanny
|
|
- --config-dir=/etc/config
|
|
- --cpu={{ base_metrics_cpu }}
|
|
- --extra-cpu={{ metrics_cpu_per_node }}m
|
|
- --memory={{ base_metrics_memory }}
|
|
- --extra-memory={{metrics_memory_per_node}}Mi
|
|
- --threshold=5
|
|
- --deployment=heapster-v1.5.0
|
|
- --container=heapster
|
|
- --poll-period=300000
|
|
- --estimator=exponential
|
|
volumes:
|
|
- name: heapster-config-volume
|
|
configMap:
|
|
name: heapster-config
|
|
serviceAccountName: heapster
|
|
tolerations:
|
|
- key: "CriticalAddonsOnly"
|
|
operator: "Exists"
|