apiVersion: v1 kind: Service metadata: # This must match the --default-backend-service argument of the l7 lb # controller and is required because GCE mandates a default backend. name: default-http-backend labels: k8s-app: glbc spec: # The default backend must be of type NodePort. type: NodePort ports: - port: 80 targetPort: 8080 protocol: TCP name: http selector: k8s-app: glbc --- apiVersion: v1 kind: ReplicationController metadata: name: l7-lb-controller labels: k8s-app: glbc version: v0.9.1 spec: # There should never be more than 1 controller alive simultaneously. replicas: 1 selector: k8s-app: glbc version: v0.9.1 template: metadata: labels: k8s-app: glbc version: v0.9.1 name: glbc spec: terminationGracePeriodSeconds: 600 containers: - name: default-http-backend # Any image is permissable as long as: # 1. It serves a 404 page at / # 2. It serves 200 on a /healthz endpoint image: gcr.io/google_containers/defaultbackend:1.0 livenessProbe: httpGet: path: /healthz port: 8080 scheme: HTTP initialDelaySeconds: 30 timeoutSeconds: 5 ports: - containerPort: 8080 resources: limits: cpu: 10m memory: 20Mi requests: cpu: 10m memory: 20Mi - image: gcr.io/google_containers/glbc:0.9.2 livenessProbe: httpGet: path: /healthz port: 8081 scheme: HTTP initialDelaySeconds: 30 timeoutSeconds: 5 name: l7-lb-controller resources: limits: cpu: 100m memory: 100Mi requests: cpu: 100m memory: 50Mi args: - --default-backend-service=default/default-http-backend - --sync-period=300s