🤔 Во сколько зонах можно включить репликацию в RDS Aurora?
Aurora поддерживает до 5 read-replicas в разных зонах/регионах с высокой доступностью и кросс-региональным фейловером.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Aurora поддерживает до 5 read-replicas в разных зонах/регионах с высокой доступностью и кросс-региональным фейловером.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🔥1
🤔 В чём преимущество Kubernetes как платформы?
Это платформа для оркестрации контейнеров, которая упрощает развертывание, управление и масштабирование приложений. Она имеет ряд ключевых преимуществ, которые делают её популярной в DevOps и облачных решениях.
🚩Основные плюсы
➕Автоматизация управления приложениями
Kubernetes автоматически запускает, останавливает и перезапускает контейнеры при сбоях. Поддерживает заданное число экземпляров (реплик) приложений, перезапуская или создавая их при необходимости.
➕Масштабирование (горизонтальное и вертикальное)
Ручное: Легко увеличить или уменьшить количество контейнеров (поды) для приложения. Автоматическое: Используя Horizontal Pod Autoscaler (HPA), Kubernetes добавляет ресурсы при увеличении нагрузки.
➕Высокая доступность (HA)
Kubernetes поддерживает отказоустойчивость: Если один узел (node) выходит из строя, поды перемещаются на другие узлы. Внутренний балансировщик нагрузки распределяет трафик между подами.
➕Платформонезависимость
Kubernetes работает в любых средах: Локальных (например, Minikube). В публичных облаках (AWS, Google Cloud, Azure). В гибридных и on-premise инфраструктурах.
➕Управление конфигурацией и секретами
Kubernetes упрощает работу с настройками: ConfigMaps: Для управления конфигурационными данными.
Secrets: Для безопасного хранения конфиденциальной информации, например, ключей API или паролей.
➕Эффективное использование ресурсов
Kubernetes помогает оптимизировать потребление CPU и памяти: Устанавливая минимальные и максимальные лимиты ресурсов для каждого приложения. Перераспределяя ресурсы между приложениями.
➕Расширяемость
Kubernetes поддерживает плагины и кастомизацию: Сетевые плагины (Calico, Flannel) для настройки сети. Системы мониторинга (Prometheus, Grafana). Операторы для автоматизации сложных задач.
➕Сообщество и экосистема
Kubernetes поддерживается большинством крупных облачных провайдеров. Обширная экосистема инструментов: Helm для управления шаблонами, ArgoCD для GitOps, Istio для сетевых взаимодействий.
🚩Когда особенно полезен?
Разработка микросервисных архитектур. Частые релизы и автоматизация CI/CD. Работа с масштабируемыми приложениями. Использование гибридных или мультиоблачных решений.
Ставь 👍 и забирай 📚 Базу знаний
Это платформа для оркестрации контейнеров, которая упрощает развертывание, управление и масштабирование приложений. Она имеет ряд ключевых преимуществ, которые делают её популярной в DevOps и облачных решениях.
🚩Основные плюсы
➕Автоматизация управления приложениями
Kubernetes автоматически запускает, останавливает и перезапускает контейнеры при сбоях. Поддерживает заданное число экземпляров (реплик) приложений, перезапуская или создавая их при необходимости.
➕Масштабирование (горизонтальное и вертикальное)
Ручное: Легко увеличить или уменьшить количество контейнеров (поды) для приложения. Автоматическое: Используя Horizontal Pod Autoscaler (HPA), Kubernetes добавляет ресурсы при увеличении нагрузки.
➕Высокая доступность (HA)
Kubernetes поддерживает отказоустойчивость: Если один узел (node) выходит из строя, поды перемещаются на другие узлы. Внутренний балансировщик нагрузки распределяет трафик между подами.
➕Платформонезависимость
Kubernetes работает в любых средах: Локальных (например, Minikube). В публичных облаках (AWS, Google Cloud, Azure). В гибридных и on-premise инфраструктурах.
➕Управление конфигурацией и секретами
Kubernetes упрощает работу с настройками: ConfigMaps: Для управления конфигурационными данными.
Secrets: Для безопасного хранения конфиденциальной информации, например, ключей API или паролей.
➕Эффективное использование ресурсов
Kubernetes помогает оптимизировать потребление CPU и памяти: Устанавливая минимальные и максимальные лимиты ресурсов для каждого приложения. Перераспределяя ресурсы между приложениями.
➕Расширяемость
Kubernetes поддерживает плагины и кастомизацию: Сетевые плагины (Calico, Flannel) для настройки сети. Системы мониторинга (Prometheus, Grafana). Операторы для автоматизации сложных задач.
➕Сообщество и экосистема
Kubernetes поддерживается большинством крупных облачных провайдеров. Обширная экосистема инструментов: Helm для управления шаблонами, ArgoCD для GitOps, Istio для сетевых взаимодействий.
🚩Когда особенно полезен?
Разработка микросервисных архитектур. Частые релизы и автоматизация CI/CD. Работа с масштабируемыми приложениями. Использование гибридных или мультиоблачных решений.
Ставь 👍 и забирай 📚 Базу знаний
🤔 Что в Terraform пишут в манифест?
- В .tf-файлах описывают:
- provider — с какой платформой работать;
- resource — что создать (VM, bucket, сеть);
- variable — параметры;
- output — что вернуть;
- module — переиспользуемые блоки.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
- В .tf-файлах описывают:
- provider — с какой платформой работать;
- resource — что создать (VM, bucket, сеть);
- variable — параметры;
- output — что вернуть;
- module — переиспользуемые блоки.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🔥2👍1
🤔 Какие есть лучшие практики в использовании инструкции add и copy?
🚩Лучшие практики по использованию `COPY` и `ADD`
🟠Используйте `COPY` вместо `ADD`, если не нужно распаковывать архивы
Плохо (избыточное использование
Хорошо (явное распаковывание в
🟠Минимизируйте число `COPY` и `ADD`, чтобы уменьшить размер образа
Плохо (копируем всё без исключений)
Хорошо (копируем только нужные файлы)
Добавьте
🟠Копируйте только изменяемые файлы, чтобы ускорить кэширование
Плохо (изменение кода приводит к пересборке зависимостей)**
Хорошо (сначала зависимости, потом код)
🟠Не используйте `ADD` для загрузки файлов из интернета
Плохо (
🟠Хорошо (используем
Ставь 👍 и забирай 📚 Базу знаний
ADD и COPY — это инструкции Dockerfile, которые копируют файлы в контейнер. Их использование влияет на размер образа, безопасность и производительность сборки. 🚩Лучшие практики по использованию `COPY` и `ADD`
🟠Используйте `COPY` вместо `ADD`, если не нужно распаковывать архивы
Плохо (избыточное использование
ADD) ADD app.tar.gz /app/
Хорошо (явное распаковывание в
RUN) COPY app.tar.gz /tmp/
RUN tar -xzf /tmp/app.tar.gz -C /app && rm /tmp/app.tar.gz
🟠Минимизируйте число `COPY` и `ADD`, чтобы уменьшить размер образа
Плохо (копируем всё без исключений)
COPY . /app
Хорошо (копируем только нужные файлы)
COPY src/ /app/src/
COPY requirements.txt /app/
Добавьте
.dockerignore.git
node_modules
__pycache__
*.log
🟠Копируйте только изменяемые файлы, чтобы ускорить кэширование
Плохо (изменение кода приводит к пересборке зависимостей)**
COPY . /app
RUN pip install -r /app/requirements.txt
Хорошо (сначала зависимости, потом код)
COPY requirements.txt /app/
RUN pip install -r /app/requirements.txt
COPY src/ /app/src/
🟠Не используйте `ADD` для загрузки файлов из интернета
Плохо (
ADD загружает файл, но не кэшируется) ADD https://example.com/file.tar.gz /tmp/
🟠Хорошо (используем
RUN curl + COPY) RUN curl -L -o /tmp/file.tar.gz https://example.com/file.tar.gz
COPY file.tar.gz /app/
Ставь 👍 и забирай 📚 Базу знаний
👍1
🤔 Что такое producer в Kafka?
Producer — это отправитель сообщений.
Он:
- сериализует данные;
- определяет топик и партицию;
- отправляет сообщения в Kafka брокер.
Producer может быть синхронным или асинхронным.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Producer — это отправитель сообщений.
Он:
- сериализует данные;
- определяет топик и партицию;
- отправляет сообщения в Kafka брокер.
Producer может быть синхронным или асинхронным.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍1
🤔 Какие есть три вида монтирования в докере?
В Docker есть три типа монтирования данных в контейнеры:
Volumes (Тома) – рекомендуемый способ хранения данных
Bind Mounts (Привязанные тома) – монтирование локальных файлов/папок
Tmpfs (Временное хранилище в RAM) – для быстрого доступа без записи на диск
🚩Volumes (Тома) – лучший вариант хранения данных
Данные хранятся внутри Docker (
Можно использовать в нескольких контейнерах
Не зависят от файловой системы хоста
Удаление тома (только если он не используется)
🚩Bind Mounts (Привязанные тома) – монтирование папок с хоста
Монтирует директорию с хоста в контейнер
Изменения сразу видны на хосте
Зависит от структуры файлов на хосте
🚩Tmpfs (Временное хранилище в RAM) – быстрый, но не сохраняющийся вариант
Хранит данные в оперативной памяти (RAM)
Очень быстрое чтение/запись
Пропадает при перезапуске контейнера
Пример: создать
Ставь 👍 и забирай 📚 Базу знаний
В Docker есть три типа монтирования данных в контейнеры:
Volumes (Тома) – рекомендуемый способ хранения данных
Bind Mounts (Привязанные тома) – монтирование локальных файлов/папок
Tmpfs (Временное хранилище в RAM) – для быстрого доступа без записи на диск
🚩Volumes (Тома) – лучший вариант хранения данных
Данные хранятся внутри Docker (
/var/lib/docker/volumes) Можно использовать в нескольких контейнерах
Не зависят от файловой системы хоста
sh
docker volume create mydata
docker run -d -v mydata:/app/data --name mycontainer ubuntu
Удаление тома (только если он не используется)
sh
docker volume rm mydata
🚩Bind Mounts (Привязанные тома) – монтирование папок с хоста
Монтирует директорию с хоста в контейнер
Изменения сразу видны на хосте
Зависит от структуры файлов на хосте
sh
docker run -d -v /home/user/logs:/app/logs --name mycontainer ubuntu
🚩Tmpfs (Временное хранилище в RAM) – быстрый, но не сохраняющийся вариант
Хранит данные в оперативной памяти (RAM)
Очень быстрое чтение/запись
Пропадает при перезапуске контейнера
Пример: создать
tmpfs-монтирование для /app/cache sh
docker run -d --tmpfs /app/cache:size=100m --name mycontainer ubuntu
Ставь 👍 и забирай 📚 Базу знаний
👍1
🤔 Какие бывают виды дополнительных контейнеров в поде?
Дополнительные контейнеры включают init-контейнеры для подготовки среды и sidecar-контейнеры для дополнительных задач, таких как логирование или прокси.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
👍1
🤔 Какая компонента запускает под на ноде, какая отвечает за сеть?
В Kubernetes разные компоненты отвечают за запуск подов и сетевые настройки.
🚩Какая компонента запускает под на ноде? (`kubelet`)
Получает команды от
Запускает контейнеры через Container Runtime (Docker, containerd, CRI-O)
Следит за состоянием подов и перезапускает их при сбоях
Посмотреть логи
🚩Какая компонента отвечает за сеть? (CNI)
Назначает IP-адреса подам
Организует маршрутизацию трафика между подами и нодами
Настраивает Network Policies (безопасность сети)
Проверить работающие сетевые плагины
Вывод (если CNI работает нормально)
Если CNI не работает, поды могут застрять в
Ставь 👍 и забирай 📚 Базу знаний
В Kubernetes разные компоненты отвечают за запуск подов и сетевые настройки.
🚩Какая компонента запускает под на ноде? (`kubelet`)
Получает команды от
kube-scheduler (назначение подов) Запускает контейнеры через Container Runtime (Docker, containerd, CRI-O)
Следит за состоянием подов и перезапускает их при сбоях
systemctl status kubelet
Посмотреть логи
kubelet journalctl -u kubelet -f
🚩Какая компонента отвечает за сеть? (CNI)
Назначает IP-адреса подам
Организует маршрутизацию трафика между подами и нодами
Настраивает Network Policies (безопасность сети)
Проверить работающие сетевые плагины
kubectl get pods -n kube-system
Вывод (если CNI работает нормально)
NAME READY STATUS RESTARTS AGE
calico-node-xyz 1/1 Running 2 3d
Если CNI не работает, поды могут застрять в
ContainerCreating kubectl get pods
NAME READY STATUS RESTARTS AGE
web-server 0/1 ContainerCreating 0 10m
Ставь 👍 и забирай 📚 Базу знаний
🔥1
🤔 Какое практическое использование DaemonSet?
DaemonSet запускает по одному экземпляру пода на каждой ноде (или выбранных). Используется для:
- мониторинга (Prometheus Node Exporter, Fluentd);
- логгирования;
- установки агентов безопасности;
- настройки хостовых ресурсов на каждой ноде.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
DaemonSet запускает по одному экземпляру пода на каждой ноде (или выбранных). Используется для:
- мониторинга (Prometheus Node Exporter, Fluentd);
- логгирования;
- установки агентов безопасности;
- настройки хостовых ресурсов на каждой ноде.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
🔥1
🤔 Что сейчас больше используется ингресс класс в ингрессе или указывается ингресс контроллер непосредственно в апликейшене?
Сейчас стандартом является использование
🚩Что лучше использовать?
🟠`ingressClassName` (новый метод, Kubernetes 1.19+)
Современный, удобный, поддерживается официально
Работает с
Можно управлять через CRD (
🟠Аннотация `kubernetes.io/ingress.class` (старый метод, deprecated с 1.18)
Все еще работает, но устарела
Нельзя контролировать
🚩Как правильно указывать `ingressClassName`?
1⃣Настраиваем
2⃣Используем
🚩Старый способ (не рекомендуется, но все еще встречается)
Раньше использовали аннотацию
Ставь 👍 и забирай 📚 Базу знаний
Сейчас стандартом является использование
ingressClassName, а аннотации kubernetes.io/ingress.class считаются устаревшими (deprecated). 🚩Что лучше использовать?
🟠`ingressClassName` (новый метод, Kubernetes 1.19+)
Современный, удобный, поддерживается официально
Работает с
IngressClass ресурсами Можно управлять через CRD (
IngressClass) 🟠Аннотация `kubernetes.io/ingress.class` (старый метод, deprecated с 1.18)
Все еще работает, но устарела
Нельзя контролировать
IngressClass через CRD 🚩Как правильно указывать `ingressClassName`?
1⃣Настраиваем
IngressClass (если нужно) yaml
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
name: nginx
spec:
controller: k8s.io/ingress-nginx
2⃣Используем
ingressClassName в Ingressyaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
ingressClassName: nginx
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
🚩Старый способ (не рекомендуется, но все еще встречается)
Раньше использовали аннотацию
kubernetes.io/ingress.class yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
spec:
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
Ставь 👍 и забирай 📚 Базу знаний
🔥1