环境准备
系统Centos 7.9
k8s集群:
版本:1.21.5
节点:
192.168.10.201 master
192.168.10.202 work
部署相关配置文件
kube-state-metrics-rbac.yaml
apiVersion:v1kind:ServiceAccountmetadata:name:kube-state-metricsnamespace:kube-systemlabels:kubernetes.io/cluster-service:"true"addonmanager.kubernetes.io/mode:Reconcile---apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRolemetadata:name:kube-state-metricslabels:kubernetes.io/cluster-service:"true"addonmanager.kubernetes.io/mode:Reconcilerules:-apiGroups:[""]resources:-configmaps-secrets-nodes-pods-services-resourcequotas-replicationcontrollers-limitranges-persistentvolumeclaims-persistentvolumes-namespaces-endpointsverbs:["list","watch"]-apiGroups:["apps"]resources:-statefulsets-daemonsets-deployments-replicasetsverbs:["list","watch"]-apiGroups:["batch"]resources:-cronjobs-jobsverbs:["list","watch"]-apiGroups:["autoscaling"]resources:-horizontalpodautoscalersverbs:["list","watch"]-apiGroups:["networking.k8s.io","extensions"]resources:-ingressesverbs:["list","watch"]-apiGroups:["storage.k8s.io"]resources:-storageclassesverbs:["list","watch"]-apiGroups:["certificates.k8s.io"]resources:-certificatesigningrequestsverbs:["list","watch"]-apiGroups:["policy"]resources:-poddisruptionbudgetsverbs:["list","watch"]---apiVersion:rbac.authorization.k8s.io/v1kind:Rolemetadata:name:kube-state-metrics-resizernamespace:kube-systemlabels:kubernetes.io/cluster-service:"true"addonmanager.kubernetes.io/mode:Reconcilerules:-apiGroups:[""]resources:-podsverbs:["get"]-apiGroups:["extensions","apps"]resources:-deploymentsresourceNames:["kube-state-metrics"]verbs:["get","update"]---apiVersion:rbac.authorization.k8s.io/v1kind:ClusterRoleBindingmetadata:name:kube-state-metricslabels:kubernetes.io/cluster-service:"true"addonmanager.kubernetes.io/mode:ReconcileroleRef:apiGroup:rbac.authorization.k8s.iokind:ClusterRolename:kube-state-metricssubjects:-kind:ServiceAccountname:kube-state-metricsnamespace:kube-system---apiVersion:rbac.authorization.k8s.io/v1kind:RoleBindingmetadata:name:kube-state-metricsnamespace:kube-systemlabels:kubernetes.io/cluster-service:"true"addonmanager.kubernetes.io/mode:ReconcileroleRef:apiGroup:rbac.authorization.k8s.iokind:Rolename:kube-state-metrics-resizersubjects:-kind:ServiceAccountname:kube-state-metricsnamespace:kube-system
kube-state-metrics-deployment.yaml 配置
apiVersionapps/v1 kindDeployment metadata namekube-state-metrics namespacekube-system labels k8s-appkube-state-metrics kubernetes.io/cluster-service"true" addonmanager.kubernetes.io/modeReconcile versionv1.3.0 spec selector matchLabels k8s-appkube-state-metrics versionv1.3.0 replicas1 template metadata labels k8s-appkube-state-metrics versionv1.3.0 annotations scheduler.alpha.kubernetes.io/critical-pod'' spec priorityClassNamesystem-cluster-critical serviceAccountNamekube-state-metrics containersnamekube-state-metrics imagelizhenliang/kube-state-metricsv1.8.0 portsnamehttp-metrics containerPort8080nametelemetry containerPort8081 readinessProbe httpGet path/healthz port8080 initialDelaySeconds5 timeoutSeconds5nameaddon-resizer imagelizhenliang/addon-resizer1.8.6 resources limits cpu100m memory30Mi requests cpu100m memory30Mi envnameMY_POD_NAME valueFrom fieldRef fieldPathmetadata.name nameMY_POD_NAMESPACE valueFrom fieldRef fieldPathmetadata.namespace volumeMountsnameconfig-volume mountPath/etc/config command/pod_nanny --config-dir=/etc/config --container=kube-state-metrics --cpu=100m --extra-cpu=1m --memory=100Mi --extra-memory=2Mi --threshold=5 --deployment=kube-state-metrics volumesnameconfig-volume configMap namekube-state-metrics-config ---apiVersionv1 kindConfigMap metadata namekube-state-metrics-config namespacekube-system labels k8s-appkube-state-metrics kubernetes.io/cluster-service"true" addonmanager.kubernetes.io/modeReconcile data NannyConfiguration- apiVersionnannyconfig/v1alpha1 kindNannyConfiguration
kube-state-metrics-service.yaml 配置
apiVersionv1 kindService metadata namekube-state-metrics namespacekube-system labels kubernetes.io/cluster-service"true" addonmanager.kubernetes.io/modeReconcile kubernetes.io/name"kube-state-metrics" annotations prometheus.io/scrape'true'spec portsnamehttp-metrics port8080 targetPorthttp-metrics protocolTCP nametelemetry port8081 targetPorttelemetry protocolTCP selector k8s-appkube-state-metrics
创建 kube-state-metrics 服务
kubectlapply-f.
查看服务启动状态
打开prometheus控制台


