如何在 Rancher - Kubernetes 功能门中启用挂载传播?

how do I enable mount propagation in Rancher - Kubernetes feature gates?

如何在 Rancher 2.0 中为我的集群启用功能门控?我需要启用 --feature-gates MountPropagation=true。这将使我能够使用 StorageOS、CephFS 等存储解决方案

这里有 2 个用例:

  1. 如果 Rancher 已经设置好并且 运行?
  2. 如果我从头开始设置集群?

您好,希望这对某人有所帮助,经过大量谷歌搜索和 Rancher 优秀人员的帮助后,我找到了解决方案。 以下是您可以为 Kubernetes 引擎 RKE 设置功能门标志的方法。

第一步:打开Rancher2.0UI

第 2 步:查看 API

中的集群

第三步:点击编辑,修改rancherKubernetesEngineConfig输入框

  • 找到服务密钥。
  • 然后按以下格式为 kubelet 添加额外的参数

    "services": {
    "etcd": { "type": "/v3/schemas/etcdService" },
    "kubeApi": {
        "podSecurityPolicy": false,
        "type": "/v3/schemas/kubeAPIService",
        "extraArgs": { "feature-gates": "PersistentLocalVolumes=true, VolumeScheduling=true,MountPropagation=true" }
    },
    "kubeController": { "type": "/v3/schemas/kubeControllerService" },
    "kubelet": {
        "failSwapOn": false,
        "type": "/v3/schemas/kubeletService",
        "extraArgs": { "feature-gates": "PersistentLocalVolumes=true, VolumeScheduling=true,MountPropagation=true" }
    }
    

第 4 步:单击显示请求 .. 您将获得 curl 命令和 json 请求。

第 5 步:验证将显示的请求正文数据。

第 6 步:确保将不适用的键设置为空。例如 amazonElasticContainerServiceConfigazureKubernetesServiceConfiggoogleKubernetesEngineConfig 对我来说都需要为 null。

第 7 步:点击发送请求

您应该会收到状态代码为 201 的响应。您的集群将开始更新。您可以通过再次查看 API 中的集群来验证集群 RKE 是否已更新。

替代方案(测试待定,被https://github.com/rancher/rancher/issues/26261阻止)

第一步:打开Rancher2.0UI

第 2 步:单击集群的编辑(在具有三个垂直点的菜单中)

第 3 步:单击 "Cluster Options"

旁边的按钮 "edit as YAML"

第 4 步:找到 "services.kubelet"(或 "services.WhatYouNeed")

第 5 步:添加或编辑 extra_args 类似于:

    kubelet:
      extra_args:
        feature-gates: rancherKubernetesEngineConfig=true

(根据https://rancher.com/docs/rke/latest/en/config-options/services/services-extras/#extra-args

第 6 步:点击保存(在底部)

创建新集群

您还可以在创建新集群时将 "Cluster Options" 编辑为 yaml。可能这也可以作为 "rke template".

我一直在努力启用功能门 TTLAfterFinished。 (与 MountPropagation=true 相同)

Rancher v2.3.3

第一步:打开Rancher2.3.3UI

第 2 步:点击编辑集群

第 3 步:单击 "Cluster Options"

旁边的按钮 "edit as YAML"

第 4 步:您需要为所有集群服务添加 feature gate(见下文)

第 5 步:添加或编辑 extra_args 类似于:

    ...
        kube-api:
          extra_args:
            feature-gates: TTLAfterFinished=true
    ...
        kube-controller:
          extra_args:
            feature-gates: TTLAfterFinished=true
    ...
        kubelet:
          extra_args:
            feature-gates: TTLAfterFinished=true
    ...  

用您的功能门替换 TTLAfterFinished。 LIST HERE