DevOps | Вопросы собесов
5.19K subscribers
30 photos
2 videos
815 links
Cайт easyoffer.ru
Реклама @easyoffer_adv
ВП @easyoffer_vp

Тесты t.me/+2P7cpjeyfDVlZjcy
Вакансии t.me/+i5KFWEWJ21hhYWEy
Download Telegram
🤔 Какой командой на RedHat Linux сделать так, чтобы сервисы стартовали при boot?

Необходимо включить автозапуск системного сервиса. Это делается через системный менеджер, применимый в современных дистрибутивах RedHat (например, systemd).


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊12
🤔 На каких принципах работает докер?

Это платформа для автоматизации развертывания, масштабирования и управления приложениями в контейнерах. Контейнеры позволяют изолировать приложения и их зависимости, обеспечивая легкую переносимость и консистентность окружения. Основные принципы работы Docker включают в себя контейнеризацию, использование образов, контейнеров, оркестрацию и сетевую инфраструктуру.

🚩Основные принципы

🟠Контейнеризация
Контейнеризация позволяет запускать приложения и их зависимости в изолированных окружениях. Контейнеры предоставляют легкие и эффективные среды, которые включают все необходимое для запуска приложений.
Контейнеры: Легковесные, изолированные окружения, которые работают поверх ядра хостовой операционной системы.
Namespace: Механизм ядра Linux, обеспечивающий изоляцию процессов, сети, PID, пользовательских идентификаторов и монтирования файловых систем.
Cgroups: Контрольные группы в Linux, которые ограничивают и отслеживают использование ресурсов контейнерами, включая процессорное время, память и I/O.

🟠Использование образов
Образы Docker являются шаблонами для создания контейнеров. Образ включает в себя все необходимые компоненты, такие как код приложения, библиотеки, зависимости и конфигурационные файлы.
Dockerfile: Скрипт, содержащий инструкции по созданию образа. Используется для автоматизации создания образов.
Слойность: Каждый образ состоит из нескольких слоев, которые кэшируются и могут использоваться повторно, что ускоряет процесс сборки и уменьшает использование ресурсов.

🟠Изоляция и безопасность
Docker обеспечивает изоляцию приложений, что позволяет запускать несколько контейнеров на одном хосте без взаимного влияния.
Изоляция процессов: Каждый контейнер имеет свой собственный процессорный контекст, что исключает конфликты между приложениями.
Изоляция файловой системы: Контейнеры имеют свои собственные файловые системы, изолированные от файловой системы хостовой операционной системы.
Безопасность: Docker использует механизмы, такие как AppArmor, SELinux и seccomp, для обеспечения безопасности контейнеров.

🟠Управление сетями
Docker предоставляет гибкие возможности управления сетями для контейнеров, включая создание изолированных сетей и подключение контейнеров к различным сетям.
Bridge Network: Создает изолированную сеть для контейнеров на одном хосте.
Host Network: Контейнер использует сетевые интерфейсы хостовой операционной системы.
Overlay Network: Позволяет контейнерам на разных хостах взаимодействовать друг с другом.
Macvlan Network: Контейнеры получают собственные MAC-адреса и ведут себя как физические устройства в сети.

🟠Хранение данных
Docker поддерживает различные механизмы хранения данных для обеспечения сохранности и доступности данных контейнеров.
Volumes: Независимые от контейнеров хранилища данных, которые могут быть подключены к одному или нескольким контейнерам.
Bind Mounts: Позволяют монтировать директории хостовой файловой системы в контейнеры.
Tmpfs: Использует память хоста для хранения данных контейнера, что полезно для временных данных.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🤔 Что такое планировщик, какие у него задачи?

Планировщик (scheduler) — это часть ядра, отвечающая за распределение процессорного времени между задачами (процессами и потоками). Он выбирает, какой процесс будет выполняться в данный момент времени, исходя из приоритетов, политики и состояния процесса. Основные задачи — обеспечить справедливость, минимальную задержку и высокую производительность.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3
🤔 Есть 1000 разработчиков, каждый создал по 1-2 уникальному приложению, как это все масштабировать?

Если у вас 1000 разработчиков и 2000 сервисов, то без автоматизации не обойтись.

🟠 Kubernetes для контейнеров
Организация:
Каждое приложение → отдельный Pod.
Namespaces → для команд и сред (dev, stage, prod).
Helm → для удобного управления.

Манифест деплоя
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-registry.com/my-app:v1


🟠CI/CD для автоматического деплоя
Инструменты: GitLab CI/CD, ArgoCD
stages:
- build
- deploy

build:
script:
- docker build -t my-registry.com/my-app:$CI_COMMIT_SHA .
- docker push my-registry.com/my-app:$CI_COMMIT_SHA

deploy:
script:
- kubectl set image deployment/my-app my-app=my-registry.com/my-app:$CI_COMMIT_SHA


🟠Мониторинг и логирование
Prometheus + Grafana → метрики, алерты
Loki / ELK (Elasticsearch + Kibana) → логи
Запрос ошибок API:
rate(http_requests_total{status="500"}[5m])


🟠Автоматическое масштабирование
Горизонтальный автоскейлинг (HPA)
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: my-app-hpa
spec:
minReplicas: 3
maxReplicas: 10
targetCPUUtilizationPercentage: 70


🟠Service Mesh (Istio) для управления трафиком
Разделение нагрузки между версиями:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
spec:
hosts:
- my-app.example.com
http:
- route:
- destination:
host: my-app
subset: v1
weight: 80
- destination:
host: my-app
subset: v2
weight: 20


🟠Безопасность (RBAC, Network Policies)
Ограничение доступа разработчиков:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: dev-access
subjects:
- kind: User
name: dev-user
roleRef:
kind: Role
name: read-only
apiGroup: rbac.authorization.k8s.io


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🤔 Технологии AF_PACKET, PCAP, RAW socket, PF_RING. Что объединяет их и их различия?

Все эти технологии используются для перехвата и обработки сетевого трафика:
- AF_PACKET – низкоуровневый доступ к пакетам в пространстве ядра, позволяет захватывать пакеты до их обработки IP-стеком.
- PCAP (libpcap/tcpdump) – библиотека для пользовательского пространства, позволяет фильтровать и анализировать пакеты.
- RAW socket – создаёт сокеты для работы с IP- и Ethernet-пакетами напрямую, нужен root-доступ.
- PF_RING – ускоренный механизм захвата пакетов, оптимизирован для высоких нагрузок.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1💊1
🤔 Что такое императивный подход?

Императивный подход — это стиль программирования, где мы пошагово указываем компьютеру, что делать и как это делать. Программист описывает процесс решения задачи. Код выполняется шаг за шагом, изменяя состояние программы.

numbers = [1, 2, 3, 4, 5]
squared = []

for num in numbers:
squared.append(num ** 2) # Явно указываем, что делать на каждом шаге

print(squared) # [1, 4, 9, 16, 25]


🚩Где используется императивный стиль?

Языки программирования: C, Java, Python (может быть и императивным, и декларативным).
Операционные системы (где важно управлять состоянием).
Автоматизация в DevOps (например, скрипты Bash).
#!/bin/bash
mkdir /backup
cp /var/log/syslog /backup/
echo "Backup создан"


Пример в DevOps (Terraform)
Императивный (Ansible, Bash)
  apt update
apt install nginx


Шаги установки Nginx описаны вручную.
Декларативный (Terraform, Kubernetes)
  resource "aws_instance" "web" {
ami = "ami-123456"
instance_type = "t2.micro"
}


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3💊2👍1
🤔 Для чего нужен Terraform?

Terraform используется для инфраструктуры как кода. Он позволяет:
- описывать ресурсы облака декларативно;
- управлять зависимостями;
- автоматически создавать, обновлять и удалять инфраструктуру;
- сохранять состояние системы в одном месте.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🤔 Что сейчас больше используется ингресс класс в ингрессе или указывается ингресс контроллер непосредственно в апликейшене?

Сейчас стандартом является использование 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 в Ingress
yaml  
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


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🤔 Что такое volume и persistent volume и какие есть типы этих вольюмов?

Volume — это механизм для хранения данных контейнера вне его файловой системы, чтобы данные сохранялись между перезапусками. Persistent Volume (PV) в Kubernetes представляет собой хранилище, которое существует независимо от подов. Типы volumes включают emptyDir, hostPath, NFS, CIFS, AWS EBS, Azure Disk и PersistentVolumeClaim.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
🤔 Какие микросервисы можно масштабировать горизонтально?

Горизонтальное масштабирование – это добавление новых экземпляров (реплик) сервиса для увеличения производительности. Оно хорошо работает для статeless (без состояния) микросервисов, где нет привязки к конкретному серверу.

🚩Какие микросервисы можно масштабировать горизонтально?

🟠Веб-серверы и API-шлюзы
Примеры: Nginx, Traefik, Kong, API Gateway (AWS, GCP)
Почему можно масштабировать?
- Обрабатывают независимые запросы
- Не требуют сохранения состояния между запросами
- Легко распределяются через Load Balancer
yaml  
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-api
spec:
replicas: 5
selector:
matchLabels:
app: my-api
template:
metadata:
labels:
app: my-api
spec:
containers:
- name: api-container
image: my-api:latest



🟠Backend-сервисы (Stateless)
Примеры: REST API (FastAPI, Express, Spring Boot), gRPC-сервисы
Почему можно масштабировать?
Каждый запрос обрабатывается независимо
Нет привязки к конкретному серверу
Можно использовать Load Balancer (например, AWS ALB, Nginx)
nginx  
upstream backend {
server backend1:5000;
server backend2:5000;
server backend3:5000;
}
server {
listen 80;
location / {
proxy_pass http://backend;
}
}



🟠Очереди сообщений и брокеры событий
Примеры: RabbitMQ, Kafka, NATS, Redis Streams
Почему можно масштабировать?
Сообщения разбираются разными нодами
Можно увеличивать число консьюмеров
Поддерживают partitioning (разделение нагрузки)
python  
from kafka import KafkaConsumer
consumer = KafkaConsumer('my_topic', group_id='workers', bootstrap_servers='kafka:9092')
for message in consumer:
process_message(message)



🟠Кэш-сервисы (Stateless)
Примеры: Redis (в режиме Cluster), Memcached
Почему можно масштабировать?
Каждый узел хранит часть данных
Можно распределять кэш по нескольким инстансам
Redis поддерживает Sharding (разбиение данных на ноды)
sh  
redis-cli --cluster create 192.168.1.1:6379 192.168.1.2:6379 192.168.1.3:6379 --cluster-replicas 1



🚩Какие микросервисы **нельзя просто так масштабировать горизонтально?**

Некоторые сервисы сохраняют состояние (stateful) и сложны в горизонтальном масштабировании:
Базы данных → MySQL, PostgreSQL (нужны реплики или шардирование)
Сервисы с сессиями → Например, если пользователь всегда должен попасть на тот же сервер
Хранилища файлов → Например, локальное хранение логов на сервере

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤔 Что такое cl в Linux?

Если имеется в виду команда cl, то она не является стандартной утилитой Linux. Возможны интерпретации: в некоторых дистрибутивах это может быть alias или часть кастомного набора утилит.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊38
🤔 Чем отличается маршрутизатор от коммутатора?

Маршрутизатор (Router) – соединяет разные сети и передает пакеты между ними. Коммутатор (Switch) – соединяет устройства внутри одной сети (LAN) и передает данные между ними.

🚩Что делает маршрутизатор (Router)?

Связывает разные сети (LAN ↔️ WAN, LAN ↔️ LAN)
Определяет путь (маршрут) для передачи данных
Использует IP-адреса (3-й уровень OSI)
Может раздавать интернет через NAT

Пример работы маршрутизатора
Компьютер в 192.168.1.0/24 хочет отправить данные в 10.0.0.0/24
- Маршрутизатор определяет лучший путь и передает данные
ip route add 10.0.0.0/24 via 192.168.1.1


🚩Что делает коммутатор (Switch)?

Объединяет устройства в одной сети (LAN)
Переключает пакеты между портами по MAC-адресам
Работает на 2-м уровне OSI (канальный уровень)
Использует MAC-таблицу для ускорения передачи

Пример работы коммутатора:
Компьютер A (MAC: AA:BB:CC:01) отправляет данные компьютеру B (MAC: AA:BB:CC:02)
Коммутатор смотрит MAC-таблицу и направляет данные только на нужный порт
show mac address-table


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4💊3
🤔 Какие оркестрации знаешь для Microservices?

- Kubernetes — самая популярная;
- Docker Swarm — встроенное решение в Docker;
- Nomad от HashiCorp;
- Apache Mesos (редко используется сегодня).
Они обеспечивают развертывание, масштабирование и управление контейнеризированными микросервисами.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🤔 Чем DevOps отличается от Agile?

Это два различных подхода в разработке и доставке программного обеспечения, которые имеют разные цели и методы, но могут взаимодополнять друг друга. Давайте рассмотрим основные различия и связи между ними.

🚩Agile

Увеличение гибкости и адаптивности разработки программного обеспечения.
🟠Итеративная разработка
Разработка проходит в коротких циклах (итерациях), что позволяет регулярно представлять работающее программное обеспечение.
🟠Непрерывная обратная связь
Регулярные встречи (например, ежедневные стендапы, спринт-ревью) для получения обратной связи от команды и заинтересованных сторон.
🟠Кросс-функциональные команды
Команды, состоящие из разработчиков, тестировщиков, аналитиков и других специалистов, работают вместе над проектом.
🟠Фокус на клиенте
Постоянное взаимодействие с клиентами для уточнения требований и проверки соответствия продукта их ожиданиям.

Фреймворки: Scrum, Kanban, XP (Extreme Programming).

🚩DevOps

Увеличение скорости и качества доставки программного обеспечения через автоматизацию и улучшение сотрудничества между разработчиками и операционными командами.
🟠Непрерывная интеграция и доставка (CI/CD)
Автоматизация сборки, тестирования и развертывания кода, чтобы изменения могли быстро и надежно попасть в рабочую среду.
🟠Инфраструктура как код (IaC)
Использование кода для управления и автоматизации инфраструктуры, что делает процессы повторяемыми и предсказуемыми.
🟠Мониторинг и логирование
Постоянное отслеживание состояния приложений и инфраструктуры для быстрого обнаружения и устранения проблем.
🟠Сотрудничество и обмен знаниями
Улучшение взаимодействия между разработчиками и операционными инженерами через общие инструменты и процессы.

Инструменты: Jenkins, Docker, Kubernetes, Ansible, Terraform, Prometheus, Grafana.

🚩Сравнение и различия

🟠Фокус
Agile: Сфокусирован на процессе разработки и управлении проектами, улучшая гибкость и адаптивность команды разработки.
DevOps: Сфокусирован на процессе доставки и эксплуатации, улучшая автоматизацию и сотрудничество между разработчиками и операционными командами.

🟠Команды
Agile: Включает кросс-функциональные команды, которые работают вместе над созданием программного обеспечения.
DevOps: Включает команды разработчиков и операций, которые совместно работают над автоматизацией и улучшением процессов развертывания и эксплуатации.

🟠Методы и инструменты
Agile: Методы Scrum, Kanban и другие Agile-практики, которые улучшают процесс управления проектами.
DevOps: Инструменты и практики для автоматизации развертывания, мониторинга и управления инфраструктурой.

🚩Связь между Agile и DevOps

🟠Agile
Помогает улучшить процесс разработки, делая его более гибким и отзывчивым к изменениям.

🟠DevOps
Дополняет Agile, автоматизируя развертывание и эксплуатацию программного обеспечения, что позволяет быстрее доставлять изменения пользователям.

🟠Agile команда
Может использовать Scrum для управления спринтами и задачами.

🟠DevOps практики
Могут быть использованы для автоматизации CI/CD пайплайнов, чтобы каждая итерация разработки могла быть быстро и надежно развернута на серверы.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Какие бывают виды дополнительных контейнеров в поде?

Дополнительные контейнеры включают init-контейнеры для подготовки среды и sidecar-контейнеры для дополнительных задач, таких как логирование или прокси.

Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🤔 В docker контейнере локальной учётной записи выполнили команду docker Run Alpine пробел ID: Какой ID будет выведен?

Если в контейнере выполнить:
docker run alpine ID:


🚩Как проверить ID контейнера?
Если вы хотите получить ID запущенного контейнера, правильная команда:
docker run --rm alpine sh -c 'echo $HOSTNAME'


🚩Как получить ID уже запущенного контейнера?

Если контейнер уже работает, его ID можно посмотреть так
docker ps -q


или
docker inspect -f '{{.Id}}' container_name


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
💊7
🤔 Как TCP устанавливает соединение?

С помощью трёхстороннего рукопожатия (3-way handshake):
1. Клиент → сервер: SYN.
2. Сервер → клиент: SYN-ACK.
3. Клиент → сервер: ACK.
После этого соединение считается установленным. Это обеспечивает надёжный канал связи.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3
🤔 Что такое IaC?

Это практика управления и настройки IT-инфраструктуры (серверов, сетей, баз данных и других ресурсов) с помощью кода, а не вручную через консоли или графические интерфейсы.

🚩Зачем нужен IaC?

🟠Автоматизация
вместо ручной настройки серверов вы пишете код, который делает это автоматически.
🟠Консистентность
одинаковая среда на всех серверах, исключение человеческих ошибок.
🟠Быстрое развертывание
развернуть инфраструктуру можно за минуты.
🟠Легкость в откате
если что-то пошло не так, можно быстро вернуть предыдущее состояние.
🟠Масштабируемость
легко добавить новые серверы или ресурсы при увеличении нагрузки.

🚩Как работает IaC?

С помощью IaC вы описываете всю инфраструктуру в коде (например, в YAML, JSON, HCL и др.), а затем используете инструменты для автоматического развертывания.
provider "aws" {
region = "us-east-1"
}

resource "aws_instance" "example" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
}


🚩Основные инструменты IaC

🟠Terraform
универсальный инструмент для облаков (AWS, Azure, GCP и др.).
🟠Ansible
удобен для настройки серверов (конфигурации ПО).
🟠Puppet / Chef
похожи на Ansible, но требуют агента на серверах.
🟠CloudFormation
инструмент от AWS для управления ресурсами.

Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🤔 За счёт чего происходит распределение по зонам для PersistentVolume?

Распределение происходит через:
- StorageClass с параметром zone (например, allowedTopologies в GCP).
- Использование CSI-драйвера, указывающего, где создаётся том.
- Topology-aware provisioning — PVC привязывается к ближайшей доступной зоне.


Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🤔 Может ли быть несколько контейнеров в поде?

Да, в Kubernetes Pod можно запускать несколько контейнеров, и это обычная практика. Pod — это минимальная единица развертывания в Kubernetes которая может содержать один или несколько контейнеров.

🚩Зачем запускать несколько контейнеров в одном Pod?

🟠Sidecar-контейнеры
вспомогательные контейнеры, дополняющие основное приложение (логирование, прокси, безопасность).
🟠Init-контейнеры
выполняют задачи перед запуском основного контейнера (например, подготовка базы данных).
🟠Общий файловый кэш
контейнеры могут использовать общие тома (volumes) для хранения данных.
🟠Общий сетевой стек
контейнеры в одном Pod разделяют IP-адрес и порты.

🚩Пример: два контейнера в одном Pod (Nginx + логирование)

Допустим, у нас есть Nginx и отдельный контейнер, который собирает его логи.
yaml  
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: log-volume
mountPath: /var/log/nginx

- name: log-collector
image: busybox
command: ["sh", "-c", "tail -f /var/log/nginx/access.log"]
volumeMounts:
- name: log-volume
mountPath: /var/log/nginx

volumes:
- name: log-volume
emptyDir: {}



🚩Как работают контейнеры внутри Pod?

Все контейнеры внутри Pod имеют один IP-адрес и могут взаимодействовать через localhost.
Например, если в одном контейнере работает Node.js на порту 3000, другой контейнер внутри Pod может обращаться к нему через localhost:3000.
Контейнеры могут делиться файлами через volumes, как в примере выше.
Если нужно выполнить команду перед запуском основного контейнера, используют initContainers.
yaml  
apiVersion: v1
kind: Pod
metadata:
name: app-pod
spec:
initContainers:
- name: wait-for-db
image: busybox
command: ["sh", "-c", "until nc -z db-service 5432; do sleep 1; done"]

containers:
- name: app
image: my-app


Ставь 👍 и забирай 📚 Базу знаний
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3