SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
How to make
cloud native platform
by kubernetes
Eohyung Lee
al.lee@linecorp.com
liquidnuker@gmail.com
Nucleo architecture (create app)
Nucleo architecture (update app)
cloud native platform
nucleo
Kubernetes
https://kubernetes.io/docs/concepts/
Kubernetes has a number of features. It can be
thought of as:
a container platform
a microservices platform
a portable cloud platform and a lot more.
Kubernetes a.k.a. K8S
k + len(ubernetes) + s = k + 8 + s = k8s
provides a container-centric management
environment.
orchestrates
computing, networking, and storage infrastructure
on behalf of user workloads.
Traditional explanation of k8s
The Illustrated Children's Guide to Kubernetes
https://youtu.be/4ht22ReBjno
So, we focused to talk about
how to use k8s as a cloud native backend platfom .
how to use k8s by api
How to manage user app
How to manage user app metadata
How to support accessing to public
How to support continuous delivery
What constitutes a k8s
k8s object (resource object, resource )
are persistent entities in the Kubernetes
system.
Kubernetes uses these entities to represent
the state of your cluster.
K8S object types
Workloads
container, pods, deployment, daemonset, ...
Discovery & LB resources
endpoint, ingress, service, ...
Con g & Storage resources
con gmap, secret, persistentvolumeclaim, ...
K8S object types (cont.)
Cluster resources
node, namespace, role, serviceaccount, ...
Metadata resources
event, horizontalpodautoscaler,
customresourcede nition, ...
K8S object components
K8S object spec
before apply
K8S object spec & status
after apply
Transaction vs spec & status
method
for supporting micro service architecture
in nitely retriable
self healing
...
K8S object operations
Create
Update
Replace, Patch
Read
Get, List, Watch
Delete
K8S watch api
Watch will stream results for an object(s) as it is
updated.
Similar to a callback, watch is used to respond to
resource changes .
K8S architecture
K8S controller
a controller is a control loop that watches the
shared state of the cluster through the apiserver
and makes changes attempting to move the
current state towards the desired state
K8S controller manager
For example, chaining events
So, k8s API
remember spec & status
remember watch
How to manage user app
helm: The package manager for Kubernetes
https://qiita.com/Ladicle/items/63cad824e27aa8a
ac7e1
Nucleo chart
chart: Helm uses a packaging format called charts
charts/nucleo/
├── .helmignore # helm ignore file
├── Chart.yaml # chart spec
├── README.md
├── templates
│   ├── NOTES.txt
│   ├── _helpers.tpl # help function, define values
│   ├── config.yaml # config for user apps
│   ├── deployment.yaml # container deploy method, config
│   ├── hpa.yaml # autoscaling features
│   ├── ingress.yaml # access to outside L7(like nginx)
│   ├── secret.yaml # secret config for user apps
│   └── service.yaml # service discovery, endpoint, L4
└── values.yaml # chart configuration value
How to manage user app metadata
e.g. application information, release histories,
build histories ...
Custom Resource De nition(CRD)
store metadata in k8s like other objects
Custom resources
make your own resource dynamically
and use k8s database, API, authentication like the
other resource objects
support CRUD functions
e.g. Create , Update , Delete , Read
Custom resources de nition
apiVersion: nucleo.linecorp.com/v1
kind: DeployConfig # this resource is made by nucleo
metadata:
creationTimestamp: 2018-01-31T06:03:13Z
labels:
nucleo.app: fernet-decryptor
name: 0162733d-c8e9-44f5-9b3b-f8d587602b17
resourceVersion: "37313981"
selfLink: /apis/nucleo.linecorp.com/v1/link
uid: 6d14f769-064c-11e8-9b84-fa163e9b48b8
spec:
branch: ^.
display_name: default
status:
build_status: success
status: running
Custom resource & controller
How to support accessing to public
Use ingress for exposing user app to the world
like a aws application load balancer
ingress resources has no prebuilded controller
need to use NGINX Ingress Controller install by
helm
can support multiple & various ingress
controller in one k8s cluster
Ingress with service
Ingress with controller
Ingress
Ingress node deploy types
Dedicated node pattern for
ingress
Update k8s & nucleo architecture
How to support continuous delivery
currently not use kubernetes federation
winner winner chicken
dinner
Thank you

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Kubernetes Boulder - Kit Merker - Cloud Native Deployment
Kubernetes Boulder - Kit Merker - Cloud Native DeploymentKubernetes Boulder - Kit Merker - Cloud Native Deployment
Kubernetes Boulder - Kit Merker - Cloud Native Deployment
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Introduction kubernetes 2017_12_24
Introduction kubernetes 2017_12_24Introduction kubernetes 2017_12_24
Introduction kubernetes 2017_12_24
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
kubernetes for beginners
kubernetes for beginnerskubernetes for beginners
kubernetes for beginners
 
IPC16: A Practical Introduction to Kubernetes
IPC16: A Practical Introduction to Kubernetes IPC16: A Practical Introduction to Kubernetes
IPC16: A Practical Introduction to Kubernetes
 
Kubernetes 101 for Beginners
Kubernetes 101 for BeginnersKubernetes 101 for Beginners
Kubernetes 101 for Beginners
 
Kubernetes in 30 minutes (2017/03/10)
Kubernetes in 30 minutes (2017/03/10)Kubernetes in 30 minutes (2017/03/10)
Kubernetes in 30 minutes (2017/03/10)
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Running Production-Grade Kubernetes on AWS
Running Production-Grade Kubernetes on AWSRunning Production-Grade Kubernetes on AWS
Running Production-Grade Kubernetes on AWS
 
Monitoring, Logging and Tracing on Kubernetes
Monitoring, Logging and Tracing on KubernetesMonitoring, Logging and Tracing on Kubernetes
Monitoring, Logging and Tracing on Kubernetes
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory Guide
 
Kubernetes and Hybrid Deployments
Kubernetes and Hybrid DeploymentsKubernetes and Hybrid Deployments
Kubernetes and Hybrid Deployments
 
Learn kubernetes in 90 minutes
Learn kubernetes in 90 minutesLearn kubernetes in 90 minutes
Learn kubernetes in 90 minutes
 
Integration kubernetes with docker private registry
Integration kubernetes with docker private registryIntegration kubernetes with docker private registry
Integration kubernetes with docker private registry
 
Making kubernetes simple for developers
Making kubernetes simple for developersMaking kubernetes simple for developers
Making kubernetes simple for developers
 
Kubernetes Basic Operation
Kubernetes Basic OperationKubernetes Basic Operation
Kubernetes Basic Operation
 
Understanding Kubernetes
Understanding KubernetesUnderstanding Kubernetes
Understanding Kubernetes
 

Semelhante a How to make cloud native platform by kubernetes

Semelhante a How to make cloud native platform by kubernetes (20)

Kubernetes for the PHP developer
Kubernetes for the PHP developerKubernetes for the PHP developer
Kubernetes for the PHP developer
 
Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_
 
Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
6 Steps Functionality Hacks To Kubernetes - 2023 Update.pdf
6 Steps Functionality Hacks To Kubernetes - 2023 Update.pdf6 Steps Functionality Hacks To Kubernetes - 2023 Update.pdf
6 Steps Functionality Hacks To Kubernetes - 2023 Update.pdf
 
Kubernetes - A Short Ride Throught the project and its ecosystem
Kubernetes - A Short Ride Throught the project and its ecosystemKubernetes - A Short Ride Throught the project and its ecosystem
Kubernetes - A Short Ride Throught the project and its ecosystem
 
Introduction to containers, k8s, Microservices & Cloud Native
Introduction to containers, k8s, Microservices & Cloud NativeIntroduction to containers, k8s, Microservices & Cloud Native
Introduction to containers, k8s, Microservices & Cloud Native
 
CI/CD Across Multiple Environments
CI/CD Across Multiple EnvironmentsCI/CD Across Multiple Environments
CI/CD Across Multiple Environments
 
Kubernetes Architecture with Components
 Kubernetes Architecture with Components Kubernetes Architecture with Components
Kubernetes Architecture with 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
 
Kubernetes Java Operator
Kubernetes Java OperatorKubernetes Java Operator
Kubernetes Java Operator
 
OpenStack and Kubernetes - A match made for Telco Heaven
OpenStack and Kubernetes - A match made for Telco HeavenOpenStack and Kubernetes - A match made for Telco Heaven
OpenStack and Kubernetes - A match made for Telco Heaven
 
Kubernetes: The Next Research Platform
Kubernetes: The Next Research PlatformKubernetes: The Next Research Platform
Kubernetes: The Next Research Platform
 
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
 
Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018Kubernetes for java developers - Tutorial at Oracle Code One 2018
Kubernetes for java developers - Tutorial at Oracle Code One 2018
 
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless  - Serverless Summit 2017 - Krishna KumarKubernetes for Serverless  - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
 
Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)
 
"Kubernetes as Driver of Generic IT Automation"
"Kubernetes as Driver of Generic IT Automation""Kubernetes as Driver of Generic IT Automation"
"Kubernetes as Driver of Generic IT Automation"
 
"Kubernetes as Driver of Generic IT Automation"
"Kubernetes as Driver of Generic IT Automation""Kubernetes as Driver of Generic IT Automation"
"Kubernetes as Driver of Generic IT Automation"
 
[WSO2Con Asia 2018] Deploying Applications in K8S and Docker
[WSO2Con Asia 2018] Deploying Applications in K8S and Docker[WSO2Con Asia 2018] Deploying Applications in K8S and Docker
[WSO2Con Asia 2018] Deploying Applications in K8S and Docker
 

Mais de 어형 이

Openstack Swift overview
Openstack Swift overviewOpenstack Swift overview
Openstack Swift overview
어형 이
 
debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch
어형 이
 

Mais de 어형 이 (9)

Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center
 
Truly understanding container
Truly understanding containerTruly understanding container
Truly understanding container
 
How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)
How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)
How to debug the pod which is hard to debug (디버그 하기 어려운 POD 디버그 하기)
 
Live upgrade neutron architecture without downtime
Live upgrade neutron architecture without downtimeLive upgrade neutron architecture without downtime
Live upgrade neutron architecture without downtime
 
Kakao Openstack CI/CD
Kakao Openstack CI/CDKakao Openstack CI/CD
Kakao Openstack CI/CD
 
manage inhouse openstack the hard way(kakao case study about 10,000 vms)
manage inhouse openstack the hard way(kakao case study about 10,000 vms)manage inhouse openstack the hard way(kakao case study about 10,000 vms)
manage inhouse openstack the hard way(kakao case study about 10,000 vms)
 
Install openstack
Install openstackInstall openstack
Install openstack
 
Openstack Swift overview
Openstack Swift overviewOpenstack Swift overview
Openstack Swift overview
 
debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch
 

Último

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
Max Lee
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
mbmh111980
 

Último (20)

A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
How to pick right visual testing tool.pdf
How to pick right visual testing tool.pdfHow to pick right visual testing tool.pdf
How to pick right visual testing tool.pdf
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
AI Hackathon.pptx
AI                        Hackathon.pptxAI                        Hackathon.pptx
AI Hackathon.pptx
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 

How to make cloud native platform by kubernetes

  • 1. How to make cloud native platform by kubernetes Eohyung Lee al.lee@linecorp.com liquidnuker@gmail.com
  • 5. Kubernetes https://kubernetes.io/docs/concepts/ Kubernetes has a number of features. It can be thought of as: a container platform a microservices platform a portable cloud platform and a lot more.
  • 6. Kubernetes a.k.a. K8S k + len(ubernetes) + s = k + 8 + s = k8s provides a container-centric management environment. orchestrates computing, networking, and storage infrastructure on behalf of user workloads.
  • 7. Traditional explanation of k8s The Illustrated Children's Guide to Kubernetes https://youtu.be/4ht22ReBjno
  • 8. So, we focused to talk about how to use k8s as a cloud native backend platfom . how to use k8s by api How to manage user app How to manage user app metadata How to support accessing to public How to support continuous delivery
  • 9. What constitutes a k8s k8s object (resource object, resource ) are persistent entities in the Kubernetes system. Kubernetes uses these entities to represent the state of your cluster.
  • 10. K8S object types Workloads container, pods, deployment, daemonset, ... Discovery & LB resources endpoint, ingress, service, ... Con g & Storage resources con gmap, secret, persistentvolumeclaim, ...
  • 11. K8S object types (cont.) Cluster resources node, namespace, role, serviceaccount, ... Metadata resources event, horizontalpodautoscaler, customresourcede nition, ...
  • 14. K8S object spec & status after apply
  • 15. Transaction vs spec & status method for supporting micro service architecture in nitely retriable self healing ...
  • 16. K8S object operations Create Update Replace, Patch Read Get, List, Watch Delete
  • 17. K8S watch api Watch will stream results for an object(s) as it is updated. Similar to a callback, watch is used to respond to resource changes .
  • 19. K8S controller a controller is a control loop that watches the shared state of the cluster through the apiserver and makes changes attempting to move the current state towards the desired state
  • 22. So, k8s API remember spec & status remember watch
  • 23. How to manage user app helm: The package manager for Kubernetes https://qiita.com/Ladicle/items/63cad824e27aa8a ac7e1
  • 24. Nucleo chart chart: Helm uses a packaging format called charts charts/nucleo/ ├── .helmignore # helm ignore file ├── Chart.yaml # chart spec ├── README.md ├── templates │   ├── NOTES.txt │   ├── _helpers.tpl # help function, define values │   ├── config.yaml # config for user apps │   ├── deployment.yaml # container deploy method, config │   ├── hpa.yaml # autoscaling features │   ├── ingress.yaml # access to outside L7(like nginx) │   ├── secret.yaml # secret config for user apps │   └── service.yaml # service discovery, endpoint, L4 └── values.yaml # chart configuration value
  • 25. How to manage user app metadata e.g. application information, release histories, build histories ... Custom Resource De nition(CRD) store metadata in k8s like other objects
  • 26. Custom resources make your own resource dynamically and use k8s database, API, authentication like the other resource objects support CRUD functions e.g. Create , Update , Delete , Read
  • 27. Custom resources de nition apiVersion: nucleo.linecorp.com/v1 kind: DeployConfig # this resource is made by nucleo metadata: creationTimestamp: 2018-01-31T06:03:13Z labels: nucleo.app: fernet-decryptor name: 0162733d-c8e9-44f5-9b3b-f8d587602b17 resourceVersion: "37313981" selfLink: /apis/nucleo.linecorp.com/v1/link uid: 6d14f769-064c-11e8-9b84-fa163e9b48b8 spec: branch: ^. display_name: default status: build_status: success status: running
  • 28. Custom resource & controller
  • 29. How to support accessing to public Use ingress for exposing user app to the world like a aws application load balancer ingress resources has no prebuilded controller need to use NGINX Ingress Controller install by helm can support multiple & various ingress controller in one k8s cluster
  • 34. Dedicated node pattern for ingress
  • 35. Update k8s & nucleo architecture
  • 36. How to support continuous delivery currently not use kubernetes federation