deploy your favorite apps on kubernetes
TRANSCRIPT
Confidential
Deploy your favorite appson Kubernetes.
Agenda• Intro to Bitnami Container Images• Kubernetes and Helm intro• Helm demonstration• Benefits of Bitnami Helm Charts• Q&A
SpeakersDavid Dennis
Bitnami VP of MarketingAdnan Abdulhussein
Bitnami Software Engineer
BitnamiContainer Images
Application & Infrastructure Images
Development Environments
minideb: Minimal Base OS
Production-Grade Container Orchestration Platform
Integrates with GCE, AWS, Azure, OpenStack, etc.
Backed by a large open source community
Kubernetes
Container Orchestration Characteristics
Scheduling Monitorin
g Scalability Service
Discovery
Cloud-Native Architecture
MariaDB
Database tier
WordPress
Backend tier
Nginx
Frontend tier
Cloud-Native Architecture
MariaDB
Serviceresource
Database tier
Secretresource
Deploymentresource
WordPress
Serviceresource
Backend tier
Config Mapresource
Deploymentresource
Nginx
Serviceresource
Frontend tier
Deploymentresource
Example: Kubernetes resourceapiVersion: v1kind: Deploymentmetadata: name: wordpressspec: replicas: 1 template: metadata: labels: app: wordpress spec: containers: - name: wordpress image: bitnami/wordpress:4.7-r0 ports: - containerPort: 80 livenessProbe: httpGet: path: / port: http initialDelaySeconds: 120 timeoutSeconds: 5
Example: Deploying to Kubernetes
$ kubectl create -f ./mariadb-secret.yamlsecret "mariadb" created$ kubectl create -f ./mariadb-deployment.yamldeployment "mariadb" created$ kubectl create -f ./mariadb-service.yamlservice "mariadb" created
$ kubectl create -f ./wordpress-configmap.yamlconfigmap "wordpress" created$ kubectl create -f ./wordpress-deployment.yamldeployment "wordpress" created$ kubectl create -f ./wordpress-service.yamlservice "wordpress" created
$ kubectl create -f ./nginx-deployment.yamldeployment "nginx" created$ kubectl create -f ./nginx-service.yamlservice "nginx" created
Problems with Managing Resources
Boilerplate when developing manifests Upgrades and
configuration changes require manual editing
No history for releases
Difficult to share publicly or with members of your team
Need tooling to hook into release lifecycle
Need a tool to manage a group of resources as a single unit
Package Manager
for Kubernetes
Charts
(packages)
Are application definitions
Consist of...
Metadata
Kubernetes resource definitionsConfiguration File
Documentation
Live in chart repositories
Navigating a Chart
MariaDB
Serviceresource
Database tier
Secretresource
Deploymentresource
WordPress
Serviceresource
Backend tier
Secretresource
Deploymentresource
Nginx
Serviceresource
Frontend tier
DeploymentresourceDocumentation
Metadata
Config File
Grab Helm on GitHub or Homebrew$ brew cask install helm
$ helm init$ helm repo add bitnami http://charts.bitnami.com
Getting Started isSimple
https://goo.gl/PyW0wO
Init in Action
https://goo.gl/fWw8Lm
Install Charts
https://goo.gl/lChu5T
Upgrade a Release
Why Bitnami Charts?
Optimized images for Kubernetes deployments
Apps kept up-to-date with Bitnami's automated toolchain
A consistent experience, in containers, charts, VMs, etc.
Images kept secure against major vulnerabilities
Confidential
Q&A
Helm Community• Over 65 contributors
• Helm 2.1.0 released yesterday!
• Slack channel: Kubernetes/#Helm
• Public dev meetings: Thursdays @ 9:30 pacific
• Weekly updates & demos at SIG-Apps meetings:Mondays @ 9am pacific
Join us!
bitnami.com/kubernetes
Thank You