View on GitHub

kubernetes-learning-gitbook

Kubernetes basics: Deployments

   
Title K8 Basic Deployments
Category Course
Level Novice
Duration ?
YouTube https://youtube.com/crankzone/xxx
Blog https://muellermh.wordpress.com/k8s-basic-training-etcd
 Author Manuel H. “Onko” Müller
 Mail  mm@kubernauts.de
 Resource https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
Description Diese Lektion vermittelt alle Informationen zum Thema Deployment

Deployment

Ein Deployment Controller stellt deklarative Updates für Pods und ReplicaSets zur Verfügung. Sie beschreiben einen gewünschten Zustand in einem Deployment-Objekt, und der Deployment Controller ändert den aktuellen Zustand mit einer kontrollierten Geschwindigkeit in den gewünschten Zustand. Sie können Deployments definieren, um neue ReplicaSets zu erstellen, oder um bestehende Deployments zu entfernen und alle ihre Ressourcen mit neuen Deployments zu übernehmen.

Typische UseCases

Updaten eines Deployments

Für das aktuallisieren des Images reicht folgender Befehl «««< HEAD =======

880b971e13c006e476ca8bb4614174c74d3281cd

kubectl set image deployment/nginx nginx=nginx:1.15.1

Um das Deployment yaml zu bearbeiten benötigt man diesen Befehl

kubectl edit deployment/nginx

Um den rollout status zu prüfen reicht dieser Befehl:

kubectl rollout status deployment/nginx

um sich alle deployments anzuzeigen benötigt man diesen befehl

kubectl get deployments
kubectl get rs

für die anzeige der ReplicaSet

kubectl get pods

für die anzeige der Pods

Sollte etwas nicht wie gewünscht funktionieren findet man alle informationen dazu im deployment und kann sich diese mit dem Befehl anzeigen lassen

kubectl describe deployments

Eine history des rollouts bekommt man mit

kubectl rollout history deployment/nginx

Ein Rollback kann man auch einfach mit dem Befehl ausführen

kubectl rollout undo deployment/nginx

Einfaches scallieren des Deployments mit

kubectl scale deployment nginx

Und um das Deployment zu pausieren einfach

kubectl rollout pause deployment/nginx

um es anschließend mit

kubectl rollout resume deployment/nginx

weiter laufen zu lassen.

Example

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    app: test-deployment
  name: test-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test-deployment
  strategy: {}
  template:
    metadata:
      labels:
        app: test-deployment
    spec:
      containers:
      - image: nginx
        name: nginx