【问题标题】:What prerequisites do I need for Kubernetes to mount an EBS volume?Kubernetes 挂载 EBS 卷需要哪些先决条件?
【发布时间】:2018-08-25 05:09:25
【问题描述】:

documentation 没有详细说明。我想我至少需要一个 iam 角色。

【问题讨论】:

    标签: kubernetes amazon-ebs


    【解决方案1】:

    这就是我们所做的,而且效果很好。

    我使用的是 kubernetes 1.7.2,并尝试为 AWS 上的 kubernetes pod 配置存储(动态/静态)。如果您不是在寻找动态存储类,则可能不需要下面提到的某些内容。

    确保在 API 服务器上启用了 DefaultStorageClass 准入控制器。 (DefaultStorageClass 是 API 服务器组件的 --enable-admission-plugins 标志的以逗号分隔的有序值列表。)

    我已经给出了选项 --cloud-provider=aws 和 --cloud-config=/etc/aws/aws.config(在启动 apiserver、controller-manager、kubelet 时) (文件 /etc/aws/aws.conf 存在于具有以下内容的实例上)

    $ cat /etc/aws/aws.conf
    [Global]
    Zone = us-west-2a
    

    创建的 IAM 策略添加到角色(如下面的链接),为其创建实例配置文件并附加到实例。 (注意:我错过了附加实例配置文件,它没有工作)。 https://medium.com/@samnco/using-aws-elbs-with-the-canonical-distribution-of-kubernetes-9b4d198e2101

    对于动态配置: 创建存储类并将其设为默认值。

    让我知道这不起作用。

    问候 苏达卡

    【讨论】:

      【解决方案2】:

      这是 kubespray 使用的,很可能是合理的默认值:

      https://github.com/kubernetes-incubator/kubespray/blob/v2.5.0/contrib/aws_iam/kubernetes-minion-policy.json

      该链接的 tl;dr 是为以下操作创建一个 Allow

      • s3:*
      • ec2:Describe*
      • ec2:AttachVolume
      • ec2:DetachVolume
      • route53:*

      (虽然我敢打赌s3:* 太宽了,但我没有方便的信息来提供更受限制的版本;route53:* 上的类似观察)

      所有的Resource 键都是* 除了s3: 一个将资源限制在以kubernetes-* 开头的存储桶——不知道这只是一个例子,还是kubernetes 中有一些特殊的东西带前缀的桶。显然,您可能有更好的项目列表来填充 Resource 键以真正限制可附加卷(请注意动态配置的卷,就像 PersistentVolume 资源创建的那样)

      【讨论】:

      • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
      • 我已经调整了答案,如果有“评论跟进”之类的东西
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-12
      • 2020-08-07
      • 2018-04-26
      • 2019-08-24
      • 2021-10-26
      • 2019-10-09
      • 1970-01-01
      相关资源
      最近更新 更多