- Benjamin APPREDERISSE 🇫🇷
- Lead Engineering @KintoHub
- FullStack Backend Engineer
- ~5 years XP with Kubernetes
Worth mentioning:
- I ❤️ 🧀
"All-in-one platform to combine and deploy your backend services, websites, cronjobs, databases and everything your app needs in one place."
apiVersion: v1
kind: Service
metadata:
name: example
spec:
selector:
app: example
ports:
- protocol: "TCP"
port: 80
targetPort: 80
apiVersion: apps/v1
kind: Deployment
metadata:
name: example
spec:
selector:
matchLabels:
app: example
replicas: 1
template:
metadata:
labels:
app: example
spec:
containers:
- name: example
image: "example:latest"
ports:
- name: http
containerPort: 80
target
proxy
proxless
example
scale
target
target
proxless
example
example
apiVersion: v1
kind: Service
metadata:
name: example
annotations:
proxless/deployment: example
spec:
selector:
app: example
ports:
- protocol: "TCP"
port: 80
targetPort: 80
apiVersion: apps/v1
kind: Deployment
metadata:
name: example
labels:
proxless: true
spec:
selector:
matchLabels:
app: example
replicas: 1
template:
metadata:
labels:
app: example
spec:
containers:
- name: example
image: "example:latest"
ports:
- name: http
containerPort: 80
proxy
proxless
example
labelize & scale
target
target
proxless
example
example-proxless
CNAME
create
example
apiVersion: v1
kind: Service
metadata:
name: example
annotations:
proxless/deployment: example
proxless/domains: "example.io,www.example.io"
spec:
selector:
app: example
ports:
- protocol: "TCP"
port: 80
targetPort: 80
proxy
proxless
example
labelize & scale
target
target
proxless
example
example-proxless
CNAME
create
expose
example.io,www.example.io
example
apiVersion: v1
kind: Service
metadata:
name: example
annotations:
proxless/domains: "example.io,www.example.io"
proxless/deployment: "example"
proxless/ttl-seconds: "120"
proxless/readiness-timeout-seconds: "30"
spec:
selector:
app: example
ports:
- protocol: "TCP"
port: 80
targetPort: 80
proxless
proxless-sjskj
proxless-dfjsi
proxless-liowj
proxless
request received and sent to 1 pod
push "lastUsed" time on the correct channel
receive the new "lastUsed" time and update their store
apiVersion: v1
kind: Service
metadata:
name: example
annotations:
proxless/deployment: example
proxless/service: example-proxless
spec:
type: "ExternalName"
externalName: example-proxless
---
apiVersion: v1
kind: Service
metadata:
name: example-proxless
spec:
selector:
app: example
ports:
- protocol: "TCP"
port: 80
targetPort: 80
{DemoTime}
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello
spec:
selector:
matchLabels:
app: hello
tier: backend
track: stable
replicas: 0
template:
metadata:
labels:
app: hello
tier: backend
track: stable
spec:
containers:
- name: hello
image: "gcr.io/google-samples/hello-go-gke:1.0"
ports:
- name: http
containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: hello
annotations:
proxless/deployment: "hello"
spec:
selector:
app: hello
tier: backend
ports:
- protocol: TCP
port: 80
targetPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: frontend
spec:
selector:
matchLabels:
app: hello
tier: frontend
track: stable
replicas: 0
template:
metadata:
labels:
app: hello
tier: frontend
track: stable
spec:
containers:
- name: nginx
image: "bappr/proxless-nginx-example"
env:
- name: BACKEND_HOST
value: "http://hello-proxless"
---
apiVersion: v1
kind: Service
metadata:
name: frontend
annotations:
proxless/domains: "example.io,www.example.io"
proxless/deployment: "frontend"
proxless/ttl-seconds: "120"
proxless/readiness-timeout-seconds: "30"
spec:
selector:
app: hello
tier: frontend
ports:
- protocol: "TCP"
port: 80
targetPort: 80