如何在 Rancher 2.0 中为我的集群启用功能门?我需要启用
--feature-gates MountPropagation=true
。这将使我能够使用 StorageOS、CephFS 等存储解决方案
这里有 2 个用例:
您好,希望这对某人有帮助,经过大量谷歌搜索和 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步:确保不适用的键设置为空。例如
amazonElasticContainerServiceConfig
、azureKubernetesServiceConfig
、googleKubernetesEngineConfig
对我来说都需要为空。
第7步:点击发送请求
您应该收到状态代码 201 的响应。您的集群将开始更新。您可以通过再次在 API 中查看集群来验证您的集群 RKE 是否已更新。
我在启用功能门 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 替换为您的功能门。 在此列出
替代方案(测试正在等待中,被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 模板”包含在内。
如果您需要启用挂载传播,或者您在安装 Longhorn 时遇到以下错误
spec:无法生成spec:路径“/var/lib/longhorn/”安装在“/”上,但它不是共享安装
有几种方法可以解决这个问题。
您可以随时手动启用传播,无需重新启动。在 Rancher 容器内运行
mount --make-rshared /
。确保在标志“--make-rshared”中包含“r”以进行递归共享。更多信息请参阅此博客。
您可以在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