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

Secrets in Kubernetes
Secrets in KubernetesSecrets in Kubernetes
Secrets in KubernetesJerry Jalava
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingSreenivas Makam
 
CKA Certified Kubernetes Administrator Notes
CKA Certified Kubernetes Administrator Notes CKA Certified Kubernetes Administrator Notes
CKA Certified Kubernetes Administrator Notes Adnan Rashid
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes IntroductionPeng Xiao
 
Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Megan O'Keefe
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to KubernetesImesh Gunaratne
 
Getting Started on Amazon EKS
Getting Started on Amazon EKSGetting Started on Amazon EKS
Getting Started on Amazon EKSMatthew Barlocker
 
Kubernetes Webinar - Using ConfigMaps & Secrets
Kubernetes Webinar - Using ConfigMaps & Secrets Kubernetes Webinar - Using ConfigMaps & Secrets
Kubernetes Webinar - Using ConfigMaps & Secrets Janakiram MSV
 
Kubernetes Deployment Strategies
Kubernetes Deployment StrategiesKubernetes Deployment Strategies
Kubernetes Deployment StrategiesAbdennour TM
 
Kubernetes
KubernetesKubernetes
Kuberneteserialc_w
 
Kubernetes: An Introduction to the Open Source Container Orchestration Platform
Kubernetes: An Introduction to the Open Source Container Orchestration PlatformKubernetes: An Introduction to the Open Source Container Orchestration Platform
Kubernetes: An Introduction to the Open Source Container Orchestration PlatformMichael O'Sullivan
 
Upgrade Kubernetes the boring way
Upgrade Kubernetes the boring wayUpgrade Kubernetes the boring way
Upgrade Kubernetes the boring wayOleksandr Slynko
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetesMichal Cwienczek
 
An overview of the Kubernetes architecture
An overview of the Kubernetes architectureAn overview of the Kubernetes architecture
An overview of the Kubernetes architectureIgor Sfiligoi
 

What's hot (20)

Secrets in Kubernetes
Secrets in KubernetesSecrets in Kubernetes
Secrets in Kubernetes
 
Introduction of kubernetes rancher
Introduction of kubernetes rancherIntroduction of kubernetes rancher
Introduction of kubernetes rancher
 
Deep dive into Kubernetes Networking
Deep dive into Kubernetes NetworkingDeep dive into Kubernetes Networking
Deep dive into Kubernetes Networking
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
CKA Certified Kubernetes Administrator Notes
CKA Certified Kubernetes Administrator Notes CKA Certified Kubernetes Administrator Notes
CKA Certified Kubernetes Administrator Notes
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Kubernetes PPT.pptx
Kubernetes PPT.pptxKubernetes PPT.pptx
Kubernetes PPT.pptx
 
Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Getting Started on Amazon EKS
Getting Started on Amazon EKSGetting Started on Amazon EKS
Getting Started on Amazon EKS
 
Kubernetes Webinar - Using ConfigMaps & Secrets
Kubernetes Webinar - Using ConfigMaps & Secrets Kubernetes Webinar - Using ConfigMaps & Secrets
Kubernetes Webinar - Using ConfigMaps & Secrets
 
Kubernetes Deployment Strategies
Kubernetes Deployment StrategiesKubernetes Deployment Strategies
Kubernetes Deployment Strategies
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Kubernetes: An Introduction to the Open Source Container Orchestration Platform
Kubernetes: An Introduction to the Open Source Container Orchestration PlatformKubernetes: An Introduction to the Open Source Container Orchestration Platform
Kubernetes: An Introduction to the Open Source Container Orchestration Platform
 
DevOps with Kubernetes
DevOps with KubernetesDevOps with Kubernetes
DevOps with Kubernetes
 
Upgrade Kubernetes the boring way
Upgrade Kubernetes the boring wayUpgrade Kubernetes the boring way
Upgrade Kubernetes the boring way
 
Service mesh
Service meshService mesh
Service mesh
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Introduction to kubernetes
Introduction to kubernetesIntroduction to kubernetes
Introduction to kubernetes
 
An overview of the Kubernetes architecture
An overview of the Kubernetes architectureAn overview of the Kubernetes architecture
An overview of the Kubernetes architecture
 

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

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
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
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
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
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Recently uploaded (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
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
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
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
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

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