17
Okay so my cluster’s up, now how do I manage all the sh*t to run my apps? Helm Mike Splain Lead DevOps Engineer at Barkly @mikesplain github.com/mikesplain

Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

Embed Size (px)

Citation preview

Page 1: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

Okay so my cluster’s up, now how do I manage all the sh*t to run my apps?

HelmMike Splain

Lead DevOps Engineer at Barkly

@mikesplain

github.com/mikesplain

Page 2: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

K8s at Barkly● Using since early 2015

● 5 K8s clusters

● 107 Instances across those clusters

● v1.4.9 (I know we’re behind :( )

Page 3: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

Problem.● Once you’ve tweaked your cluster to be perfect… whats next?

● Make a manifest

● Make another manifest

● Make 100 more manifests

Page 4: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

My App’s up and it works!

Page 5: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

201How many manifests does Barkly have?

Page 6: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?
Page 7: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

Problem.● Multiple environments

● Multiple consumers of the manifests

● CI/CD flow of manifests themselves

● Testing?

Page 8: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

Helm“Helm is a tool for managing Kubernetes charts.

Charts are packages of pre-configured Kubernetes resources.”

chef cookbook/puppet module/ansible role - apt/yum/dnf + docker = helm chart

Page 9: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

Helm● Simple

● Reusable

● Versioned

● Dependency management

● Linux & OSX

Page 10: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

Helm Resources● helm.sh

● github.com/kubernetes/helm

● github.com/kubernetes/charts

● github.com/kubernetes/minikube (not required)

Page 11: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

Getting started

Page 12: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

$ brew install kubernetes-helm

Or grab prebuilt binaries on github

Page 13: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

$ helm initCreating /Users/mike/.helmCreating /Users/mike/.helm/repositoryCreating /Users/mike/.helm/repository/cacheCreating /Users/mike/.helm/repository/localCreating /Users/mike/.helm/pluginsCreating /Users/mike/.helm/startersCreating /Users/mike/.helm/repository/repositories.yamlWriting to /Users/mike/.helm/repository/cache/stable-index.yaml$HELM_HOME has been configured at /Users/mike/.helm.Happy Helming!

Page 14: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

Tiller:● Listening for incoming requests from the Helm client

● Combining a chart and configuration to build a release

● Installing charts into Kubernetes, and then tracking the subsequent release

● Upgrading and uninstalling charts by interacting with Kubernetes

● Data stored in configmaps

Page 15: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

$ helm install --name failed-demo1 stable/jenkins

Local Helm

Kubernetes-charts.Storage.googleapis.com

Tiller in K8s Cluster

Adds custom configs

Page 16: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

● mongodb

● mysql

● nginx-ingress

● nginx-lego

● odoo

● opencart

● openvpn

● orangehrm

● osclass

● owncloud

● phabricator

● phpbb

● postgresql

● prestashop

● influxdb

● jasperreports

● jenkins

● joomla

● kapacitor

● kube-lego

● kube2iam

● linkerd

● magento

● mariadb

● mediawiki

● memcached

● minecraft

● minio

● aws-cluster-autoscaler

● chaoskube

● chronograf

● cockroachdb

● concourse

● datadog

● dokuwiki

● drupal

● etcd-operator

● factorio

● gcloud-endpoints

● ghost

● gitlab-ce

● grafana

Current stable charts (57)● prometheus

● rabbitmq

● redis

● redmine

● sapho

● sensu

● spark

● spartakus

● spinnaker

● sumokube

● telegraf

● testlink

● traefik

● uchiwa

● wordpress

Page 17: Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run my apps?

Lets try a few!