Если бы я сказал вам, что переход от Docker в Kubernetes требует дня бесшовных мигрирующих контейнеров, я бы лгал.
Kubernetes заставляет меня отказаться от любви к докеру. Мне пришлось переосмыслить свою контейнерную оркестровку. Я бы отказался от своего хорошо прозрачного прокси-сервера Nginx SSL и принял «без серверного подхода».
Без сервера
Я никогда не понимал пользу без серверной архитектуры. Без сервера? Действительно? Это для ленивых людей, подумал я. Как я был неправ.
Принятие этого подхода заставил меня более подробно подумать о том, как мое приложение будет взаимодействовать с его данными и сетью, в которой оно существует. Я создал контейнер, который не зависел от каких -либо внешних данных для запуска. Мне много раз говорили не включать SSL Certs в мои контейнеры, однако я сейчас делаю для достижения правильного масштабирования.
Масштабирование
Когда я закончил создавать свое приложение без сохранения состояния, я развернул три экземпляра за балансировщиком нагрузки. Правильное масштабирование было достигнуто. С несколькими щелчками я могу запустить даже тысячу экземпляров моего приложения. Это именно то, для чего предназначена без серверная архитектура. Мои приложения нагрузку на загрузку больше не зависит от одного сервера, но многие серверы распространяются по евнаутированным состояниям
Постоянные объемы
Как правило, при настройке постоянных данных с помощью Docker можно установить постоянные объемы на родительский сервер. Это обеспечивает легкое создание и удаление контейнеров без страха случайного удаления важных данных, которые аналогичны тому, что может предложить платформа Google Cloud. Тем не менее, важно отметить претензии на постоянные объемы, подход Googles к постоянному хранению данных может быть доступен только с разрешениями для чтения/записи по одному контейнеру за раз. Это означает, что объем не может действовать как область хранения для клавиш SSL для всех контейнеров. Хотя, как правило, не очень хорошая идея, чтобы держать клавиши SSL на изображении контейнера, это единственное решение, которое я предложил для этой проблемы.
Постоянные объемы связаны с кластерами. Вы можете удалить рабочие нагрузки, а также контейнеры, сети и услуги. Однако важно отметить, что при удалении кластера вы будете удалять все его соответствующие объемы.
Балансировка нагрузки/nginx
Как упоминалось ранее, балансировка нагрузки NGINX не работает, как и ожидалось. Несмотря на то, что, вероятно, возможно с некоторой правильной настройкой, простейшим методом является использование Google предоставленного балансировщика нагрузки. Я хотел бы поделиться некоторыми данными о том, как мое приложение смогло справиться со значительной нагрузкой от стресс -тестирования, но я не могу сообщить, что, поскольку Google обнаружил автоматический трафик в качестве атаки DDOS и заблокировал большинство запросов. Так что я думаю, это победа для балансировщика нагрузки
Платформа Google Cloud предлагает несколько способов получить доступ к контейнерам в узле. Можно создать прямую ссылку, разоблачающую порт на узле с внешним источником, однако в Kubernetes не хватает масштабируемости и балансировки нагрузки. Чаще всего балансировщик нагрузки используется для обработки запроса, и перенаправляйте его в правильный порт узла. Балансировщик нагрузки примет во внимание ресурсы, а также какие узлы являются здоровыми из -за проверки здоровья.
При первом использовании балансировщика нагрузки я попытался обрабатывать SSL/TLS на балансировщике нагрузки. Хотя это возможно, это не идеально. WordPress будет трудно рассказать, если соединение безопасно. Это всего лишь пример вопросов с WordPress, стоящей за прокси -сервером SSL. Кажется, что лучшее решение состоит в том, чтобы создать ваше изображение для масштабирования, обработки безопасного рукопожатия в контейнере и позволить балансировщику нагрузки обрабатывать то, что было разработано для баланса нагрузки.
Анализ выгоды и затрат
В целом, я трачу ту же сумму на платформу Google Cloud, которую я тратил на свой выделенный сервер. Со временем это, вероятно, переродит мои расходы, если позволит бюджет. Несмотря на то, что вы, вероятно, могли бы использовать больший использование одного сервера для небольшой сети, если вы хотите масштабировать свое приложение, стоимость использования двигателя Kubernetes — это лучший метод. Я не знаю ни о каком приложении, которое позволяет масштабировать двигатель Kubernetes.
Стоит ли оно того?
Если вы запускаете один статический веб -сайт и очень заинтересованы в том, как работает Kubernetes, то да, это того стоит. Если вы выполняете несколько проектов разработки и вам нужно поддерживать их 24/7 с обновлениями, то важно отметить, что Kubernetes потребуется время, чтобы учиться. Даже оставаясь довольно простым, вы должны переучить все, что вы сделали с Docker. В целом, я полностью наслаждался временем, которое я потратил на изучение Kubernetes, и как кто -то, кто ищет работу в этой отрасли, знание о том, как масштабировать приложения с помощью двигателя, такого как Kubernetes, имеет решающее значение для развития карьеры. Kubernetes на самом деле не влияет на маленьких любителей проекта, вместо этого сосредоточившись на том, как принять вызов масштабирования для довольно больших приложений.
Подробнее … http://nextwavesolutions.io/post/docker-to-kubes/
Оригинал: «https://dev.to/justyntemme/docker-to-kubes-58kf»