mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Add stackdriver monitoring option
This commit is contained in:
parent
e38c575ae6
commit
a737fec50b
@ -0,0 +1,96 @@
|
|||||||
|
{% 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: extensions/v1beta1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: heapster-v1.3.0
|
||||||
|
namespace: kube-system
|
||||||
|
labels:
|
||||||
|
k8s-app: heapster
|
||||||
|
kubernetes.io/cluster-service: "true"
|
||||||
|
addonmanager.kubernetes.io/mode: Reconcile
|
||||||
|
version: v1.3.0
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
k8s-app: heapster
|
||||||
|
version: v1.3.0
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
k8s-app: heapster
|
||||||
|
version: v1.3.0
|
||||||
|
annotations:
|
||||||
|
scheduler.alpha.kubernetes.io/critical-pod: ''
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: gcr.io/google_containers/heapster-amd64:v1.3.0
|
||||||
|
name: heapster
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 8082
|
||||||
|
scheme: HTTP
|
||||||
|
initialDelaySeconds: 180
|
||||||
|
timeoutSeconds: 5
|
||||||
|
command:
|
||||||
|
- /heapster
|
||||||
|
- --source=kubernetes.summary_api:''
|
||||||
|
- --sink=stackdriver
|
||||||
|
# TODO: add --disable_export when it's merged into Heapster release
|
||||||
|
volumeMounts:
|
||||||
|
- name: ssl-certs
|
||||||
|
mountPath: /etc/ssl/certs
|
||||||
|
readOnly: true
|
||||||
|
- name: usr-ca-certs
|
||||||
|
mountPath: /usr/share/ca-certificates
|
||||||
|
readOnly: true
|
||||||
|
- image: gcr.io/google_containers/addon-resizer:1.7
|
||||||
|
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
|
||||||
|
- --threshold=5
|
||||||
|
- --deployment=heapster-v1.3.0
|
||||||
|
- --container=heapster
|
||||||
|
- --poll-period=300000
|
||||||
|
- --estimator=exponential
|
||||||
|
volumes:
|
||||||
|
- name: ssl-certs
|
||||||
|
hostPath:
|
||||||
|
path: "/etc/ssl/certs"
|
||||||
|
- name: usr-ca-certs
|
||||||
|
hostPath:
|
||||||
|
path: "/usr/share/ca-certificates"
|
||||||
|
tolerations:
|
||||||
|
- key: "CriticalAddonsOnly"
|
||||||
|
operator: "Exists"
|
@ -0,0 +1,15 @@
|
|||||||
|
kind: Service
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: heapster
|
||||||
|
namespace: kube-system
|
||||||
|
labels:
|
||||||
|
kubernetes.io/cluster-service: "true"
|
||||||
|
addonmanager.kubernetes.io/mode: Reconcile
|
||||||
|
kubernetes.io/name: "Heapster"
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: 8082
|
||||||
|
selector:
|
||||||
|
k8s-app: heapster
|
@ -102,6 +102,7 @@ ENABLE_L7_LOADBALANCING="${KUBE_ENABLE_L7_LOADBALANCING:-glbc}"
|
|||||||
# none - No cluster monitoring setup
|
# none - No cluster monitoring setup
|
||||||
# influxdb - Heapster, InfluxDB, and Grafana
|
# influxdb - Heapster, InfluxDB, and Grafana
|
||||||
# google - Heapster, Google Cloud Monitoring, and Google Cloud Logging
|
# google - Heapster, Google Cloud Monitoring, and Google Cloud Logging
|
||||||
|
# stackdriver - Heapster, Google Cloud Monitoring (schema container), and Google Cloud Logging
|
||||||
# googleinfluxdb - Enable influxdb and google (except GCM)
|
# googleinfluxdb - Enable influxdb and google (except GCM)
|
||||||
# standalone - Heapster only. Metrics available via Heapster REST API.
|
# standalone - Heapster only. Metrics available via Heapster REST API.
|
||||||
ENABLE_CLUSTER_MONITORING="${KUBE_ENABLE_CLUSTER_MONITORING:-influxdb}"
|
ENABLE_CLUSTER_MONITORING="${KUBE_ENABLE_CLUSTER_MONITORING:-influxdb}"
|
||||||
|
@ -106,6 +106,7 @@ ENABLE_L7_LOADBALANCING="${KUBE_ENABLE_L7_LOADBALANCING:-glbc}"
|
|||||||
# none - No cluster monitoring setup
|
# none - No cluster monitoring setup
|
||||||
# influxdb - Heapster, InfluxDB, and Grafana
|
# influxdb - Heapster, InfluxDB, and Grafana
|
||||||
# google - Heapster, Google Cloud Monitoring, and Google Cloud Logging
|
# google - Heapster, Google Cloud Monitoring, and Google Cloud Logging
|
||||||
|
# stackdriver - Heapster, Google Cloud Monitoring (schema container), and Google Cloud Logging
|
||||||
# googleinfluxdb - Enable influxdb and google (except GCM)
|
# googleinfluxdb - Enable influxdb and google (except GCM)
|
||||||
# standalone - Heapster only. Metrics available via Heapster REST API.
|
# standalone - Heapster only. Metrics available via Heapster REST API.
|
||||||
ENABLE_CLUSTER_MONITORING="${KUBE_ENABLE_CLUSTER_MONITORING:-influxdb}"
|
ENABLE_CLUSTER_MONITORING="${KUBE_ENABLE_CLUSTER_MONITORING:-influxdb}"
|
||||||
|
@ -1113,6 +1113,7 @@ function start-kube-addons {
|
|||||||
# Set up manifests of other addons.
|
# Set up manifests of other addons.
|
||||||
if [[ "${ENABLE_CLUSTER_MONITORING:-}" == "influxdb" ]] || \
|
if [[ "${ENABLE_CLUSTER_MONITORING:-}" == "influxdb" ]] || \
|
||||||
[[ "${ENABLE_CLUSTER_MONITORING:-}" == "google" ]] || \
|
[[ "${ENABLE_CLUSTER_MONITORING:-}" == "google" ]] || \
|
||||||
|
[[ "${ENABLE_CLUSTER_MONITORING:-}" == "stackdriver" ]] || \
|
||||||
[[ "${ENABLE_CLUSTER_MONITORING:-}" == "standalone" ]] || \
|
[[ "${ENABLE_CLUSTER_MONITORING:-}" == "standalone" ]] || \
|
||||||
[[ "${ENABLE_CLUSTER_MONITORING:-}" == "googleinfluxdb" ]]; then
|
[[ "${ENABLE_CLUSTER_MONITORING:-}" == "googleinfluxdb" ]]; then
|
||||||
local -r file_dir="cluster-monitoring/${ENABLE_CLUSTER_MONITORING}"
|
local -r file_dir="cluster-monitoring/${ENABLE_CLUSTER_MONITORING}"
|
||||||
|
@ -1322,6 +1322,7 @@ function start-kube-addons {
|
|||||||
# Set up manifests of other addons.
|
# Set up manifests of other addons.
|
||||||
if [[ "${ENABLE_CLUSTER_MONITORING:-}" == "influxdb" ]] || \
|
if [[ "${ENABLE_CLUSTER_MONITORING:-}" == "influxdb" ]] || \
|
||||||
[[ "${ENABLE_CLUSTER_MONITORING:-}" == "google" ]] || \
|
[[ "${ENABLE_CLUSTER_MONITORING:-}" == "google" ]] || \
|
||||||
|
[[ "${ENABLE_CLUSTER_MONITORING:-}" == "stackdriver" ]] || \
|
||||||
[[ "${ENABLE_CLUSTER_MONITORING:-}" == "standalone" ]] || \
|
[[ "${ENABLE_CLUSTER_MONITORING:-}" == "standalone" ]] || \
|
||||||
[[ "${ENABLE_CLUSTER_MONITORING:-}" == "googleinfluxdb" ]]; then
|
[[ "${ENABLE_CLUSTER_MONITORING:-}" == "googleinfluxdb" ]]; then
|
||||||
local -r file_dir="cluster-monitoring/${ENABLE_CLUSTER_MONITORING}"
|
local -r file_dir="cluster-monitoring/${ENABLE_CLUSTER_MONITORING}"
|
||||||
|
@ -47,6 +47,18 @@ addon-dir-create:
|
|||||||
- file_mode: 644
|
- file_mode: 644
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if pillar.get('enable_cluster_monitoring', '').lower() == 'stackdriver' %}
|
||||||
|
/etc/kubernetes/addons/cluster-monitoring/stackdriver:
|
||||||
|
file.recurse:
|
||||||
|
- source: salt://kube-addons/cluster-monitoring/stackdriver
|
||||||
|
- include_pat: E@(^.+\.yaml$|^.+\.json$)
|
||||||
|
- template: jinja
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- dir_mode: 755
|
||||||
|
- file_mode: 644
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
{% if pillar.get('enable_cluster_monitoring', '').lower() == 'standalone' %}
|
{% if pillar.get('enable_cluster_monitoring', '').lower() == 'standalone' %}
|
||||||
/etc/kubernetes/addons/cluster-monitoring/standalone:
|
/etc/kubernetes/addons/cluster-monitoring/standalone:
|
||||||
file.recurse:
|
file.recurse:
|
||||||
|
Loading…
Reference in New Issue
Block a user