SlideShare a Scribd company logo
1 of 61
Download to read offline
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
© 2018 inwinSTACK Inc. All rights reserved.
Alfie Chen
alfie.c@inwinstack.com
inwinSTACK
alfieYFC alfie.yfc
inwinSTACK inwinSTACK
Groups/k8s.tw
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Agenda
World of Microservices
Lab#1 Docker
Intro to Kubernetes
Lab#2 Minikube
Demo & Case Studies
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
World of Microservices
Virtual Machines, Containers, etc.
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
• Huge Applications
• Hours to Build
• Huge Downtime
• Microservices
• Container Deployment
• DevOps
• Continuous Integration
• Continuous Delivery
App Development Changes
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Kitchen
Office
Ladies’ RoomMen’s Room
Front
desk
entrance
Dining Area
What is Microservices?
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Kitchen
Office
Ladies’ RoomMen’s Room
Front
desk
entrance
Dining Area
What is Microservices?
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Nginx
(Reverse Proxy Service)
Bootstrap
(Front-end Framework)
Rails
(Web Framework)
Sidekiq
(Background Processing Framework) Redis
(Storage)
Postgresql
(Database)
Elastic
(DB Search Engine)
What is Microservices?
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Physical Server
Software Program
Physical Server
Hypervisor
VM VM VM VM
What is Microservices?
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
What is Microservices?
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Kitchen
Office
Ladies’ RoomMen’s Room
Front
desk
entrance
Dining Area
What is Microservices?
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Physical Server
Container Engine
Container Container Container Container
What is Microservices?
Physical Server
Software Program
Physical Server
Hypervisor
VM VM VM VM
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Containers
• Light-weighted
• Isolated Apps
• Simple Version Control
• Fast Delivery
• Portability
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Containers
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Containers – Local Development
Physical Server
Container Engine
Container
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Containers – Simplified Testing
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Docker
Docker provides a uniformed wrapper around a software
package
• Containers
• Images
• Dockerfile
• Docker Registry
build upload
run
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Docker Hub / Store
• https://hub.docker.com/
• https://store.docker.com/
• Public Docker Registry
• Additional Features
1. Automated Builds
2. Webhooks
3. Organizations
upload
(it’s kinda like GitHub)
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Lab#1 Docker
Installation; HelloWorld; Docker Commands!
https://github.com/acinwinstack/minikube-intro-workshop
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Lab1.1 – Installation (Windows)
• https://docs.docker.com/engine/installation/
• https://download.docker.com/win/stable/Docker%20for%2
0Windows%20Installer.exe
• Windows 10 Pro with Hyper-V
• Windows Server 2016
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Lab1.1 – Installation (Mac)
• https://docs.docker.com/engine/installation/
• https://docs.docker.com/docker-for-mac/install/
• Mac 2010 hardware model or newer
• MacOS El Capitan 10.11 or newer
• At least 4GB RAM
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Lab1.1 – Installation (Toolbox)
• https://docs.docker.com/engine/installation/
• https://docs.docker.com/toolbox/overview/
• Any Windows system Docker for Windows doesn’t support
• Any Mac system Docker for Mac doesn’t support
• Docker Toolbox !
"#$
%#&$'()*+,
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
DebianGNU_4.4.74-boot2docker
Lab1.1 – Installation (Toolbox)
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Lab1.1 – Installation (Linux)
• https://docs.docker.com/install/#server
• Enterprise Edition
• Community Edition
The easy way (CE):
curl –fsSL “https://get.docker.com/” | sh
sudo systemctl start docker
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Lab1.2 – Docker Commands
$ docker pull nginx .
$ docker login .
$ docker tag nginx <username>/nginx .
$ docker push <username>/nginx .
$ docker run –itd nginx .
$ docker ps .
$ docker run –itd –p 80:80 --name test nginx:1.12.2 .
$ curl localhost .
$ docker rm –f <containerID> .
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Lab1.2 – Docker Commands
$ git clone https://github.com/acinwinstack/minikube-in
tro-workshop.git
$ cd minikube-intro-workshop/
$ docker build –t <username>/helloworld:v1 ./build/ .
$ docker images .
$ docker run –itd --name test2 –p 8080:80  .
<username>/helloworld:v1 .
$ curl localhost:8080 .
$ docker push <username>:helloworld:v1 .
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
How does it work?
Host Machine
Containers Images
Client/User
docker build
docker pull
docker run
Docker Hub
Docker daemon
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Commands
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Intro to Kubernetes
A powerful container orchestrator open
sourced by Google Inc.
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
• Κυβερνήτης: Governor, Pilot.
• “K8s”
• Current Release: 1.10+
• https://kubernetes.io/
• Release Roadmap
https://github.com/kubernetes/kubernetes/milestones/
Introduction
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Kubernetes Cluster
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
• Controllers
o Deployment
o Stateful Set
o Daemon Set
o Job
• Service
Kubernetes Concepts
Kitchen
Office
Ladies’ RoomMen’s Room
Frontdesk
entrance
Dining
Area
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
• Deployment
o Stateless
o Randomly assigned identities
o Availability > Consistency
o [Web Frontends]
Kubernetes Concepts – Controllers
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
• Stateful Set
o Keeps states
o Persistent data
o Each has its own identity
o Availability < Consistency
o [Databases]
o [Message Queues]
Kubernetes Concepts – Controllers
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
• Daemon Set
o Background process
o One pod per node
o Node labels
o [Cluster Storage]
o [Logging]
o [Node Monitoring]
Kubernetes Concepts – Controllers
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
• Jobs
o Batch Pattern
o Run in parallel
o Run to completion (then exit)
o Independent but related processes
Kubernetes Concepts – Controllers
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Kubernetes Concepts – Service
Physical Server
192.168.99.100
Minion
Pod (10.32.0.3)
Container
Container
80
81
Pod
Container
Container
Svc
ClusterIP
10.101.214.237
↓
10.32.0.3:80
30294
Svc
NodePort
192.168.99.100:30294
↓
10.32.0.3:80
Svc
LoadBalancer
220.132.5.189
↓
10.32.0.3:80
curl192.168.99.100:30294
curl220.132.5.189
Internet
curl 10.101.214.237
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
There’s more!!
So many tools to choose from...
https://kubernetes.io/docs/concepts/
Kubernetes Concepts
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Lab#2 Minikube
Local, single node K8s cluster
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Lab Description
• Single Node
• Persistent Storage
• Rolling update
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Lab2.1 - Installation
https://kubernetes.io/docs/tasks/tools/install-minikube/
Physical Server
Host OS
Hypervisor
(VirtualBox)
Guest OS: Debian GNU/Linux
(192.168.99.100)
Master & Minion
Pod
Container
Container
Pod
Container
Pod
Container
Container
kube-proxykubelet
Controller
Manager
etcdSchedulerAPI Server
Terminal
#kubectl
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Lab2.2 – Minikube Commands
$ minikube start .
$ minikube dashboard .
$ minikube ssh .
$ minikube stop .
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Lab2.3 – Run the Web App
$ kubectl apply -f lab1/redis_pod.yml .
$ kubectl get po –o wide .
write down the pod IP of redis
$ vi lab1/web_deploy.yml .
Config REDIS_IP
$ kubectl apply –f lab1/web_deploy.yml .
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Lab2.4 – Expose the Web App
$ kubectl expose deploy hello-world-deploy  .
--name hello-world-svc  .
--type NodePort  .
--port 80  .
--target-port 80 .
$ kubectl get svc .
write down the NodePort IP of hello-world-svc
$ curl <minikube>:NodePortIP .
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Lab2.5 – Persistent Volume
$ vi lab2/web_deploy.yml .
Config REDIS_IP
$ kubectl apply –f lab2/web_deploy.yml .
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Production Solutions &
Case Studies
Infrastructure designs for production, with a
successful story to tell
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
K8s Minimum Specs
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
K8s Minimum Architecture (HA)
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Kubernetes + Ceph
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Virtual Kubernetes
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
A Successful Story – User Background
• A Hospital in Taipei
• Java developers
• Already using Docker containers
• CI/CD practice with GitLab + Docker
We know our
containers
very well…
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
A Successful Story – User Background
• EMR System Applications
• HR Software Applications
• Radiology Information System Applications
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
The Challenge
• Docker Swarm is not enough
• Require auto-scaling
• Require multi-tenancy
• Require various deploy methods
• Require S3 storage solution
• Require infrastructure scalability for the future
(for both application and storage)
• Require user-friendly interface for both tenants &
admins
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
The Challenge
• Docker Swarm is not enough
• Require auto-scaling
• Require multi-tenancy
• Require various deploy methods
• Require S3 storage solution
• Require infrastructure scalability for the future
(for both application and storage)
• Require user-friendly interface for both tenants &
admins
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
The Solution
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
The Solution
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
The Impact - CI/CD Pipeline
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
The Impact - Storage Optimization
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Conclusion
What should you REALLY take away today?
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Things to Consider…
• What’s best for your app?
i.e. VMs vs Containers
• What are your customized requirements?
i.e. Dev? Ops? DevOps?
• What specific open source apps are in interest?
i.e. Web (wordpress, apache, php);
DB (redis, postgresql, mongodb); …
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
Things to Consider…
Determine how much hardware resource is available
Determine what architecture utilizes the most of your resource
(keep application priorities in mind)
ASK inwinSTACK!!
© 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL
The information contained in this document
is confidential, privileged and only for the
intended recipient and may not be used,
published or redistributed without the prior
written consent of inwinSTACK Inc.
The End
www.inwinstack.com

More Related Content

What's hot

Building kubectl plugins with Quarkus | DevNation Tech Talk
Building kubectl plugins with Quarkus | DevNation Tech TalkBuilding kubectl plugins with Quarkus | DevNation Tech Talk
Building kubectl plugins with Quarkus | DevNation Tech TalkRed Hat Developers
 
Tectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and BeyondTectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and BeyondCoreOS
 
JUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerJUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerCloudBees
 
CI / CD / CS - Continuous Security in Kubernetes
CI / CD / CS - Continuous Security in KubernetesCI / CD / CS - Continuous Security in Kubernetes
CI / CD / CS - Continuous Security in KubernetesSysdig
 
Pod Sandbox workflow creation from Dockershim
Pod Sandbox workflow creation from DockershimPod Sandbox workflow creation from Dockershim
Pod Sandbox workflow creation from DockershimVictor Morales
 
On-Demand Image Resizing from Part of the monolith to Containerized Microserv...
On-Demand Image Resizing from Part of the monolith to Containerized Microserv...On-Demand Image Resizing from Part of the monolith to Containerized Microserv...
On-Demand Image Resizing from Part of the monolith to Containerized Microserv...Docker, Inc.
 
Enabling Microservices @Orbitz - DockerCon 2015
Enabling Microservices @Orbitz - DockerCon 2015Enabling Microservices @Orbitz - DockerCon 2015
Enabling Microservices @Orbitz - DockerCon 2015Steve Hoffman
 
Docker for Fun and Profit
Docker for Fun and ProfitDocker for Fun and Profit
Docker for Fun and ProfitKel Cecil
 
Container orchestration from theory to practice
Container orchestration from theory to practiceContainer orchestration from theory to practice
Container orchestration from theory to practiceDocker, Inc.
 
Scaling jenkins with kubernetes
Scaling jenkins with kubernetesScaling jenkins with kubernetes
Scaling jenkins with kubernetesAmi Mahloof
 
Configuration Management and Transforming Legacy Applications in the Enterpri...
Configuration Management and Transforming Legacy Applications in the Enterpri...Configuration Management and Transforming Legacy Applications in the Enterpri...
Configuration Management and Transforming Legacy Applications in the Enterpri...Docker, Inc.
 
DockerCon EU 2015: The Latest in Docker Engine
DockerCon EU 2015: The Latest in Docker EngineDockerCon EU 2015: The Latest in Docker Engine
DockerCon EU 2015: The Latest in Docker EngineDocker, Inc.
 
What’s New in Docker - Victor Vieux, Docker
What’s New in Docker - Victor Vieux, DockerWhat’s New in Docker - Victor Vieux, Docker
What’s New in Docker - Victor Vieux, DockerDocker, Inc.
 
Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...Docker, Inc.
 
DockerCon EU 2015: Trading Bitcoin with Docker
DockerCon EU 2015: Trading Bitcoin with DockerDockerCon EU 2015: Trading Bitcoin with Docker
DockerCon EU 2015: Trading Bitcoin with DockerDocker, Inc.
 
Continuous Delivery with Jenkins & Kubernetes @ Sky
Continuous Delivery with Jenkins & Kubernetes @ SkyContinuous Delivery with Jenkins & Kubernetes @ Sky
Continuous Delivery with Jenkins & Kubernetes @ SkyAdriana Vasiu
 
An Introduction to Rancher
An Introduction to RancherAn Introduction to Rancher
An Introduction to RancherConner Swann
 
Docker Security Deep Dive by Ying Li and David Lawrence
Docker Security Deep Dive by Ying Li and David LawrenceDocker Security Deep Dive by Ying Li and David Lawrence
Docker Security Deep Dive by Ying Li and David LawrenceDocker, Inc.
 
In-Cluster Continuous Testing Framework for Docker Containers
In-Cluster Continuous Testing Framework for Docker ContainersIn-Cluster Continuous Testing Framework for Docker Containers
In-Cluster Continuous Testing Framework for Docker ContainersNeil Gehani
 
Docker for Developers - Part 2 by Borja Burgos and Fernando Mayo
Docker for Developers - Part 2 by Borja Burgos and Fernando MayoDocker for Developers - Part 2 by Borja Burgos and Fernando Mayo
Docker for Developers - Part 2 by Borja Burgos and Fernando MayoDocker, Inc.
 

What's hot (20)

Building kubectl plugins with Quarkus | DevNation Tech Talk
Building kubectl plugins with Quarkus | DevNation Tech TalkBuilding kubectl plugins with Quarkus | DevNation Tech Talk
Building kubectl plugins with Quarkus | DevNation Tech Talk
 
Tectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and BeyondTectonic Summit 2016: Kubernetes 1.5 and Beyond
Tectonic Summit 2016: Kubernetes 1.5 and Beyond
 
JUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with DockerJUC Europe 2015: Scaling Your Jenkins Master with Docker
JUC Europe 2015: Scaling Your Jenkins Master with Docker
 
CI / CD / CS - Continuous Security in Kubernetes
CI / CD / CS - Continuous Security in KubernetesCI / CD / CS - Continuous Security in Kubernetes
CI / CD / CS - Continuous Security in Kubernetes
 
Pod Sandbox workflow creation from Dockershim
Pod Sandbox workflow creation from DockershimPod Sandbox workflow creation from Dockershim
Pod Sandbox workflow creation from Dockershim
 
On-Demand Image Resizing from Part of the monolith to Containerized Microserv...
On-Demand Image Resizing from Part of the monolith to Containerized Microserv...On-Demand Image Resizing from Part of the monolith to Containerized Microserv...
On-Demand Image Resizing from Part of the monolith to Containerized Microserv...
 
Enabling Microservices @Orbitz - DockerCon 2015
Enabling Microservices @Orbitz - DockerCon 2015Enabling Microservices @Orbitz - DockerCon 2015
Enabling Microservices @Orbitz - DockerCon 2015
 
Docker for Fun and Profit
Docker for Fun and ProfitDocker for Fun and Profit
Docker for Fun and Profit
 
Container orchestration from theory to practice
Container orchestration from theory to practiceContainer orchestration from theory to practice
Container orchestration from theory to practice
 
Scaling jenkins with kubernetes
Scaling jenkins with kubernetesScaling jenkins with kubernetes
Scaling jenkins with kubernetes
 
Configuration Management and Transforming Legacy Applications in the Enterpri...
Configuration Management and Transforming Legacy Applications in the Enterpri...Configuration Management and Transforming Legacy Applications in the Enterpri...
Configuration Management and Transforming Legacy Applications in the Enterpri...
 
DockerCon EU 2015: The Latest in Docker Engine
DockerCon EU 2015: The Latest in Docker EngineDockerCon EU 2015: The Latest in Docker Engine
DockerCon EU 2015: The Latest in Docker Engine
 
What’s New in Docker - Victor Vieux, Docker
What’s New in Docker - Victor Vieux, DockerWhat’s New in Docker - Victor Vieux, Docker
What’s New in Docker - Victor Vieux, Docker
 
Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...Online Meetup: Why should container system / platform builders care about con...
Online Meetup: Why should container system / platform builders care about con...
 
DockerCon EU 2015: Trading Bitcoin with Docker
DockerCon EU 2015: Trading Bitcoin with DockerDockerCon EU 2015: Trading Bitcoin with Docker
DockerCon EU 2015: Trading Bitcoin with Docker
 
Continuous Delivery with Jenkins & Kubernetes @ Sky
Continuous Delivery with Jenkins & Kubernetes @ SkyContinuous Delivery with Jenkins & Kubernetes @ Sky
Continuous Delivery with Jenkins & Kubernetes @ Sky
 
An Introduction to Rancher
An Introduction to RancherAn Introduction to Rancher
An Introduction to Rancher
 
Docker Security Deep Dive by Ying Li and David Lawrence
Docker Security Deep Dive by Ying Li and David LawrenceDocker Security Deep Dive by Ying Li and David Lawrence
Docker Security Deep Dive by Ying Li and David Lawrence
 
In-Cluster Continuous Testing Framework for Docker Containers
In-Cluster Continuous Testing Framework for Docker ContainersIn-Cluster Continuous Testing Framework for Docker Containers
In-Cluster Continuous Testing Framework for Docker Containers
 
Docker for Developers - Part 2 by Borja Burgos and Fernando Mayo
Docker for Developers - Part 2 by Borja Burgos and Fernando MayoDocker for Developers - Part 2 by Borja Burgos and Fernando Mayo
Docker for Developers - Part 2 by Borja Burgos and Fernando Mayo
 

Similar to Minikube Workshop Handout

Vishwakarma: Terraform modules for deploying EKS and Self-hosting Kubernetes
Vishwakarma: Terraform modules for deploying EKS and Self-hosting KubernetesVishwakarma: Terraform modules for deploying EKS and Self-hosting Kubernetes
Vishwakarma: Terraform modules for deploying EKS and Self-hosting KubernetesAmazon Web Services
 
Real World Example of Orchestrating Docker, Node JS, NFV on OpenStack
Real World Example of Orchestrating Docker, Node JS, NFV on OpenStackReal World Example of Orchestrating Docker, Node JS, NFV on OpenStack
Real World Example of Orchestrating Docker, Node JS, NFV on OpenStackNati Shalom
 
Introduction to Jenkins X - a beginner's guide
Introduction to Jenkins X - a beginner's guideIntroduction to Jenkins X - a beginner's guide
Introduction to Jenkins X - a beginner's guideAndrew Bayer
 
Docker and Jenkins [as code]
Docker and Jenkins [as code]Docker and Jenkins [as code]
Docker and Jenkins [as code]Mark Waite
 
Using containerization to enable your microservice architecture
Using containerization to enable your microservice architecture Using containerization to enable your microservice architecture
Using containerization to enable your microservice architecture Apigee | Google Cloud
 
Building Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and TektonBuilding Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and TektonLeon Stigter
 
Continuous Delivery to Kubernetes with Jenkins and Helm
Continuous Delivery to Kubernetes with Jenkins and HelmContinuous Delivery to Kubernetes with Jenkins and Helm
Continuous Delivery to Kubernetes with Jenkins and HelmDavid Currie
 
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CloudBees
 
Kubernetes 101 VMworld 2019 workshop slides
Kubernetes 101 VMworld 2019 workshop slidesKubernetes 101 VMworld 2019 workshop slides
Kubernetes 101 VMworld 2019 workshop slidesSimone Morellato
 
Get the Exact Identity Solution You Need - In the Cloud - Overview
Get the Exact Identity Solution You Need - In the Cloud - OverviewGet the Exact Identity Solution You Need - In the Cloud - Overview
Get the Exact Identity Solution You Need - In the Cloud - OverviewForgeRock
 
Javaone 2014 - Git & Docker with Jenkins
Javaone 2014 - Git & Docker with JenkinsJavaone 2014 - Git & Docker with Jenkins
Javaone 2014 - Git & Docker with JenkinsAndy Pemberton
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersCisco DevNet
 
Securing Your Apps & APIs in the Cloud
Securing Your Apps & APIs in the CloudSecuring Your Apps & APIs in the Cloud
Securing Your Apps & APIs in the CloudOlivia LaMar
 
Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)Tracy Kennedy
 
Workflow, container, and beyond
Workflow, container, and beyondWorkflow, container, and beyond
Workflow, container, and beyondKohsuke Kawaguchi
 
CI/CD 기반의 Microservice 개발
 CI/CD 기반의 Microservice 개발 CI/CD 기반의 Microservice 개발
CI/CD 기반의 Microservice 개발Oracle Korea
 
Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015Chris Ciborowski
 
Microservices and APIs
Microservices and APIsMicroservices and APIs
Microservices and APIsPuneet Sachdev
 
Kubernetes for the VI Admin
Kubernetes for the VI AdminKubernetes for the VI Admin
Kubernetes for the VI AdminKendrick Coleman
 

Similar to Minikube Workshop Handout (20)

Cicd.pdf
Cicd.pdfCicd.pdf
Cicd.pdf
 
Vishwakarma: Terraform modules for deploying EKS and Self-hosting Kubernetes
Vishwakarma: Terraform modules for deploying EKS and Self-hosting KubernetesVishwakarma: Terraform modules for deploying EKS and Self-hosting Kubernetes
Vishwakarma: Terraform modules for deploying EKS and Self-hosting Kubernetes
 
Real World Example of Orchestrating Docker, Node JS, NFV on OpenStack
Real World Example of Orchestrating Docker, Node JS, NFV on OpenStackReal World Example of Orchestrating Docker, Node JS, NFV on OpenStack
Real World Example of Orchestrating Docker, Node JS, NFV on OpenStack
 
Introduction to Jenkins X - a beginner's guide
Introduction to Jenkins X - a beginner's guideIntroduction to Jenkins X - a beginner's guide
Introduction to Jenkins X - a beginner's guide
 
Docker and Jenkins [as code]
Docker and Jenkins [as code]Docker and Jenkins [as code]
Docker and Jenkins [as code]
 
Using containerization to enable your microservice architecture
Using containerization to enable your microservice architecture Using containerization to enable your microservice architecture
Using containerization to enable your microservice architecture
 
Building Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and TektonBuilding Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and Tekton
 
Continuous Delivery to Kubernetes with Jenkins and Helm
Continuous Delivery to Kubernetes with Jenkins and HelmContinuous Delivery to Kubernetes with Jenkins and Helm
Continuous Delivery to Kubernetes with Jenkins and Helm
 
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
CI and CD Across the Enterprise with Jenkins (devops.com Nov 2014)
 
Kubernetes 101 VMworld 2019 workshop slides
Kubernetes 101 VMworld 2019 workshop slidesKubernetes 101 VMworld 2019 workshop slides
Kubernetes 101 VMworld 2019 workshop slides
 
Get the Exact Identity Solution You Need - In the Cloud - Overview
Get the Exact Identity Solution You Need - In the Cloud - OverviewGet the Exact Identity Solution You Need - In the Cloud - Overview
Get the Exact Identity Solution You Need - In the Cloud - Overview
 
Javaone 2014 - Git & Docker with Jenkins
Javaone 2014 - Git & Docker with JenkinsJavaone 2014 - Git & Docker with Jenkins
Javaone 2014 - Git & Docker with Jenkins
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API Providers
 
Securing Your Apps & APIs in the Cloud
Securing Your Apps & APIs in the CloudSecuring Your Apps & APIs in the Cloud
Securing Your Apps & APIs in the Cloud
 
Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)Continuous Delivery with Jenkins and Wildfly (2014)
Continuous Delivery with Jenkins and Wildfly (2014)
 
Workflow, container, and beyond
Workflow, container, and beyondWorkflow, container, and beyond
Workflow, container, and beyond
 
CI/CD 기반의 Microservice 개발
 CI/CD 기반의 Microservice 개발 CI/CD 기반의 Microservice 개발
CI/CD 기반의 Microservice 개발
 
Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015Nebulaworks Docker Overview 09-22-2015
Nebulaworks Docker Overview 09-22-2015
 
Microservices and APIs
Microservices and APIsMicroservices and APIs
Microservices and APIs
 
Kubernetes for the VI Admin
Kubernetes for the VI AdminKubernetes for the VI Admin
Kubernetes for the VI Admin
 

Recently uploaded

Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 

Minikube Workshop Handout

  • 1. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL © 2018 inwinSTACK Inc. All rights reserved. Alfie Chen alfie.c@inwinstack.com inwinSTACK alfieYFC alfie.yfc inwinSTACK inwinSTACK Groups/k8s.tw
  • 2. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Agenda World of Microservices Lab#1 Docker Intro to Kubernetes Lab#2 Minikube Demo & Case Studies
  • 3. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL World of Microservices Virtual Machines, Containers, etc.
  • 4. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL • Huge Applications • Hours to Build • Huge Downtime • Microservices • Container Deployment • DevOps • Continuous Integration • Continuous Delivery App Development Changes
  • 5. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Kitchen Office Ladies’ RoomMen’s Room Front desk entrance Dining Area What is Microservices?
  • 6. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Kitchen Office Ladies’ RoomMen’s Room Front desk entrance Dining Area What is Microservices?
  • 7. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Nginx (Reverse Proxy Service) Bootstrap (Front-end Framework) Rails (Web Framework) Sidekiq (Background Processing Framework) Redis (Storage) Postgresql (Database) Elastic (DB Search Engine) What is Microservices?
  • 8. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Physical Server Software Program Physical Server Hypervisor VM VM VM VM What is Microservices?
  • 9. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL What is Microservices?
  • 10. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Kitchen Office Ladies’ RoomMen’s Room Front desk entrance Dining Area What is Microservices?
  • 11. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Physical Server Container Engine Container Container Container Container What is Microservices? Physical Server Software Program Physical Server Hypervisor VM VM VM VM
  • 12. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Containers • Light-weighted • Isolated Apps • Simple Version Control • Fast Delivery • Portability
  • 13. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Containers
  • 14. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Containers – Local Development Physical Server Container Engine Container
  • 15. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Containers – Simplified Testing
  • 16. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Docker Docker provides a uniformed wrapper around a software package • Containers • Images • Dockerfile • Docker Registry build upload run
  • 17. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Docker Hub / Store • https://hub.docker.com/ • https://store.docker.com/ • Public Docker Registry • Additional Features 1. Automated Builds 2. Webhooks 3. Organizations upload (it’s kinda like GitHub)
  • 18. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Lab#1 Docker Installation; HelloWorld; Docker Commands! https://github.com/acinwinstack/minikube-intro-workshop
  • 19. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Lab1.1 – Installation (Windows) • https://docs.docker.com/engine/installation/ • https://download.docker.com/win/stable/Docker%20for%2 0Windows%20Installer.exe • Windows 10 Pro with Hyper-V • Windows Server 2016
  • 20. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Lab1.1 – Installation (Mac) • https://docs.docker.com/engine/installation/ • https://docs.docker.com/docker-for-mac/install/ • Mac 2010 hardware model or newer • MacOS El Capitan 10.11 or newer • At least 4GB RAM
  • 21. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Lab1.1 – Installation (Toolbox) • https://docs.docker.com/engine/installation/ • https://docs.docker.com/toolbox/overview/ • Any Windows system Docker for Windows doesn’t support • Any Mac system Docker for Mac doesn’t support • Docker Toolbox ! "#$ %#&$'()*+,
  • 22. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL DebianGNU_4.4.74-boot2docker Lab1.1 – Installation (Toolbox)
  • 23. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Lab1.1 – Installation (Linux) • https://docs.docker.com/install/#server • Enterprise Edition • Community Edition The easy way (CE): curl –fsSL “https://get.docker.com/” | sh sudo systemctl start docker
  • 24. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Lab1.2 – Docker Commands $ docker pull nginx . $ docker login . $ docker tag nginx <username>/nginx . $ docker push <username>/nginx . $ docker run –itd nginx . $ docker ps . $ docker run –itd –p 80:80 --name test nginx:1.12.2 . $ curl localhost . $ docker rm –f <containerID> .
  • 25. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Lab1.2 – Docker Commands $ git clone https://github.com/acinwinstack/minikube-in tro-workshop.git $ cd minikube-intro-workshop/ $ docker build –t <username>/helloworld:v1 ./build/ . $ docker images . $ docker run –itd --name test2 –p 8080:80 . <username>/helloworld:v1 . $ curl localhost:8080 . $ docker push <username>:helloworld:v1 .
  • 26. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL How does it work? Host Machine Containers Images Client/User docker build docker pull docker run Docker Hub Docker daemon
  • 27. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Commands
  • 28. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Intro to Kubernetes A powerful container orchestrator open sourced by Google Inc.
  • 29. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL • Κυβερνήτης: Governor, Pilot. • “K8s” • Current Release: 1.10+ • https://kubernetes.io/ • Release Roadmap https://github.com/kubernetes/kubernetes/milestones/ Introduction
  • 30. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Kubernetes Cluster
  • 31. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL • Controllers o Deployment o Stateful Set o Daemon Set o Job • Service Kubernetes Concepts Kitchen Office Ladies’ RoomMen’s Room Frontdesk entrance Dining Area
  • 32. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL • Deployment o Stateless o Randomly assigned identities o Availability > Consistency o [Web Frontends] Kubernetes Concepts – Controllers
  • 33. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL • Stateful Set o Keeps states o Persistent data o Each has its own identity o Availability < Consistency o [Databases] o [Message Queues] Kubernetes Concepts – Controllers
  • 34. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL • Daemon Set o Background process o One pod per node o Node labels o [Cluster Storage] o [Logging] o [Node Monitoring] Kubernetes Concepts – Controllers
  • 35. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL • Jobs o Batch Pattern o Run in parallel o Run to completion (then exit) o Independent but related processes Kubernetes Concepts – Controllers
  • 36. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Kubernetes Concepts – Service Physical Server 192.168.99.100 Minion Pod (10.32.0.3) Container Container 80 81 Pod Container Container Svc ClusterIP 10.101.214.237 ↓ 10.32.0.3:80 30294 Svc NodePort 192.168.99.100:30294 ↓ 10.32.0.3:80 Svc LoadBalancer 220.132.5.189 ↓ 10.32.0.3:80 curl192.168.99.100:30294 curl220.132.5.189 Internet curl 10.101.214.237
  • 37. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL There’s more!! So many tools to choose from... https://kubernetes.io/docs/concepts/ Kubernetes Concepts
  • 38. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Lab#2 Minikube Local, single node K8s cluster
  • 39. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Lab Description • Single Node • Persistent Storage • Rolling update
  • 40. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Lab2.1 - Installation https://kubernetes.io/docs/tasks/tools/install-minikube/ Physical Server Host OS Hypervisor (VirtualBox) Guest OS: Debian GNU/Linux (192.168.99.100) Master & Minion Pod Container Container Pod Container Pod Container Container kube-proxykubelet Controller Manager etcdSchedulerAPI Server Terminal #kubectl
  • 41. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Lab2.2 – Minikube Commands $ minikube start . $ minikube dashboard . $ minikube ssh . $ minikube stop .
  • 42. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Lab2.3 – Run the Web App $ kubectl apply -f lab1/redis_pod.yml . $ kubectl get po –o wide . write down the pod IP of redis $ vi lab1/web_deploy.yml . Config REDIS_IP $ kubectl apply –f lab1/web_deploy.yml .
  • 43. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Lab2.4 – Expose the Web App $ kubectl expose deploy hello-world-deploy . --name hello-world-svc . --type NodePort . --port 80 . --target-port 80 . $ kubectl get svc . write down the NodePort IP of hello-world-svc $ curl <minikube>:NodePortIP .
  • 44. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Lab2.5 – Persistent Volume $ vi lab2/web_deploy.yml . Config REDIS_IP $ kubectl apply –f lab2/web_deploy.yml .
  • 45. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Production Solutions & Case Studies Infrastructure designs for production, with a successful story to tell
  • 46. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL K8s Minimum Specs
  • 47. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL K8s Minimum Architecture (HA)
  • 48. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Kubernetes + Ceph
  • 49. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Virtual Kubernetes
  • 50. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL A Successful Story – User Background • A Hospital in Taipei • Java developers • Already using Docker containers • CI/CD practice with GitLab + Docker We know our containers very well…
  • 51. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL A Successful Story – User Background • EMR System Applications • HR Software Applications • Radiology Information System Applications
  • 52. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL The Challenge • Docker Swarm is not enough • Require auto-scaling • Require multi-tenancy • Require various deploy methods • Require S3 storage solution • Require infrastructure scalability for the future (for both application and storage) • Require user-friendly interface for both tenants & admins
  • 53. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL The Challenge • Docker Swarm is not enough • Require auto-scaling • Require multi-tenancy • Require various deploy methods • Require S3 storage solution • Require infrastructure scalability for the future (for both application and storage) • Require user-friendly interface for both tenants & admins
  • 54. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL The Solution
  • 55. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL The Solution
  • 56. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL The Impact - CI/CD Pipeline
  • 57. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL The Impact - Storage Optimization
  • 58. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Conclusion What should you REALLY take away today?
  • 59. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Things to Consider… • What’s best for your app? i.e. VMs vs Containers • What are your customized requirements? i.e. Dev? Ops? DevOps? • What specific open source apps are in interest? i.e. Web (wordpress, apache, php); DB (redis, postgresql, mongodb); …
  • 60. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL Things to Consider… Determine how much hardware resource is available Determine what architecture utilizes the most of your resource (keep application priorities in mind) ASK inwinSTACK!!
  • 61. © 2018 inwinSTACK Inc. All rights reserved. CONFIDENTIAL The information contained in this document is confidential, privileged and only for the intended recipient and may not be used, published or redistributed without the prior written consent of inwinSTACK Inc. The End www.inwinstack.com