Как задеплоить в Kubernetes

«Как задеплоить в Kubernetes» — вопрос из категории DevOps, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для деплоя приложения в Kubernetes нужно выполнить несколько шагов:

  1. Создать Docker-образ приложения и загрузить его в registry (Docker Hub, GCR, ECR и т.д.)
FROM golang:alpine
WORKDIR /app
COPY . .
RUN go build -o main .
CMD ["./main"]
  1. Создать манифесты Kubernetes:
  • Deployment (основной объект для развертывания)
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: your-registry/my-app:latest
        ports:
        - containerPort: 8080
  • Service (для доступа к приложению)
apiVersion: v1
kind: Service
metadata:
  name: my-app-service
spec:
  selector:
    app: my-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: LoadBalancer
  1. Применить манифесты:
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml

Для управления конфигурацией можно использовать Helm или Kustomize. Для CI/CD подойдут инструменты вроде ArgoCD, Flux или Tekton.