k8s

What the helm?

Helm Basics Concept 1

Posted by frankie on June 21, 2019

Core headache

The configuration files, yaml files etc management on various clusters and hundreds of microservices, especially when migrating to another cluster.

What is the Helm? (https://helm.sh/)

  • Manage Kubernetes applications - Helm Charts -> define, install and upgrade
  • Easy to create, version, share and publish -> No copy-and-paste (reproducible builds)
  • Find and use popular software packaged as Helm charts to run in Kubernetes
  • Share your own applications as Helm charts
  • Intelligently manage your Kubernetes manifest files?

In short, think of helm like apt/yum/homebrew for Kubernetes.

Utilization

  • create Charts
  • pack charts into tgz format
  • upload and download charts from charts museum(repo)
  • installing chart in k8s
  • manage releases of Helm packages

How do we install softeware in Windows and Linux systems?

Helm Charts

  • Packages of pre-configured Kubernetes resources
  • Helm runs on your laptop, CI/CD (recommended), or wherever you want it to run
  • Charts are Helm packages that contain at least two things:
    • A description of the package (Chart.yaml)
    • One or more templates, which contain Kubernetes manifest files
  • Charts can be stored on disk, or fetched from remote chart repositories (like Debian or RedHat packages)

Helm Architecture

  • Two Component: client(helm) and server(tiller)
    • client:
      • local chart development
      • repo namagement
      • Tiller server interaction
      • search for release info
      • upgrade or uninstall existed release
    • server:
      • monitoring the Helm client request
      • release through charts
      • install chart into k8s and follow up the contimuous releases
      • upgrade or uninstall chart in k8s

In short, client manages the charts while server manages the release

  • Tiller runs inside of your Kubernetes cluster, and manages releases (installations) of your charts instead of yaml files

AIQ’s practice

Imgur

Imgur

native yaml Example

Imgur

Imgur

Imgur

kubectl apply -f xxx.yaml kubectl expose deployment xxx –type=LoadBalancer –name=my-service

Helm template Example

Imgur

Imgur

Imgur

Imgur

Imgur

helm install ./hello-helm

Imgur

Imgur

Imgur

The pain of growth

Imgur

Video Links:

https://youtu.be/W_Y-jXEDwkY

https://youtu.be/x77draj4HCk

Buy me a cup of coffee:

Imgur