SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
Kubernetes in about 45 minutes
Everything you need to know to be dangerous
Philip Lombardi
Platform Engineer
datawire.io
Who is this Phil Lombardi guy?
Twitter: @TheBigLombowski
2
datawire.io
Why are we all here?
● You are curious about Kubernetes (and friends) and want a primer!
● You are invested in Kubernetes but are looking to learn about some techniques
and tools to make your developers lives better.
● This is the last preso and you feel guilty about leaving early :)
3
datawire.io
Agenda...
● Part 1: Containers and Docker and Kubernetes, Oh my!
● Part 2: Kubernetes Core Concepts
● Part 3: Development Workflow
● Part 4: Logging, Debugging and Resiliency
● Q & A
4
datawire.io
Lesson 1: Containers and Docker and
Kubernetes, Oh my!
5
datawire.io
What is a container?
● Lightweight Linux environment. It is a form of virtualization… but very different
from a full virtual machine.
● Immutable, deployable artifact.
● Runnable.
● Popularized by Docker but there are many implementations (e.g. LXC, Rkt).
6
datawire.io
What is Docker?
● A tool, ecosystem and platform for building, pushing and
running containers.
● The most popular container runtime currently.
● Default container runtime in Kubernetes.
7
datawire.io
Why Containers?
● Easy and fast to produce.
● Great way to isolate different components in a complex system.
● Ensures a reproducible runtime for your app along the dev -> build -> test -> prod
pipeline.
● Easy to share in a team or with external partners.
8
datawire.io
What is Kubernetes?
● Runs massive numbers of containers based on
lessons learned by Google.
● Schedules and runs all kinds of containers
○ long-lived (e.g. services)
○ short-lived (e.g. pre-launch hooks, cronjobs etc)
● Kubernetes can be thought of as a Distributed OS or process manager
9
datawire.io
The Office Tower Analogy
Your product is the building
as a whole.
Your business logic is
the offices and workers
10
datawire.io
The Office Tower Analogy
Kubernetes provides the
infrastructure to build your
app around.
11
It is the foundational app
platform for your team to
build your businesses apps
around.
datawire.io
Why Kubernetes?
It is not the only kid in the neighborhood…
● Amazon ECS
● Docker Swarm
● Hashicorp Nomad
● Apache Mesos
12
datawire.io
Why Kubernetes?
Three big reasons to use Kubernetes over the other solutions:
1. Biggest ecosystem of the bunch and there is a hugely massive community
2. Runnable just about anywhere: cloud, bare-metal, and engineers laptops.
3. Unprecedented cloud portability.
13
datawire.io
Kubernetes Architecture
Types of nodes: Masters and Workers
14
Docker Kubelet
Kubeproxy
Kubernetes Node
Docker Kubelet
Kubeproxy
Kubernetes Node
Docker Kubelet
Kubeproxy
Kubernetes Node
Etcd API Server
Controller Manager
Kubernetes Master
Scheduler
datawire.io
Lesson 2: Core Kubernetes Concepts
15
datawire.io
The “Big Five” of Kubernetes Concepts
● Pods
● Deployments
● Services
● ConfigMaps
● Secrets
16
datawire.io
A Pod you say?
● One or more strongly-related containers…
17
Story
Server
name: blog
Redis
Comment
Server
Frontend
host: kube-worker-0
datawire.io
A Pod you say?
● Containers in a pod share the same host, pod IP and port space.
18
IP: 100.124.71.175
Story
Server
name: blog
Redis
Comment
Server
Frontend
host: kube-worker-0
datawire.io
A Pod you say?
● Unit of scaling is a Pod
19
IP: 100.124.71.175
blog-0
kube-worker-0
IP: 100.124.71.176
blog-1
kube-worker-1
Kubernetes cluster
datawire.io
Pods Summary
● Like a host. All containers inside of a pod are run on the same underlying worker
machine.
○ Can therefore reference localhost
○ … or share the filesystem
○ … or use unix domain sockets
● All containers in a Pod share the same IP and port space.
● Pods are not durable.
● Pods are a very low-level primitive construct. Necessary to know, but not
commonly used directly.
20
datawire.io
Deployments
● Simple mechanism to configure, scale and update applications.
● Kubernetes does the rest of the hard work of scheduling the Pods across the
cluster to meet desired capacity numbers.
● Works like a thermostat… Ensures the current state is always consistent with the
desired state.
21
datawire.io
Services
● Services are stable “names” in Kubernetes that enable you to route traffic to Pods
across the entire cluster.
● Every service gets its own IP address.
● Services route traffic to pods by matching labels.
22
datawire.io
Services Illustrated
How to talk to both apps despite different IP addresses?
23
IP: 100.124.71.175
blog-0
kube-worker-0
IP: 100.124.71.176
blog-1
kube-worker-1
Kubernetes cluster
datawire.io
Services Illustrated
Add a Service which becomes a DNS A record pointing the pod IP addresses
24
IP: 100.124.71.175
blog-0
kube-worker-0
IP: 100.124.71.176
blog-1
kube-worker-1
Kubernetes cluster
blog DNS (short) => blog
DNS (long) => blog.default.cluster.local
datawire.io
Services Illustrated
You can have multiple services target pods using labels and selectors.
25
app=blog
env=prod
blog-0
kube-worker-0
app=blog
env=prod
blog-1
kube-worker-1
Kubernetes cluster
blog blog-staging
app=blog
blog-0
kube-worker-1
app=blog
env=prod
app=blog
datawire.io
Service Flavors
● Many different flavors of “Service” in Kubernetes
○ ClusterIP
○ NodePort
○ LoadBalancer
○ ExternalName - often forgotten, but very useful!
26
datawire.io
Services Summary
● Creates DNS A records pointing at Pod IP addresses
● Powerful label matching capabilities that enable you to route traffic to particular
pods (e.g. for blue-green or canary releases).
● Supports DNS SRV records so you can avoid hard coding port numbers in your
app code as well.
27
datawire.io
ConfigMap
● Containers are immutable… so how do you provide runtime configuration to
them?
● Age old question for immutable infrastructure lots of good (and bad) solutions
have been built over the years.
● Kubernetes solution is built-in as the ConfigMap. Inject configuration information
as…
○ Environment variables
○ Volumes
28
datawire.io
Secret
● Cousin of the ConfigMap
● Operates almost exactly the same as a ConfigMap but designed for storing
sensitive information.
● Secret information only sent from master to worker nodes when needed by a
pod. The data lives in memory so it is not on the disk.
● One important aspect of secrets… the master currently stores them in plaintext.
Work in Progress to eliminate this in the future, but worth being aware of.
29
datawire.io
Kubernetes to AWS
30
Kubernetes AWS
Pod EC2 Instance
Deployment AutoScaling Group + Launch Configuration
Service ELB
ConfigMap N/A
Secret N/A
datawire.io
Lesson 3: Developer Workflow
31
datawire.io
Developers...
● Part of our role involves aiding Developers and making them faster and more
productive.
● Kubernetes is awesome and it comes with a lot of power.
● Great power comes with lots of potential for learning pain.
● How do we make developers productive?
32
datawire.io
Manifests
● A declarative YAML/JSON config format that describe at a high level how
Kubernetes should operate.
● Kubernetes operates like a thermostat. Transforms current state -> desired state
based on config in the Manifest.
● Manifests often need to be parameterized (e.g. to change the container image).
General approach is to use some kind of templating.
33
datawire.io
Structuring an Application
● Often asked, all this stuff is cool, but how should we structure our apps to be
consistent and compatible with tooling?
● Strongly recommend a k8s/ directory in the top of your project
○ Manifests can be concrete and ready to use by just running `kubectl apply -f k8s/ `
○ … or you can take an alternate approach and put templates in that directory and do some kind of
config generation with say Python + Jinja2 (for example).
34
datawire.io
Writing Manifests
● Avoid hard coding environment configuration into manifests.
○ Templating
○ Kubectl switches (e.g. for namespaces)
● Stick to YAML even if Kubernetes supports JSON… not uncommon to want
comments in the manifests.
● Kubernetes manifests can be spread across multiple files or kept in a single file.
Strongly recommend using a single file until it becomes bothersome to maintain.
35
datawire.io
Development Workflows
● No single workflow that works for all developers or teams
● Need tools that can adapt to changing requirements and process
● Personally, great success with:
○ Trunk-based development model.
○ Using parameterized templates in k8s/ directory.
○ monorepo or “pseudo-monorepo”.
○ Dev-tooling the focuses on speed and maintaining fast iteration cycles
36
datawire.io
Forge (https://forge.sh)
● Build and deploy Kubernetes-based microservices quickly.
● Can deploy 1 or 100 services from source to Kubernetes in seconds.
● Changes are applied incrementally. Computes the diff of a change and then
pushes the update to Kubernetes.
37
datawire.io
Lesson 4: Logging, Debugging and
Resiliency
38
datawire.io
Logging...
● Kubernetes has a built-in log aggregation but it is limited (STDOUT, STDERR only).
● `kubectl logs` is good enough for devs but invest in a real logging solution
for prod.
● You will want something like fluentd and elasticsearch because Kubernetes does
not track historical logs for crashed or terminated pods.
○ Also search capabilities are limited to how much of a grep wizard you are.
39
datawire.io
Logging...
● There is more to logging than just application logs.
● Consider introducing a service mesh to your cluster that allows you to do
per-request logging and tracing.
40
datawire.io
Services Mesh
● This was covered in a presentation yesterday so here is the recap:
A dedicated infrastructure layer for making service-to-service communication
safe and reliable.
● Kubernetes and CNCF are really pushing Lyft Envoy as the mechanism to build a
service mesh.
41
datawire.io
Simple Log Query Tools
● Because the kubectl logs command is so limited many tools have been
written to make it easier...
○ ktail https://github.com/atombender/ktail
○ kubetail https://github.com/johanhaleby/kubetail
○ stern https://github.com/wercker/stern
42
datawire.io
Debugging...
Kubernetes IS complex. There are a lot of failure scenarios in all kinds of places. The
Kubernetes docs are pretty helpful for doing some troubleshooting
Application Troubleshooting:
https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application/
Cluster Troubleshooting:
https://kubernetes.io/docs/tasks/debug-application-cluster/debug-cluster/
43
datawire.io
Debugging The Cool Way
● Sometimes you need something more powerful than logs…
● Or your developers use a shared development-staging cluster and something is
broken...
● Classic problem with building web services… How do I attach a local process to
the running cloud environment? What about a debugger?
● Super easy in Kubernetes with a tool called Telepresence!
http://www.telepresence.io/
44
datawire.io
● Telepresence proxies network
requests, environment variables,
and volumes to local
Telepresence client
● Code locally on your laptop using
your favorite editor and your local
filesystem :)
Telepresence
45
datawire.io
Wrapping Up
● Kubernetes is awesome!
● There’s a lot of power and flexibility
● We need to empower developers by providing them excellent tools that make
their lives easier!
● As infrastructure and ops engineers we need to build a stable platform that
developers can use without feeling restricted. The service mesh makes this easier.
46
datawire.io
Preso Over! Thank you!
● If you’re building cloud applications on top of Kubernetes, check out our open
source tools:
● Contact us @datawireio or hello@datawire.io
47

Contenu connexe

Tendances

Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...
Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...
Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...Docker, Inc.
 
Troubleshooting tips from docker support engineers
Troubleshooting tips from docker support engineersTroubleshooting tips from docker support engineers
Troubleshooting tips from docker support engineersDocker, Inc.
 
DockerCon EU 2015: Cultural Revolution - How to Mange the Change Docker Brings
DockerCon EU 2015: Cultural Revolution - How to Mange the Change Docker BringsDockerCon EU 2015: Cultural Revolution - How to Mange the Change Docker Brings
DockerCon EU 2015: Cultural Revolution - How to Mange the Change Docker BringsDocker, Inc.
 
DCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDocker, Inc.
 
QCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented DevelopmentQCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented DevelopmentAmbassador Labs
 
LlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and NotaryLlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and NotaryDocker, Inc.
 
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-ComposeTales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-ComposeDocker, Inc.
 
Using Docker Containers to Improve Reproducibility in Software and Web Engine...
Using Docker Containers to Improve Reproducibility in Software and Web Engine...Using Docker Containers to Improve Reproducibility in Software and Web Engine...
Using Docker Containers to Improve Reproducibility in Software and Web Engine...Vincenzo Ferme
 
Talking TUF: Securing Software Distribution
Talking TUF: Securing Software DistributionTalking TUF: Securing Software Distribution
Talking TUF: Securing Software DistributionDocker, Inc.
 
DockerCon SF 2015: Docker in the New York Times Newsroom
DockerCon SF 2015: Docker in the New York Times NewsroomDockerCon SF 2015: Docker in the New York Times Newsroom
DockerCon SF 2015: Docker in the New York Times NewsroomDocker, Inc.
 
Docker crash course
Docker crash courseDocker crash course
Docker crash courseVishwas N
 
Docker ee an architecture and operations overview
Docker ee an architecture and operations overviewDocker ee an architecture and operations overview
Docker ee an architecture and operations overviewDocker, Inc.
 
Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016Opsta
 
Continuous Packaging is also Mandatory for DevOps
Continuous Packaging is also Mandatory for DevOpsContinuous Packaging is also Mandatory for DevOps
Continuous Packaging is also Mandatory for DevOpsDocker, Inc.
 
Becoming the Docker Champion: Bringing Docker Back to Work
Becoming the Docker Champion: Bringing Docker Back to WorkBecoming the Docker Champion: Bringing Docker Back to Work
Becoming the Docker Champion: Bringing Docker Back to WorkDocker, Inc.
 
Kubernetes in Docker
Kubernetes in DockerKubernetes in Docker
Kubernetes in DockerDocker, Inc.
 
Continuous Delivery the Hard Way with Kubernetes
Continuous Delivery the Hard Way with Kubernetes Continuous Delivery the Hard Way with Kubernetes
Continuous Delivery the Hard Way with Kubernetes Weaveworks
 
DockerCon SF 2015: Ben Golub's Keynote Day 1
DockerCon SF 2015: Ben Golub's Keynote Day 1DockerCon SF 2015: Ben Golub's Keynote Day 1
DockerCon SF 2015: Ben Golub's Keynote Day 1Docker, Inc.
 
DCEU 18: Docker Container Security
DCEU 18: Docker Container SecurityDCEU 18: Docker Container Security
DCEU 18: Docker Container SecurityDocker, Inc.
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapPatrick Chanezon
 

Tendances (20)

Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...
Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...
Docker Enterprise Edition: Building a Secure Supply Chain for the Enterprise ...
 
Troubleshooting tips from docker support engineers
Troubleshooting tips from docker support engineersTroubleshooting tips from docker support engineers
Troubleshooting tips from docker support engineers
 
DockerCon EU 2015: Cultural Revolution - How to Mange the Change Docker Brings
DockerCon EU 2015: Cultural Revolution - How to Mange the Change Docker BringsDockerCon EU 2015: Cultural Revolution - How to Mange the Change Docker Brings
DockerCon EU 2015: Cultural Revolution - How to Mange the Change Docker Brings
 
DCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application Packages
 
QCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented DevelopmentQCon SF 2017 - Microservices: Service-Oriented Development
QCon SF 2017 - Microservices: Service-Oriented Development
 
LlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and NotaryLlinuxKit security, Security Scanning and Notary
LlinuxKit security, Security Scanning and Notary
 
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-ComposeTales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose
Tales of Training: Scaling CodeLabs with Swarm Mode and Docker-Compose
 
Using Docker Containers to Improve Reproducibility in Software and Web Engine...
Using Docker Containers to Improve Reproducibility in Software and Web Engine...Using Docker Containers to Improve Reproducibility in Software and Web Engine...
Using Docker Containers to Improve Reproducibility in Software and Web Engine...
 
Talking TUF: Securing Software Distribution
Talking TUF: Securing Software DistributionTalking TUF: Securing Software Distribution
Talking TUF: Securing Software Distribution
 
DockerCon SF 2015: Docker in the New York Times Newsroom
DockerCon SF 2015: Docker in the New York Times NewsroomDockerCon SF 2015: Docker in the New York Times Newsroom
DockerCon SF 2015: Docker in the New York Times Newsroom
 
Docker crash course
Docker crash courseDocker crash course
Docker crash course
 
Docker ee an architecture and operations overview
Docker ee an architecture and operations overviewDocker ee an architecture and operations overview
Docker ee an architecture and operations overview
 
Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016
 
Continuous Packaging is also Mandatory for DevOps
Continuous Packaging is also Mandatory for DevOpsContinuous Packaging is also Mandatory for DevOps
Continuous Packaging is also Mandatory for DevOps
 
Becoming the Docker Champion: Bringing Docker Back to Work
Becoming the Docker Champion: Bringing Docker Back to WorkBecoming the Docker Champion: Bringing Docker Back to Work
Becoming the Docker Champion: Bringing Docker Back to Work
 
Kubernetes in Docker
Kubernetes in DockerKubernetes in Docker
Kubernetes in Docker
 
Continuous Delivery the Hard Way with Kubernetes
Continuous Delivery the Hard Way with Kubernetes Continuous Delivery the Hard Way with Kubernetes
Continuous Delivery the Hard Way with Kubernetes
 
DockerCon SF 2015: Ben Golub's Keynote Day 1
DockerCon SF 2015: Ben Golub's Keynote Day 1DockerCon SF 2015: Ben Golub's Keynote Day 1
DockerCon SF 2015: Ben Golub's Keynote Day 1
 
DCEU 18: Docker Container Security
DCEU 18: Docker Container SecurityDCEU 18: Docker Container Security
DCEU 18: Docker Container Security
 
Weave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 RecapWeave User Group Talk - DockerCon 2017 Recap
Weave User Group Talk - DockerCon 2017 Recap
 

Similaire à DevOps Days Boston 2017: Real-world Kubernetes for DevOps

Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsWeaveworks
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopIntro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopWeaveworks
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kuberneteskloia
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps WorkshopWeaveworks
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Weaveworks
 
Building a Kubernetes cluster for a large organisation 101
Building a Kubernetes cluster for a large organisation 101Building a Kubernetes cluster for a large organisation 101
Building a Kubernetes cluster for a large organisation 101Ed Schouten
 
Kubernetes and CoreOS @ Athens Docker meetup
Kubernetes and CoreOS @ Athens Docker meetupKubernetes and CoreOS @ Athens Docker meetup
Kubernetes and CoreOS @ Athens Docker meetupMist.io
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopBob Killen
 
Kubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersKubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersinovex GmbH
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesGabriel Carro
 
[Global logic] container runtimes and kubernetes
[Global logic] container runtimes and kubernetes[Global logic] container runtimes and kubernetes
[Global logic] container runtimes and kubernetesGlobalLogic Ukraine
 
Docker Madison, Introduction to Kubernetes
Docker Madison, Introduction to KubernetesDocker Madison, Introduction to Kubernetes
Docker Madison, Introduction to KubernetesTimothy St. Clair
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...Ambassador Labs
 
Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021Avanti Patil
 
Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016aspyker
 
Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016Sharma Podila
 
Speed & Agility of Innovation with Docker & Kubernetes
Speed & Agility of Innovation with Docker & KubernetesSpeed & Agility of Innovation with Docker & Kubernetes
Speed & Agility of Innovation with Docker & KubernetesICS
 

Similaire à DevOps Days Boston 2017: Real-world Kubernetes for DevOps (20)

Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOps
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopIntro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps Workshop
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
 
Building a Kubernetes cluster for a large organisation 101
Building a Kubernetes cluster for a large organisation 101Building a Kubernetes cluster for a large organisation 101
Building a Kubernetes cluster for a large organisation 101
 
AKS: k8s e azure
AKS: k8s e azureAKS: k8s e azure
AKS: k8s e azure
 
Kubernetes and CoreOS @ Athens Docker meetup
Kubernetes and CoreOS @ Athens Docker meetupKubernetes and CoreOS @ Athens Docker meetup
Kubernetes and CoreOS @ Athens Docker meetup
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes Workshop
 
Kubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containersKubernetes - how to orchestrate containers
Kubernetes - how to orchestrate containers
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
[Global logic] container runtimes and kubernetes
[Global logic] container runtimes and kubernetes[Global logic] container runtimes and kubernetes
[Global logic] container runtimes and kubernetes
 
Docker Madison, Introduction to Kubernetes
Docker Madison, Introduction to KubernetesDocker Madison, Introduction to Kubernetes
Docker Madison, Introduction to Kubernetes
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
 
Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021
 
Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016
 
Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016Scheduling a fuller house - Talk at QCon NY 2016
Scheduling a fuller house - Talk at QCon NY 2016
 
Speed & Agility of Innovation with Docker & Kubernetes
Speed & Agility of Innovation with Docker & KubernetesSpeed & Agility of Innovation with Docker & Kubernetes
Speed & Agility of Innovation with Docker & Kubernetes
 

Plus de Ambassador Labs

Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...Ambassador Labs
 
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...Ambassador Labs
 
Cloud native development without the toil
Cloud native development without the toilCloud native development without the toil
Cloud native development without the toilAmbassador Labs
 
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services Ambassador Labs
 
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...Ambassador Labs
 
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex GervaisAmbassador Labs
 
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard LiAmbassador Labs
 
What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0? What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0? Ambassador Labs
 
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes Ambassador Labs
 
Ambassador: Building a Control Plane for Envoy
Ambassador: Building a Control Plane for Envoy Ambassador: Building a Control Plane for Envoy
Ambassador: Building a Control Plane for Envoy Ambassador Labs
 
Telepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for KubernetesTelepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for KubernetesAmbassador Labs
 
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...Ambassador Labs
 
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...Ambassador Labs
 
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...Ambassador Labs
 
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYCThe Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYCAmbassador Labs
 
Ambassador Kubernetes-Native API Gateway
Ambassador Kubernetes-Native API GatewayAmbassador Kubernetes-Native API Gateway
Ambassador Kubernetes-Native API GatewayAmbassador Labs
 
Micro xchg 2018 - What is a Service Mesh?
Micro xchg 2018 - What is a Service Mesh? Micro xchg 2018 - What is a Service Mesh?
Micro xchg 2018 - What is a Service Mesh? Ambassador Labs
 
MA Microservices Meetup: Move fast and make things
MA Microservices Meetup: Move fast and make thingsMA Microservices Meetup: Move fast and make things
MA Microservices Meetup: Move fast and make thingsAmbassador Labs
 
2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...
2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...
2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...Ambassador Labs
 
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...Ambassador Labs
 

Plus de Ambassador Labs (20)

Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
 
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...
Ambassador Developer Office Hours: Summer of Kubernetes Ship Week 1: Intro to...
 
Cloud native development without the toil
Cloud native development without the toilCloud native development without the toil
Cloud native development without the toil
 
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
Webinar: Accelerate Your Inner Dev Loop for Kubernetes Services
 
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
[Confoo Montreal 2020] From Grief to Growth: The 7 Stages of Observability - ...
 
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
 
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
[QCon London 2020] The Future of Cloud Native API Gateways - Richard Li
 
What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0? What's New in the Ambassador Edge Stack 1.0?
What's New in the Ambassador Edge Stack 1.0?
 
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes
Webinar: Effective Management of APIs and the Edge when Adopting Kubernetes
 
Ambassador: Building a Control Plane for Envoy
Ambassador: Building a Control Plane for Envoy Ambassador: Building a Control Plane for Envoy
Ambassador: Building a Control Plane for Envoy
 
Telepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for KubernetesTelepresence - Fast Development Workflows for Kubernetes
Telepresence - Fast Development Workflows for Kubernetes
 
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
[KubeCon NA 2018] Telepresence Deep Dive Session - Rafael Schloming & Luke Sh...
 
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
[KubeCon NA 2018] Effective Kubernetes Develop: Turbocharge Your Dev Loop - P...
 
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
The rise of Layer 7, microservices, and the proxy war with Envoy, NGINX, and ...
 
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYCThe Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
The Simply Complex Task of Implementing Kubernetes Ingress - Velocity NYC
 
Ambassador Kubernetes-Native API Gateway
Ambassador Kubernetes-Native API GatewayAmbassador Kubernetes-Native API Gateway
Ambassador Kubernetes-Native API Gateway
 
Micro xchg 2018 - What is a Service Mesh?
Micro xchg 2018 - What is a Service Mesh? Micro xchg 2018 - What is a Service Mesh?
Micro xchg 2018 - What is a Service Mesh?
 
MA Microservices Meetup: Move fast and make things
MA Microservices Meetup: Move fast and make thingsMA Microservices Meetup: Move fast and make things
MA Microservices Meetup: Move fast and make things
 
2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...
2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...
2017 Microservices Practitioner Virtual Summit: The Mechanics of Deploying En...
 
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
2017 Microservices Practitioner Virtual Summit: How to Avoid Creating a GitHu...
 

Dernier

%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 

Dernier (20)

%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 

DevOps Days Boston 2017: Real-world Kubernetes for DevOps

  • 1. Kubernetes in about 45 minutes Everything you need to know to be dangerous Philip Lombardi Platform Engineer
  • 2. datawire.io Who is this Phil Lombardi guy? Twitter: @TheBigLombowski 2
  • 3. datawire.io Why are we all here? ● You are curious about Kubernetes (and friends) and want a primer! ● You are invested in Kubernetes but are looking to learn about some techniques and tools to make your developers lives better. ● This is the last preso and you feel guilty about leaving early :) 3
  • 4. datawire.io Agenda... ● Part 1: Containers and Docker and Kubernetes, Oh my! ● Part 2: Kubernetes Core Concepts ● Part 3: Development Workflow ● Part 4: Logging, Debugging and Resiliency ● Q & A 4
  • 5. datawire.io Lesson 1: Containers and Docker and Kubernetes, Oh my! 5
  • 6. datawire.io What is a container? ● Lightweight Linux environment. It is a form of virtualization… but very different from a full virtual machine. ● Immutable, deployable artifact. ● Runnable. ● Popularized by Docker but there are many implementations (e.g. LXC, Rkt). 6
  • 7. datawire.io What is Docker? ● A tool, ecosystem and platform for building, pushing and running containers. ● The most popular container runtime currently. ● Default container runtime in Kubernetes. 7
  • 8. datawire.io Why Containers? ● Easy and fast to produce. ● Great way to isolate different components in a complex system. ● Ensures a reproducible runtime for your app along the dev -> build -> test -> prod pipeline. ● Easy to share in a team or with external partners. 8
  • 9. datawire.io What is Kubernetes? ● Runs massive numbers of containers based on lessons learned by Google. ● Schedules and runs all kinds of containers ○ long-lived (e.g. services) ○ short-lived (e.g. pre-launch hooks, cronjobs etc) ● Kubernetes can be thought of as a Distributed OS or process manager 9
  • 10. datawire.io The Office Tower Analogy Your product is the building as a whole. Your business logic is the offices and workers 10
  • 11. datawire.io The Office Tower Analogy Kubernetes provides the infrastructure to build your app around. 11 It is the foundational app platform for your team to build your businesses apps around.
  • 12. datawire.io Why Kubernetes? It is not the only kid in the neighborhood… ● Amazon ECS ● Docker Swarm ● Hashicorp Nomad ● Apache Mesos 12
  • 13. datawire.io Why Kubernetes? Three big reasons to use Kubernetes over the other solutions: 1. Biggest ecosystem of the bunch and there is a hugely massive community 2. Runnable just about anywhere: cloud, bare-metal, and engineers laptops. 3. Unprecedented cloud portability. 13
  • 14. datawire.io Kubernetes Architecture Types of nodes: Masters and Workers 14 Docker Kubelet Kubeproxy Kubernetes Node Docker Kubelet Kubeproxy Kubernetes Node Docker Kubelet Kubeproxy Kubernetes Node Etcd API Server Controller Manager Kubernetes Master Scheduler
  • 15. datawire.io Lesson 2: Core Kubernetes Concepts 15
  • 16. datawire.io The “Big Five” of Kubernetes Concepts ● Pods ● Deployments ● Services ● ConfigMaps ● Secrets 16
  • 17. datawire.io A Pod you say? ● One or more strongly-related containers… 17 Story Server name: blog Redis Comment Server Frontend host: kube-worker-0
  • 18. datawire.io A Pod you say? ● Containers in a pod share the same host, pod IP and port space. 18 IP: 100.124.71.175 Story Server name: blog Redis Comment Server Frontend host: kube-worker-0
  • 19. datawire.io A Pod you say? ● Unit of scaling is a Pod 19 IP: 100.124.71.175 blog-0 kube-worker-0 IP: 100.124.71.176 blog-1 kube-worker-1 Kubernetes cluster
  • 20. datawire.io Pods Summary ● Like a host. All containers inside of a pod are run on the same underlying worker machine. ○ Can therefore reference localhost ○ … or share the filesystem ○ … or use unix domain sockets ● All containers in a Pod share the same IP and port space. ● Pods are not durable. ● Pods are a very low-level primitive construct. Necessary to know, but not commonly used directly. 20
  • 21. datawire.io Deployments ● Simple mechanism to configure, scale and update applications. ● Kubernetes does the rest of the hard work of scheduling the Pods across the cluster to meet desired capacity numbers. ● Works like a thermostat… Ensures the current state is always consistent with the desired state. 21
  • 22. datawire.io Services ● Services are stable “names” in Kubernetes that enable you to route traffic to Pods across the entire cluster. ● Every service gets its own IP address. ● Services route traffic to pods by matching labels. 22
  • 23. datawire.io Services Illustrated How to talk to both apps despite different IP addresses? 23 IP: 100.124.71.175 blog-0 kube-worker-0 IP: 100.124.71.176 blog-1 kube-worker-1 Kubernetes cluster
  • 24. datawire.io Services Illustrated Add a Service which becomes a DNS A record pointing the pod IP addresses 24 IP: 100.124.71.175 blog-0 kube-worker-0 IP: 100.124.71.176 blog-1 kube-worker-1 Kubernetes cluster blog DNS (short) => blog DNS (long) => blog.default.cluster.local
  • 25. datawire.io Services Illustrated You can have multiple services target pods using labels and selectors. 25 app=blog env=prod blog-0 kube-worker-0 app=blog env=prod blog-1 kube-worker-1 Kubernetes cluster blog blog-staging app=blog blog-0 kube-worker-1 app=blog env=prod app=blog
  • 26. datawire.io Service Flavors ● Many different flavors of “Service” in Kubernetes ○ ClusterIP ○ NodePort ○ LoadBalancer ○ ExternalName - often forgotten, but very useful! 26
  • 27. datawire.io Services Summary ● Creates DNS A records pointing at Pod IP addresses ● Powerful label matching capabilities that enable you to route traffic to particular pods (e.g. for blue-green or canary releases). ● Supports DNS SRV records so you can avoid hard coding port numbers in your app code as well. 27
  • 28. datawire.io ConfigMap ● Containers are immutable… so how do you provide runtime configuration to them? ● Age old question for immutable infrastructure lots of good (and bad) solutions have been built over the years. ● Kubernetes solution is built-in as the ConfigMap. Inject configuration information as… ○ Environment variables ○ Volumes 28
  • 29. datawire.io Secret ● Cousin of the ConfigMap ● Operates almost exactly the same as a ConfigMap but designed for storing sensitive information. ● Secret information only sent from master to worker nodes when needed by a pod. The data lives in memory so it is not on the disk. ● One important aspect of secrets… the master currently stores them in plaintext. Work in Progress to eliminate this in the future, but worth being aware of. 29
  • 30. datawire.io Kubernetes to AWS 30 Kubernetes AWS Pod EC2 Instance Deployment AutoScaling Group + Launch Configuration Service ELB ConfigMap N/A Secret N/A
  • 32. datawire.io Developers... ● Part of our role involves aiding Developers and making them faster and more productive. ● Kubernetes is awesome and it comes with a lot of power. ● Great power comes with lots of potential for learning pain. ● How do we make developers productive? 32
  • 33. datawire.io Manifests ● A declarative YAML/JSON config format that describe at a high level how Kubernetes should operate. ● Kubernetes operates like a thermostat. Transforms current state -> desired state based on config in the Manifest. ● Manifests often need to be parameterized (e.g. to change the container image). General approach is to use some kind of templating. 33
  • 34. datawire.io Structuring an Application ● Often asked, all this stuff is cool, but how should we structure our apps to be consistent and compatible with tooling? ● Strongly recommend a k8s/ directory in the top of your project ○ Manifests can be concrete and ready to use by just running `kubectl apply -f k8s/ ` ○ … or you can take an alternate approach and put templates in that directory and do some kind of config generation with say Python + Jinja2 (for example). 34
  • 35. datawire.io Writing Manifests ● Avoid hard coding environment configuration into manifests. ○ Templating ○ Kubectl switches (e.g. for namespaces) ● Stick to YAML even if Kubernetes supports JSON… not uncommon to want comments in the manifests. ● Kubernetes manifests can be spread across multiple files or kept in a single file. Strongly recommend using a single file until it becomes bothersome to maintain. 35
  • 36. datawire.io Development Workflows ● No single workflow that works for all developers or teams ● Need tools that can adapt to changing requirements and process ● Personally, great success with: ○ Trunk-based development model. ○ Using parameterized templates in k8s/ directory. ○ monorepo or “pseudo-monorepo”. ○ Dev-tooling the focuses on speed and maintaining fast iteration cycles 36
  • 37. datawire.io Forge (https://forge.sh) ● Build and deploy Kubernetes-based microservices quickly. ● Can deploy 1 or 100 services from source to Kubernetes in seconds. ● Changes are applied incrementally. Computes the diff of a change and then pushes the update to Kubernetes. 37
  • 38. datawire.io Lesson 4: Logging, Debugging and Resiliency 38
  • 39. datawire.io Logging... ● Kubernetes has a built-in log aggregation but it is limited (STDOUT, STDERR only). ● `kubectl logs` is good enough for devs but invest in a real logging solution for prod. ● You will want something like fluentd and elasticsearch because Kubernetes does not track historical logs for crashed or terminated pods. ○ Also search capabilities are limited to how much of a grep wizard you are. 39
  • 40. datawire.io Logging... ● There is more to logging than just application logs. ● Consider introducing a service mesh to your cluster that allows you to do per-request logging and tracing. 40
  • 41. datawire.io Services Mesh ● This was covered in a presentation yesterday so here is the recap: A dedicated infrastructure layer for making service-to-service communication safe and reliable. ● Kubernetes and CNCF are really pushing Lyft Envoy as the mechanism to build a service mesh. 41
  • 42. datawire.io Simple Log Query Tools ● Because the kubectl logs command is so limited many tools have been written to make it easier... ○ ktail https://github.com/atombender/ktail ○ kubetail https://github.com/johanhaleby/kubetail ○ stern https://github.com/wercker/stern 42
  • 43. datawire.io Debugging... Kubernetes IS complex. There are a lot of failure scenarios in all kinds of places. The Kubernetes docs are pretty helpful for doing some troubleshooting Application Troubleshooting: https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application/ Cluster Troubleshooting: https://kubernetes.io/docs/tasks/debug-application-cluster/debug-cluster/ 43
  • 44. datawire.io Debugging The Cool Way ● Sometimes you need something more powerful than logs… ● Or your developers use a shared development-staging cluster and something is broken... ● Classic problem with building web services… How do I attach a local process to the running cloud environment? What about a debugger? ● Super easy in Kubernetes with a tool called Telepresence! http://www.telepresence.io/ 44
  • 45. datawire.io ● Telepresence proxies network requests, environment variables, and volumes to local Telepresence client ● Code locally on your laptop using your favorite editor and your local filesystem :) Telepresence 45
  • 46. datawire.io Wrapping Up ● Kubernetes is awesome! ● There’s a lot of power and flexibility ● We need to empower developers by providing them excellent tools that make their lives easier! ● As infrastructure and ops engineers we need to build a stable platform that developers can use without feeling restricted. The service mesh makes this easier. 46
  • 47. datawire.io Preso Over! Thank you! ● If you’re building cloud applications on top of Kubernetes, check out our open source tools: ● Contact us @datawireio or hello@datawire.io 47