Ответ
Для деплоя приложения в Kubernetes нужно выполнить несколько шагов:
- Создать Docker-образ приложения и загрузить его в registry (Docker Hub, GCR, ECR и т.д.)
FROM golang:alpine
WORKDIR /app
COPY . .
RUN go build -o main .
CMD ["./main"]
- Создать манифесты 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
- Применить манифесты:
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
Для управления конфигурацией можно использовать Helm или Kustomize. Для CI/CD подойдут инструменты вроде ArgoCD, Flux или Tekton.