Назад | Перейти на главную страницу

Жизнеспособно ли запускать собственный частный Kubernetes-Cluster?

В настоящее время я провожу исследования для своей компании, касающиеся Kubernetes. Мы хотим оценить размещение нашего собственного Kubernetes-кластера с наших серверов без оборудования внутри нашего частного вычислительного центра. Я когда-либо работал только с управляемым Kubernetes (например, Google Cloud и т. Д.) И, конечно же, minikube для локального тестирования.

Кто-нибудь когда-либо работал с автономным и самостоятельно устанавливаемым Kubernetes-кластером и давал мне некоторую оценку ноу-хау и времени, необходимого для настройки и администрирования такого кластера?

Кто-нибудь когда-нибудь работал с автономным и самостоятельно устанавливаемым Kubernetes-кластером и давал мне некоторую оценку ноу-хау и времени, необходимого для настройки и администрирования такого кластера?

Я запускал некоторое нетривиальное количество кластеров до того, как появились GKE и EKS, хотя я благодарен, что делал это в настройке IaaS, поэтому мне не приходилось копаться, и если что-то пойдет не так, я просто попросил облачного провайдера убить его. Ваш вопрос состоит из двух отдельных частей, и это разные объемы работы: настройка и администрирование.

Настройка кластера может произойти всего через 30 минут после того, как вы приведете машины в состояние, при котором они будут загружаться и считывать свои пользовательские данные. (Я полагаю, что даже на голом металле есть соответствующий cloud-init схема, пусть даже меньший упор на "облачную" часть), благодаря совершенно магии Кубеадм и его друг etcdadm

Однако после того, как Kubernetes запущен, начинается настоящая работа, которую часто называют операциями «второго дня», и это толстая книга вещей, которые требуют мониторинга, и вещей, которые могут пойти не так.

Для абсолютной ясности я не хочу вас отговаривать: когда кластер (кластеры) в хорошей форме, это похоже на волшебство и поразительный количество вещей Just Work ™. Но, как и многие другие волшебные вещи, когда они злятся, если вы еще не знакомы с предупреждающими знаками или не узнаете звук их выстрелов, это может сделать неприятную ситуацию еще более неприятной.

Мне интересно, не слишком ли много работы занимает администрирование таких систем (поскольку я единственный админ). Особенно с учетом моих не очень актуальных знаний о внутренней работе Kubernetes.

Это последняя часть, которую нужно будет преодолеть, ИМХО, поскольку, как и многие другие программы, как только вы понять как они склеены, их устранение, как правило, утомительная, но решаемая проблема. Однако управление кубернетами сам это только одна часть набора инструментов, необходимых для поддержания кубернетов кластер живой:

  • systemd (да, все еще требуется, если вы не используете один из действительно, действительно эзотерических образов машин, которые загружаются прямо в kubelet и containerd)
    • как борются управление cgroups systemd и docker или containerd cgroups
  • докер (или containerd)
    • включая его систему аутентификации, если у вас есть изображения, требующие учетных данных для извлечения
  • CNI
    • и все нюансы провайдера CNI, с которым вы решите пойти, потому что они неизбежно будут рвать, и потушить этот пожар - это какое-то ... хорошее развлечение
  • etcd (!!!!!!!!!!!!!!!!!!)
    • управление членством
    • резервные копии - и они только «резервные копии», если они протестированы, поэтому некоторые упражнения по аварийному восстановлению имеют большое значение для снижения количества вызовов пейджера в 3 часа ночи.
    • хотя это может не повлиять на вас, если у вас достаточно маленький кластер, сортировка остановок производительности etcd также является кошмаром
  • роли, выполняемые частями плоскости управления, чтобы знать, в каких журналах следует разбираться, на основе наблюдаемого поведения:
    • apiserver
    • диспетчер-менеджер
    • планировщик
    • kube-proxy
    • Кубелет
  • глубокое знание основных движущихся частей всего, и я имею в виду все, из ванильных типов ресурсов: Node, Pod, Deployment, Service, ConfigMap, Secret (включая 4 основных подтипа Secret); StatefulSets необязательны, но удобны, чтобы понять, почему они существуют
  • подсистема RBAC: Role, RoleBindings, ClusterRole, ClusterRoleBindings, и как auth переводит его из запроса HTTPS в обработчик apiserver, чтобы преобразовать его в Subject которые можно сравнить с этими политиками, которые, как и все хорошее, что связано с «безопасностью», представляют собой бездонный кладезь стандартов, которые необходимо знать, и инструментов для устранения неполадок.

и хотя это может не повлиять на вас с настройкой без оборудования, обычно kubernetes взаимодействует с внешним миром через что-то вроде MetalLB и решения CNI IPAM, и для их устранения необходимо знать, что kubernetes надеется им делать, а затем согласовать это с тем, что они фактически делать


Я лично еще не принимал CKA но, возможно, вам следует хотя бы пройти курс обучения, чтобы понять, какие темы CNCF считает необходимыми знаниями. Если вы не напуганы, тогда, может быть, вы тоже сможете получить свой CKA из этого упражнения :-)

Удачной охоты!