3

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

这里有 2 个用例:

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

3 回答 3

6

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

第一步:打开Rancher2.0 UI

步骤 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 步:单击 show request .. 你会得到一个 curl 命令和 json 请求。

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

第 6 步:确保将不适用的密钥设置为 null。例如amazonElasticContainerServiceConfig, azureKubernetesServiceConfig,googleKubernetesEngineConfig对我来说都需要为空。

第七步:点击发送请求

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

于 2018-07-17T05:33:27.203 回答
1

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

第一步:打开Rancher2.0 UI

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

第 3 步:单击“集群选项”旁边的“编辑为 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步:点击保存(在底部)

创建新集群

您还可以在创建新集群时将“集群选项”编辑为 yaml。可能这也可以作为“rke 模板”包含在内。

于 2020-04-27T12:14:54.043 回答
1

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

牧场主 v2.3.3

第一步:打开Rancher2.3.3 UI

第二步:点击编辑集群

第 3 步:单击“集群选项”旁边的“编辑为 YAML”按钮

第 4 步:您需要将特征门添加到所有集群服务(见下文)

第 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
    ...  

将 TTL AfterFinished 替换为您的功能门。在这里列出

于 2020-06-15T11:54:39.973 回答