company_banner

Kubernetes 1.17 — как обновиться и не потратить весь error budget

    image

    9 декабря вышла очередная версия Kubernetes — 1.17. Ее девиз — «Стабильность», множество фич получили статус GA, некоторое количество устаревших фич было удалено…

    И, как всегда, наш любимый раздел Action Required файла CHANGELOG-1.17.md требует к себе внимания.

    Поработаем руками…

    Внимание, Storage !


    Обновление kubelet на лету в версии 1.17 не поддерживается, потому что изменился путь к block volumes. Перед обновлением узла необходимо эвакуировать с него все поды с помощью команды kubectl drain.

    Флаги и ворота...


    В changelog обычно пишут, что был удален или добавлен такой-то flag или feature gate, но почему-то никогда не пишут приложение, у которого произошло это изменение...:

    • Убран флаг --include-uninitialized у kubectl;
    • Функционал, который разрешали feature gates GCERegionalPersistentDisk, EnableAggregatedDiscoveryTimeout и PersistentLocalVolumes, теперь всегда используется и его нельзя отключить. Эти опции убраны из возможных ключей api-server и controller-manager;
    • Сеть ip адресов для сервисов теперь не назначается по умолчанию. Необходимо указывать ее с помощью флага --service-cluster-ip-range при запуске API server и controller-manager.

    kubeadm


    • Kubeadm научился настраивать автоматическое обновление сертификатов для kubelet на всех узлах кластера, в том числе и на первом мастере, где выполнялась команда kubeadm init. Побочным эффектом стало требование наличия файла с начальной конфигурацией kubelet bootstrap-kubelet.conf вместо kubelet.conf во время выполнения kubeadm init;
    • При добавлении режимов авторизации в API сервер kubeadm больше не подставляет режимы Node, RBAC в манифест статик пода, позволяя полностью поменять конфигурацию.

    RBAC


    Удалены встроенные кластерные роли system:csi-external-provisioner и system:csi-external-attacher.

    Deprecated...


    Некоторое количество фич было объявлено устаревшими, однако они все еще продолжают поддерживаться. Но особенно хотелось бы отметить процесс перехода на использование ContainerStorageInterface. Администраторы, развернувшие собственные (не managed) кластеры в AWS и GCE, должны запланировать переезд на использование CSI Driver для работы с постоянными томами — вместо драйверов, встроенных в Kubernetes. В этом им должна помочь процедура CSIMigration — ждем появления пошагового руководства. Администраторам, которые используют другие провайдеры для подключения постоянных дисков, пора искать и читать документацию: в версии 1.21 обещают окончательно удалить все встроенные драйверы.
    • +14
    • 2,4k
    • 3
    Southbridge
    406,32
    Обеспечиваем стабильную работу highload-проектов
    Поделиться публикацией

    Комментарии 3

      +5

      Завлекся названием статьи "как обновиться и не потратить весь error budget", но так и не увидел ответа на процитированный вопрос )

        0
        А почему вы ничего не написали, например, про добавление фичи Service Topology?
        Неполный какой-то обзор обновления.
          0
          Потому что это не обзор обновления, это рассказ о граблях, которые надо убрать перед обновлением кластера.

          PS: А фича классная. Полностью согласен, что стоит о ней рассказывать при любом удобном случае… ;)

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое