SlideShare a Scribd company logo
1 of 52
Download to read offline
Rancher 2.0
Technical Deep Dive
LINE Corporation
IT Service Center Verda 2
Yuki Nishiwaki
Who Are You: Yuki Nishiwaki
● Develop/Operate OpenStack based Private Cloud
● Plan/Develop/Operate Kubernetes as a Service
● Excitingly simple multi-path OpenStack Networking (May 2018, OpenStack Summit)
Recent Talk
Current Role
Brief introduction of ourselves(Verda)
The position against k8s from me
。。。。
。。。。
。
。。
。
。
。。
。
OpenStack based Private Cloud
Operator/Developer for Private Cloud
Server Network Database …..
Me
New Resource Type
Verda Kubernetes as a Service - Background
● We’ve seen about 600 k8s node users deployed/used on our Private Cloud
● Many teams find easy way/struggle to use/operate k8s
Problem description
● Operating k8s is not such a small burden every
developer can handle in spare time
● Knowledge of k8s operation is fragmented
New Resource Type
For Verda User
Verda Kubernetes as a Service - Target
● Provide stable Kubernetes Cluster to Verd User
○ Don’t have to automate everything but we will take responsibility to operate
● Provide API to Verda User
○ CREATE/DELETE Kubernetes Cluster (UPGRADE is not the target at the moment)
○ ADD/REMOVE Node
● Provide “Service Desk”
○ To advise/consider how to use with Verda User(Application developer)
New Resource Type
For Verda User
Verda Kubernetes as a Service - Status of Project
● Start Project since May 2018
○ Pretty late, relatively
● Decided to utilize existing software(OSS)
○ Reduce lead time as much as possible
○ Rancher 2.0 is one of the candidates we will use
■ We are thinking to use Rancher 2.0 for Phase 1
● Still deciding which is good to use for managing k8s part
○ Or Will we have to develop from scratch?
Less dependent design - Still considering
Verda Kubernetes as a Service
Provider Plugin
Rancher
API
Our own API schema
????
Cluster
Node We use Rancher as tool to provide
* Create k8s
* Monitor k8s
* Update k8s
* Add Node to k8s cluster
* Remove Node from k8s cluster
????
Roadmap
Phase1 (2018/09/01)
* This is First release
* No change for Kubernetes/Rancher
* Support only basic k8s cluster
* Support Limited Number of Cluster
* Train ourselves
* For Rancher (because we depended)
Phase3 (Planning)
* Enhance k8s support
* CRD/Controller for in-house Component
* Prepare skeleton template to make it easy
to start development
* Consider solution about how k8s cover
whole system including VM (kubevirt)
Phase 1
Phase2 (Planning)
* Enhance VKS control plane(Tune Rancher)
* Support More Clusters
* Enhance monitoring item
* Enhance GUI
* Enhance k8s support
* Support Type Loadbalancer for in-house LB
* Support Persistent Volume
* Optimizing Container Networking
* Train ourselves
* For Kubernetes, Etcd
Phase 3Phase 2
About Rancher 2.0
What’s Rancher?
● Container Management Tool
● Support to deploy Container Orchestration Tool itself like Kubernetes
● Make “Container Orchestration itself” abstract and Provide rich UI
● UI allow you to deploy your container workload easier than native console
● UI allow you to use well-tested catalog
Rancher 2.0 Released (May 1 2018)
● Focus on using Kubernetes as a Container Orchestration Platform
● Re-design to work on Kubernetes from scratch
● Re-Implement from scratch
● Introduce Rancher Kubernetes Engine (RKE)
● Unified Cluster Management including GKE, EKS… as well as RKE
● Application Workload Management
Rancher 2.0
● Focus on using Kubernetes as a Container Orchestration Platform
● Re-design to work on Kubernetes from scratch
● Re-Implement from scratch
● Introduce Rancher Kubernetes Engine (RKE)
● Unified Cluster Management including GKE, EKS… as well as RKE
● Application Workload Management
Our Interest as a backend
For our “k8s as a service“
Rancher 2.0
● Focus on using Kubernetes as a Container Orchestration Platform
● Re-design to work on Kubernetes from scratch
○ Don’t have to understand multiple container orchestrators
● Re-Implement from scratch
○ Readable amount of code (about 50,000~80,000 lines except for vendoring)
● Introduce Rancher Kubernetes Engine (RKE)
○ Support Deploy/Upgrade/Monitor Kubernetes cluster
○ Less requirements for the environment to build k8s
● Unified Cluster Management including GKE, EKS… as well as RKE
● Application Workload Management
Our Interest as a backend
For our “k8s as a service“
As a context: backend for Verda K8s as a Service
● In our use case, User/Operator for Rancher is different
○ Operator: Cloud Operator (us)
○ User: Application Developers for LINE Service
● Down time of Rancher affect to many users
Need to know well about How Rancher works
But Documentation….
Only High-level Architecture is available
To be honest,
It’s difficult to operate Rancher 2.0 with
just official documents
¯_(ツ)_/¯
Let’s unbox Rancher 2.0
<v2.0.0>
本資料は、調査資料を一部抜粋して作成しています。
フルバージョンをご覧になりたい方は、後日slideshareでご確認をお願いします。
1. Rancher Overview
1. Rancher Overview
1.1. Casts in Rancher 2.0
1.2. What Server does?
1.3. What Agent does?
1.4. Summary
2. Rancher Server Internal
2.1. Rancher API
2.2. Rancher Controllers
2.3. Example Controllers
1.1. Casts in Rancher 2.0
rancher
server
Node1 Node2 Node3
rancher
node-agent
rancher
node-agent
rancher
node-agent
rancher
cluster-agent➢ Rancher Server
➢ Rancher Cluster Agent
➢ Rancher Node Agent
Parent Kubernetes
Child Kubernetes
deployed by Rancher
Child Kubernetes
deployed by Rancher
Parent k8s: k8s working with rancher
Child k8s: k8s deployed by rancher
1.2. What Server does?
Server
API Controllers
CRD
Kind: Cluster
Node1 Node2 Node3
rancher
node-agent
rancher
node-agent
rancher
node-agent
rancher
cluster-agent
Child Kubernetes
deployed by Rancher
Child Kubernetes
deployed by Rancher
CRD
Kind: Node
All data stored
as CRD in k8s
Watch CRD
Deploy
Monitor Cluster/Sync Data
Call docker/k8s API via websocket, If need.
Don’t access to docker/k8s api directly from rancher server
Websocket session
Point 2 Point 3
Point 4
Point 5
Point 1
Provide API
1.2. What Server does?
Server
API Controllers
CRD
Kind: Cluster
Node1 Node2 Node3
rancher
node-agent
rancher
node-agent
rancher
node-agent
rancher
cluster-agent
Child Kubernetes
deployed by Rancher
Child Kubernetes
deployed by Rancher
CRD
Kind: Node
Provide unified access to multiple k8s cluster
Point 6
1.3. What Agent does?
Node Agent
Node A
Cluster Agent
Child Kubernetes
Node Agent
Node B
Parent Kubernetes
Server
Dialer API
(pkg/dialer)
RkeNodeConfig API
(pkg/rkenodeconfigserver)
Controllers
websocket session
(/v3/connect)
/v3/connect/config
Use session
For access
(k8s, docker)
Rancher Agent basically establishes websocket to provide TCP Proxy
and just checks NodeConfig periodically. Almost all configurations
will be done/triggered by controllers through websocket
Point 3
Establish websocket session
Point 1 Provide TCP Proxy
via websocket
Point 2
Check If file,container need to
create/run or not periodically
1.4. Rancher 2.0 overview summary
Almost all logics are in Rancher Server and Agent is just sitting as a TCP Proxy
Server in k8s deployed for Rancher Server
● Rancher Server
a. All data for Rancher stored as CRD in Kubernetes (translating Rancher’s resource into CRD)
b. Rancher’s API is kind of proxy to Kubernetes API
c. Rancher have various controllers to watch CRD resources in parent k8s to deploy k8s
(Management Controllers)
d. Rancher have various controllers to watch CRD resources in parent k8s to inject some data
to k8s deployed (User Controllers)
e. Use websocket session to access deployed Node or K8s Cluster.
● Rancher Agent
a. Establish websocket to provide TCP Proxy
b. Check periodically if node need to create something file or run something container
Parent k8s: k8s working with rancher
Child k8s: k8s deployed by rancher
If we want to know more about How Rancher maintain
Kubernetes Cluster, It’s enough to see just Rancher Server.
Because Agent is just to provide proxy.
2. Rancher Server
Internal
1. Rancher Overview
1.1. Casts in Rancher 2.0
1.2. What Server does?
1.3. What Agent does?
1.4. Summary
2. Rancher Server Internal
2.1. Rancher API
2.2. Rancher Controllers
2.3. Example Controllers
2.1. Rancher API
Server
API Controllers
CRD
Kind: Cluster
CRD
Kind: Node
Node1 Node2 Node3
rancher
node-agent
rancher
node-agent
rancher
node-agent
rancher
cluster-agent
Child Kubernetes
deployed by Rancher
All data stored
as CRD in k8s
Point 2
Point 1
Provide API
5 types of API
Server
Controllers
API
Parent Kubernetes
➢ API can be classified into 5 types
➢ Some API is for only Agent
○ API for user
■ Management
■ Auth
■ K8s Proxy
○ API for agent
■ Dialer
■ RKE Node Config
Auth API
Management API
K8s Proxy API
Dialer API
RKE Node Config API
Main
/v3-public
/v3/token
/v3/
/k8s/clusters
/v3/connect
/v3/connect/register
/v3/connect/config Agent
User
2.1. Rancher API
Management API
Server
Controllers
API
Parent Kubernetes
Auth API
Management API
K8s Proxy API
Dialer API
RKE Node Config API
Main
/v3/
Child Kubernetes
deployed by Rancher
Create/Update/Get
Resource
Create/Update/Get
Resource
POST
/v3/cluster
POST
/v3/project/
<cluster-id>:<project-id>/pods
CRD
Cluster
PodAgent
depending on Path
Use TCP Proxy
Cluster Agent provide
2.1. Rancher API
K8s Proxy API
Server
API
Parent Kubernetes
Management API
Dialer API
RKE Node Config API
Main
Child Kubernetes
deployed by Rancher
CRD
Token
Auth API
Authenticate with User CRD
resource for Rancher API
K8s Proxy API
Controllers
Websocket
Sessions
Agent
Call Child K8s API via TCP Proxy via Websocket
GET /k8s/clusters/<cluster>
/api/v1/componentstatuses
/k8s/clusters
GET
/api/v1/componentstatuses
2.1. Rancher API
Dialer API
Server
API
Parent Kubernetes
Management API
RKE Node Config API
Main
Child Kubernetes
deployed by Rancher
Auth API
K8s Proxy API
Controllers
Websocket
Sessions
Agent
Dialer API
/v3/connect
/v3/connect/register
wss://<rancher-server>/v3/connect
CRD
ClusterRegisterToken
Start Provide
TCP Proxy via websocket
Check which cluster
Does agent belong to
Add websocket session for “K8s Proxy” and
Controllers to use TCP Proxy
2.1. Rancher API
RKE Node Config API
Server
API
Parent Kubernetes
Management API
Main
Child Kubernetes
deployed by Rancher
Auth API
K8s Proxy API
Controllers
Agent
Dialer API
RKE Node Config API/v3/connect/config
CRD
Cluster
RKE
library
Check Config
Generate
NodeConfig
According to NodeConfig
- Create File
- Create container via docker
2.1. Rancher API
2.2. Rancher Controllers
Server
API Controllers
CRD
Kind: Cluster
Node1 Node2 Node3
rancher
node-agent
rancher
node-agent
rancher
node-agent
rancher
cluster-agent
Child Kubernetes
deployed by Rancher
CRD
Kind: Node
Watch CRD
Deploy
Monitor Cluster/Sync Data
Call docker/k8s API via websocket, If need.
Don’t access to docker/k8s api directly from rancher server
Websocket session
Point 3
Point 4
Point 5
API Controllers
Management
Controllers
Cluster(User)
Controllers
Workload Controllers
4 types of Controllers
Server
API
Controllers
Parent Kubernetes
Create
Resource
Watch
Resource
➢ Rancher Controllers can be classified
into 4 types of group
➢ Each group have own trigger to start
➢ Triggered when Server start
○ API Controllers
○ Management Controllers
➢ Triggered when new Cluster detected
○ Cluster(User) Controllers
○ Workload Controllers
2.2. Rancher Controllers
API Controllers
Management
Controllers
Cluster(User)
Controllers
Workload Controllers
API Controllers
Server
API
Controllers
Parent Kubernetes
Create
Resource
Watch
Resource
Configure
➢ Watch CRD resource related to API
Server Configuration
○ settings
○ dynamicschemas
○ nodedrivers
➢ Configure API server according to
the change of resource
2.2. Rancher Controllers
API Controllers
Management
Controllers
Cluster(User)
Controllers
Workload Controllers
Management Controllers
Server
API
Controllers
Parent Kubernetes
Create
Resource
Watch
Resource
Provisioning/Update Cluster
Start Cluster(User),
Workload Controllers
Child Kubernetes
deployed by Rancher
➢ Watch Cluster/Node related CRD
➢ Provision/Update Cluster according
to the change of resource
➢ After Provision, Start Cluster(User),
Workload Controllers to start data
sync and monitor
2.2. Rancher Controllers
API Controllers
Management
Controllers
Cluster(User)
Controllers
Workload Controllers
Cluster(User) Controllers
Child Kubernetes
deployed by Rancher
Server
Controllers
Parent Kubernetes
Create
Resource
Watch
ResourceCreate
Resource
Watch
Resource
Update/Create CRD
According to Child K8s
Update/Create
Resource including Pod
According to Parent K8s CRD
36
Cluster CRD
Secret
Alerts CRD
Status
Spec
Node
For updating CRD in Parent K8s
Resource Sync between Parent and Child K8s
2.2. Rancher Controllers
API Controllers
Management
Controllers
Cluster(User)
Controllers
Workload Controllers
Workload Controllers
Child Kubernetes
deployed by Rancher
Server
API
Controllers
Parent Kubernetes
Create
Resource
Watch
ResourceCreate
Resource
Watch
Resource
The Simple Custom Controller to extend K8s
➢ Watch only resource@Child K8s
➢ Create/Update additional resource
➢ These Controller are more like
enhancing K8s feature itself
2.2. Rancher Controllers
2.3. Examples: Controllers
Management Controllers
➢ Cluster Controller
➢ Node Controller
Cluster(User) Controllers
➢ ClusterLogging Controller
Cluster Controller Implement (pkg/controllers/management)
Parent k8s
Server
Cluster Controller
(one of management controllers)
handlers
lifecycles
cluster-provisioner-controller
cluster-agent-controller
cluster-scoped-gc
cluster-deploy
cluster-stats
CRD
Cluster A
Informer
Child k8s
Cluster A
watch
Execute
deploy
Node Agent Cluster Agent
deploy
Cluster(User) Controllers
Alerts ingress ...
Run Cluster Controllers for Cluster A
CRD
Node A
CRD
Node B
Update Cluster Collect status
2.3. Example Controllers
Node Controller Implement (pkg/controllers/management)
Parent k8s
CRD
Node A
CRD
Node B
Server
Node Controller
(one of management controllers)
handlers
lifecycles
node-controller
cluster-provisioner-controller
cluster-stats
nodepool-provisioner
Informer
watch
Execute
VM
Node Agent
Managements
Controllers
Cluster
Controller
NodePool
Controller
Just trigger handlers
Run Node Agent
Create VM If
doesn’t exist
Call wss://<server>/v3/connect/register
To register node into specific cluster
docker-machine
trigger handlers
Create VM
2.3. Example Controllers
Cluster(Project)Logging Controller Implement
(pkg/controller/user/logging/)
Parent k8s CRD
ClusterLogging
Server
Child k8s
ClusterLogging Controller
lifecycle
cluster-logging-controllerInformer
Execute
ProjectLogging Controller
Almost same as
ClusterLogging Controller
Watch
Daemonset
cluster.conf
ConfigMap
project.conf
ConfigMap
/var/lib/docker/containers/
/var/log/containers/
/var/log/pods
/var/lib/rancher/rke/log
HostPath
Mount
Mount
Mount
Deploy
Update
Out of Scope
Send logs
2.3. Example Controllers
How I look Rancher 2.0
In the context of backend for Verda k8s as a Service
Good thing: we are thinking to utilize
● Less requirement for environment to run
○ but this cause some scalability limitation at the same time though...
● There are some interesting Controllers like alert, logging, eventsync …
○ We can utilize these feature to manage K8s Cluster
● Easy to modify/add Rancher behaviour thanks to Norman Framework
○ We will utilize this framework to extend even for k8s
Not good thing: we are thinking to improve
● Poor Document (Currently reading code is only way to know)
○ Norman Framework that Rancher actively used is also less document
● Doesn’t support Active-Active HA
○ Scalability limitation cannot be avoided
● 1 binary that have ton of features make it difficult to do performance tuning
● Even for K8s Proxy API, we can not deploy multiple process because that
feature depend on websocket session to cluster-agent
● Poor monitoring relying on kubelet and componentstatus
● Upgrading Strategy is just to replace old container with new one. Is it enough?
https://github.com/rancher/rke/blob/master/services/kubeapi.go#L15 , https://github.com/rancher/rke/blob/master/docker/docker.go#L72
Future Work
Verda Kubernetes as a Service
Future Works
● Use Rancher 2.0 as a backend to manage k8s without any change at Phase 1
○ Modify Rancher and Give feedback to community in the long run after Phase 1 release
■ Enhance scalability
■ Enhance monitoring
■ Cut(or Disable) many unneeded features to us
● Enrich Kubernetes deployed by RKE
○ Support Type Loadbalancer for our XDP based Loadbalancer
○ Support Persistent Volume
○ Add CRD/Controller to support our In-house Component like Kafka, Database as a Service
■ We want Kubernetes to be orchestration tool for System not for Container
● Need more k8s/etcd itself knowledge
○ !!!!Read Code!!!! Not only just books/documents!!
■ Kubernetes
■ Etcd
We are hiring people!!!
● Love to understand/customize OSS at source code level
○ Kubernetes
○ Etcd
○ OpenStack
○ Rancher
○ Ceph...
https://linecorp.com/ja/career/position/827
https://linecorp.com/ja/career/position/564
Appendix
I straighten my understandings as a diagram.
It’s available in (https://github.com/ukinau/rancher-analyse)
VKS-API
Server
VKS-API
Server
K8s Proxy
K8s Proxy
XXX API
After start service, see the
performance and consider
to separate/scaleWithout touching anything
If we can not scale
Rancher Server anymore,
we will add one more
cluster.
Phase 1 Phase 2
Rancher Scalability Improvement
Scheduling
Other
Datastore
Use other datastore
for some data
Extra Monitoring
Enhance
Monitoring
Point 2
Point 1
Point 3
Point 4Appendix
Support Type Loadbalancer for in-house LB
We have our own LB
implementation for scaling
Deploy/Configure
Deploy Service with Type Loadbalancer
for our in-house LB
Type
Loadbalancer
In-house LB *1
*1 https://www.janog.gr.jp/meeting/janog40/application/files/6115/0105/4928/janog40_sp6lb.pdf
Appendix
Be friend with In-house Components
We provide many type
of managed as service
Deploy/Configure
Deploy Application with
information for managed service
Update IP ACL….
And so on
User configure
managed service
separately from
application lifecycle
Appendix
Be friend with In-house Components
Deploy/Configure
Deploy Application with CRD
CRD for
In-house
Component
Custom
Controller
User can configure
managed service with
application lifecycle
Appendix

More Related Content

What's hot

Kubernetes
KubernetesKubernetes
Kuberneteserialc_w
 
DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesRonny Trommer
 
Rancher Rodeo
Rancher RodeoRancher Rodeo
Rancher RodeoSUSE
 
Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)DongHyeon Kim
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Edureka!
 
An Introduction to Rancher
An Introduction to RancherAn Introduction to Rancher
An Introduction to RancherConner Swann
 
Let’s unbox Rancher 2.0 <v2.0.0>
Let’s unbox Rancher 2.0 <v2.0.0>  Let’s unbox Rancher 2.0 <v2.0.0>
Let’s unbox Rancher 2.0 <v2.0.0> LINE Corporation
 
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
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introductionSparkbit
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesMichal Cwienczek
 
Rancher and Kubernetes Best Practices
Rancher and  Kubernetes Best PracticesRancher and  Kubernetes Best Practices
Rancher and Kubernetes Best PracticesAvinash Patil
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideBytemark
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetesrajdeep
 
Docker and kubernetes_introduction
Docker and kubernetes_introductionDocker and kubernetes_introduction
Docker and kubernetes_introductionJason Hu
 
Extending kubernetes with CustomResourceDefinitions
Extending kubernetes with CustomResourceDefinitionsExtending kubernetes with CustomResourceDefinitions
Extending kubernetes with CustomResourceDefinitionsStefan Schimanski
 
Helm - Application deployment management for Kubernetes
Helm - Application deployment management for KubernetesHelm - Application deployment management for Kubernetes
Helm - Application deployment management for KubernetesAlexei Ledenev
 
Intro to Helm for Kubernetes
Intro to Helm for KubernetesIntro to Helm for Kubernetes
Intro to Helm for KubernetesCarlos E. Salazar
 

What's hot (20)

Kubernetes
KubernetesKubernetes
Kubernetes
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to Kubernetes
 
Rancher Rodeo
Rancher RodeoRancher Rodeo
Rancher Rodeo
 
Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)Kubernetes internals (Kubernetes 해부하기)
Kubernetes internals (Kubernetes 해부하기)
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
Kubernetes Architecture | Understanding Kubernetes Components | Kubernetes Tu...
 
An Introduction to Rancher
An Introduction to RancherAn Introduction to Rancher
An Introduction to Rancher
 
Let’s unbox Rancher 2.0 <v2.0.0>
Let’s unbox Rancher 2.0 <v2.0.0>  Let’s unbox Rancher 2.0 <v2.0.0>
Let’s unbox Rancher 2.0 <v2.0.0>
 
Rancher Labs - Your own PaaS in action
Rancher Labs - Your own PaaS in actionRancher Labs - Your own PaaS in action
Rancher Labs - Your own PaaS in action
 
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
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introduction
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Rancher and Kubernetes Best Practices
Rancher and  Kubernetes Best PracticesRancher and  Kubernetes Best Practices
Rancher and Kubernetes Best Practices
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory Guide
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Docker and kubernetes_introduction
Docker and kubernetes_introductionDocker and kubernetes_introduction
Docker and kubernetes_introduction
 
Extending kubernetes with CustomResourceDefinitions
Extending kubernetes with CustomResourceDefinitionsExtending kubernetes with CustomResourceDefinitions
Extending kubernetes with CustomResourceDefinitions
 
Helm - Application deployment management for Kubernetes
Helm - Application deployment management for KubernetesHelm - Application deployment management for Kubernetes
Helm - Application deployment management for Kubernetes
 
Intro to Helm for Kubernetes
Intro to Helm for KubernetesIntro to Helm for Kubernetes
Intro to Helm for Kubernetes
 

Similar to Rancher 2.0 Technical Deep Dive

Rancher 2.x first step before deep dive
Rancher 2.x  first step before deep diveRancher 2.x  first step before deep dive
Rancher 2.x first step before deep diveLINE Corporation
 
LINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native WorldLINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native WorldLINE Corporation
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 introTerry Cho
 
Docker on docker leveraging kubernetes in docker ee
Docker on docker leveraging kubernetes in docker eeDocker on docker leveraging kubernetes in docker ee
Docker on docker leveraging kubernetes in docker eeDocker, Inc.
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesGabriel Carro
 
Container world hybridnetworking_rev2
Container world hybridnetworking_rev2Container world hybridnetworking_rev2
Container world hybridnetworking_rev2Prem Sankar Gopannan
 
Overview of OpenDaylight Container Orchestration Engine Integration
Overview of OpenDaylight Container Orchestration Engine IntegrationOverview of OpenDaylight Container Orchestration Engine Integration
Overview of OpenDaylight Container Orchestration Engine IntegrationMichelle Holley
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDStfalcon Meetups
 
IBM Bluemix Nice meetup #5 - 20170504 - Orchestrer Docker avec Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Orchestrer Docker avec KubernetesIBM Bluemix Nice meetup #5 - 20170504 - Orchestrer Docker avec Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Orchestrer Docker avec KubernetesIBM France Lab
 
How to install and use Kubernetes
How to install and use KubernetesHow to install and use Kubernetes
How to install and use KubernetesLuke Marsden
 
Project Gardener - EclipseCon Europe - 2018-10-23
Project Gardener - EclipseCon Europe - 2018-10-23Project Gardener - EclipseCon Europe - 2018-10-23
Project Gardener - EclipseCon Europe - 2018-10-23msohn
 
How to Install and Use Kubernetes by Weaveworks
How to Install and Use Kubernetes by Weaveworks How to Install and Use Kubernetes by Weaveworks
How to Install and Use Kubernetes by Weaveworks Weaveworks
 
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMwareVMUG IT
 
Kubernetes Clusters as a Service with Gardener
Kubernetes Clusters as a Service with GardenerKubernetes Clusters as a Service with Gardener
Kubernetes Clusters as a Service with GardenerQAware GmbH
 
Knative goes
 beyond serverless | Alexandre Roman
Knative goes
 beyond serverless | Alexandre RomanKnative goes
 beyond serverless | Alexandre Roman
Knative goes
 beyond serverless | Alexandre RomanKCDItaly
 
CN Asturias - Stateful application for kubernetes
CN Asturias -  Stateful application for kubernetes CN Asturias -  Stateful application for kubernetes
CN Asturias - Stateful application for kubernetes Cédrick Lunven
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalPatrick Chanezon
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingPiotr Perzyna
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)QAware GmbH
 

Similar to Rancher 2.0 Technical Deep Dive (20)

Rancher 2.x first step before deep dive
Rancher 2.x  first step before deep diveRancher 2.x  first step before deep dive
Rancher 2.x first step before deep dive
 
LINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native WorldLINE's Private Cloud - Meet Cloud Native World
LINE's Private Cloud - Meet Cloud Native World
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 intro
 
Introduction of k8s rancher
Introduction of k8s rancherIntroduction of k8s rancher
Introduction of k8s rancher
 
Docker on docker leveraging kubernetes in docker ee
Docker on docker leveraging kubernetes in docker eeDocker on docker leveraging kubernetes in docker ee
Docker on docker leveraging kubernetes in docker ee
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
Container world hybridnetworking_rev2
Container world hybridnetworking_rev2Container world hybridnetworking_rev2
Container world hybridnetworking_rev2
 
Overview of OpenDaylight Container Orchestration Engine Integration
Overview of OpenDaylight Container Orchestration Engine IntegrationOverview of OpenDaylight Container Orchestration Engine Integration
Overview of OpenDaylight Container Orchestration Engine Integration
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
 
IBM Bluemix Nice meetup #5 - 20170504 - Orchestrer Docker avec Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Orchestrer Docker avec KubernetesIBM Bluemix Nice meetup #5 - 20170504 - Orchestrer Docker avec Kubernetes
IBM Bluemix Nice meetup #5 - 20170504 - Orchestrer Docker avec Kubernetes
 
How to install and use Kubernetes
How to install and use KubernetesHow to install and use Kubernetes
How to install and use Kubernetes
 
Project Gardener - EclipseCon Europe - 2018-10-23
Project Gardener - EclipseCon Europe - 2018-10-23Project Gardener - EclipseCon Europe - 2018-10-23
Project Gardener - EclipseCon Europe - 2018-10-23
 
How to Install and Use Kubernetes by Weaveworks
How to Install and Use Kubernetes by Weaveworks How to Install and Use Kubernetes by Weaveworks
How to Install and Use Kubernetes by Weaveworks
 
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
01 - VMUGIT - Lecce 2018 - Fabio Rapposelli, VMware
 
Kubernetes Clusters as a Service with Gardener
Kubernetes Clusters as a Service with GardenerKubernetes Clusters as a Service with Gardener
Kubernetes Clusters as a Service with Gardener
 
Knative goes
 beyond serverless | Alexandre Roman
Knative goes
 beyond serverless | Alexandre RomanKnative goes
 beyond serverless | Alexandre Roman
Knative goes
 beyond serverless | Alexandre Roman
 
CN Asturias - Stateful application for kubernetes
CN Asturias -  Stateful application for kubernetes CN Asturias -  Stateful application for kubernetes
CN Asturias - Stateful application for kubernetes
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - Technical
 
K8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals TrainingK8s in 3h - Kubernetes Fundamentals Training
K8s in 3h - Kubernetes Fundamentals Training
 
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
Kubernetes One-Click Deployment: Hands-on Workshop (Mainz)
 

More from LINE Corporation

JJUG CCC 2018 Fall 懇親会LT
JJUG CCC 2018 Fall 懇親会LTJJUG CCC 2018 Fall 懇親会LT
JJUG CCC 2018 Fall 懇親会LTLINE Corporation
 
Reduce dependency on Rx with Kotlin Coroutines
Reduce dependency on Rx with Kotlin CoroutinesReduce dependency on Rx with Kotlin Coroutines
Reduce dependency on Rx with Kotlin CoroutinesLINE Corporation
 
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
Kotlin/NativeでAndroidのNativeメソッドを実装してみたKotlin/NativeでAndroidのNativeメソッドを実装してみた
Kotlin/NativeでAndroidのNativeメソッドを実装してみたLINE Corporation
 
Use Kotlin scripts and Clova SDK to build your Clova extension
Use Kotlin scripts and Clova SDK to build your Clova extensionUse Kotlin scripts and Clova SDK to build your Clova extension
Use Kotlin scripts and Clova SDK to build your Clova extensionLINE Corporation
 
The Magic of LINE 購物 Testing
The Magic of LINE 購物 TestingThe Magic of LINE 購物 Testing
The Magic of LINE 購物 TestingLINE Corporation
 
UI Automation Test with JUnit5
UI Automation Test with JUnit5UI Automation Test with JUnit5
UI Automation Test with JUnit5LINE Corporation
 
Feature Detection for UI Testing
Feature Detection for UI TestingFeature Detection for UI Testing
Feature Detection for UI TestingLINE Corporation
 
LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享LINE Corporation
 
​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享LINE Corporation
 
LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣LINE Corporation
 
日本開發者大會短講分享
日本開發者大會短講分享日本開發者大會短講分享
日本開發者大會短講分享LINE Corporation
 
LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享LINE Corporation
 
在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed KubernetesLINE Corporation
 
LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧LINE Corporation
 
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹LINE Corporation
 
LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享LINE Corporation
 
LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗LINE Corporation
 
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務LINE Corporation
 
Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發LINE Corporation
 

More from LINE Corporation (20)

JJUG CCC 2018 Fall 懇親会LT
JJUG CCC 2018 Fall 懇親会LTJJUG CCC 2018 Fall 懇親会LT
JJUG CCC 2018 Fall 懇親会LT
 
Reduce dependency on Rx with Kotlin Coroutines
Reduce dependency on Rx with Kotlin CoroutinesReduce dependency on Rx with Kotlin Coroutines
Reduce dependency on Rx with Kotlin Coroutines
 
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
Kotlin/NativeでAndroidのNativeメソッドを実装してみたKotlin/NativeでAndroidのNativeメソッドを実装してみた
Kotlin/NativeでAndroidのNativeメソッドを実装してみた
 
Use Kotlin scripts and Clova SDK to build your Clova extension
Use Kotlin scripts and Clova SDK to build your Clova extensionUse Kotlin scripts and Clova SDK to build your Clova extension
Use Kotlin scripts and Clova SDK to build your Clova extension
 
The Magic of LINE 購物 Testing
The Magic of LINE 購物 TestingThe Magic of LINE 購物 Testing
The Magic of LINE 購物 Testing
 
GA Test Automation
GA Test AutomationGA Test Automation
GA Test Automation
 
UI Automation Test with JUnit5
UI Automation Test with JUnit5UI Automation Test with JUnit5
UI Automation Test with JUnit5
 
Feature Detection for UI Testing
Feature Detection for UI TestingFeature Detection for UI Testing
Feature Detection for UI Testing
 
LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享
 
​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享
 
LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣
 
日本開發者大會短講分享
日本開發者大會短講分享日本開發者大會短講分享
日本開發者大會短講分享
 
LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享
 
在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes
 
LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧
 
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
 
LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享
 
LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗
 
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務
 
Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發
 

Recently uploaded

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
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
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 

Recently uploaded (20)

Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
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
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
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
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 

Rancher 2.0 Technical Deep Dive

  • 1. Rancher 2.0 Technical Deep Dive LINE Corporation IT Service Center Verda 2 Yuki Nishiwaki
  • 2. Who Are You: Yuki Nishiwaki ● Develop/Operate OpenStack based Private Cloud ● Plan/Develop/Operate Kubernetes as a Service ● Excitingly simple multi-path OpenStack Networking (May 2018, OpenStack Summit) Recent Talk Current Role
  • 3. Brief introduction of ourselves(Verda)
  • 4. The position against k8s from me 。。。。 。。。。 。 。。 。 。 。。 。 OpenStack based Private Cloud Operator/Developer for Private Cloud Server Network Database ….. Me New Resource Type
  • 5. Verda Kubernetes as a Service - Background ● We’ve seen about 600 k8s node users deployed/used on our Private Cloud ● Many teams find easy way/struggle to use/operate k8s Problem description ● Operating k8s is not such a small burden every developer can handle in spare time ● Knowledge of k8s operation is fragmented New Resource Type For Verda User
  • 6. Verda Kubernetes as a Service - Target ● Provide stable Kubernetes Cluster to Verd User ○ Don’t have to automate everything but we will take responsibility to operate ● Provide API to Verda User ○ CREATE/DELETE Kubernetes Cluster (UPGRADE is not the target at the moment) ○ ADD/REMOVE Node ● Provide “Service Desk” ○ To advise/consider how to use with Verda User(Application developer) New Resource Type For Verda User
  • 7. Verda Kubernetes as a Service - Status of Project ● Start Project since May 2018 ○ Pretty late, relatively ● Decided to utilize existing software(OSS) ○ Reduce lead time as much as possible ○ Rancher 2.0 is one of the candidates we will use ■ We are thinking to use Rancher 2.0 for Phase 1 ● Still deciding which is good to use for managing k8s part ○ Or Will we have to develop from scratch?
  • 8. Less dependent design - Still considering Verda Kubernetes as a Service Provider Plugin Rancher API Our own API schema ???? Cluster Node We use Rancher as tool to provide * Create k8s * Monitor k8s * Update k8s * Add Node to k8s cluster * Remove Node from k8s cluster ????
  • 9. Roadmap Phase1 (2018/09/01) * This is First release * No change for Kubernetes/Rancher * Support only basic k8s cluster * Support Limited Number of Cluster * Train ourselves * For Rancher (because we depended) Phase3 (Planning) * Enhance k8s support * CRD/Controller for in-house Component * Prepare skeleton template to make it easy to start development * Consider solution about how k8s cover whole system including VM (kubevirt) Phase 1 Phase2 (Planning) * Enhance VKS control plane(Tune Rancher) * Support More Clusters * Enhance monitoring item * Enhance GUI * Enhance k8s support * Support Type Loadbalancer for in-house LB * Support Persistent Volume * Optimizing Container Networking * Train ourselves * For Kubernetes, Etcd Phase 3Phase 2
  • 11. What’s Rancher? ● Container Management Tool ● Support to deploy Container Orchestration Tool itself like Kubernetes ● Make “Container Orchestration itself” abstract and Provide rich UI ● UI allow you to deploy your container workload easier than native console ● UI allow you to use well-tested catalog
  • 12. Rancher 2.0 Released (May 1 2018) ● Focus on using Kubernetes as a Container Orchestration Platform ● Re-design to work on Kubernetes from scratch ● Re-Implement from scratch ● Introduce Rancher Kubernetes Engine (RKE) ● Unified Cluster Management including GKE, EKS… as well as RKE ● Application Workload Management
  • 13. Rancher 2.0 ● Focus on using Kubernetes as a Container Orchestration Platform ● Re-design to work on Kubernetes from scratch ● Re-Implement from scratch ● Introduce Rancher Kubernetes Engine (RKE) ● Unified Cluster Management including GKE, EKS… as well as RKE ● Application Workload Management Our Interest as a backend For our “k8s as a service“
  • 14. Rancher 2.0 ● Focus on using Kubernetes as a Container Orchestration Platform ● Re-design to work on Kubernetes from scratch ○ Don’t have to understand multiple container orchestrators ● Re-Implement from scratch ○ Readable amount of code (about 50,000~80,000 lines except for vendoring) ● Introduce Rancher Kubernetes Engine (RKE) ○ Support Deploy/Upgrade/Monitor Kubernetes cluster ○ Less requirements for the environment to build k8s ● Unified Cluster Management including GKE, EKS… as well as RKE ● Application Workload Management Our Interest as a backend For our “k8s as a service“
  • 15. As a context: backend for Verda K8s as a Service ● In our use case, User/Operator for Rancher is different ○ Operator: Cloud Operator (us) ○ User: Application Developers for LINE Service ● Down time of Rancher affect to many users Need to know well about How Rancher works
  • 17. Only High-level Architecture is available To be honest, It’s difficult to operate Rancher 2.0 with just official documents ¯_(ツ)_/¯
  • 18. Let’s unbox Rancher 2.0 <v2.0.0> 本資料は、調査資料を一部抜粋して作成しています。 フルバージョンをご覧になりたい方は、後日slideshareでご確認をお願いします。
  • 19. 1. Rancher Overview 1. Rancher Overview 1.1. Casts in Rancher 2.0 1.2. What Server does? 1.3. What Agent does? 1.4. Summary 2. Rancher Server Internal 2.1. Rancher API 2.2. Rancher Controllers 2.3. Example Controllers
  • 20. 1.1. Casts in Rancher 2.0 rancher server Node1 Node2 Node3 rancher node-agent rancher node-agent rancher node-agent rancher cluster-agent➢ Rancher Server ➢ Rancher Cluster Agent ➢ Rancher Node Agent Parent Kubernetes Child Kubernetes deployed by Rancher Child Kubernetes deployed by Rancher Parent k8s: k8s working with rancher Child k8s: k8s deployed by rancher
  • 21. 1.2. What Server does? Server API Controllers CRD Kind: Cluster Node1 Node2 Node3 rancher node-agent rancher node-agent rancher node-agent rancher cluster-agent Child Kubernetes deployed by Rancher Child Kubernetes deployed by Rancher CRD Kind: Node All data stored as CRD in k8s Watch CRD Deploy Monitor Cluster/Sync Data Call docker/k8s API via websocket, If need. Don’t access to docker/k8s api directly from rancher server Websocket session Point 2 Point 3 Point 4 Point 5 Point 1 Provide API
  • 22. 1.2. What Server does? Server API Controllers CRD Kind: Cluster Node1 Node2 Node3 rancher node-agent rancher node-agent rancher node-agent rancher cluster-agent Child Kubernetes deployed by Rancher Child Kubernetes deployed by Rancher CRD Kind: Node Provide unified access to multiple k8s cluster Point 6
  • 23. 1.3. What Agent does? Node Agent Node A Cluster Agent Child Kubernetes Node Agent Node B Parent Kubernetes Server Dialer API (pkg/dialer) RkeNodeConfig API (pkg/rkenodeconfigserver) Controllers websocket session (/v3/connect) /v3/connect/config Use session For access (k8s, docker) Rancher Agent basically establishes websocket to provide TCP Proxy and just checks NodeConfig periodically. Almost all configurations will be done/triggered by controllers through websocket Point 3 Establish websocket session Point 1 Provide TCP Proxy via websocket Point 2 Check If file,container need to create/run or not periodically
  • 24. 1.4. Rancher 2.0 overview summary Almost all logics are in Rancher Server and Agent is just sitting as a TCP Proxy Server in k8s deployed for Rancher Server ● Rancher Server a. All data for Rancher stored as CRD in Kubernetes (translating Rancher’s resource into CRD) b. Rancher’s API is kind of proxy to Kubernetes API c. Rancher have various controllers to watch CRD resources in parent k8s to deploy k8s (Management Controllers) d. Rancher have various controllers to watch CRD resources in parent k8s to inject some data to k8s deployed (User Controllers) e. Use websocket session to access deployed Node or K8s Cluster. ● Rancher Agent a. Establish websocket to provide TCP Proxy b. Check periodically if node need to create something file or run something container Parent k8s: k8s working with rancher Child k8s: k8s deployed by rancher If we want to know more about How Rancher maintain Kubernetes Cluster, It’s enough to see just Rancher Server. Because Agent is just to provide proxy.
  • 25. 2. Rancher Server Internal 1. Rancher Overview 1.1. Casts in Rancher 2.0 1.2. What Server does? 1.3. What Agent does? 1.4. Summary 2. Rancher Server Internal 2.1. Rancher API 2.2. Rancher Controllers 2.3. Example Controllers
  • 26. 2.1. Rancher API Server API Controllers CRD Kind: Cluster CRD Kind: Node Node1 Node2 Node3 rancher node-agent rancher node-agent rancher node-agent rancher cluster-agent Child Kubernetes deployed by Rancher All data stored as CRD in k8s Point 2 Point 1 Provide API
  • 27. 5 types of API Server Controllers API Parent Kubernetes ➢ API can be classified into 5 types ➢ Some API is for only Agent ○ API for user ■ Management ■ Auth ■ K8s Proxy ○ API for agent ■ Dialer ■ RKE Node Config Auth API Management API K8s Proxy API Dialer API RKE Node Config API Main /v3-public /v3/token /v3/ /k8s/clusters /v3/connect /v3/connect/register /v3/connect/config Agent User 2.1. Rancher API
  • 28. Management API Server Controllers API Parent Kubernetes Auth API Management API K8s Proxy API Dialer API RKE Node Config API Main /v3/ Child Kubernetes deployed by Rancher Create/Update/Get Resource Create/Update/Get Resource POST /v3/cluster POST /v3/project/ <cluster-id>:<project-id>/pods CRD Cluster PodAgent depending on Path Use TCP Proxy Cluster Agent provide 2.1. Rancher API
  • 29. K8s Proxy API Server API Parent Kubernetes Management API Dialer API RKE Node Config API Main Child Kubernetes deployed by Rancher CRD Token Auth API Authenticate with User CRD resource for Rancher API K8s Proxy API Controllers Websocket Sessions Agent Call Child K8s API via TCP Proxy via Websocket GET /k8s/clusters/<cluster> /api/v1/componentstatuses /k8s/clusters GET /api/v1/componentstatuses 2.1. Rancher API
  • 30. Dialer API Server API Parent Kubernetes Management API RKE Node Config API Main Child Kubernetes deployed by Rancher Auth API K8s Proxy API Controllers Websocket Sessions Agent Dialer API /v3/connect /v3/connect/register wss://<rancher-server>/v3/connect CRD ClusterRegisterToken Start Provide TCP Proxy via websocket Check which cluster Does agent belong to Add websocket session for “K8s Proxy” and Controllers to use TCP Proxy 2.1. Rancher API
  • 31. RKE Node Config API Server API Parent Kubernetes Management API Main Child Kubernetes deployed by Rancher Auth API K8s Proxy API Controllers Agent Dialer API RKE Node Config API/v3/connect/config CRD Cluster RKE library Check Config Generate NodeConfig According to NodeConfig - Create File - Create container via docker 2.1. Rancher API
  • 32. 2.2. Rancher Controllers Server API Controllers CRD Kind: Cluster Node1 Node2 Node3 rancher node-agent rancher node-agent rancher node-agent rancher cluster-agent Child Kubernetes deployed by Rancher CRD Kind: Node Watch CRD Deploy Monitor Cluster/Sync Data Call docker/k8s API via websocket, If need. Don’t access to docker/k8s api directly from rancher server Websocket session Point 3 Point 4 Point 5
  • 33. API Controllers Management Controllers Cluster(User) Controllers Workload Controllers 4 types of Controllers Server API Controllers Parent Kubernetes Create Resource Watch Resource ➢ Rancher Controllers can be classified into 4 types of group ➢ Each group have own trigger to start ➢ Triggered when Server start ○ API Controllers ○ Management Controllers ➢ Triggered when new Cluster detected ○ Cluster(User) Controllers ○ Workload Controllers 2.2. Rancher Controllers
  • 34. API Controllers Management Controllers Cluster(User) Controllers Workload Controllers API Controllers Server API Controllers Parent Kubernetes Create Resource Watch Resource Configure ➢ Watch CRD resource related to API Server Configuration ○ settings ○ dynamicschemas ○ nodedrivers ➢ Configure API server according to the change of resource 2.2. Rancher Controllers
  • 35. API Controllers Management Controllers Cluster(User) Controllers Workload Controllers Management Controllers Server API Controllers Parent Kubernetes Create Resource Watch Resource Provisioning/Update Cluster Start Cluster(User), Workload Controllers Child Kubernetes deployed by Rancher ➢ Watch Cluster/Node related CRD ➢ Provision/Update Cluster according to the change of resource ➢ After Provision, Start Cluster(User), Workload Controllers to start data sync and monitor 2.2. Rancher Controllers
  • 36. API Controllers Management Controllers Cluster(User) Controllers Workload Controllers Cluster(User) Controllers Child Kubernetes deployed by Rancher Server Controllers Parent Kubernetes Create Resource Watch ResourceCreate Resource Watch Resource Update/Create CRD According to Child K8s Update/Create Resource including Pod According to Parent K8s CRD 36 Cluster CRD Secret Alerts CRD Status Spec Node For updating CRD in Parent K8s Resource Sync between Parent and Child K8s 2.2. Rancher Controllers
  • 37. API Controllers Management Controllers Cluster(User) Controllers Workload Controllers Workload Controllers Child Kubernetes deployed by Rancher Server API Controllers Parent Kubernetes Create Resource Watch ResourceCreate Resource Watch Resource The Simple Custom Controller to extend K8s ➢ Watch only resource@Child K8s ➢ Create/Update additional resource ➢ These Controller are more like enhancing K8s feature itself 2.2. Rancher Controllers
  • 38. 2.3. Examples: Controllers Management Controllers ➢ Cluster Controller ➢ Node Controller Cluster(User) Controllers ➢ ClusterLogging Controller
  • 39. Cluster Controller Implement (pkg/controllers/management) Parent k8s Server Cluster Controller (one of management controllers) handlers lifecycles cluster-provisioner-controller cluster-agent-controller cluster-scoped-gc cluster-deploy cluster-stats CRD Cluster A Informer Child k8s Cluster A watch Execute deploy Node Agent Cluster Agent deploy Cluster(User) Controllers Alerts ingress ... Run Cluster Controllers for Cluster A CRD Node A CRD Node B Update Cluster Collect status 2.3. Example Controllers
  • 40. Node Controller Implement (pkg/controllers/management) Parent k8s CRD Node A CRD Node B Server Node Controller (one of management controllers) handlers lifecycles node-controller cluster-provisioner-controller cluster-stats nodepool-provisioner Informer watch Execute VM Node Agent Managements Controllers Cluster Controller NodePool Controller Just trigger handlers Run Node Agent Create VM If doesn’t exist Call wss://<server>/v3/connect/register To register node into specific cluster docker-machine trigger handlers Create VM 2.3. Example Controllers
  • 41. Cluster(Project)Logging Controller Implement (pkg/controller/user/logging/) Parent k8s CRD ClusterLogging Server Child k8s ClusterLogging Controller lifecycle cluster-logging-controllerInformer Execute ProjectLogging Controller Almost same as ClusterLogging Controller Watch Daemonset cluster.conf ConfigMap project.conf ConfigMap /var/lib/docker/containers/ /var/log/containers/ /var/log/pods /var/lib/rancher/rke/log HostPath Mount Mount Mount Deploy Update Out of Scope Send logs 2.3. Example Controllers
  • 42. How I look Rancher 2.0 In the context of backend for Verda k8s as a Service
  • 43. Good thing: we are thinking to utilize ● Less requirement for environment to run ○ but this cause some scalability limitation at the same time though... ● There are some interesting Controllers like alert, logging, eventsync … ○ We can utilize these feature to manage K8s Cluster ● Easy to modify/add Rancher behaviour thanks to Norman Framework ○ We will utilize this framework to extend even for k8s
  • 44. Not good thing: we are thinking to improve ● Poor Document (Currently reading code is only way to know) ○ Norman Framework that Rancher actively used is also less document ● Doesn’t support Active-Active HA ○ Scalability limitation cannot be avoided ● 1 binary that have ton of features make it difficult to do performance tuning ● Even for K8s Proxy API, we can not deploy multiple process because that feature depend on websocket session to cluster-agent ● Poor monitoring relying on kubelet and componentstatus ● Upgrading Strategy is just to replace old container with new one. Is it enough? https://github.com/rancher/rke/blob/master/services/kubeapi.go#L15 , https://github.com/rancher/rke/blob/master/docker/docker.go#L72
  • 46. Future Works ● Use Rancher 2.0 as a backend to manage k8s without any change at Phase 1 ○ Modify Rancher and Give feedback to community in the long run after Phase 1 release ■ Enhance scalability ■ Enhance monitoring ■ Cut(or Disable) many unneeded features to us ● Enrich Kubernetes deployed by RKE ○ Support Type Loadbalancer for our XDP based Loadbalancer ○ Support Persistent Volume ○ Add CRD/Controller to support our In-house Component like Kafka, Database as a Service ■ We want Kubernetes to be orchestration tool for System not for Container ● Need more k8s/etcd itself knowledge ○ !!!!Read Code!!!! Not only just books/documents!! ■ Kubernetes ■ Etcd
  • 47. We are hiring people!!! ● Love to understand/customize OSS at source code level ○ Kubernetes ○ Etcd ○ OpenStack ○ Rancher ○ Ceph... https://linecorp.com/ja/career/position/827 https://linecorp.com/ja/career/position/564
  • 48. Appendix I straighten my understandings as a diagram. It’s available in (https://github.com/ukinau/rancher-analyse)
  • 49. VKS-API Server VKS-API Server K8s Proxy K8s Proxy XXX API After start service, see the performance and consider to separate/scaleWithout touching anything If we can not scale Rancher Server anymore, we will add one more cluster. Phase 1 Phase 2 Rancher Scalability Improvement Scheduling Other Datastore Use other datastore for some data Extra Monitoring Enhance Monitoring Point 2 Point 1 Point 3 Point 4Appendix
  • 50. Support Type Loadbalancer for in-house LB We have our own LB implementation for scaling Deploy/Configure Deploy Service with Type Loadbalancer for our in-house LB Type Loadbalancer In-house LB *1 *1 https://www.janog.gr.jp/meeting/janog40/application/files/6115/0105/4928/janog40_sp6lb.pdf Appendix
  • 51. Be friend with In-house Components We provide many type of managed as service Deploy/Configure Deploy Application with information for managed service Update IP ACL…. And so on User configure managed service separately from application lifecycle Appendix
  • 52. Be friend with In-house Components Deploy/Configure Deploy Application with CRD CRD for In-house Component Custom Controller User can configure managed service with application lifecycle Appendix