How to Troubleshoot Apps for the Modern Connected Worker
RedisConf18 - Easy and Repeatable Kubernetes Development with Skaffold and Redis
1. Easy and Repeatable Kubernetes Development
with Skaffold and Redis
Matt Rickard
Software Engineer, Google
mattrickard@
2. Agenda
● Developer workflow from scratch
○ Setting up a cluster
○ Building and deploying
○ Iterative development
○ The path to CI/CD and production
3. Who am I?
● Matt Rickard
● Software Engineer at Google SF
● Open source software
○ Containers
○ Kubernetes developer tools
● We’re hiring here in San Francisco!
○ mrick@google.com
4. Developing Applications on top of Kubernetes
Developing Applications on top of Kubernetes
● The Good
○ Declarative configuration
○ Cluster resources (GPUs, TPUs, RAM…)
○ No developer dependencies
○ Reproducible
● The Bad
○ Remote clusters
○ Multiple replicas
● The Ugly
○ Containers
○ Registries
○ Debugging microservices
5. Setting up a Cluster
● Kubernetes the Easy Way:
○ minikube
○ cloud providers (GKE, AKS, EKS)
■ GCP free trial
● Kubernetes the Harder Way
○ kubeadm
● Kubernetes the Hardest Way
○ manual
6. Setting up a local cluster
● Why Minikube?
○ Works on Linux, macOS, and Windows
○ Completely OSS, PRs welcome :)
○ Can run offline
○ Quick to provision, quick to destroy
● How to get started?
○ Download minikube
○ Use with virtualbox, kvm, hyperkit, or hyper-v
○ $ minikube start
7. Interacting with your cluster
● kubectl
○ official client for kubernetes
○ does everything
● kubernetes dashboard
○ OSS version
○ GKE version
● skaffold
10. Developing Applications on top of Kubernetes
● Developer workflows in a cloud-native world
● Why is it more complicated?
○ Remote clusters
○ Containers
○ Replicas
○ Microservices
11. Developer tools
● Skaffold by Google
○ Open source cloud-native tool
○ Rapid inner development loop
○ Pluggable build and deploy implementations
○ Multi-application development
● Telepresence
● Draft
● kubectl
12. Build (Local) Build (Remote) Tag Deploy
Docker
Docker for Desktop
Minikube
Bazel
Buildah
Google Cloud Builder
Kaniko
orcabuild
git
checksum
environment
timedate
Kubectl
Helm
kinflate