You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Ingress Controller muss aktiviert sein
## Nur der Fall wenn man microk8s zum Einrichten verwendet
## Ubuntu
microk8s enable ingress
Walkthrough
Step 1: pods and services
cd
mkdir -p manifests
cd manifests
mkdir abi
cd abi
# apple.yml
# vi apple.yml
kind: Pod
apiVersion: v1
metadata:
name: apple-app
labels:
app: apple
spec:
containers:
- name: apple-app
image: hashicorp/http-echo
args:
- "-text=apple-<dein-name>"
---
kind: Service
apiVersion: v1
metadata:
name: apple-service
spec:
selector:
app: apple
ports:
- protocol: TCP
port: 80
targetPort: 5678 # Default port for image
kubectl apply -f apple.yml
# banana
# vi banana.yml
kind: Pod
apiVersion: v1
metadata:
name: banana-app
labels:
app: banana
spec:
containers:
- name: banana-app
image: hashicorp/http-echo
args:
- "-text=banana-<dein-name>"
---
kind: Service
apiVersion: v1
metadata:
name: banana-service
spec:
selector:
app: banana
ports:
- port: 80
targetPort: 5678 # Default port for image
kubectl apply -f banana.yml
Step 2: Ingress
# Ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: example-ingress
annotations:
ingress.kubernetes.io/rewrite-target: /
# with the ingress controller from helm, you need to set an annotation
# otherwice it does not know, which controller to use
# old version... use ingressClassName instead
# kubernetes.io/ingress.class: nginx
spec:
ingressClassName: nginx
rules:
- host: "<euername>.lab<nr>.t3isp.de"
http:
paths:
- path: /apple
backend:
serviceName: apple-service
servicePort: 80
- path: /banana
backend:
serviceName: banana-service
servicePort: 80
# ingress
kubectl apply -f ingress.yml
kubectl get ing
# Hints
# 1. Which resources does our version of kubectl support
# Can we find Ingress as "Kind" here.
kubectl api-ressources
# 2. Let's see, how the configuration works
kubectl explain --api-version=networking.k8s.io/v1 ingress.spec.rules.http.paths.backend.service
# now we can adjust our config
Solution
# in kubernetes 1.22.2 - ingress.yml needs to be modified like so.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
annotations:
ingress.kubernetes.io/rewrite-target: /
# with the ingress controller from helm, you need to set an annotation
# old version useClassName instead
# otherwice it does not know, which controller to use
# kubernetes.io/ingress.class: nginx
spec:
ingressClassName: nginx
rules:
- host: "app12.lab.t3isp.de"
http:
paths:
- path: /apple
pathType: Prefix
backend:
service:
name: apple-service
port:
number: 80
- path: /banana
pathType: Prefix
backend:
service:
name: banana-service
port:
number: 80