在Kubernetes(k8s)中部署Prometheus监控Pod,可以按照以下步骤进行:
(图片来源网络,侵删)
1、创建Prometheus配置文件
创建一个名为prometheusconfigmap.yaml的配置文件,内容如下:
apiVersion: v1 kind: ConfigMap metadata: name: prometheusconfig data: prometheus.yml: | global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: job_name: kubernetesapiservers kubernetes_sd_configs: role: endpoints scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token relabel_configs: source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name] action: keep regex: default;kubernetes;https job_name: kubernetesnodes kubernetes_sd_configs: role: node scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token relabel_configs: action: labelmap regex: __meta_kubernetes_node_label_(.+)2、创建Prometheus部署文件
接下来,创建一个名为prometheusdeployment.yaml的部署文件,内容如下:
apiVersion: apps/v1 kind: Deployment metadata: name: prometheus spec: replicas: 1 selector: matchLabels: app: prometheus template: metadata: labels: app: prometheus spec: containers: name: prometheus image: prom/prometheus:v2.30.3 args: "config.file=/etc/prometheus/prometheus.yml" "storage.tsdb.path=/prometheus" ports: containerPort: 9090 volumeMounts: name: prometheusconfigvolume mountPath: /etc/prometheus name: prometheusstoragevolume mountPath: /prometheus volumes: name: prometheusconfigvolume configMap: name: prometheusconfig name: prometheusstoragevolume emptyDir: {}3、创建Prometheus服务文件
创建一个名为prometheusservice.yaml的服务文件,内容如下:
apiVersion: v1 kind: Service metadata: name: prometheus spec: type: NodePort selector: app: prometheus ports: protocol: TCP port: 9090 targetPort: 9090 nodePort: 300004、应用配置文件到Kubernetes集群
使用kubectl命令将上述配置文件应用到Kubernetes集群:
kubectl apply f prometheusconfigmap.yaml f prometheusdeployment.yaml f prometheusservice.yaml5、查看Prometheus运行状态和访问地址
使用以下命令查看Prometheus的运行状态和访问地址:
kubectl get pods l app=prometheus o wide n default # 查看Prometheus运行状态和IP地址等信息 kubectl describe service prometheus # 查看Prometheus服务的详细信息,包括NodePort等访问地址信息