Kubernetes (k8s) 是一个强大的容器编排平台,用于部署、管理和扩展容器化应用程序。然而,随着集群规模的增长以及应用程序的复杂性增加,有效的监控变得至关重要。Prometheus 是一个广泛使用的开源监控和警报工具,针对 Kubernetes 的监控方案具有很高的重要性,具体原因包括:
github地址:https://github.com/prometheus/prometheus

Prometheus Server的作用就是负责数据采集和存储,提供PromQL语句查询的支持
这个组件主要就是触发告警通知的一个组件
临时的Job主动推送到指标的中间网关
需要启动一台ec2,并且绑定role角色。让其拥有执行创建资源的权限。(zrm-role)
###eksctl工具 eksctl是eks集群部署的命令行工具 curl -O https://image-auto-scaleing.s3.cn-north-1.amazonaws.com.cn/eksctl chmod +x eksctl && mv ./eksctl /usr/bin/ ###kubectl工具 官网地址:https://docs.amazonaws.cn/eks/latest/userguide/install-kubectl.html 这里下载kubectl工具的时候,要选择你对应的集群版本。有时候可以比你的集群版本可以低一个版本 curl -O https://s3.cn-north-1.amazonaws.com.cn/amazon-eks/1.23.17/2023-03-17/bin/linux/amd64/kubectl chmod +x kubectl && mv kubectl /usr/bin/ ###helm安装 curl -O https://image-auto-scaleing.s3.cn-north-1.amazonaws.com.cn/helm-v3.8.1-linux-amd64.tar.gz tar -zxvf helm-v3.8.1-linux-amd64.tar.gz cp linux-amd64/helm /usr/bin/ rm -rf helm* && rm -rf linux-amd64 |

cat > cluster.yaml << EOF
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: prometheus-eks
region: cn-northwest-1
version: "1.26"
vpc:
id: "vpc-085306cb2975bd281"
subnets:
public:
cn-northwest-1a: { id: subnet-02cbfaaf2093cf95f }
cn-northwest-1b: { id: subnet-01614bc0f46e7439f }
cn-northwest-1c: { id: subnet-03a3409ceaabd52e3 }
managedNodeGroups:
- name: ng-1
labels: { role: workers }
instanceType: t3a.large
desiredCapacity: 2
minSize: 0
maxSize: 10
volumeSize: 50
ssh:
allow: true
publicKeyName: zrm-nx
EOF |
eksctl create cluster -f cluster.yaml

创建完成之后如下图

|
eksctl utils associate-iam-oidc-provider --cluster prometheus-eks --approve
aws eks describe-cluster --name prometheus-eks --query "cluster.identity.oidc.issuer" --output text
cat >oidc.yaml <<EOF
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: prometheus-eks ###集群名字
region: cn-northwest-1 ###集群所在区域
identityProviders:
- name: upgrade-eks-oidc ###设置一个名字(任意)
type: oidc
issuerUrl: $(aws eks describe-cluster --name prometheus-eks --query "cluster.identity.oidc.issuer" --output text) ###必须关联OIDC的信息
clientId: sts.amazonaws.com ###默认客户端ID
EOF |
eksctl associate identityprovider -f oidc.yaml
