Skip to content

Instantly share code, notes, and snippets.

@kennonkwok
Last active June 3, 2020 17:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kennonkwok/6f5ede1052c3f9fb5108a86d91071eae to your computer and use it in GitHub Desktop.
Save kennonkwok/6f5ede1052c3f9fb5108a86d91071eae to your computer and use it in GitHub Desktop.
k3d ingress demo
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo1
namespace: default
spec:
replicas: 2
selector:
matchLabels:
app: demo1
template:
metadata:
labels:
app: demo1
spec:
containers:
- name: demo1
image: gcr.io/google_containers/echoserver:1.8
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: demo1
namespace: default
spec:
ports:
- name: http
targetPort: 8080
port: 80
selector:
app: demo1
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: demo1
annotations:
kubernetes.io/ingress.class: "traefik"
spec:
rules:
- host: demo1.example.org
http:
paths:
- path: /
backend:
serviceName: demo1
servicePort: http
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo2
namespace: default
spec:
replicas: 2
selector:
matchLabels:
app: demo2
template:
metadata:
labels:
app: demo2
spec:
containers:
- name: demo2
image: gcr.io/google_containers/echoserver:1.8
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: demo2
namespace: default
spec:
ports:
- name: http
targetPort: 8080
port: 80
selector:
app: demo2
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: demo2
annotations:
kubernetes.io/ingress.class: "traefik"
spec:
rules:
- host: demo2.example.org
http:
paths:
- path: /
backend:
serviceName: demo2
servicePort: http
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo3
namespace: default
spec:
replicas: 2
selector:
matchLabels:
app: demo3
template:
metadata:
labels:
app: demo3
spec:
containers:
- name: demo1
image: gcr.io/google_containers/echoserver:1.8
ports:
- containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
name: demo3
namespace: default
spec:
ports:
- name: http
targetPort: 8080
port: 80
selector:
app: demo3
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: demo3
annotations:
kubernetes.io/ingress.class: "traefik"
spec:
rules:
- host: demo1.example.org
http:
paths:
- path: /demo3
backend:
serviceName: demo3
servicePort: http
k3d create --workers="2" --publish="8080:80"
export KUBECONFIG="$(k3d get-kubeconfig --name='k3s-default')"
curl -H "Host: demo1.example.org" http://localhost:8080/
curl -H "Host: demo2.example.org" http://localhost:8080/
curl -H "Host: demo1.example.org" http://localhost:8080/demo3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment