kubernetes 在EKS上设置Prometheus的问题-Pod处于挂起状态(似乎取决于等待创建卷的PVC)

pxy2qtax  于 2024-01-06  发布在  Kubernetes
关注(0)|答案(2)|浏览(154)

我的大学项目有一个EKS集群,我想在集群上安装Prometheus。为此,我使用helm和以下命令(请参阅本教程https://archive.eksworkshop.com/intermediate/240_monitoring/deploy-prometheus/):

  1. kubectl create namespace prometheus
  2. helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
  3. helm install prometheus prometheus-community/prometheus \
  4. --namespace prometheus \
  5. --set alertmanager.persistentVolume.storageClass="gp2" \
  6. --set server.persistentVolume.storageClass="gp2"

字符串
当我检查prometheus pod的状态时,警报管理器和服务器似乎处于无限的Pending状态:x1c 0d1x
当我描述prometheus-alertmanager-0 pod时,我看到以下VolumeBinding错误:

当我描述prometheus-server-5d 858 bd 4 bd-6xmws pod时,我看到以下VolumeBinding错误:

我还可以看到有2个pvcs处于挂起状态:

当我描述prometheus服务器pvc时,我可以看到它正在等待创建卷:x1c4d 1x
我熟悉Kubernetes的基础知识,但pvcs不是我以前用过的东西。这里的解决方案是创建一个“卷”吗?如果是,我该怎么做?,这能解决问题吗?,或者我偏离了目标?
我应该尝试以不同的方式安装Prometheus吗?
任何帮助在这方面非常感谢
注意事项:虽然类似,但这并不是Prometheus server in pending state after installation using Helm的重复。对于其中一个突出显示的错误,有不同的错误,也执行了其他手动步骤,如创建卷(我没有这样做),最后,我遵循参考的特定教程,我也问我是否应该尝试以不同的方式设置Prometheus,如果有一个更简单的方法

k5hmc34c

k5hmc34c1#

1.在Amazon Elastic Kubernetes Service(EKS)集群上安装Amazon Elastic Block Store(EBS)Container Storage Interface(CSI)驱动程序。这将在启动持久卷声明(PVC)时,通过使用ebs-csi-driver-controller,从EKS环境中创建Amazon Elastic Compute Cloud(EC2)卷。
1.确保ebs-csi-driver-controller拥有使用IAM角色生成EC2卷所需的适当AWS身份和访问管理(IAM)权限。要完成此操作,请创建指定为ebs-csi-driver-controller-role的IAM角色。将带有ARN arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy的策略附加到此角色。
1.随后,将ebs-csi-driver-controller-role IAM角色与控制器关联。这可以通过在部署配置中的serviceAccount元素上使用注解来实现,如下所示:

  1. apiVersion: v1
  2. kind: ServiceAccount
  3. metadata:
  4. name: <service-account-name>
  5. annotations:
  6. eks.amazonaws.com/role-arn: arn:aws:iam::<account-id>:role/ebs-csi-driver-controller-role

字符串

2nc8po8w

2nc8po8w2#

假设您在运行EKS集群时已经安装了CSI驱动程序。
步骤1:-检查日志的pod ebs-csi-pumer-pod如果它说像
无法在EC2中创建卷:UnauthorizedOperation:您无权执行此操作
然后执行下面的步骤来运行prometheus pod。
步骤2:-使用AWS Policy AmazonEBSCSIDriverPolicy创建一个IAM角色名称<AmazonEKS_EBS_CSI_DriverRole>,并在“信任关系”部分中附上相应群集的OIDC详细信息,如下所示。

  1. {
  2. "Version": "2012-10-17",
  3. "Statement": [
  4. {
  5. "Effect": "Allow",
  6. "Principal": {
  7. "Federated": "<oidc_arn_of_cluster>"
  8. },
  9. "Action": "sts:AssumeRoleWithWebIdentity",
  10. "Condition": {
  11. "StringEquals": {
  12. "oidc.eks.<region>.amazonaws.com/id/<enterclusterid>:aud": "sts.amazonaws.com"
  13. }
  14. }
  15. }
  16. ]
  17. }

字符串
注:-如果你在上述oidc代码的末尾有sys,请将其更改为如上所述的aud。
步骤3:-现在转到群集并编辑ebs-csi-baseer-sa

  1. kubectl edit sa ebs-csi-controller-sa -n kube-system


并放在元数据如下,请更正indetation

  1. metadata:
  2. annotations:
  3. eks.amazonaws.com/role-arn:
  4. arn:aws:iam::<awsaccountid>:role/<AmazonEKS_EBS_CSI_DriverRole>


步骤4:-然后重新启动部署

  1. kubectl rollout restart deployment ebs-csi-controller -n kube-system


就是这样,你应该有PV绑定和运行的普罗米修斯服务器吊舱吊舱。

展开查看全部

相关问题