🔥 Как ускорить деплой в Kubernetes?
Медленный деплой в Kubernetes — боль любого DevOps-инженера. Ожидание завершения обновления может растягиваться на минуты, а иногда и дольше. Давайте разберёмся, как ускорить этот процесс!
1️⃣ Используем
Вместо
Так Kubernetes обновит поды поочередно, не убивая их сразу.
2️⃣ Минимизируем образ контейнера
Чем меньше образ, тем быстрее он загружается. Используйте минимальные базовые образы, например:
-
-
-
3️⃣ Включаем сжатие в Docker
При
Это ускорит загрузку образа в реестр.
4️⃣ Используем kustomize или Helm для ускорения шаблонизации
Kustomize позволяет изменять манифесты без дублирования, а Helm хранит шаблоны, минимизируя изменения в
5️⃣ Подключаем
Если образ уже есть на ноде, Kubernetes не будет скачивать его заново. Включаем в деплойменте:
Но будь осторожен — это работает только при версионных тегах!
6️⃣ Настраиваем readinessProbe
Иногда поды стартуют, но ещё не готовы принимать трафик. Добавляем
Это ускоряет переключение на новые версии.
7️⃣ Параллельный rollout (maxSurge/maxUnavailable)
Позволяет обновлять несколько подов сразу:
Так Kubernetes создаст новые поды раньше, чем удалит старые.
8️⃣ Используем
Если билдите образ в CI/CD, кэшируйте слои:
Это ускорит сборку.
9️⃣ Оптимизируем CI/CD пайплайн
- Используем
- Включаем параллельные шаги
- Отключаем ненужные тесты в pre-prod стадиях
👉 @devops_star
Медленный деплой в Kubernetes — боль любого DevOps-инженера. Ожидание завершения обновления может растягиваться на минуты, а иногда и дольше. Давайте разберёмся, как ускорить этот процесс!
1️⃣ Используем
kubectl rollout restart вместо полного пересоздания подов Вместо
kubectl delete pod лучше использовать:
kubectl rollout restart deployment my-app
Так Kubernetes обновит поды поочередно, не убивая их сразу.
2️⃣ Минимизируем образ контейнера
Чем меньше образ, тем быстрее он загружается. Используйте минимальные базовые образы, например:
-
alpine-
distroless-
scratch 3️⃣ Включаем сжатие в Docker
При
docker push можно сжать слои с помощью:
export DOCKER_BUILDKIT=1
docker build --compress -t my-app .
Это ускорит загрузку образа в реестр.
4️⃣ Используем kustomize или Helm для ускорения шаблонизации
Kustomize позволяет изменять манифесты без дублирования, а Helm хранит шаблоны, минимизируя изменения в
values.yaml. 5️⃣ Подключаем
imagePullPolicy: IfNotPresent Если образ уже есть на ноде, Kubernetes не будет скачивать его заново. Включаем в деплойменте:
containers:
- name: my-app
image: my-registry/my-app:latest
imagePullPolicy: IfNotPresent
Но будь осторожен — это работает только при версионных тегах!
6️⃣ Настраиваем readinessProbe
Иногда поды стартуют, но ещё не готовы принимать трафик. Добавляем
readinessProbe, чтобы сервис не направлял запросы на неподготовленные поды:
readinessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 2
periodSeconds: 5
Это ускоряет переключение на новые версии.
7️⃣ Параллельный rollout (maxSurge/maxUnavailable)
Позволяет обновлять несколько подов сразу:
strategy:
rollingUpdate:
maxSurge: 2
maxUnavailable: 1
type: RollingUpdate
Так Kubernetes создаст новые поды раньше, чем удалит старые.
8️⃣ Используем
--cache-from для кэширования слоёв Docker Если билдите образ в CI/CD, кэшируйте слои:
docker build --cache-from=my-registry/my-app:latest -t my-app .
Это ускорит сборку.
9️⃣ Оптимизируем CI/CD пайплайн
- Используем
kaniko для сборки образов без Docker Daemon - Включаем параллельные шаги
- Отключаем ненужные тесты в pre-prod стадиях
👉 @devops_star
👍3
Constellation
Это первый конфиденциальный Kubernetes. Constellation защищает целые кластеры Kubernetes от (облачной) инфраструктуры с помощью конфиденциальных вычислений.
Constellation - это движок Kubernetes, который призван обеспечить максимальную безопасность данных. Он оборачивает ваш кластер K8s в единый конфиденциальный контекст, защищенный от базовой облачной инфраструктуры. Все внутри всегда зашифровано, в том числе во время выполнения в памяти. Для этого Constellation использует конфиденциальные вычисления (см. технический обзор) и, в частности, конфиденциальные виртуальные машины.
С точки зрения безопасности Constellation разработан таким образом, чтобы все данные всегда были зашифрованы и чтобы предотвратить доступ с уровня инфраструктуры (т. е. удалить инфраструктуру из TCB). Это включает доступ сотрудников ЦОД, привилегированных администраторов облака и злоумышленников, проникающих через инфраструктуру (например, злонамеренных соарендаторов, повышающих свои привилегии).
С точки зрения DevOps, Constellation спроектирован так, как вы ожидаете от современного движка K8s.
https://github.com/edgelesssys/constellation
👉 @devops_star
Это первый конфиденциальный Kubernetes. Constellation защищает целые кластеры Kubernetes от (облачной) инфраструктуры с помощью конфиденциальных вычислений.
Constellation - это движок Kubernetes, который призван обеспечить максимальную безопасность данных. Он оборачивает ваш кластер K8s в единый конфиденциальный контекст, защищенный от базовой облачной инфраструктуры. Все внутри всегда зашифровано, в том числе во время выполнения в памяти. Для этого Constellation использует конфиденциальные вычисления (см. технический обзор) и, в частности, конфиденциальные виртуальные машины.
С точки зрения безопасности Constellation разработан таким образом, чтобы все данные всегда были зашифрованы и чтобы предотвратить доступ с уровня инфраструктуры (т. е. удалить инфраструктуру из TCB). Это включает доступ сотрудников ЦОД, привилегированных администраторов облака и злоумышленников, проникающих через инфраструктуру (например, злонамеренных соарендаторов, повышающих свои привилегии).
С точки зрения DevOps, Constellation спроектирован так, как вы ожидаете от современного движка K8s.
https://github.com/edgelesssys/constellation
👉 @devops_star
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Service-Hub
JovianX Service Hub - это инструмент, обеспечивающий самообслуживание для внутренних заинтересованных сторон. Он предоставляет каталог инфраструктурных сервисов по требованию (например, базы данных, s3 buckets, выполнение рабочих процессов Airflow, сервисы с предварительно настроенными или предварительно загруженными наборами данных и т. д.) через простой пользовательский интерфейс самообслуживания и CLI.
https://github.com/JovianX/Service-Hub
👉 @devops_star
JovianX Service Hub - это инструмент, обеспечивающий самообслуживание для внутренних заинтересованных сторон. Он предоставляет каталог инфраструктурных сервисов по требованию (например, базы данных, s3 buckets, выполнение рабочих процессов Airflow, сервисы с предварительно настроенными или предварительно загруженными наборами данных и т. д.) через простой пользовательский интерфейс самообслуживания и CLI.
https://github.com/JovianX/Service-Hub
👉 @devops_star
👍3
Код для облака: Освоение DevOps с помощью Python, Terraform и Kubernetes на AWS
Как инженер DevOps, я обычно связан с конвейерами, автоматизацией и облачными сервисами. Однако мне всегда было интересно узнать о другой стороне технологического мира - разработке приложений. Поэтому я подумал, почему бы не разнообразить мир? Так я пришел к созданию финансового приложения на Python, дополненного REST API.
В этом блоге я рассказываю о разработке и развертывании моего финансового приложения с нуля, от кода начального приложения до его развертывания на AWS с помощью Docker, Kubernetes (EKS), Terraform и Ansible. И знаете что? Я автоматизировал весь процесс - каждый его кусочек!
https://medium.com/@sophnel/coding-to-cloud-mastering-devops-with-python-terraform-and-kubernetes-on-aws-6251a910511f
👉 @devops_star
Как инженер DevOps, я обычно связан с конвейерами, автоматизацией и облачными сервисами. Однако мне всегда было интересно узнать о другой стороне технологического мира - разработке приложений. Поэтому я подумал, почему бы не разнообразить мир? Так я пришел к созданию финансового приложения на Python, дополненного REST API.
В этом блоге я рассказываю о разработке и развертывании моего финансового приложения с нуля, от кода начального приложения до его развертывания на AWS с помощью Docker, Kubernetes (EKS), Terraform и Ansible. И знаете что? Я автоматизировал весь процесс - каждый его кусочек!
https://medium.com/@sophnel/coding-to-cloud-mastering-devops-with-python-terraform-and-kubernetes-on-aws-6251a910511f
👉 @devops_star
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Kubectx + Kubens: Power tools for kubectl
kubectx - инструмент для более быстрого переключения между контекстами (кластерами) на kubectl
kubens - инструмент, позволяющий легко переключаться между пространствами имен Kubernetes (и настраивать их для kubectl)
https://github.com/ahmetb/kubectx
Пример
👉 @devops_star
kubectx - инструмент для более быстрого переключения между контекстами (кластерами) на kubectl
kubens - инструмент, позволяющий легко переключаться между пространствами имен Kubernetes (и настраивать их для kubectl)
https://github.com/ahmetb/kubectx
Пример
# switch to another cluster that's in kubeconfig
$ kubectx minikube
Switched to context "minikube".
# switch back to previous cluster
$ kubectx -
Switched to context "oregon".
# rename context
$ kubectx dublin=gke_ahmetb_europe-west1-b_dublin
Context "gke_ahmetb_europe-west1-b_dublin" renamed to "dublin".
# change the active namespace on kubectl
$ kubens kube-system
Context "test" set.
Active namespace is "kube-system".
# go back to the previous namespace
$ kubens -
Context "test" set.
Active namespace is "default".
👉 @devops_star
👍2
Учимся использовать разные типы переменных в Ansible
Переменные Ansible — это динамические значения, которые используются в плейбуках и ролях Ansible для настройки и возможности повторного использования конфигураций. Они очень похожи на переменные в языках программирования и помогают эффективно управлять сложными задачами. Они позволяют применять один и тот же сценарий или роль в разных средах, системах или контекстах без необходимости хардкодинга конкретной информации.
Представляем перевод статьи, где подробно рассматриваются переменные Ansible.
https://habr.com/ru/companies/southbridge/articles/755266/
👉 @devops_star
Переменные Ansible — это динамические значения, которые используются в плейбуках и ролях Ansible для настройки и возможности повторного использования конфигураций. Они очень похожи на переменные в языках программирования и помогают эффективно управлять сложными задачами. Они позволяют применять один и тот же сценарий или роль в разных средах, системах или контекстах без необходимости хардкодинга конкретной информации.
Представляем перевод статьи, где подробно рассматриваются переменные Ansible.
https://habr.com/ru/companies/southbridge/articles/755266/
👉 @devops_star
👍2
Media is too big
VIEW IN TELEGRAM
Watchtower: лучший способ автоматически обновлять Docker контейнеры
В этом видео мы рассмотрим, как использовать Docker Watchtower для автоматического обновления контейнеров Docker. Watchtower - это удобный инструмент, который может существенно упростить процесс обновления контейнеров Docker. Мы покажем, как настроить Watchtower для автоматического обновления ваших контейнеров и расскажем о преимуществах этого подхода.
источник
👉 @devops_star
В этом видео мы рассмотрим, как использовать Docker Watchtower для автоматического обновления контейнеров Docker. Watchtower - это удобный инструмент, который может существенно упростить процесс обновления контейнеров Docker. Мы покажем, как настроить Watchtower для автоматического обновления ваших контейнеров и расскажем о преимуществах этого подхода.
источник
👉 @devops_star
👍2
Media is too big
VIEW IN TELEGRAM
Освоение командной строки curl с Дэниелом Стенбергом
0:00 Mastering the curl command line
0:16 Daniel Stenberg
0:36 curl support by wolfSSL
0:56 setup
02:20 questions
02:52 agenda
05:25 The project
05:42 take-off
07:42 name
09:17 main products
10:48 open source
.................
3:15:50 HTTP/2
3:17:20 HTTP/3
3:18:44 HTTP/3 racing
3:20:57 HTTP alt-svc
3:22:50 HTTP HSTS
3:24:39 FTP
3:25:42 FTP(S) is not SFTP
3:26:17 FTP uses two connections
3:28:43 FTP authentication
3:29:06 FTP directory listing
3:30:24 FTP upload
3:31:16 FTPS is FTP with TLS
3:32:43 Future
3:33:01 How to dig deeper
3:35:18 Going next?
3:38:07 You can help!
3:38:14 Questions
источник
👉 @devops_star
0:00 Mastering the curl command line
0:16 Daniel Stenberg
0:36 curl support by wolfSSL
0:56 setup
02:20 questions
02:52 agenda
05:25 The project
05:42 take-off
07:42 name
09:17 main products
10:48 open source
.................
3:15:50 HTTP/2
3:17:20 HTTP/3
3:18:44 HTTP/3 racing
3:20:57 HTTP alt-svc
3:22:50 HTTP HSTS
3:24:39 FTP
3:25:42 FTP(S) is not SFTP
3:26:17 FTP uses two connections
3:28:43 FTP authentication
3:29:06 FTP directory listing
3:30:24 FTP upload
3:31:16 FTPS is FTP with TLS
3:32:43 Future
3:33:01 How to dig deeper
3:35:18 Going next?
3:38:07 You can help!
3:38:14 Questions
источник
👉 @devops_star
❓ Вы в курсе, что можно автоматизировать инфраструктуру как код с помощью Terraform и GitLab?
⏰ На открытом уроке 3 апреля в 20:00 мск Вячеслав Федосеев расскажет, как настроить CI/CD-пайплайны для работы с Terraform, разграничивать окружения и эффективно управлять конфигурацией.
Вячеслав — эксперт в IT с 2006 года, от первых Linux-серверов до масштабных DevOps-решений. Автор и ментор курсов по DevOps и CI/CD.
Если вы DevOps-специалист, архитектор или инженер, стремящийся оптимизировать процессы и автоматизировать инфраструктуру, этот урок для вас. Повышайте свою квалификацию, изучив лучшие практики IaC, и получайте навыки, востребованные на рынке.
🎁 Все участники вебинара получат скидку на полный курс по CI/CD на основе Gitlab.
👉 Для участия зарегистрируйтесь
https://vk.cc/cKdzMF
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
⏰ На открытом уроке 3 апреля в 20:00 мск Вячеслав Федосеев расскажет, как настроить CI/CD-пайплайны для работы с Terraform, разграничивать окружения и эффективно управлять конфигурацией.
Вячеслав — эксперт в IT с 2006 года, от первых Linux-серверов до масштабных DevOps-решений. Автор и ментор курсов по DevOps и CI/CD.
Если вы DevOps-специалист, архитектор или инженер, стремящийся оптимизировать процессы и автоматизировать инфраструктуру, этот урок для вас. Повышайте свою квалификацию, изучив лучшие практики IaC, и получайте навыки, востребованные на рынке.
🎁 Все участники вебинара получат скидку на полный курс по CI/CD на основе Gitlab.
👉 Для участия зарегистрируйтесь
https://vk.cc/cKdzMF
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Media is too big
VIEW IN TELEGRAM
Sealos
Облачная операционная система, предназначенная для управления облачными приложениями.
Это готовый к продакшену дистрибутив Kubernetes, который представляет собой универсальное решение для публичных и частных облаков.
https://github.com/labring/sealos
👉 @devops_star
Облачная операционная система, предназначенная для управления облачными приложениями.
Это готовый к продакшену дистрибутив Kubernetes, который представляет собой универсальное решение для публичных и частных облаков.
https://github.com/labring/sealos
👉 @devops_star
👍2
Telepresence
Это инструмент для локальной разработки микросервисов, работающих в Kubernetes. Он позволяет разработчику запускать один сервис локально, в то время как остальные сервисы продолжают работать в кластере. Это упрощает отладку, разработку и тестирование без необходимости разворачивать весь стек локально.
🔹Основные возможности:
- Двусторонний прокси: вы можете подключить локальный процесс к кластеру, так что он видит кластер как если бы он был внутри него.
- Быстрое тестирование изменений без CI/CD.
- Поддержка intercept'ов: можно перенаправить трафик с сервиса в кластере на локальный сервис.
- Совместим с kubectl и разными окружениями (Docker, podman, etc).
🔹Полезен для:
- Разработчиков микросервисов.
- DevOps-инженеров, которым нужно отлаживать сервисы в реальном окружении.
- Команд, работающих с большими распределёнными системами.
https://github.com/telepresenceio/telepresence
👉 @devops_star
Это инструмент для локальной разработки микросервисов, работающих в Kubernetes. Он позволяет разработчику запускать один сервис локально, в то время как остальные сервисы продолжают работать в кластере. Это упрощает отладку, разработку и тестирование без необходимости разворачивать весь стек локально.
🔹Основные возможности:
- Двусторонний прокси: вы можете подключить локальный процесс к кластеру, так что он видит кластер как если бы он был внутри него.
- Быстрое тестирование изменений без CI/CD.
- Поддержка intercept'ов: можно перенаправить трафик с сервиса в кластере на локальный сервис.
- Совместим с kubectl и разными окружениями (Docker, podman, etc).
🔹Полезен для:
- Разработчиков микросервисов.
- DevOps-инженеров, которым нужно отлаживать сервисы в реальном окружении.
- Команд, работающих с большими распределёнными системами.
https://github.com/telepresenceio/telepresence
👉 @devops_star
🔥2👍1
Haskell Dockerfile Linter
Интеллектуальный распаковщик Dockerfile, помогающий создавать лучшие образы Docker. Линтер разбирает Docker-файл на AST и выполняет правила поверх AST. Он опирается на поддержку ShellCheck для проверки Bash-кода внутри инструкций RUN.
https://github.com/hadolint/hadolint
👉 @devops_star
Интеллектуальный распаковщик Dockerfile, помогающий создавать лучшие образы Docker. Линтер разбирает Docker-файл на AST и выполняет правила поверх AST. Он опирается на поддержку ShellCheck для проверки Bash-кода внутри инструкций RUN.
https://github.com/hadolint/hadolint
👉 @devops_star
👍3
Git. GitLab
01-GitLab. Devops система. Установка в локальной сети. Настройка.
Git и GitHub для начинающих.
02-GitLab clone по SSH. Настройка SSH для Linux и Windows.
03- DevOps практика: GitlLab CI+Runners. Создание CI CD Pipeline.
04 GitLab: Свой Docker Registry. Создание и подключение.
источник
👉 @devops_star
01-GitLab. Devops система. Установка в локальной сети. Настройка.
Git и GitHub для начинающих.
02-GitLab clone по SSH. Настройка SSH для Linux и Windows.
03- DevOps практика: GitlLab CI+Runners. Создание CI CD Pipeline.
04 GitLab: Свой Docker Registry. Создание и подключение.
источник
👉 @devops_star
👍3
Квоты в Kubernetes: очевидные, менее очевидные и совсем не очевидные
Привет, я Виктор, техлид продукта CI/CD в Samokat. tech. А это,
Давайте разберемся как работают квоты в Kubernetes. Там есть немало граблей. В этой статье поделюсь своим опытом по работе с квотами – расскажу, чем квоты хороши, что у них под капотом, в каких задачах используются и почему нужны даже в среде single-tenant.
https://habr.com/ru/companies/oleg-bunin/articles/790112/
👉 @devops_star
Привет, я Виктор, техлид продукта CI/CD в Samokat. tech. А это,
:(){ :|:& };: fork-бомба, которая создаёт свои дочерние процессы бесконечно. Запуск такой штуки в контейнере без ограничений роняет всю ноду. Не используйте в проде! Если запустить в WSL, то винду тоже укладывает. Как же избежать запуска такой штуки на проде? Помогут квоты.Давайте разберемся как работают квоты в Kubernetes. Там есть немало граблей. В этой статье поделюсь своим опытом по работе с квотами – расскажу, чем квоты хороши, что у них под капотом, в каких задачах используются и почему нужны даже в среде single-tenant.
https://habr.com/ru/companies/oleg-bunin/articles/790112/
👉 @devops_star
👍1
Запуск проекта в Kubernetes за 60 минут: инструменты, GitLab, Terraform
Привет, меня зовут Илья Нырков, я архитектор в VK Cloud. В своей работе встречаюсь с желанием партнеров (это и крупный энтерпрайз, и различные стартапы) использовать Kubernetes, но их останавливает сложность поднятия, конфигурирования кластера, деплоя в нём приложений и построения CI/CD-процессов вокруг него. Я постараюсь показать на практическом примере, который вы можете повторить сами, как развернуть за сравнительно небольшое время полноценный CI/CD с рабочим приложением, доступным для внешних пользователей.
https://habr.com/ru/companies/vk/articles/782310/
👉 @devops_star
Привет, меня зовут Илья Нырков, я архитектор в VK Cloud. В своей работе встречаюсь с желанием партнеров (это и крупный энтерпрайз, и различные стартапы) использовать Kubernetes, но их останавливает сложность поднятия, конфигурирования кластера, деплоя в нём приложений и построения CI/CD-процессов вокруг него. Я постараюсь показать на практическом примере, который вы можете повторить сами, как развернуть за сравнительно небольшое время полноценный CI/CD с рабочим приложением, доступным для внешних пользователей.
https://habr.com/ru/companies/vk/articles/782310/
👉 @devops_star
👍2
10 самых распространенных проблем при линтинге Dockerfile'ов
Весной 2023 года разработчики Depot сообщили о том, что теперь с помощью их сервиса можно проверять Dockerfile при каждой сборке. Depot — это сервис удаленной сборки контейнеров, который может создавать образы Docker до 20 раз быстрее, чем сборка образов Docker внутри обычных CI-провайдеров. Это молодая компания, которая образовалась в начале 2022 года, но уже сейчас она состоит в венчурном фонде Y Combinator и привлекла 1,8 млн долларов инвестиций.
После добавления возможности проверять Dockerfiles в Depot разработчики сервиса столкнулись со множеством сложностей. В итоге они выделили 10 наиболее распространенных проблем при линтинге Dockerfile'ов и описали их в статье, которую мы перевели для вас.
В статье разработчики Depot разбирают каждую проблему, объясняют, почему она возникает и как ее решить. Авторы отмечают, что со временем список может измениться, но даже в таком виде он послужит хорошей отправной точкой для оптимизации Dockerfile'ов.
https://habr.com/ru/companies/flant/articles/787494/
👉 @devops_star
Весной 2023 года разработчики Depot сообщили о том, что теперь с помощью их сервиса можно проверять Dockerfile при каждой сборке. Depot — это сервис удаленной сборки контейнеров, который может создавать образы Docker до 20 раз быстрее, чем сборка образов Docker внутри обычных CI-провайдеров. Это молодая компания, которая образовалась в начале 2022 года, но уже сейчас она состоит в венчурном фонде Y Combinator и привлекла 1,8 млн долларов инвестиций.
После добавления возможности проверять Dockerfiles в Depot разработчики сервиса столкнулись со множеством сложностей. В итоге они выделили 10 наиболее распространенных проблем при линтинге Dockerfile'ов и описали их в статье, которую мы перевели для вас.
В статье разработчики Depot разбирают каждую проблему, объясняют, почему она возникает и как ее решить. Авторы отмечают, что со временем список может измениться, но даже в таком виде он послужит хорошей отправной точкой для оптимизации Dockerfile'ов.
https://habr.com/ru/companies/flant/articles/787494/
👉 @devops_star
👍4
Глубокое погружение в сетевые технологии Kubernetes
На вебинаре описывается сетевая модель Kubernetes (узлы, поды, сервисы), ее преобразование в сетевые конструкции Linux, интеграция с физической сетью и оркестровка виртуальных сетевых устройств, таких как маршрутизаторы, балансировщики нагрузки и NAT-шлюзы.
https://my.ipspace.net/bin/list?id=Kubernetes#INTRO
👉 @devops_star
На вебинаре описывается сетевая модель Kubernetes (узлы, поды, сервисы), ее преобразование в сетевые конструкции Linux, интеграция с физической сетью и оркестровка виртуальных сетевых устройств, таких как маршрутизаторы, балансировщики нагрузки и NAT-шлюзы.
https://my.ipspace.net/bin/list?id=Kubernetes#INTRO
👉 @devops_star
👍1🔥1