Zum Hauptinhalt springen
tsecurity.de LIVE
Echtzeit-Radar & Feeds
Alle RSS Feeds
👥 Community & Social
Sichere ProgrammierungI wanted the diff, not a screenshot: a small URL-change API(24.09.2026 um 06:05 Uhr)
Sichere ProgrammierungFreeze Object Identity Before One Mutator Extract(24.09.2026 um 06:06 Uhr)
Sichere ProgrammierungRun an n8n workflow when a page's text changes(24.09.2026 um 06:12 Uhr)
Sichere ProgrammierungThe Spreadsheet That Runs Your Company (And Why That Should Worry You)(24.09.2026 um 06:12 Uhr)
Sichere ProgrammierungArchitecting an Enterprise Network on AWS Cloud WAN(24.09.2026 um 06:31 Uhr)
Sichere ProgrammierungI wanted the diff, not a screenshot: a small URL-change API(24.09.2026 um 06:05 Uhr)
Sichere ProgrammierungFreeze Object Identity Before One Mutator Extract(24.09.2026 um 06:06 Uhr)
Sichere ProgrammierungRun an n8n workflow when a page's text changes(24.09.2026 um 06:12 Uhr)
Sichere ProgrammierungThe Spreadsheet That Runs Your Company (And Why That Should Worry You)(24.09.2026 um 06:12 Uhr)
Sichere ProgrammierungArchitecting an Enterprise Network on AWS Cloud WAN(24.09.2026 um 06:31 Uhr)
Intelligence View
⚡ tsecurity.de Intelligence

project: deployment strategy types in k8s

Common commands (use for every strategy) kubectl get deploy,pods,rs,svc kubectl rollout status deploy/<name> kubectl rollout history deploy/<name> kubectl describe pod <pod> kubectl logs <pod> kubectl get…

0
↗ Quelle (dev.to)
Reagiere als Erste:r — dein Feedback zählt!




Common commands (use for every strategy)






kubectl get deploy,pods,rs,svc
kubectl rollout status deploy/<name>
kubectl rollout history deploy/<name>
kubectl describe pod <pod>
kubectl logs <pod>
kubectl get events --sort-by=.lastTimestamp | tail -30






If you need a quick request loop to see behavior:




URL="<your service url>"
while true; do curl -s --max-time 1 "$URL" || echo "DOWN"; echo; sleep 0.3; done












1) RollingUpdate (most used)






Why it’s used most




  • It is the default Kubernetes Deployment behavior.

  • It provides continuous availability when configured correctly.

  • It’s simple to operate (built-in rollback/history).






Behavior




  • Old and new Pods exist at the same time.


  • Replacement happens in steps controlled by:





    • maxSurge (extra Pods allowed above desired replicas)


    • maxUnavailable (Pods allowed to be unavailable during rollout)






  • If readiness is correct, traffic only goes to ready Pods.








(Deployment + Service)



rolling.yaml




apiVersion: apps/v1
kind: Deployment
metadata: {name: rolling}
spec:
replicas: 3
selector: {matchLabels: {app: rolling}}
strategy:
type: RollingUpdate
rollingUpdate: {maxSurge: 1, maxUnavailable: 1}
template:
metadata: {labels: {app: rolling}}
spec:
containers:
- name: app
image: hashicorp/http-echo:0.2.3
args: ["-listen=:5678","-text=ROLLING v1"]
ports: [{containerPort: 5678}]
---
apiVersion: v1
kind: Service
metadata: {name: rolling-svc}
spec:
selector: {app: rolling}
ports: [{port: 80, targetPort: 5678}]
type: NodePort









How to use (demo flow)






kubectl apply -f rolling.yaml
kubectl get pods -w
kubectl rollout status deploy/rolling






Get URL:




minikube service rolling-svc --url






Update “version” (triggers rollout):




kubectl patch deploy rolling --type='json' -p='[
{"op":"replace","path":"/spec/template/spec/containers/0/args/1","value":"-text=ROLLING v2"}
]'

kubectl rollout status deploy/rolling









Troubleshooting (production style)



Symptom: rollout stuck / never completes




  1. Check rollout:




kubectl rollout status deploy/rolling
kubectl get rs
kubectl get pods







  1. Find failing Pod and inspect:




kubectl describe pod <new-pod>
kubectl logs <new-pod>
kubectl get events --sort-by=.lastTimestamp | tail -30






Common causes:




  • Image pull error (ErrImagePull, ImagePullBackOff)

  • App crashes (CrashLoopBackOff)

  • Readiness would fail (in real apps); traffic may route to bad pods if probes missing



Fast rollback




kubectl rollout undo deploy/rolling
kubectl rollout status deploy/rolling






Operational note

In production you nearly always add readiness checks, but they are omitted here to keep YAML minimal.







2) Recreate (rarely used)





Why it’s rarely used




  • It introduces downtime: old Pods stop before new ones are ready.

  • Most services can’t tolerate that, so it’s avoided.





When it’s used




  • Workloads that cannot run two versions simultaneously (hard constraints).

  • Maintenance-window deployments.

  • Certain stateful/legacy patterns (still better handled with careful rolling + app-level compatibility when possible).





Behavior




  • All old Pods terminate first.

  • Then new Pods start.

  • A period of “no endpoints” is expected.



recreate.yaml




apiVersion: apps/v1
kind: Deployment
metadata: {name: recreate}
spec:
replicas: 3
strategy: {type: Recreate}
selector: {matchLabels: {app: recreate}}
template:
metadata: {labels: {app: recreate}}
spec:
containers:
- name: app
image: hashicorp/http-echo:0.2.3
args: ["-listen=:5678","-text=RECREATE v1"]
ports: [{containerPort: 5678}]
---
apiVersion: v1
kind: Service
metadata: {name: recreate-svc}
spec:
selector: {app: recreate}
ports: [{port: 80, targetPort: 5678}]
type: NodePort









How to use






kubectl apply -f recreate.yaml
URL=$(minikube service recreate-svc --url)






Trigger change:




kubectl patch deploy recreate --type='json' -p='[
{"op":"replace","path":"/spec/template/spec/containers/0/args/1","value":"-text=RECREATE v2"}
]'










Troubleshooting



Symptom: brief outage during deploy




  • That’s the expected behavior. The correct response is strategy choice + maintenance window + comms.



Symptom: service never returns




  • Same checks as rolling:




kubectl get pods
kubectl describe pod <pod>
kubectl logs <pod>
kubectl get events --sort-by=.lastTimestamp | tail -30












3) Blue–Green (common for critical releases)






Why it’s used





  • Very safe cutover: new environment runs fully before traffic switch.


  • Instant rollback: switch traffic back immediately.

  • Great when you need deterministic release control.






Tradeoffs




  • You run two environments (cost/capacity).

  • You must manage data migrations carefully; schema changes can still be risky.






Behavior




  • Both “blue” and “green” run side-by-side.

  • A Service points to one of them.

  • Switching the Service selector flips traffic immediately.






Smallest YAML (blue+green+svc)



blue-green.yaml




apiVersion: apps/v1
kind: Deployment
metadata: {name: blue}
spec:
replicas: 2
selector: {matchLabels: {app: bg, color: blue}}
template:
metadata: {labels: {app: bg, color: blue}}
spec:
containers:
- name: app
image: hashicorp/http-echo:0.2.3
args: ["-listen=:5678","-text=BLUE v1"]
ports: [{containerPort: 5678}]
---
apiVersion: apps/v1
kind: Deployment
metadata: {name: green}
spec:
replicas: 2
selector: {matchLabels: {app: bg, color: green}}
template:
metadata: {labels: {app: bg, color: green}}
spec:
containers:
- name: app
image: hashicorp/http-echo:0.2.3
args: ["-listen=:5678","-text=GREEN v2"]
ports: [{containerPort: 5678}]
---
apiVersion: v1
kind: Service
metadata: {name: bg-svc}
spec:
selector: {app: bg, color: blue}
ports: [{port: 80, targetPort: 5678}]
type: NodePort









How to use






kubectl apply -f blue-green.yaml
URL=$(minikube service bg-svc --url)
curl -s $URL && echo






Switch to green:




kubectl patch svc bg-svc -p '{"spec":{"selector":{"app":"bg","color":"green"}}}'
curl -s $URL && echo






Rollback to blue:




kubectl patch svc bg-svc -p '{"spec":{"selector":{"app":"bg","color":"blue"}}}'









Troubleshooting



Symptom: after switch you still hit old version




  1. Check Service selector and endpoints:




kubectl get svc bg-svc -o yaml | sed -n '1,80p'
kubectl get endpoints bg-svc -o wide







  1. Verify labels match:




kubectl get pods --show-labels | grep bg






Most common root cause:




  • selector typo or missing label



Symptom: green is unhealthy




  • Validate green before switch:




kubectl rollout status deploy/green
kubectl logs deploy/green






Operational best practice:




  • Run smoke checks on green (health endpoint, critical flows) before switching.









4) Canary (highly used in mature production setups)






Why it’s used




  • Reduces blast radius: a small portion of traffic sees the new version first.

  • Lets you validate with real traffic + monitoring before full rollout.






Tradeoffs




  • Requires observability (metrics/alerts) and clear abort criteria.

  • True weighted traffic splitting is usually done via ingress/service mesh; here we demonstrate the core idea with replicas.






Behavior




  • Stable and canary versions run simultaneously.

  • Traffic is distributed roughly proportional to replica counts (not precise, but effective for demonstration).



canary.yaml




apiVersion: apps/v1
kind: Deployment
metadata: {name: stable}
spec:
replicas: 3
selector: {matchLabels: {app: canary, track: stable}}
template:
metadata: {labels: {app: canary, track: stable}}
spec:
containers:
- name: app
image: hashicorp/http-echo:0.2.3
args: ["-listen=:5678","-text=STABLE v1"]
ports: [{containerPort: 5678}]
---
apiVersion: apps/v1
kind: Deployment
metadata: {name: canary}
spec:
replicas: 1
selector: {matchLabels: {app: canary, track: canary}}
template:
metadata: {labels: {app: canary, track: canary}}
spec:
containers:
- name: app
image: hashicorp/http-echo:0.2.3
args: ["-listen=:5678","-text=CANARY v2"]
ports: [{containerPort: 5678}]
---
apiVersion: v1
kind: Service
metadata: {name: canary-svc}
spec:
selector: {app: canary}
ports: [{port: 80, targetPort: 5678}]
type: NodePort









How to use






kubectl apply -f canary.yaml
URL=$(minikube service canary-svc --url)
for i in {1..25}; do curl -s $URL; echo; done






Promote (increase canary):




kubectl scale deploy/canary --replicas=2






Abort (remove canary immediately):




kubectl scale deploy/canary --replicas=0









Troubleshooting



Symptom: canary never receives traffic




  • Service selector not matching both sets:




kubectl get svc canary-svc -o yaml | grep -A3 selector
kubectl get pods --show-labels | grep canary






Symptom: canary causing errors




  • Immediate mitigation is scaling canary to 0 while investigating:




kubectl scale deploy/canary --replicas=0
kubectl logs deploy/canary
kubectl describe pod <canary-pod>






Operational best practice:




  • Define SLO-based abort rules (error rate, latency, saturation) and automate promotion/abort (Argo Rollouts/Flagger).









5) A/B (specialized; product-driven)






Why it’s not “default”




  • It’s primarily for experimentation (feature comparison), not just safe rollout.

  • Requires request-based routing (headers/cookies/users).

  • DevOps provides the routing/infra and guardrails.






Behavior




  • Specific requests go to version B, others to version A.

  • Commonly implemented via Ingress/service mesh.






Minimal A/B in pure Kubernetes (no ingress) isn’t truly possible



Without ingress/mesh you can’t route by headers; you can only do replica-based canary. In production, A/B is usually NGINX Ingress / Istio / Linkerd.



If you want the smallest A/B that is real, it needs ingress + annotations. I can give that minimal manifest as a separate block (it will still be longer than others because routing rules require extra objects).









Summary: what is used more vs rarely (and why)




  • Most used: RollingUpdate

    Default, reliable, simplest operationally.


  • Highly used in mature orgs: Canary

    Lower risk, progressive delivery, relies on monitoring.


  • Common for high-stakes releases: Blue–Green

    Deterministic cutover + instant rollback, higher cost.


  • Rare: Recreate

    Downtime; only used when two versions cannot coexist or downtime is acceptable.


CTI Threat Relationship Graph2 Knoten / 1 Relationen
CVE / Incident Software MITRE ATT&CK CWE Weakness IoC
SOC Incident Playbook: Vulnerability Remediation & Verification
title: Detect Exploitation - project: deployment strategy types in k8s
id: 3e4a3527-5980-4de2-9bda-dc52a3daef08
status: experimental
description: Automatisch generierte SIEM-Erkennungsregel basierend auf CTI Intelligence
references:
  - https://tsecurity.de/
author: iShareStuff CTI Automated Detection Engine
date: 2026-09-24
logsource:
  category: network_connection
  product: any
detection:
  selection:
      CommandLine|contains:
        - 'exploit'
  condition: selection
falsepositives:
  - Legitime administrative Zugriffe oder Penetrationstests
level: high
tags:
  - attack.initial_access
rule CTI_Threat_Indicator {
    meta:
        author = "iShareStuff CTI Automated Detection Engine"
        date = "2026-09-24"
        description = "YARA Signature for "
    strings:
        $str = "project: deployment strategy t" ascii wide
    condition:
        any of them
}
tsecurity.de Cognitive Threat RAG
Fokus-Vektor:

Kognitive Analyse für identifizierte Bedrohung: Erhöhte Bedrohungslage im Bereich project: deployment strategy types in k8.... Basierend auf 368k Vektor-Korrelationen werden sofortige Isolationsmaßnahmen für betroffene Endpunkte empfohlen.

🛡️ Angriffsfläche & Exposure

Netzwerk/Remote-Zugriff ohne Vorauthentifizierung möglich.

Empfohlene Sofortmaßnahmen
  • 1. Perimeter-Inspektion: Relevante Portfreigaben und exponierte Endpunkte unverzüglich scannen.
  • 2. Patch-Applikation: Hersteller-Hotfix einspielen oder betroffene Daemons in isolierte DMZ-Segmente überführen.
  • 3. Telemetrie & EDR-Alerts: Prozessaufrufe und Child-Processes auf anomale Shell-Spawns überwachen.
🔗 Semantisch verwandte Zero-Days MariaDB 11.7 VEC
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten project: deployment strategy types in k8s

Thematisch verwandte Begriffe: project, deployment, strategy, types · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Zum Aktualisieren ziehen
ZERO-DAY CVE-2026-96676 | A vulnerability was identified in Fast FAC1900R 20190827_2.0.2. The impa…
Advisory →
TTS Reader • tsecurity.de Voice
tsecurity.de Icon
tsecurity.de App
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag
Themen-Radar & Intelligence Matrix
Echtzeit-Taxonomie nach Angriffsvektoren & Plattformen

tsecurity.de Live Threat Radar

🔴 LIVE RADAR
MONITORING
AKTIV
CVE-DATENBANK
LIVE
🔍
Community Radar & Live Chat
Sentinel Bot online • Live-Stream
Dein Cluster: Security Explorer
Match:
lädt…
Verbindung zum Community-Stream wird aufgebaut...
Bearbeitungsmodus — Senden überschreibt deine Nachricht
Community-Puls — was gerade passiert
lädt…
Aktivitäten deiner Analysten
lädt…
Neues Thema oder Eilmeldung einreichen

Reiche interessante Links, Zero-Days oder Debatten ein. Die Community entscheidet per Upvote über die Veröffentlichung.

Heiß diskutierte Einreichungen
🔖 Gespeicherte Artikel
📂 Keine gespeicherten Artikel vorhanden.
Zurück Ziehen Vor
Links: vorheriger Artikel Rechts: nächster Artikel unten: schließen
News NIS-2 Frühwarnung Tier-1 Intel TTP ⏱️ 3 Min vor 10 Min
Artikeldaten werden geladen...

Zurück: vorheriger Vor: nächster
↗ Original-Quelle
Social Reaktionen Deine Reaktion zählt
Einstufung & Relevanz-Poll 0 Stimmen
In sozialen Netzwerken teilen 1-Klick