Deployment

apiVersion: apps/v1
kind: Deployment
metadata: {name: my-agent}
spec:
  replicas: 3
  selector: {matchLabels: {app: my-agent}}
  template:
    metadata: {labels: {app: my-agent}}
    spec:
      containers:
      - name: agent
        image: myrepo/my-agent:v1
        resources:
          requests: {cpu: 500m, memory: 1Gi}
          limits: {cpu: 2, memory: 4Gi}
        readinessProbe:
          httpGet: {path: /health, port: 8080}
Advertisement

Service

ClusterIP for internal. Ingress or LoadBalancer if external.

Advertisement

HPA

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata: {name: my-agent}
spec:
  scaleTargetRef: {kind: Deployment, name: my-agent}
  minReplicas: 3
  maxReplicas: 20
  metrics:
  - type: Resource
    resource: {name: cpu, target: {type: Utilization, averageUtilization: 60}}