Ответ
Для базового деплоя stateless-сервиса в Kubernetes обычно создаются два ключевых объекта: Deployment для управления подами и Service для сетевого доступа.
-
Deployment — декларативно управляет жизненным циклом подов (репликация, обновления, откаты).
apiVersion: apps/v1 kind: Deployment metadata: name: my-app-deployment spec: replicas: 3 selector: matchLabels: app: my-app template: metadata: labels: app: my-app spec: containers: - name: app-container image: my-registry/app:v1.0 ports: - containerPort: 8080 envFrom: - configMapRef: name: app-config -
Service — обеспечивает стабильную сетевую точку доступа к группе подов, определяемую селектором.
apiVersion: v1 kind: Service metadata: name: my-app-service spec: selector: app: my-app ports: - port: 80 targetPort: 8080 type: ClusterIP # Для внутреннего доступа. Для внешнего — LoadBalancer или NodePort.
В зависимости от требований, этот набор дополняется:
- ConfigMap / Secret — для вынесения конфигурации и чувствительных данных из образа.
- HorizontalPodAutoscaler (HPA) — для автоматического масштабирования на основе метрик CPU или памяти.
- Ingress — для маршрутизации внешнего HTTP/HTTPS-трафика в сервисы.
- PersistentVolumeClaim — если приложению требуется постоянное хранилище.