apiVersion: v1 kind: Service metadata: name: echoserver-service namespace: default spec: ports: - name: echoserver-port port: 80 protocol: TCP targetPort: 8080 selector: app: echoserver-deployment type: ClusterIP --- apiVersion: apps/v1 kind: Ingress metadata: annotations: ingress.bluemix.net/proxy-read-timeout: serviceName=echoserver-service timeout=300s name: echoserver-via-ingress namespace: default spec: rules: - host: echoserver.arpad-ipvs-test-aug14.us-south.containers.appdomain.cloud # Change it to your cluster's ALB host name http: paths: - backend: serviceName: echoserver-service servicePort: 80 path: / tls: - hosts: - echoserver.arpad-ipvs-test-aug14.us-south.containers.appdomain.cloud # Change it to your cluster's ALB host name secretName: arpad-ipvs-test-aug14 # Change it to your cluster's secret (it is in default namespace) --- apiVersion: apps/v1 kind: Deployment metadata: name: echoserver-deployment namespace: default labels: app: echoserver-deployment spec: replicas: 20 # start 20 replicas and spread the application out across the worker nodes (also across the region) selector: matchLabels: app: echoserver-deployment template: metadata: labels: app: echoserver-deployment spec: affinity: podAntiAffinity: # Spread out the "echoserver-deployment" pods on the worker nodes as evenly as possible preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchExpressions: - key: app operator: In values: - echoserver-deployment # if a pod matching app=echoserver-deployment already runs on a node, try to find another node topologyKey: kubernetes.io/hostname containers: - name: echoserver image: k8s.gcr.io/echoserver:1.10 env: - name: HOSTNAME valueFrom: fieldRef: fieldPath: metadata.name - name: NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: POD_IP valueFrom: fieldRef: fieldPath: status.podIP restartPolicy: Always