kubernetes

a modern way to design an infrastructure

K8s features

  • Automated Scheduling
  • Self-Healing Capabilities
  • Automated rollouts & rollback
  • Offers enterprise-ready feature
  • Auto-scalable infrastructure
  • You can create predictable infrastructure
  • Horizontal Scaling & Load Balancing
  • Zero Downtime

GitOps Essentials

  • The entire system described declaratively
  • The canonical desired system state versioned in Git
  • Approved changes that can be automatically applied to the system
  • Software agents to ensure correctness and alert on divergence

SemVer approach

  • MAJOR version when you make incompatible API changes,
  • MINOR version when you add functionality in a backwards compatible manner, and
  • PATCH version when you make backwards compatible bug fixes.

Standard Commit messages

Code Snapshots with TAGs

CI workflow

Push Code => Test code => Build conatiner => Tag with Commit ID => push to registry => update container version on Git

Merge Code => Release => Build container => Tag with SemVer => push to registry => update container version on Git.     

CD workflow

Gitlab webhook informs Argocd about the changes => Argocd sync and deploy manifests to the cluster

Sample app 

Loadbalancer External IP

Routing requests

Container name (inside the cluster) + (internal loadbalacer)

Replicated containers

Global overview

Gitops and kubernetes

By hatem ben tayeb

Gitops and kubernetes

  • 376