l5 deployment Flashcards
Vertical Pod Autoscaler
Horizontal Pod Autoscaler
Cluster Autoscaler
Autoscaling
Different QOS Workloads
Best Effort Workloads
Best Effort workloads have the lowest priority in the cluster.
These workloads do not have any resource requests or limits set.
Burstable Workloads
Burstable workloads have medium priority in the cluster.
These workloads have resource requests set, but the limits can be higher or not set at all. (seen in pic)
Guaranteed Workloads
Guaranteed workloads have the highest priority in the cluster.
These workloads have both CPU and memory requests equal to their limits.
Necessary Elements for deploying a pod
Elements, necessary for deploying a pod
* Deployment: Description of target to deploy
service
* ReplicaSet: Ensuring that pods are running
* Pods: Single set of running container
* Service: Portmapping to a set to pods
defined by label
Workflow Readiness, Startup and Liveness
Deployment Strategies, Blue/Green
Release entirely deployed and full switch to
new release at one given point in time:
+ quite easy to implement
+ no downtime
+ Rollback possibility
+ Deploy atomic, API changes possible,
process respecting, etc.
- Expensive
- Immense testing necessary
Deployment Strategies, Canary
Redirecting small portions of traffic to new
release
+ rollback possibility when results not as
expected
+ good monitoring
+ no downtime
- Multi-API support
- Takes time
- Can be complicated to implement
Deployment Strategies, A/B Testing
Traffic for a given part of users is redirected
+ Control about traffic
+ Opt-in from user side
- Complex setup, semantic load balancing
- Complex to trace errors, especially in
backing services
Deployment Strategies, Shadowing
Requests are send to new release as well,
acting as a shadow
+ no direct user impact
+ load testing without load testing
+ switch when everything is ready
- Double infrastructure
- Entire shadowing can become complex with
respect to backing services
- Complex to set up
Deployment Strategies Comparison
Argocd Pull vs Push mode
In pull mode, Argo CD continuously monitors a Git repository and ensures that the state of the Kubernetes cluster matches the desired state defined in the repository. Here are the key advantages
+:
Security: Reduced need to expose the Kubernetes API externally, minimizing attack surfaces.
Consistency: Centralized source of truth in Git, ensuring consistent configurations across environments.
Self-Healing: Automated detection and correction of configuration drifts.
Auditability: Improved audit trails with version-controlled configurations.
Scalability: Easier to manage multiple clusters and environments from a single source of truth.
In push mode, a CI/CD pipeline or an external tool pushes changes directly to the Kubernetes cluster.
+:
Flexibility: Immediate deployment of changes without waiting for reconciliation.
Custom Logic: Ability to handle complex deployment logic within the CI/CD pipeline.