Pull to refresh

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

Бывает :)

Лично я начинал с игр просто с балансировщиком (сначала просто keepalived и haproxy а потом их вместе) поверх nginx, а потом проецировал полученные результаты на kubernetes. Так конечно дольше, но зато лучше понимаешь "внутреннюю природу вещей".

Можно ещё вопрос? Всё рботает, всё красиво. тесты проходят. Можно ли как то получить данные с 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 выборы проходят успешно и ошибка исчезает, обрабатывать ее не имеет смысла. Можно сказать, что это не баг, а фича :) Так сделано для упрощения конфига.

Да, я уже разобрался, спасибо, в конфиге хапрокси адреса 6а свои не поменял)

Но решил оставить так, для порядка, чтобы точно все работало

Sign up to leave a comment.

Articles