SlideShare a Scribd company logo
1 of 29
Rancher 2.X
First Step before Deep Dive
LINE Corporation, Verda2 Yuki Nishiwaki
Who you are?
Name:
● Yuki Nishiwaki
Working Experience:
● Private Cloud Development (OpenStack)
Jan 2015 -> Now
● Kubernetes as a Service Development (Rancher)
July 2018 -> Now
● Function as a Service Development (Knative)
Sep 2018 -> Now
Rancher and Me
● User and Developer
● Have contributed few patches to rancher 2.X related projects
○ rancher/types
■ https://github.com/rancher/types/pull/525
○ rancher/machine
■ https://github.com/rancher/machine/pull/12
○ rancher/norman
■ https://github.com/rancher/norman/pull/201
■ https://github.com/rancher/norman/pull/202
■ https://github.com/rancher/norman/pull/203
○ rancher/rancher
■ https://github.com/rancher/rancher/pull/15909
■ https://github.com/rancher/rancher/pull/15991
■ https://github.com/rancher/rancher/pull/16044
Not so many contributions yet
Today’s scope
● We have only 20-30 min
● Rancher have bunch of features. It will take half of day if I talk all parts
● Try to explain whole picture
● Check following article for more detail
○ https://www.slideshare.net/linecorp/lets-unbox-rancher-20-v200
○ https://github.com/ukinau/rancher-analyse
Rancher 2.X ?
All Data for Rancher are stored in Kubernetes
=> Depend on Kubernetes to run Rancher
1
Manage Kubernetes Cluster by multiple Provider
● Google Container Engine
● Amazon EKS
● Microsoft Azure
● Any VM Provider like OpenStack (RKE)
2
RBAC Configuration
Configure/Deploy
Additional Tools on Cluster
Addon Management
4
Resource
Resource
Resource
Admin member
RBAC Configuration
3
Sync RBAC configuration
Rancher 2.X
Rancher 2.X architecture
API Controller
Cluster Agent
Node Agent
Node Agent
Node Agent
Cluster Agent
Node Agent
Node Agent
Node Agent
Kubernetes Cluster
Kubernetes Cluster
Kubernetes Cluster
Resource Creation process is same as Kubernetes Resource
API Controller
ClusterA
Watch
Kubernetes ClusterReconcile
Get latest
information from
kube-apiserver
Check if any
difference
Between desired and
actual states
Do something to make
actual state desired
Reconcile
Loop
Cluster Agent
Node Agent
Don’t do actual provisioning
Resource Creation process is same as Kubernetes Resource
API Controller
ClusterA
Watch
Kubernetes ClusterReconcile
Get latest
information from
kube-apiserver
Check if any
difference
Between desired and
actual states
Do something to make
actual state desired
Reconcile
Loop
Cluster Agent
Node Agent
Rancher API is just kind of proxy for Kubernetes API
ClusterA NodeA UserA GroupA ・・・
Create Cluster
Store All data as a
Kubernetes by using CRD
CRD for Cluster CRD for Node CRD for User
Call Kubernetes API
Custom Resource Definition(CRD) in Kubernetes?
Kubernetes Native Resource Type Custom Resource Type
CustomResourceDefinition
ConfigMap
Pod
Nginx App A
Nginx Config
Cluster Node
Cluster
Node
Cluster A Cluster B
Node A Node B
Kubernetes allow user to create custom resource type in
addition to natively supported resource.
> kubectl get crd clusters.management.cattle.io -o yaml
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
creationTimestamp: 2018-10-26T13:49:37Z
generation: 1
name: clusters.management.cattle.io
resourceVersion: "1278"
selfLink:
/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/clusters.management.cattle.io
uid: fa628204-d925-11e8-b840-fa163e305e2c
spec:
group: management.cattle.io
names:
kind: Cluster
listKind: ClusterList
plural: clusters
singular: cluster
scope: Cluster
version: v3
> kubectl get cluster
NAME AGE
local 1d
Example of CRD for Rancher Resource: Cluster
CRD for Cluster
Cluster Resource
Question: Do we really needed to have API server?
Create
Create
Why not Create Cluster Resource directly
?
Resource information tend to be large and some
of the attributes are only needed internally and
don’t have to be exposed to user.
Thus, Rancher mutate resource before try to
create resource in k8s to add some internal
information and also mutate resource before try
to return resource to user in order to drop some
attributes.
Cluster A
Cluster A
Cluster A
some attributes
some attributes
Add
Engineer for Rancher believe their approach is common
● Develop API Server Framework for Kubernetes API(CRD)
○ https://github.com/rancher/norman
● Support
○ Generate API function based on CRD schema
○ Determine path based on CRD schema
○ Override function to do some additional work like overriding attributes, drop attributes…
Resource Creation process is same as Kubernetes Resource
API Controller
ClusterA
Watch
Kubernetes ClusterReconcile
Get latest
information from
kube-apiserver
Check if any
difference
Between desired and
actual states
Do something to make
actual state desired
Reconcile
Loop
Cluster Agent
Node Agent
Rancher Controllers
Management Controllers
Kubernetes Cluster
Kubernetes Cluster
Kubernetes Cluster
User Controllers
User Controllers
User Controllers
Cluster Controller
Node Controller
Catalog Controller
・・・・
Alert Controller
RABC Controller
Endpoint Controller
・・・・
● Run 1 Controller in a Rancher Server
● Do something across Kubernetes Clusters deployed
○ Catalog for Rancher User to deploy helm chart onto Kubernetes Clusters
○ Authentication for Rancher
○ Node Create/Update/Remove
○ Cluster Create/Update/Remove
○ Start User Controller for New Cluster
Management Controllers
Management Controllers
Kubernetes Cluster
Kubernetes Cluster
User Controllers
● Run 1 Controller for each Kubernetes Cluster deployed
● Do something for assigned Kubernetes Cluster
○ Sync data between Rancher Configuration and Kubernetes Cluster deployed
○ Propagate event happening in Kubernetes Cluster deployed to Rancher
○ Watch all workload(Pod...) in Kubernetes Cluster deployed and Do something
User Controllers
Kubernetes Cluster
Kubernetes Cluster
After deployed, How to check/update Node/Cluster state?
kube-apiserver
rancher-server
management controller
user controller
kubelet
Pod A Pod B
Target Resources
Any New Pod?
Anything Change in existing Pod?
Pod A and B is alive!
rancher cluster agent
Target ResourcesTarget Resources
Container
(kubelet)
File
(certificates)
Any change in
Container, Files?
Work as a TCP Proxy
Please check my internal state as you want
rancher node agent
api-server
After deployed, How to check/update Node/Cluster state?
kube-apiserver
rancher-server
management controller
user controller
kubelet
Pod A Pod B
Target Resources
Any New Pod?
Anything Change in existing Pod?
Pod A and B is alive!
rancher cluster agent
Target ResourcesTarget Resources
Container
(kubelet)
File
(certificates)
Any change in
Container, Files?
Work as a TCP Proxy
Please check my internal state as you want
rancher node agent
api-server
Agent TCP Proxy is used when you call k8s API
Please look at endpoint closely
https://<rancher-server-endpoint>/k8s/cluster/local
All requests against k8s cluster are
sent to Rancher first and Rancher
proxy it into correct cluster
How Rancher proxy
Kubernetes Cluster
rancher cluster agent
Kubernetes Cluster
rancher cluster agent
User can not call Kubernetes API
While cluster-agent is down
If rancher cluster agent got down for some reason
Rancher 2.X Updates
Rancher 2.0 -> 2.1: Support multiple Rancher Server
Kubernetes Cluster
Kubernetes Cluster
LB
Rancher Server play very very important role,
if it is down, following features are not available
1. Create/Update/Delete Node, Cluster
2. All management function for Node, Cluster
3. Proxy Kubernetes API request to Cluster
Rancher 2.0 -> 2.1: Support multiple Rancher Server
Kubernetes Cluster
Kubernetes Cluster
LB
Rancher 2.0 is not allowed operator to run
multiple rancher server because of websocket
session handling logic.
Rancher 2.0 -> 2.1: Support multiple Rancher Server
Kubernetes Cluster
Kubernetes Cluster
LB
Leader
From 2.1, Rancher’s websocket session
handling logic got improved and now they
allow us to run multiple rancher server for high
availability and scalability.
Rancher 2.0 -> 2.X: Move User Controllers to...
User Controllers
User Controllers
User Controllers
Kubernetes Cluster
Kubernetes Cluster
Kubernetes Cluster
CPU/Memory Usage increase
every time create cluster
・・・・
・
・
Management Controllers
Rancher 2.0 -> 2.X: Move User Controllers to...
Kubernetes Cluster
Kubernetes Cluster
Kubernetes Cluster
User Controllers
User Controllers
User Controllers
Management Controllers
CPU/Memory increasing ratio by new cluster got
improved than before because new user controller
for new cluster will be running on new cluster itself

More Related Content

What's hot

Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Etsuji Nakai
 
Kubernetes
KubernetesKubernetes
Kuberneteserialc_w
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetesrajdeep
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introductionSparkbit
 
Kubernetes Architecture
 Kubernetes Architecture Kubernetes Architecture
Kubernetes ArchitectureKnoldus Inc.
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideBytemark
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetesDongwon Kim
 
Kubernetes Networking 101
Kubernetes Networking 101Kubernetes Networking 101
Kubernetes Networking 101Weaveworks
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopBob Killen
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionStefan Schimanski
 
Kubernetes architecture
Kubernetes architectureKubernetes architecture
Kubernetes architectureJanakiram MSV
 
Kubernetes Probes (Liveness, Readyness, Startup) Introduction
Kubernetes Probes (Liveness, Readyness, Startup) IntroductionKubernetes Probes (Liveness, Readyness, Startup) Introduction
Kubernetes Probes (Liveness, Readyness, Startup) IntroductionAkhmadZakiAlsafi
 
Introduction to Kubernetes RBAC
Introduction to Kubernetes RBACIntroduction to Kubernetes RBAC
Introduction to Kubernetes RBACKublr
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsRamit Surana
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Ryan Jarvinen
 

What's hot (20)

Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introduction
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Kubernetes Architecture
 Kubernetes Architecture Kubernetes Architecture
Kubernetes Architecture
 
Docker & kubernetes
Docker & kubernetesDocker & kubernetes
Docker & kubernetes
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory Guide
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 
Kubernetes Networking 101
Kubernetes Networking 101Kubernetes Networking 101
Kubernetes Networking 101
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes Workshop
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Kubernetes Architecture and Introduction
Kubernetes Architecture and IntroductionKubernetes Architecture and Introduction
Kubernetes Architecture and Introduction
 
kubernetes, pourquoi et comment
kubernetes, pourquoi et commentkubernetes, pourquoi et comment
kubernetes, pourquoi et comment
 
Kubernetes architecture
Kubernetes architectureKubernetes architecture
Kubernetes architecture
 
Kubernetes Probes (Liveness, Readyness, Startup) Introduction
Kubernetes Probes (Liveness, Readyness, Startup) IntroductionKubernetes Probes (Liveness, Readyness, Startup) Introduction
Kubernetes Probes (Liveness, Readyness, Startup) Introduction
 
Introduction to Kubernetes RBAC
Introduction to Kubernetes RBACIntroduction to Kubernetes RBAC
Introduction to Kubernetes RBAC
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its components
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
 

Similar to 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 WorldLINE Corporation
 
Kubernetes #1 intro
Kubernetes #1   introKubernetes #1   intro
Kubernetes #1 introTerry Cho
 
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
 
An intro to Kubernetes operators
An intro to Kubernetes operatorsAn intro to Kubernetes operators
An intro to Kubernetes operatorsJ On The Beach
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalPatrick Chanezon
 
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...VMware Tanzu
 
Lessons learned and challenges faced while running Kubernetes at Scale
Lessons learned and challenges faced while running Kubernetes at ScaleLessons learned and challenges faced while running Kubernetes at Scale
Lessons learned and challenges faced while running Kubernetes at ScaleSidhartha Mani
 
Serverless with Knative - Mete Atamel (Google)
Serverless with Knative - Mete Atamel (Google)Serverless with Knative - Mete Atamel (Google)
Serverless with Knative - Mete Atamel (Google)Shift Conference
 
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
 
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
 
Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016Opsta
 
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKevin Lynch
 
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.
 
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on KubernetesAthens Big Data
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesGabriel Carro
 
GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull RequestKasper Nissen
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopIntro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopWeaveworks
 
Federated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific ComputingFederated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific ComputingBob Killen
 
DockerCon 2022 - From legacy to Kubernetes, securely & quickly
DockerCon 2022 - From legacy to Kubernetes, securely & quicklyDockerCon 2022 - From legacy to Kubernetes, securely & quickly
DockerCon 2022 - From legacy to Kubernetes, securely & quicklyEric Smalling
 

Similar to Rancher 2.x first step before deep dive (20)

Introduction of k8s rancher
Introduction of k8s rancherIntroduction of k8s rancher
Introduction of k8s rancher
 
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
 
CN Asturias - Stateful application for kubernetes
CN Asturias -  Stateful application for kubernetes CN Asturias -  Stateful application for kubernetes
CN Asturias - Stateful application for kubernetes
 
An intro to Kubernetes operators
An intro to Kubernetes operatorsAn intro to Kubernetes operators
An intro to Kubernetes operators
 
Docker Enterprise Workshop - Technical
Docker Enterprise Workshop - TechnicalDocker Enterprise Workshop - Technical
Docker Enterprise Workshop - Technical
 
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
Communication Amongst Microservices: Kubernetes, Istio, and Spring Cloud with...
 
Lessons learned and challenges faced while running Kubernetes at Scale
Lessons learned and challenges faced while running Kubernetes at ScaleLessons learned and challenges faced while running Kubernetes at Scale
Lessons learned and challenges faced while running Kubernetes at Scale
 
Serverless with Knative - Mete Atamel (Google)
Serverless with Knative - Mete Atamel (Google)Serverless with Knative - Mete Atamel (Google)
Serverless with Knative - Mete Atamel (Google)
 
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
 
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
 
Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016Introduction to Kubernetes - Docker Global Mentor Week 2016
Introduction to Kubernetes - Docker Global Mentor Week 2016
 
Kubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the DatacenterKubernetes @ Squarespace: Kubernetes in the Datacenter
Kubernetes @ Squarespace: Kubernetes in the Datacenter
 
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
 
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
18th Athens Big Data Meetup - 2nd Talk - Run Spark and Flink Jobs on Kubernetes
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
GitOps - Operation By Pull Request
GitOps - Operation By Pull RequestGitOps - Operation By Pull Request
GitOps - Operation By Pull Request
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopIntro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps Workshop
 
Federated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific ComputingFederated Kubernetes: As a Platform for Distributed Scientific Computing
Federated Kubernetes: As a Platform for Distributed Scientific Computing
 
DockerCon 2022 - From legacy to Kubernetes, securely & quickly
DockerCon 2022 - From legacy to Kubernetes, securely & quicklyDockerCon 2022 - From legacy to Kubernetes, securely & quickly
DockerCon 2022 - From legacy to Kubernetes, securely & quickly
 

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

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
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
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
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
 
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
 
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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 

Recently uploaded (20)

Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
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
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
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
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
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
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 

Rancher 2.x first step before deep dive

  • 1. Rancher 2.X First Step before Deep Dive LINE Corporation, Verda2 Yuki Nishiwaki
  • 2. Who you are? Name: ● Yuki Nishiwaki Working Experience: ● Private Cloud Development (OpenStack) Jan 2015 -> Now ● Kubernetes as a Service Development (Rancher) July 2018 -> Now ● Function as a Service Development (Knative) Sep 2018 -> Now
  • 3. Rancher and Me ● User and Developer ● Have contributed few patches to rancher 2.X related projects ○ rancher/types ■ https://github.com/rancher/types/pull/525 ○ rancher/machine ■ https://github.com/rancher/machine/pull/12 ○ rancher/norman ■ https://github.com/rancher/norman/pull/201 ■ https://github.com/rancher/norman/pull/202 ■ https://github.com/rancher/norman/pull/203 ○ rancher/rancher ■ https://github.com/rancher/rancher/pull/15909 ■ https://github.com/rancher/rancher/pull/15991 ■ https://github.com/rancher/rancher/pull/16044 Not so many contributions yet
  • 4. Today’s scope ● We have only 20-30 min ● Rancher have bunch of features. It will take half of day if I talk all parts ● Try to explain whole picture ● Check following article for more detail ○ https://www.slideshare.net/linecorp/lets-unbox-rancher-20-v200 ○ https://github.com/ukinau/rancher-analyse
  • 5. Rancher 2.X ? All Data for Rancher are stored in Kubernetes => Depend on Kubernetes to run Rancher 1 Manage Kubernetes Cluster by multiple Provider ● Google Container Engine ● Amazon EKS ● Microsoft Azure ● Any VM Provider like OpenStack (RKE) 2 RBAC Configuration Configure/Deploy Additional Tools on Cluster Addon Management 4 Resource Resource Resource Admin member RBAC Configuration 3 Sync RBAC configuration
  • 7. Rancher 2.X architecture API Controller Cluster Agent Node Agent Node Agent Node Agent Cluster Agent Node Agent Node Agent Node Agent Kubernetes Cluster Kubernetes Cluster Kubernetes Cluster
  • 8. Resource Creation process is same as Kubernetes Resource API Controller ClusterA Watch Kubernetes ClusterReconcile Get latest information from kube-apiserver Check if any difference Between desired and actual states Do something to make actual state desired Reconcile Loop Cluster Agent Node Agent Don’t do actual provisioning
  • 9. Resource Creation process is same as Kubernetes Resource API Controller ClusterA Watch Kubernetes ClusterReconcile Get latest information from kube-apiserver Check if any difference Between desired and actual states Do something to make actual state desired Reconcile Loop Cluster Agent Node Agent
  • 10. Rancher API is just kind of proxy for Kubernetes API ClusterA NodeA UserA GroupA ・・・ Create Cluster Store All data as a Kubernetes by using CRD CRD for Cluster CRD for Node CRD for User Call Kubernetes API
  • 11. Custom Resource Definition(CRD) in Kubernetes? Kubernetes Native Resource Type Custom Resource Type CustomResourceDefinition ConfigMap Pod Nginx App A Nginx Config Cluster Node Cluster Node Cluster A Cluster B Node A Node B Kubernetes allow user to create custom resource type in addition to natively supported resource.
  • 12. > kubectl get crd clusters.management.cattle.io -o yaml apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: creationTimestamp: 2018-10-26T13:49:37Z generation: 1 name: clusters.management.cattle.io resourceVersion: "1278" selfLink: /apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions/clusters.management.cattle.io uid: fa628204-d925-11e8-b840-fa163e305e2c spec: group: management.cattle.io names: kind: Cluster listKind: ClusterList plural: clusters singular: cluster scope: Cluster version: v3 > kubectl get cluster NAME AGE local 1d Example of CRD for Rancher Resource: Cluster CRD for Cluster Cluster Resource
  • 13. Question: Do we really needed to have API server? Create Create Why not Create Cluster Resource directly ? Resource information tend to be large and some of the attributes are only needed internally and don’t have to be exposed to user. Thus, Rancher mutate resource before try to create resource in k8s to add some internal information and also mutate resource before try to return resource to user in order to drop some attributes. Cluster A Cluster A Cluster A some attributes some attributes Add
  • 14. Engineer for Rancher believe their approach is common ● Develop API Server Framework for Kubernetes API(CRD) ○ https://github.com/rancher/norman ● Support ○ Generate API function based on CRD schema ○ Determine path based on CRD schema ○ Override function to do some additional work like overriding attributes, drop attributes…
  • 15. Resource Creation process is same as Kubernetes Resource API Controller ClusterA Watch Kubernetes ClusterReconcile Get latest information from kube-apiserver Check if any difference Between desired and actual states Do something to make actual state desired Reconcile Loop Cluster Agent Node Agent
  • 16. Rancher Controllers Management Controllers Kubernetes Cluster Kubernetes Cluster Kubernetes Cluster User Controllers User Controllers User Controllers Cluster Controller Node Controller Catalog Controller ・・・・ Alert Controller RABC Controller Endpoint Controller ・・・・
  • 17. ● Run 1 Controller in a Rancher Server ● Do something across Kubernetes Clusters deployed ○ Catalog for Rancher User to deploy helm chart onto Kubernetes Clusters ○ Authentication for Rancher ○ Node Create/Update/Remove ○ Cluster Create/Update/Remove ○ Start User Controller for New Cluster Management Controllers Management Controllers Kubernetes Cluster Kubernetes Cluster
  • 18. User Controllers ● Run 1 Controller for each Kubernetes Cluster deployed ● Do something for assigned Kubernetes Cluster ○ Sync data between Rancher Configuration and Kubernetes Cluster deployed ○ Propagate event happening in Kubernetes Cluster deployed to Rancher ○ Watch all workload(Pod...) in Kubernetes Cluster deployed and Do something User Controllers Kubernetes Cluster Kubernetes Cluster
  • 19. After deployed, How to check/update Node/Cluster state? kube-apiserver rancher-server management controller user controller kubelet Pod A Pod B Target Resources Any New Pod? Anything Change in existing Pod? Pod A and B is alive! rancher cluster agent Target ResourcesTarget Resources Container (kubelet) File (certificates) Any change in Container, Files? Work as a TCP Proxy Please check my internal state as you want rancher node agent api-server
  • 20. After deployed, How to check/update Node/Cluster state? kube-apiserver rancher-server management controller user controller kubelet Pod A Pod B Target Resources Any New Pod? Anything Change in existing Pod? Pod A and B is alive! rancher cluster agent Target ResourcesTarget Resources Container (kubelet) File (certificates) Any change in Container, Files? Work as a TCP Proxy Please check my internal state as you want rancher node agent api-server
  • 21. Agent TCP Proxy is used when you call k8s API
  • 22. Please look at endpoint closely https://<rancher-server-endpoint>/k8s/cluster/local All requests against k8s cluster are sent to Rancher first and Rancher proxy it into correct cluster
  • 23. How Rancher proxy Kubernetes Cluster rancher cluster agent Kubernetes Cluster rancher cluster agent User can not call Kubernetes API While cluster-agent is down If rancher cluster agent got down for some reason
  • 25. Rancher 2.0 -> 2.1: Support multiple Rancher Server Kubernetes Cluster Kubernetes Cluster LB Rancher Server play very very important role, if it is down, following features are not available 1. Create/Update/Delete Node, Cluster 2. All management function for Node, Cluster 3. Proxy Kubernetes API request to Cluster
  • 26. Rancher 2.0 -> 2.1: Support multiple Rancher Server Kubernetes Cluster Kubernetes Cluster LB Rancher 2.0 is not allowed operator to run multiple rancher server because of websocket session handling logic.
  • 27. Rancher 2.0 -> 2.1: Support multiple Rancher Server Kubernetes Cluster Kubernetes Cluster LB Leader From 2.1, Rancher’s websocket session handling logic got improved and now they allow us to run multiple rancher server for high availability and scalability.
  • 28. Rancher 2.0 -> 2.X: Move User Controllers to... User Controllers User Controllers User Controllers Kubernetes Cluster Kubernetes Cluster Kubernetes Cluster CPU/Memory Usage increase every time create cluster ・・・・ ・ ・ Management Controllers
  • 29. Rancher 2.0 -> 2.X: Move User Controllers to... Kubernetes Cluster Kubernetes Cluster Kubernetes Cluster User Controllers User Controllers User Controllers Management Controllers CPU/Memory increasing ratio by new cluster got improved than before because new user controller for new cluster will be running on new cluster itself