Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Config management for kubernetes: GitOps + Helm

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité

Consultez-les par la suite

1 sur 26 Publicité

Config management for kubernetes: GitOps + Helm

Télécharger pour lire hors ligne

Traditional DevOps wisdom is to utilize automation tools for configuring all the systems, so all pieces of configuration should be described with code stored in version control. Then the people responsible for these systems can use standard Dev practices to collaborate on this code (reviews, tests, quality gates, etc.).

Kubernetes provides a declarative API, so you can describe the desired state of the system. And the control plane ensures that the actual state converges to the desired state.

But we still need config mgmt for API objects to the point when they are applied to the cluster.

Helm helps organizing these configs into charts, template them, and manage releases. And GitOps lets you use a git repo as a single source of truth for the desired state of the whole system. Then all changes to this state are delivered as git commits instead of using kubectl apply or helm upgrade.

In this talk I introduce the GitOps model for operating cloud native environments and give a short demo of the following tools: Flux CD, Helm, Flux Helm Operator.

Traditional DevOps wisdom is to utilize automation tools for configuring all the systems, so all pieces of configuration should be described with code stored in version control. Then the people responsible for these systems can use standard Dev practices to collaborate on this code (reviews, tests, quality gates, etc.).

Kubernetes provides a declarative API, so you can describe the desired state of the system. And the control plane ensures that the actual state converges to the desired state.

But we still need config mgmt for API objects to the point when they are applied to the cluster.

Helm helps organizing these configs into charts, template them, and manage releases. And GitOps lets you use a git repo as a single source of truth for the desired state of the whole system. Then all changes to this state are delivered as git commits instead of using kubectl apply or helm upgrade.

In this talk I introduce the GitOps model for operating cloud native environments and give a short demo of the following tools: Flux CD, Helm, Flux Helm Operator.

Publicité
Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Similaire à Config management for kubernetes: GitOps + Helm (20)

Publicité

Plus récents (20)

Publicité

Config management for kubernetes: GitOps + Helm

  1. 1. Config management for Kubernetes: GitOps + Helm Tomasz Tarczyński, Gigaset
  2. 2. Agenda @ttarczynski 1. Configuration Management 2. Why GitOps 3. Demo: Flux 4. Demo: Helm 5. Demo: Flux Helm Operator
  3. 3. Configuration Management @ttarczynski ● Infrastructure as a Code ● GIT – as a single source of truth ● Tools: Ansible / Chef / Puppet / Salt
  4. 4. Puppet @ttarczynski ● DSL: a simple and constrained language ● Declarative: describe the desired state ● Templates: ERB ● Modules: public and private ● Code / data separation: Hiera
  5. 5. Kubernetes @ttarczynski ● Control plane provides a Declarative API ● Declare the desired state ● Control plane makes sure that the actual state converges to the desired state
  6. 6. Kubernetes: Why GitOps @ttarczynski ● Can we declare all the state in GIT? And expect the system to converge. ● Can we have something like modules?
  7. 7. Kubernetes: Why GitOps @ttarczynski ● Configuration Management: Declarative vs Imperative
  8. 8. GitOps: How @ttarczynski Kubernetes API push container images kubectl apply pull
  9. 9. GitOps: How @ttarczynski ● Flux CD: a Continuous Delivery tool ○ Runs in the cluster ○ Synchronizes the cluster state with a GIT repo ○ CNCF sandbox project
  10. 10. GitOps: How @ttarczynski Kubernetes API push container images kubectl apply pull
  11. 11. GitOps: How @ttarczynski Kubernetes API Flux CD push container images commit kubectl apply sync pull images metadata apply / delete
  12. 12. GitOps @ttarczynski Demo https://github.com/ttarczynski/gitops-demo
  13. 13. GitOps: Why Helm @ttarczynski ● We declared all the state in GIT ● But can we have something like modules?
  14. 14. GitOps: Why Helm @ttarczynski ● Helm: The package manager for Kubernetes ○ find, share, and use software built for Kubernetes
  15. 15. GitOps: Why Helm @ttarczynski ● Manage complexity: describe complex apps
  16. 16. GitOps: Why Helm @ttarczynski ● Manage complexity: describe complex apps ● Easy updates: in-place upgrades and custom hooks
  17. 17. GitOps: Why Helm @ttarczynski ● Manage complexity: describe complex apps ● Easy updates: in-place upgrades and custom hooks ● Simple sharing: public / private repo
  18. 18. GitOps: Why Helm @ttarczynski ● Manage complexity: describe complex apps ● Easy updates: in-place upgrades and custom hooks ● Simple sharing: public / private repo ● Rollbacks: roll back to an older version with ease
  19. 19. Helm @ttarczynski Demo https://github.com/ttarczynski/gitops-demo
  20. 20. GitOps + Helm @ttarczynski ● Flux Helm Operator: ○ automates Helm Chart releases ○ Kubernetes custom resource named HelmRelease ○ charts are released as specified in HelmRelease
  21. 21. Credit: https://fluxcd.io GitOps + Helm
  22. 22. GitOps + Helm @ttarczynski Demo https://github.com/ttarczynski/gitops-demo
  23. 23. GitOps @ttarczynski ● The entire system is described declaratively ● The canonical desired system state is versioned (with Git) ● Approved changes to the desired state are automatically applied to the system ● Software agents ensure correctness
  24. 24. Agenda @ttarczynski 1. Configuration Management 2. Why GitOps 3. Demo: Flux 4. Demo: Helm 5. Demo: Flux Helm Operator
  25. 25. GitOps: Flux docs @ttarczynski ● fluxcd.io ● docs.fluxcd.io ● github.com/fluxcd/helm-operator-get-started ● github.com/ttarczynski/gitops-demo
  26. 26. Thanks! Tomasz Tarczynski @ttarczynski

×