Расскажите о своих опыте внедрения и управления деплойментами в Kubernetes
Ответ от нейросети
sobes.tech AI
В моём опыте работы с Kubernetes я использовал Deployment для управления жизненным циклом приложений. Основные шаги включали создание манифестов в формате YAML, где описывалось количество реплик, образ контейнера и стратегии обновления (например, RollingUpdate). Для деплоя использовал команду kubectl apply -f deployment.yaml.
Для управления версиями и откатами применял возможности Deployment, позволяющие откатываться к предыдущей стабильной версии при ошибках. Также настраивал readiness и liveness пробы, чтобы Kubernetes мог корректно управлять состоянием подов.
В проектах автоматизировал деплойменты через CI/CD пайплайны (например, Jenkins или GitLab CI), где после успешного билда образа происходил автоматический деплой в кластер. Это позволяло минимизировать ручные операции и ускорить выпуск новых версий.
Пример простого Deployment YAML:
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-container
image: myregistry/my-app:1.0
ports:
- containerPort: 80
readinessProbe:
httpGet:
path: /health
port: 80
initialDelaySeconds: 5
periodSeconds: 10