heapster-controller.yaml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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. - /heapster
  61. - --source=kubernetes.summary_api:''
  62. - image: k8s.gcr.io/addon-resizer:1.8.5
  63. name: heapster-nanny
  64. resources:
  65. limits:
  66. cpu: 50m
  67. memory: {{ nanny_memory }}
  68. requests:
  69. cpu: 50m
  70. memory: {{ nanny_memory }}
  71. env:
  72. - name: MY_POD_NAME
  73. valueFrom:
  74. fieldRef:
  75. fieldPath: metadata.name
  76. - name: MY_POD_NAMESPACE
  77. valueFrom:
  78. fieldRef:
  79. fieldPath: metadata.namespace
  80. volumeMounts:
  81. - name: heapster-config-volume
  82. mountPath: /etc/config
  83. command:
  84. - /pod_nanny
  85. - --config-dir=/etc/config
  86. - --cpu={{ base_metrics_cpu }}
  87. - --extra-cpu={{ metrics_cpu_per_node }}m
  88. - --memory={{ base_metrics_memory }}
  89. - --extra-memory={{ metrics_memory_per_node }}Mi
  90. - --threshold=5
  91. - --deployment=heapster-v1.6.0-beta.1
  92. - --container=heapster
  93. - --poll-period=300000
  94. - --estimator=exponential
  95. # Specifies the smallest cluster (defined in number of nodes)
  96. # resources will be scaled to.
  97. - --minClusterSize={{ heapster_min_cluster_size }}
  98. volumes:
  99. - name: heapster-config-volume
  100. configMap:
  101. name: heapster-config
  102. serviceAccountName: heapster
  103. tolerations:
  104. - key: "CriticalAddonsOnly"
  105. operator: "Exists"