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

问题描述 投票:0回答:4

如何在 Rancher 2.0 中为我的集群启用功能门?我需要启用

--feature-gates MountPropagation=true
。这将使我能够使用 StorageOS、CephFS 等存储解决方案

这里有 2 个用例:

  1. Rancher 是否已设置并正在运行?
  2. 如果我从头开始设置集群?
kubernetes rancher rke
4个回答
7
投票

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

第一步:打开Rancher2.0 UI

第2步:在API中查看集群

enter image description here

第三步:点击编辑,修改

rancherKubernetesEngineConfig
输入框

enter image description here

  • 找到服务密钥。
  • 然后按照以下格式为 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步:确保不适用的键设置为空。例如

amazonElasticContainerServiceConfig
azureKubernetesServiceConfig
googleKubernetesEngineConfig
对我来说都需要为空。

第7步:点击发送请求

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


3
投票

我在启用功能门 TTLAfterFinished 方面遇到了困难。 (与 MountPropagation=true 相同)

Rancher v2.3.3

第一步:打开Rancher2.3.3 UI

第 2 步:单击编辑集群

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

将 TTLAfterFinished 替换为您的功能门。 在此列出


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 模板”包含在内。


0
投票

对于那些使用 Docker 在单个节点上运行 Rancher 的人

如果您需要启用挂载传播,或者您在安装 Longhorn 时遇到以下错误

spec:无法生成spec:路径“/var/lib/longhorn/”安装在“/”上,但它不是共享安装

有几种方法可以解决这个问题。

选项 1 - 设置后启用传播

您可以随时手动启用传播,无需重新启动。在 Rancher 容器内运行

mount --make-rshared /
。确保在标志“--make-rshared”中包含“r”以进行递归共享。更多信息请参阅此博客

选项 2 - 在设置期间启用传播

您可以在entrypoint.sh之前运行命令,如下所示:

services:
  rancher:
    image: rancher/rancher:latest
    restart: unless-stopped
    ports:
      - 8080:80
      - 8443:443
    environment:
      - CATTLE_SKIP_CERTIFICATE_VALIDATION=true
    privileged: true
    # Enable mount propagation
    entrypoint:
      - bash
      - -c
      - |
        mount --make-rshared /
        /usr/bin/entrypoint.sh
© www.soinside.com 2019 - 2024. All rights reserved.