Skip to content

Kubernetes (EKS) Deployment Guide

Deploying Integra on Amazon EKS or any Kubernetes cluster.


Deployment Manifest

Save as integra-deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: integra
  namespace: default
  labels:
    app: integra
spec:
  replicas: 2
  selector:
    matchLabels:
      app: integra
  template:
    metadata:
      labels:
        app: integra
    spec:
      containers:
        - name: integra
          image: priyaiosystems/integra:latest
          ports:
            - containerPort: 8080
          resources:
            requests:
              memory: "128Mi"
              cpu: "250m"
            limits:
              memory: "512Mi"
              cpu: "1000m"
          readinessProbe:
            httpGet:
              path: /health
              port: 8080
            initialDelaySeconds: 5
            periodSeconds: 10
          livenessProbe:
            httpGet:
              path: /health
              port: 8080
            initialDelaySeconds: 10
            periodSeconds: 20
          env:
            - name: INTEGRA_LOG_LEVEL
              value: "info"
---
apiVersion: v1
kind: Service
metadata:
  name: integra
  namespace: default
spec:
  selector:
    app: integra
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080
  type: ClusterIP

Apply

kubectl apply -f integra-deployment.yaml

AWS Load Balancer Controller (Ingress)

To expose the service externally on EKS:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: integra-ingress
  namespace: default
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
spec:
  rules:
    - http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: integra
                port:
                  number: 80

Horizontal Pod Autoscaling (HPA)

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: integra-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: integra
  minReplicas: 2
  maxReplicas: 20
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 70