Как включить распространение монтирования в элементарных воротах Ранчера - Кубернетеса?

Как я могу включить функциональные ворота для моего кластера в Rancher 2.0? Мне нужно, чтобы --feature-gates MountPropagation=true, Это позволит мне использовать решения для хранения, такие как StorageOS, CephFS и т. Д.

Здесь есть 2 варианта использования:

  1. Если Rancher уже настроен и работает?
  2. Если я настраиваю кластер с нуля?

1 ответ

Решение

Здравствуйте и надеюсь, что это кому-то поможет, после долгих поисков и помощи замечательных людей из Rancher я получил решение для этого. Вот что вы можете сделать, чтобы установить флаги функциональных ворот для движка Kubernetes RKE.

Шаг 1: Откройте Rancher2.0 UI

Шаг 2: Просмотр кластера в API

введите описание изображения здесь

Шаг 3: Нажмите "Изменить" и измените 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: Убедитесь, что ключи, которые не применимы, установлены в нуль. например amazonElasticContainerServiceConfig, azureKubernetesServiceConfig, googleKubernetesEngineConfig все нужно обнулить для меня.

Шаг 7: Нажмите отправить запрос

Вы должны получить ответ с кодом состояния 201. И ваш кластер начнет обновляться. Вы можете проверить, что RKE вашего кластера обновлен, просмотрев Cluster в API снова.

Я боролся с включением функции Gate TTLAfterFinished. (то же, что и MountPropagation=true)

Ранчо v2.3.3

Шаг 1. Откройте интерфейс Rancher2.3.3

Шаг 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):

Шаг 1. Откройте интерфейс Rancher2.0

Шаг 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/)

шаг 6: нажмите сохранить (внизу)

создать новый кластер

Вы также можете отредактировать "Параметры кластера" как yaml при создании нового кластера. Возможно, это также можно включить как "шаблон rke".

Другие вопросы по тегам