From f01f6e9f8a108471c31cb7a39d8fe777e6352e54 Mon Sep 17 00:00:00 2001 From: Edward Viaene Date: Wed, 23 Nov 2016 15:29:12 +0100 Subject: [PATCH] ingress demo --- ingress/echoservice.yml | 33 ++++++++++++++++++ ingress/helloworld-v1.yml | 32 +++++++++++++++++ ingress/helloworld-v2.yml | 32 +++++++++++++++++ ingress/ingress.yml | 21 ++++++++++++ ingress/nginx-ingress-controller.yml | 51 ++++++++++++++++++++++++++++ 5 files changed, 169 insertions(+) create mode 100644 ingress/echoservice.yml create mode 100644 ingress/helloworld-v1.yml create mode 100644 ingress/helloworld-v2.yml create mode 100644 ingress/ingress.yml create mode 100644 ingress/nginx-ingress-controller.yml diff --git a/ingress/echoservice.yml b/ingress/echoservice.yml new file mode 100644 index 0000000..01dd94a --- /dev/null +++ b/ingress/echoservice.yml @@ -0,0 +1,33 @@ +apiVersion: v1 +kind: ReplicationController +metadata: + name: echoheaders +spec: + replicas: 1 + template: + metadata: + labels: + app: echoheaders + spec: + containers: + - name: echoheaders + image: gcr.io/google_containers/echoserver:1.0 + ports: + - containerPort: 8080 +--- +apiVersion: v1 +kind: Service +metadata: + name: echoheaders-default + labels: + app: echoheaders +spec: + type: NodePort + ports: + - port: 80 + nodePort: 30302 + targetPort: 8080 + protocol: TCP + name: http + selector: + app: echoheaders diff --git a/ingress/helloworld-v1.yml b/ingress/helloworld-v1.yml new file mode 100644 index 0000000..0118b6c --- /dev/null +++ b/ingress/helloworld-v1.yml @@ -0,0 +1,32 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: helloworld-v1-deployment +spec: + replicas: 1 + template: + metadata: + labels: + app: helloworld-v1 + spec: + containers: + - name: k8s-demo + image: wardviaene/k8s-demo:latest + ports: + - name: nodejs-port + containerPort: 3000 +--- +apiVersion: v1 +kind: Service +metadata: + name: helloworld-v1 +spec: + type: NodePort + ports: + - port: 80 + nodePort: 30303 + targetPort: 3000 + protocol: TCP + name: http + selector: + app: helloworld-v1 diff --git a/ingress/helloworld-v2.yml b/ingress/helloworld-v2.yml new file mode 100644 index 0000000..874fe1e --- /dev/null +++ b/ingress/helloworld-v2.yml @@ -0,0 +1,32 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: helloworld-v2-deployment +spec: + replicas: 1 + template: + metadata: + labels: + app: helloworld-v2 + spec: + containers: + - name: k8s-demo + image: wardviaene/k8s-demo:2 + ports: + - name: nodejs-port + containerPort: 3000 +--- +apiVersion: v1 +kind: Service +metadata: + name: helloworld-v2 +spec: + type: NodePort + ports: + - port: 80 + nodePort: 30304 + targetPort: 3000 + protocol: TCP + name: http + selector: + app: helloworld-v2 diff --git a/ingress/ingress.yml b/ingress/ingress.yml new file mode 100644 index 0000000..7f47a2e --- /dev/null +++ b/ingress/ingress.yml @@ -0,0 +1,21 @@ +# An Ingress with 2 hosts and 3 endpoints +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: helloworld-rules +spec: + rules: + - host: helloworld-v1.example.com + http: + paths: + - path: / + backend: + serviceName: helloworld-v1 + servicePort: 80 + - host: helloworld-v2.example.com + http: + paths: + - path: / + backend: + serviceName: helloworld-v2 + servicePort: 80 diff --git a/ingress/nginx-ingress-controller.yml b/ingress/nginx-ingress-controller.yml new file mode 100644 index 0000000..5f8419a --- /dev/null +++ b/ingress/nginx-ingress-controller.yml @@ -0,0 +1,51 @@ +apiVersion: v1 +kind: ReplicationController +metadata: + name: nginx-ingress-controller + labels: + k8s-app: nginx-ingress-lb +spec: + replicas: 1 + selector: + k8s-app: nginx-ingress-lb + template: + metadata: + labels: + k8s-app: nginx-ingress-lb + name: nginx-ingress-lb + spec: + terminationGracePeriodSeconds: 60 + containers: + - image: gcr.io/google_containers/nginx-ingress-controller:0.8.3 + name: nginx-ingress-lb + imagePullPolicy: Always + readinessProbe: + httpGet: + path: /healthz + port: 10254 + scheme: HTTP + livenessProbe: + httpGet: + path: /healthz + port: 10254 + scheme: HTTP + initialDelaySeconds: 10 + timeoutSeconds: 1 + # use downward API + env: + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + ports: + - containerPort: 80 + hostPort: 80 + - containerPort: 443 + hostPort: 443 + args: + - /nginx-ingress-controller + - --default-backend-service=$(POD_NAMESPACE)/echoheaders-default