heapster-controller.yaml 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. apiVersion: v1
  2. kind: ServiceAccount
  3. metadata:
  4. name: heapster
  5. namespace: kube-system
  6. labels:
  7. addonmanager.kubernetes.io/mode: Reconcile
  8. ---
  9. apiVersion: v1
  10. kind: ConfigMap
  11. metadata:
  12. name: heapster-config
  13. namespace: kube-system
  14. labels:
  15. addonmanager.kubernetes.io/mode: EnsureExists
  16. data:
  17. NannyConfiguration: |-
  18. apiVersion: nannyconfig/v1alpha1
  19. kind: NannyConfiguration
  20. ---
  21. apiVersion: apps/v1
  22. kind: Deployment
  23. metadata:
  24. name: heapster-v1.6.0-beta.1
  25. namespace: kube-system
  26. labels:
  27. k8s-app: heapster
  28. addonmanager.kubernetes.io/mode: Reconcile
  29. version: v1.6.0-beta.1
  30. spec:
  31. replicas: 1
  32. selector:
  33. matchLabels:
  34. k8s-app: heapster
  35. version: v1.6.0-beta.1
  36. template:
  37. metadata:
  38. labels:
  39. k8s-app: heapster
  40. version: v1.6.0-beta.1
  41. annotations:
  42. scheduler.alpha.kubernetes.io/critical-pod: ''
  43. seccomp.security.alpha.kubernetes.io/pod: 'docker/default'
  44. spec:
  45. priorityClassName: system-cluster-critical
  46. securityContext:
  47. supplementalGroups: [ 65534 ]
  48. fsGroup: 65534
  49. containers:
  50. - image: k8s.gcr.io/heapster-amd64:v1.6.0-beta.1
  51. name: heapster
  52. livenessProbe:
  53. httpGet:
  54. path: /healthz
  55. port: 8082
  56. scheme: HTTP
  57. initialDelaySeconds: 180
  58. timeoutSeconds: 5
  59. command:
  60. # On GCP, container.googleapis.com/instance_id node annotation is used to provide instance_id label for Stackdriver
  61. - /heapster
  62. - --source=kubernetes.summary_api:?host_id_annotation=container.googleapis.com/instance_id
  63. - --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&cluster_location={{ cluster_location }}
  64. # BEGIN_PROMETHEUS_TO_SD
  65. - name: prom-to-sd
  66. image: k8s.gcr.io/prometheus-to-sd:v0.5.0
  67. command:
  68. - /monitor
  69. - --source=heapster:http://localhost:8082?whitelisted=stackdriver_requests_count,stackdriver_timeseries_count
  70. - --stackdriver-prefix={{ prometheus_to_sd_prefix }}/addons
  71. - --api-override={{ prometheus_to_sd_endpoint }}
  72. - --pod-id=$(POD_NAME)
  73. - --namespace-id=$(POD_NAMESPACE)
  74. env:
  75. - name: POD_NAME
  76. valueFrom:
  77. fieldRef:
  78. fieldPath: metadata.name
  79. - name: POD_NAMESPACE
  80. valueFrom:
  81. fieldRef:
  82. fieldPath: metadata.namespace
  83. # END_PROMETHEUS_TO_SD
  84. - image: k8s.gcr.io/addon-resizer:1.8.5
  85. name: heapster-nanny
  86. resources:
  87. limits:
  88. cpu: 50m
  89. memory: {{ nanny_memory }}
  90. requests:
  91. cpu: 50m
  92. memory: {{ nanny_memory }}
  93. volumeMounts:
  94. - name: heapster-config-volume
  95. mountPath: /etc/config
  96. env:
  97. - name: MY_POD_NAME
  98. valueFrom:
  99. fieldRef:
  100. fieldPath: metadata.name
  101. - name: MY_POD_NAMESPACE
  102. valueFrom:
  103. fieldRef:
  104. fieldPath: metadata.namespace
  105. command:
  106. - /pod_nanny
  107. - --config-dir=/etc/config
  108. - --cpu={{ base_metrics_cpu }}
  109. - --extra-cpu={{ metrics_cpu_per_node }}m
  110. - --memory={{ base_metrics_memory }}
  111. - --extra-memory={{metrics_memory_per_node}}Mi
  112. - --threshold=5
  113. - --deployment=heapster-v1.6.0-beta.1
  114. - --container=heapster
  115. - --poll-period=300000
  116. - --estimator=exponential
  117. # Specifies the smallest cluster (defined in number of nodes)
  118. # resources will be scaled to.
  119. - --minClusterSize={{ heapster_min_cluster_size }}
  120. volumes:
  121. - name: heapster-config-volume
  122. configMap:
  123. name: heapster-config
  124. serviceAccountName: heapster
  125. tolerations:
  126. - key: "CriticalAddonsOnly"
  127. operator: "Exists"