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
 
Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)
 
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
 
"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

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 

Último (20)

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 

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