SlideShare a Scribd company logo
09-08-2020 Fellow Cloud 1
LeveragingHelmtomanage
KubernetesDeployments
About Speaker
Works as DevOps Engineer
https://github.com/manoj8928/
#docker #k8s #devsecops #cloud #automation
https://medium.com/@manoj.bhagwat60
@manoj8928
09-08-2020 Fellow Cloud 2
Agenda
• k8s App Deployment Methods
• k8s Deployment Challenges
• What is Helm ?
• Helm: Brief Architecture
• Helm Files Structure
• Live Demo
• Best practices of Helm
09-08-2020 Fellow Cloud 3
k8s Application Deployment File
09-08-2020 Fellow Cloud 4
ApplicationDeploymentMethods
• blue/green: New version alongside old version then switching at one point; Rollout/Rollback
• canary: Release a new version to few users and then decide full rollout based on result
• a/b testing: Feature testing based on statistics; dark deployment that users are unaware of update
• rolling: Update new version one after another slowly with no downtime
• recreate: Create a new one and kill the old one; best for development environments
• shadow: Both versions are running parallel with not impacting other; mocking services
09-08-2020 Fellow Cloud 5
k8sDeployment/AutomationTools
• Kubectl – Create, manage and deploy k8s artifacts - https://kubernetes.io/docs/reference/kubectl/
• Kustomize - A template-free way to customize application configuration - https://kustomize.io/
• CNAB - Cloud Native Application Bundling - https://cnab.io/
• Skaffold - building, pushing and deploying your application - https://skaffold.dev/
• Spinnakar – Multi cloud continous delivery - https://www.spinnaker.io/
• Kudo - Universal declarative Operator - https://kudo.dev
• Kompose – Move docker file to k8s objects - http://kompose.io/
• Draft – Streamlined k8s Deployment - https://draft.sh/
• Brigade – Event driven scripting for k8s - https://brigade.sh/
• Kashti – Visualization Dashboard for Brigade - https://github.com/brigadecore/kashti
• Jenkin - k8s plugin & Jenkin X - https://github.com/jenkinsci/kubernetes-plugin
• Github - Marketplace for tools - https://github.com/marketplace/category/continuous-integration
• Helm – The package manager for k8s - https://helm.sh/
09-08-2020 Fellow Cloud 6
Life without Helm
• Write Kubernetes manifests by hand
• Do this every time you need to release anything
• Figure out your own sharing
• Tweak resources by hand
• Use kubectl to manage these manifests
09-08-2020 Fellow Cloud 7
What is Helm?
Helm is a package manager, helps you manage Kubernetes applications — define, install, and upgrade even
the most complex Kubernetes application
• Helm is like apt or yum in Linux World
• Why do we need a package manager?
• Application focused Better control
• Container version handling - upgrade/rollback
• Manage dependencies
• Reproducible and shareable
• Helm initially started with Deis (now with Microsoft) & then Google Deployment Manger team joined to
create helm2.
Helm is now in CNCF Incubation project - https://helm.sh/
09-08-2020 Fellow Cloud 8
Helm: Architecture
Helm Client, a command line tool with the
following responsibilities
• Interacting with the Tiller server
• Sending charts to be installed
• Upgrading or uninstalling of existing releases
• Managing repositories
Tiller Server, an in-cluster server with the following
responsibilities:
• Interacts with the Helm client
• Interfaces the Kubernetes API server
• Combining a chart and configuration to build a
release
• Installing charts and tracking the release
• Upgrading and uninstalling charts
09-08-2020 Fellow Cloud 9
Charts, Repositories, Releases
Helm Commands
• Init: Set up Helm for the first time (helm init)
• Install: Install a chart (helm install alpine)
• Get, Status, List: Find out about charts (helm list)
• Repo Add, List, Remove, Index: Manage your helm repositories
• Search: Search repos for charts
• Create, Package: Create and package new charts
09-08-2020 Fellow Cloud 10
Demo Time
• Deploy sample application using kubectl method
• Deploy app using helm3
• Release new version of sample application using
Helm
09-08-2020 Fellow Cloud 11
Best Practices
• Create Chart for each (micro)service; keep it in same Git repository
• Learn and practice Go Template language (and Sprig template library)
• Use Helm hooks to control release flow
• Use helm test to validate releases
• Host your own Helm repository for private charts; just serve index.html and packaged charts (can be hosted
on AWS S3, Google Storage, GH pages, or other web server)
• Manage environments with multiple Values files
• (!) Do not commit secrets into GitHub; or encrypt secrets with sops or similar tool
• Follow community Helm best practices and conventions: take a look at docs and Kubernetes/charts
examples
• Use helm template plugin to debug Helm Charts; or use --dry-run flag
09-08-2020 Fellow Cloud 12
More About Helm
CNCF SIG Helm -
• https://www.cncf.io/announcement/2019/09/12/cloud-native-computing-foundation-announces-
application-delivery-sig/
GitHub Repo Link:
• http://github.com/kubernetes/helm
Official Documentation
• https://helm.readthedocs.io/en/latest/architecture/#helm-classic-architecture
Helm
• https://helm.sh
09-08-2020 Fellow Cloud 13
09-08-2020 Fellow Cloud 14

More Related Content

PDF
Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run...
PDF
Delve into Helm - Advanced DevOps
PDF
Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...
PDF
Debugging Go in Kubernetes
PDF
k8s NodeSet
PDF
Jenkins X Lessons Learned as OSS Contributor
PDF
Continuous Delivery for Kubernetes Apps with Helm and ChartMuseum
PPTX
DevOps: Kubernetes + Helm with Azure
Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run...
Delve into Helm - Advanced DevOps
Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...
Debugging Go in Kubernetes
k8s NodeSet
Jenkins X Lessons Learned as OSS Contributor
Continuous Delivery for Kubernetes Apps with Helm and ChartMuseum
DevOps: Kubernetes + Helm with Azure

What's hot (20)

PPTX
Kubernetes Helm: Why It Matters
PDF
Cloud Native CI/CD with GitOps
PPTX
Steering the Course with Helm
PDF
Updating Kubernetes With Helm Charts: Build, Test, Deploy with Codefresh and...
PPTX
Going Serverless with Kubeless In Google Container Engine (GKE)
PDF
Containerized Build & Deployment Pipelines
PDF
KubeCon EU 2016 Keynote: Kubernetes State of the Union
PDF
PR workflow
PDF
Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion...
PDF
"Using Automation Tools To Deploy And Operate Applications In Real World Scen...
PDF
Git 101 for CloudStack
PPTX
Continuous Delivery to Kubernetes Using Helm
PDF
GitOps - Operation By Pull Request
PPTX
KubeCon 2019 - Scaling your cluster (both ways)
PDF
XCP-ng - Olivier Lambert
PDF
Testing strategies for Docker containers
PPTX
Helm at reddit: from local dev, staging, to production
PDF
Kubernetes Native Serverless solution: Kubeless
PDF
Development Swarm Cluster
PPTX
OpenStack vagrant & dashboard
Kubernetes Helm: Why It Matters
Cloud Native CI/CD with GitOps
Steering the Course with Helm
Updating Kubernetes With Helm Charts: Build, Test, Deploy with Codefresh and...
Going Serverless with Kubeless In Google Container Engine (GKE)
Containerized Build & Deployment Pipelines
KubeCon EU 2016 Keynote: Kubernetes State of the Union
PR workflow
Helm - the Better Way to Deploy on Kubernetes - Reinhard Nägele - Codemotion...
"Using Automation Tools To Deploy And Operate Applications In Real World Scen...
Git 101 for CloudStack
Continuous Delivery to Kubernetes Using Helm
GitOps - Operation By Pull Request
KubeCon 2019 - Scaling your cluster (both ways)
XCP-ng - Olivier Lambert
Testing strategies for Docker containers
Helm at reddit: from local dev, staging, to production
Kubernetes Native Serverless solution: Kubeless
Development Swarm Cluster
OpenStack vagrant & dashboard
Ad

Similar to Leveraging Helm to manage Deployments on Kubernetes (20)

PPTX
Helm and the zen of managing complex Kubernetes apps
PDF
Helm - Application deployment management for Kubernetes
PDF
Kubernetes Application Deployment with Helm - A beginner Guide!
PDF
helm101.pdf
PDF
Helm - Package Manager for Kubernetes
PPTX
Helm.pptx
PDF
CD in kubernetes using helm and ksonnet. Stas Kolenkin
PDF
Helm – The package manager for Kubernetes
PDF
Configuration Management for the Cloud Native world with GitOps and Helm - To...
PDF
Helm chart-introduction
PPTX
Helm - Package manager in K8S
PPTX
Manage Kubernetes application complexity with Helm
PDF
How Helm, The Package Manager For Kubernetes, Works
PDF
Kubernetes Helm (Boulder Kubernetes Meetup, June 2016)
PPTX
K8s from Zero to ~Hero~ Seasoned Beginner
PPTX
Best Practices with Azure & Kubernetes
PDF
Devoxx UK 2018 - A cloud application journey with helm and kubernetes
PPTX
Introduction to helm
PPTX
Deploying Windows Apps to Kubernetes with Draft and Helm
PDF
Config management for kubernetes: GitOps + Helm
Helm and the zen of managing complex Kubernetes apps
Helm - Application deployment management for Kubernetes
Kubernetes Application Deployment with Helm - A beginner Guide!
helm101.pdf
Helm - Package Manager for Kubernetes
Helm.pptx
CD in kubernetes using helm and ksonnet. Stas Kolenkin
Helm – The package manager for Kubernetes
Configuration Management for the Cloud Native world with GitOps and Helm - To...
Helm chart-introduction
Helm - Package manager in K8S
Manage Kubernetes application complexity with Helm
How Helm, The Package Manager For Kubernetes, Works
Kubernetes Helm (Boulder Kubernetes Meetup, June 2016)
K8s from Zero to ~Hero~ Seasoned Beginner
Best Practices with Azure & Kubernetes
Devoxx UK 2018 - A cloud application journey with helm and kubernetes
Introduction to helm
Deploying Windows Apps to Kubernetes with Draft and Helm
Config management for kubernetes: GitOps + Helm
Ad

Recently uploaded (20)

PDF
Modernizing your data center with Dell and AMD
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Network Security Unit 5.pdf for BCA BBA.
PPT
Teaching material agriculture food technology
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Encapsulation_ Review paper, used for researhc scholars
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
Modernizing your data center with Dell and AMD
Dropbox Q2 2025 Financial Results & Investor Presentation
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
A Presentation on Artificial Intelligence
Network Security Unit 5.pdf for BCA BBA.
Teaching material agriculture food technology
The AUB Centre for AI in Media Proposal.docx
Chapter 3 Spatial Domain Image Processing.pdf
Understanding_Digital_Forensics_Presentation.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Reach Out and Touch Someone: Haptics and Empathic Computing
Encapsulation_ Review paper, used for researhc scholars
“AI and Expert System Decision Support & Business Intelligence Systems”
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Spectral efficient network and resource selection model in 5G networks
Machine learning based COVID-19 study performance prediction
Digital-Transformation-Roadmap-for-Companies.pptx

Leveraging Helm to manage Deployments on Kubernetes

  • 1. 09-08-2020 Fellow Cloud 1 LeveragingHelmtomanage KubernetesDeployments
  • 2. About Speaker Works as DevOps Engineer https://github.com/manoj8928/ #docker #k8s #devsecops #cloud #automation https://medium.com/@manoj.bhagwat60 @manoj8928 09-08-2020 Fellow Cloud 2
  • 3. Agenda • k8s App Deployment Methods • k8s Deployment Challenges • What is Helm ? • Helm: Brief Architecture • Helm Files Structure • Live Demo • Best practices of Helm 09-08-2020 Fellow Cloud 3
  • 4. k8s Application Deployment File 09-08-2020 Fellow Cloud 4
  • 5. ApplicationDeploymentMethods • blue/green: New version alongside old version then switching at one point; Rollout/Rollback • canary: Release a new version to few users and then decide full rollout based on result • a/b testing: Feature testing based on statistics; dark deployment that users are unaware of update • rolling: Update new version one after another slowly with no downtime • recreate: Create a new one and kill the old one; best for development environments • shadow: Both versions are running parallel with not impacting other; mocking services 09-08-2020 Fellow Cloud 5
  • 6. k8sDeployment/AutomationTools • Kubectl – Create, manage and deploy k8s artifacts - https://kubernetes.io/docs/reference/kubectl/ • Kustomize - A template-free way to customize application configuration - https://kustomize.io/ • CNAB - Cloud Native Application Bundling - https://cnab.io/ • Skaffold - building, pushing and deploying your application - https://skaffold.dev/ • Spinnakar – Multi cloud continous delivery - https://www.spinnaker.io/ • Kudo - Universal declarative Operator - https://kudo.dev • Kompose – Move docker file to k8s objects - http://kompose.io/ • Draft – Streamlined k8s Deployment - https://draft.sh/ • Brigade – Event driven scripting for k8s - https://brigade.sh/ • Kashti – Visualization Dashboard for Brigade - https://github.com/brigadecore/kashti • Jenkin - k8s plugin & Jenkin X - https://github.com/jenkinsci/kubernetes-plugin • Github - Marketplace for tools - https://github.com/marketplace/category/continuous-integration • Helm – The package manager for k8s - https://helm.sh/ 09-08-2020 Fellow Cloud 6
  • 7. Life without Helm • Write Kubernetes manifests by hand • Do this every time you need to release anything • Figure out your own sharing • Tweak resources by hand • Use kubectl to manage these manifests 09-08-2020 Fellow Cloud 7
  • 8. What is Helm? Helm is a package manager, helps you manage Kubernetes applications — define, install, and upgrade even the most complex Kubernetes application • Helm is like apt or yum in Linux World • Why do we need a package manager? • Application focused Better control • Container version handling - upgrade/rollback • Manage dependencies • Reproducible and shareable • Helm initially started with Deis (now with Microsoft) & then Google Deployment Manger team joined to create helm2. Helm is now in CNCF Incubation project - https://helm.sh/ 09-08-2020 Fellow Cloud 8
  • 9. Helm: Architecture Helm Client, a command line tool with the following responsibilities • Interacting with the Tiller server • Sending charts to be installed • Upgrading or uninstalling of existing releases • Managing repositories Tiller Server, an in-cluster server with the following responsibilities: • Interacts with the Helm client • Interfaces the Kubernetes API server • Combining a chart and configuration to build a release • Installing charts and tracking the release • Upgrading and uninstalling charts 09-08-2020 Fellow Cloud 9
  • 10. Charts, Repositories, Releases Helm Commands • Init: Set up Helm for the first time (helm init) • Install: Install a chart (helm install alpine) • Get, Status, List: Find out about charts (helm list) • Repo Add, List, Remove, Index: Manage your helm repositories • Search: Search repos for charts • Create, Package: Create and package new charts 09-08-2020 Fellow Cloud 10
  • 11. Demo Time • Deploy sample application using kubectl method • Deploy app using helm3 • Release new version of sample application using Helm 09-08-2020 Fellow Cloud 11
  • 12. Best Practices • Create Chart for each (micro)service; keep it in same Git repository • Learn and practice Go Template language (and Sprig template library) • Use Helm hooks to control release flow • Use helm test to validate releases • Host your own Helm repository for private charts; just serve index.html and packaged charts (can be hosted on AWS S3, Google Storage, GH pages, or other web server) • Manage environments with multiple Values files • (!) Do not commit secrets into GitHub; or encrypt secrets with sops or similar tool • Follow community Helm best practices and conventions: take a look at docs and Kubernetes/charts examples • Use helm template plugin to debug Helm Charts; or use --dry-run flag 09-08-2020 Fellow Cloud 12
  • 13. More About Helm CNCF SIG Helm - • https://www.cncf.io/announcement/2019/09/12/cloud-native-computing-foundation-announces- application-delivery-sig/ GitHub Repo Link: • http://github.com/kubernetes/helm Official Documentation • https://helm.readthedocs.io/en/latest/architecture/#helm-classic-architecture Helm • https://helm.sh 09-08-2020 Fellow Cloud 13