In diesem Beitrag befinden sich die Grundgerüste für die Kubernetes Manifest-Dateien (YAML), um entspreche Umgebungen, Pods und andere Einstellungen zu erstellen.
Namespace
apiVersion: v1
kind: Namespace
meta:
name: einnamespace
labels:
# Maschinen auswertbar
author: phillip
name: app1
<key>: <value>
annotations:
# Menschen auswertbar
author: Phillip <mail@phillipunzen.de>
Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: <deployment name>
namespace: <namespace angeben>
annotations:
author: Phillip <mail@phillipunzen.de>
spec:
replicas: 3
strategy:
type: <Typ> RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: <app-name>
template:
metadata:
labels:
app: <app-name>
annotations:
author: Phillip <mail@phillipunzen.de>
spec:
containers:
- name: <pod name>
image: <docker-image:tag>
env:
- name: KEY
value: VALUE
ports:
- name: http
containerPort: <Port im Container>
resources:
requests: # Minimum an Hardware
cpu: "250m" # => 1/4 CPU Kern für den Container
memory: "256Mi"
limits:
cpu: "1000m" # => 1 CPU Kern für den Container
memory: "512Mi" # => Wenn mehr benötigt, dann wird Container neugestartet
readinessProbe: # Healthcheck auf HTTP
httpGet:
path: /
port: http
initialDelaySeconds: 10 # Zeitraum zwischen Checks
livenessProbe:
httpGet:
path: /
port: http
initialDelaySeconds: 10 # Zeitraum zwischen Checks
Service
apiVersion: v1
kind: Service
metadata:
name: <app-name>
namespace: <namespace name>
...
spec:
selector:
#Selektor definieren
app: <app-name>
ports:
- name: http
port: 80
targetPort: http (targetPort Namen aus dem Deployment)
type: <Typ>
Ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: <Name>
namespace: <Namespace>
spec:
ingressClassName: <Name> nginx
rules:
- host: <dns name> website.domain.de
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: <app name>
port:
name: <Port Name> http