--- # Use curl to test service loadbalancing on stateful and stateless services: ### simple: # oc exec client -- curl -sS http://stateless:8080 # ### automated: # for i in $(seq 1 100); do oc exec client -- curl -sS http://stateless:8080 | head -n1; sleep 1; done # for i in $(seq 1 100); do oc exec client -- curl -sS http://stateful:8080 | head -n1; sleep 1; done apiVersion: v1 kind: Pod metadata: creationTimestamp: null labels: run: client name: client spec: containers: - args: - sleep - infinity image: rhel7/rhel-tools name: client resources: {} dnsPolicy: ClusterFirst restartPolicy: Always --- apiVersion: apps/v1 kind: Deployment metadata: creationTimestamp: null labels: app: webserver name: webserver spec: replicas: 2 selector: matchLabels: app: webserver strategy: {} template: metadata: labels: app: webserver spec: containers: - image: docker.io/traefik/whoami:latest name: whoami args: - "--port" - "8080" --- apiVersion: v1 kind: Service metadata: creationTimestamp: null labels: app: webserver name: stateless spec: ports: - port: 8080 protocol: TCP targetPort: 8080 selector: app: webserver --- apiVersion: v1 kind: Service metadata: creationTimestamp: null labels: app: webserver name: stateful spec: ports: - port: 8080 protocol: TCP targetPort: 8080 selector: app: webserver sessionAffinity: ClientIP