kube-state-metrics pod文件编写
# cat kube-state-metrics.yaml
apiVersion: v1
kind: Namespace
metadata:name: kube-prom
---
apiVersion: v1
kind: ServiceAccount
metadata:labels:app.kubernetes.io/name: kube-state-metricsapp.kubernetes.io/version: 2.0.0-alpha.1name: kube-state-metricsnamespace: kube-prom
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:labels:app.kubernetes.io/name: kube-state-metricsapp.kubernetes.io/version: 2.0.0-alpha.1name: kube-state-metrics
rules:
- apiGroups:- ""resources:- configmaps- secrets- nodes- pods- services- resourcequotas- replicationcontrollers- limitranges- persistentvolumeclaims- persistentvolumes- namespaces- endpointsverbs:- list- watch
- apiGroups:- extensionsresources:- daemonsets- deployments- replicasets- ingressesverbs:- list- watch
- apiGroups:- appsresources:- statefulsets- daemonsets- deployments- replicasetsverbs:- list- watch
- apiGroups:- batchresources:- cronjobs- jobsverbs:- list- watch
- apiGroups:- autoscalingresources:- horizontalpodautoscalersverbs:- list- watch
- apiGroups:- authentication.k8s.ioresources:- tokenreviewsverbs:- create
- apiGroups:- authorization.k8s.ioresources:- subjectaccessreviewsverbs:- create
- apiGroups:- policyresources:- poddisruptionbudgetsverbs:- list- watch
- apiGroups:- certificates.k8s.ioresources:- certificatesigningrequestsverbs:- list- watch
- apiGroups:- storage.k8s.ioresources:- storageclasses- volumeattachmentsverbs:- list- watch
- apiGroups:- admissionregistration.k8s.ioresources:- mutatingwebhookconfigurations- validatingwebhookconfigurationsverbs:- list- watch
- apiGroups:- networking.k8s.ioresources:- networkpoliciesverbs:- list- watch
- apiGroups:- coordination.k8s.ioresources:- leasesverbs:- list- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:labels:app.kubernetes.io/name: kube-state-metricsapp.kubernetes.io/version: 2.0.0-alpha.1name: kube-state-metrics
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: kube-state-metrics
subjects:
- kind: ServiceAccountname: kube-state-metricsnamespace: kube-prom
---
apiVersion: apps/v1
kind: Deployment
metadata:labels:app.kubernetes.io/name: kube-state-metricsapp.kubernetes.io/version: 2.0.0-alpha.1name: kube-state-metricsnamespace: kube-prom
spec:replicas: 1selector:matchLabels:app.kubernetes.io/name: kube-state-metricstemplate:metadata:labels:app.kubernetes.io/name: kube-state-metricsapp.kubernetes.io/version: 2.0.0-alpha.1spec:containers:- image: registry.cn-beijing.aliyuncs.com/mayaping/kube-state-metrics:v2.0.0-alpha.1livenessProbe:httpGet:path: /healthzport: 8080initialDelaySeconds: 5timeoutSeconds: 5name: kube-state-metricsports:- containerPort: 8080name: http-metrics- containerPort: 8081name: telemetryreadinessProbe:httpGet:path: /port: 8081initialDelaySeconds: 5timeoutSeconds: 5securityContext:runAsUser: 65534nodeSelector:kubernetes.io/os: linuxserviceAccountName: kube-state-metrics
---
apiVersion: v1
kind: Service
metadata:labels:app.kubernetes.io/name: kube-state-metricsapp.kubernetes.io/version: 2.0.0-alpha.1name: kube-state-metricsnamespace: kube-promannotations:prometheus.io/scrape: "true"prometheus.io/port: "8081"
spec:clusterIP: Noneports:- name: http-metricsport: 8080targetPort: http-metrics- name: telemetryport: 8081targetPort: telemetryselector:app.kubernetes.io/name: kube-state-metrics
部署
# kubectl create -f kube-state-metrics.yaml
serviceaccount/kube-state-metrics created
clusterrole.rbac.authorization.k8s.io/kube-state-metrics created
clusterrolebinding.rbac.authorization.k8s.io/kube-state-metrics created
deployment.apps/kube-state-metrics created
service/kube-state-metrics created
Error from server (AlreadyExists): error when creating "kube-state-metrics.yaml": namespaces "kube-prom" already exists
查看服务启动情况
# kubectl get pods --namespace kube-prom
NAME READY STATUS RESTARTS AGE
kube-state-metrics-765d5d646c-2chmz 1/1 Running 0 6m15s
node-exporter-5l4v4 1/1 Running 0 7m
node-exporter-jwqwp 1/1 Running 0 7m
node-exporter-z84kn 1/1 Running 0 7m
prometheus-7749bcdfd8-rg5w8 1/1 Running 0 7m33s