Upload
mike-splain
View
75
Download
3
Embed Size (px)
Citation preview
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
K8s at Barkly● Using since early 2015
● 5 K8s clusters
● 107 Instances across those clusters
● v1.4.9 (I know we’re behind :( )
Problem.● Once you’ve tweaked your cluster to be perfect… whats next?
● Make a manifest
● Make another manifest
● Make 100 more manifests
My App’s up and it works!
201How many manifests does Barkly have?
Problem.● Multiple environments
● Multiple consumers of the manifests
● CI/CD flow of manifests themselves
● Testing?
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
Helm● Simple
● Reusable
● Versioned
● Dependency management
● Linux & OSX
Helm Resources● helm.sh
● github.com/kubernetes/helm
● github.com/kubernetes/charts
● github.com/kubernetes/minikube (not required)
Getting started
$ brew install kubernetes-helm
Or grab prebuilt binaries on github
$ 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!
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
$ helm install --name failed-demo1 stable/jenkins
Local Helm
Kubernetes-charts.Storage.googleapis.com
Tiller in K8s Cluster
Adds custom configs
● 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
Lets try a few!