apiVersion: apps/v1 kind: Deployment metadata: name: ecsdemo-frontend labels: app: ecsdemo-frontend namespace: default spec: replicas: 2 selector: matchLabels: app: ecsdemo-frontend strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: labels: app: ecsdemo-frontend spec: containers: - image: brentley/ecsdemo-frontend:latest imagePullPolicy: Always name: ecsdemo-frontend ports: - containerPort: 80 protocol: TCP env: - name: CRYSTAL_URL value: "http://ecsdemo-crystal.default.svc.cluster.local/crystal" - name: NODEJS_URL value: "http://ecsdemo-nodejs.default.svc.cluster.local/" --- apiVersion: v1 kind: Service metadata: name: ecsdemo-frontend spec: selector: app: ecsdemo-frontend #type: LoadBalancer type: ClusterIP ports: - protocol: TCP port: 80 targetPort: 80 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ecsdemo-frontend namespace: "default" annotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/target-type: ip labels: app: ecsdemo-frontend spec: rules: - http: paths: - path: / pathType: Prefix backend: service: name: ecsdemo-frontend port: number: 80