Comments 13
При всех достоинствах K8s эта система управления контейнерными кластерами имеет следующие недостатки, которые значительно усложняют ее использование на практике
· большое число специфических понятий и взаимозависимых сущностей (под, сервис, кубелет, контроллер и т.д.);
· скудная документация, которая недостаточно подробно описывает систему;
· добавление дополнительного уровня абстракции увеличивает сложность и хрупкость системы;
· недостаток и высокая стоимость опытных специалистов, в совершенстве владеющих этой DevOps-технологией.
Это да - система действительно очень сложна, но как говорится: "хочешь быть в высшей лиге, играй как в высшей лиге".
Для честной высокой зарплаты нужны и честные высокие знания.
Ваш комментарий — это скопированный фрагмент этой статьи 4-летней давности. Зачем?
Специфические понятия не является недостатком, это скорее необходимость (докер он попроще, но тем не менее тоже присутствует своя терминология)
Про скудную документацию - не соглашусь.
Единственный серьезный недостаток - изменения API ломающие обратную совместимость, но это вызвано бурным ростом продукта.
День добрый! На распишете подроблее про балансировщик? 172.30.0.210:8888 кто он, где он его надо настраивать отдельно или он создатся при инициализации? у меня инициализация заканчивается неудачей:
Unfortunately, an error has occurred:
timed out waiting for the condition
This error is likely caused by:
- The kubelet is not running
- The kubelet is unhealthy due to a misconfiguration of the node in some way (required cgroups disabled)
If you are on a systemd-powered system, you can try to troubleshoot the error with the following commands:
- 'systemctl status kubelet'
- 'journalctl -xeu kubelet'
но при этом kubelet имеет статус запущен, но сыпет ошибки что API недоступен,
Unable to register node with API server" err="Post "https://172.30.0.210:8888
upd. Всё, разобрался, это я слепой, не заметил имя интерфейса в конфиге keepalived
Можно ещё вопрос? Всё рботает, всё красиво. тесты проходят. Можно ли как то получить данные с nginx непосредственно с хостовой машины? или это влечёт за собой допнастройки?
ЗЫ. я вообще ansible плейбук пилю для воспроизводства всей статьи, можно потом оформить статьеё и сослаться на вас как на основной источник вдохновения?)
Красиво получить доступ с хостовой машины, равно как и с любой другой сетевой машины в текущем конфиге невозможно. Нужна доп. настройка. Думаю запилить вторую часть статьи, где будет это рассмотрено, но когда время будет не знаю.
Если хотите можете самостоятельно поковыряться. Нужно пилить в сторону ingress и Load Balancer.
Ссылка на статью приветствуются)
Большое спасибо за статью, тоже пилю плейбук, одновременно изучая и ансибл, и кубер)
Подскажите, плз, зачем в п.6.2.B ставятся сетевые плагины в /opt/cni/bin? Не нашел, чтобы они где-то использовались в конфигах.
Еще момент - для проведения выборов keepalived проверяет доступность управляющих нод выполнением скрипта с опросом порта 8888, где находится контролплейн кубера. Но по сценарию на момент настройки keppalived и haproxy контролплейна еще нет, скрипт выдает ошибку и выборы для назначения виртуального ИП не проходят.
Решит добавлением в конфиг хапрокси /etc/haproxy/haproxy.cfg:
#---------------------------------------------------------------------
# keepalived frontend for reply HTTP/200
#---------------------------------------------------------------------
frontend http_200
bind *:1200
mode tcp
option tcplog
default_backend http_200
backend http_200
http-request return status 200 content-type "text/plain" lf-string "OK"
И в скрипте /etc/keepalived/check_apiserver.sh
APISERVER_DEST_PORT=1200
Когда появляется control-plane выборы проходят успешно и ошибка исчезает, обрабатывать ее не имеет смысла. Можно сказать, что это не баг, а фича :) Так сделано для упрощения конфига.
Гайд для новичков по установке Kubernetes