SlideShare a Scribd company logo
v1.2.0-beta.0
~ Girag
Outline
● released on March 7, 2016
● improved scalability
○ more nodes
○ more pods per node
● features from 1.1 time frames and stabilized
○ Horizontal pod auto-scaling API
■ add custom metrics
○ Ingress API
○ Job API
○ DaemonSet API
○ Deployment API
○ ConfigMap API
○ Make it easier to create resources
■ Namespace generation
■ Secret/config generation
■ export and convert
@girag
● introduced in v1.1
● part of extensions api
● increase or decrease the pod’s count in replication controller /
deployments as per CPU utilization
● implemented as control loop
● uses heapster for metric collection (Currently CPU Utilization only)
● autoscaling and rolling-update will not work together, if rolling-update
manipulates replica count of replication controller
● will support custom metrics too
Horizontal Pod Autoscaler
@girag
apiVersion: extensions/v1beta1
kind: HorizontalPodAutoscaler
metadata:
name: tomcat7
namespace: default
spec:
scaleRef:
kind: ReplicationController
name: tomcat7
subresource: scale
minReplicas: 1
maxReplicas: 5
cpuUtilization:
targetPercentage: 80
Horizontal Pod Autoscaler
@girag
apiVersion: extensions/v1beta1
kind: HorizontalPodAutoscaler
metadata:
name: tomcat7
namespace: default
spec:
scaleRef:
kind: ReplicationController
name: tomcat7
subresource: scale
minReplicas: 1
maxReplicas: 5
cpuUtilization:
targetPercentage: 80
Horizontal Pod Autoscaler
@girag
HPA created with the name tomcat7 and act as
service with 1-5 replications depending on load
if cpuUtilization > 80** and replica < 5
spawn tomcat7
else cpuUtiliaztion fall down and sustained for 5 min
and replica > 1
remove tomcat7
** when start or stop pods the metric get noises, so
hpa wait for a while (3-5 minutes) after every action,
for picking right data.
● introduced in v1.1
● part of extensions api
● set of rules that allow inbound traffic to reach the k8s cluster services.
● types
○ Single Service Ingress
○ Simple Fanout
○ Name based Virtual Hosting
○ Loadbalancing
Ingress
@girag
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: virtual-hosting
spec:
rules:
- host: api.gopaddle.io
http:
paths:
- backend:
serviceName: bm-gateway
servicePort: 80
Ingress
- host: beta.gopaddle.io
http:
paths:
- backend:
serviceName: bm-dashboard
servicePort: 80
- host: doc.gopaddle.io
http:
paths:
- backend:
serviceName: bm-docs
servicePort: 80
@girag
Ingress
- host: beta.gopaddle.io
http:
paths:
- backend:
serviceName: bm-dashboard
servicePort: 80
- host: doc.gopaddle.io
http:
paths:
- backend:
serviceName: bm-docs
servicePort: 80
@girag
bm-
gateway
bm-
dashboard
bm-
docs
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: virtual-hosting
spec:
rules:
- host: api.gopaddle.io
http:
paths:
- backend:
serviceName: bm-gateway
servicePort: 80
172.149.22.101
api beta doc
gopaddle.io
● introduced in v1.1
● part of extensions api
● build custom lifecycle of pods
● creates one or more pods and ensures that a specified number of them
successfully terminate
● control lifecycle of pods which has RestartPolicy equal to OnFailure or Never.
Jobs
@girag
apiVersion: extensions/v1beta1
kind: Job
metadata:
name: appsvr
spec:
completions: 4
parallelism: 2
selector:
matchLabels:
app: appsvr
template:
metadata:
name: appsvr
labels:
app: appsvr
spec:
containers:
- name: appsvr
image: bluemeric/javasvr
restartPolicy: Never
Jobs
@girag
apiVersion: extensions/v1beta1
kind: Job
metadata:
name: appsvr
spec:
completions: 4
parallelism: 2
selector:
matchLabels:
app: appsvr
template:
metadata:
name: appsvr
labels:
app: appsvr
spec:
containers:
- name: appsvr
image: bluemeric/javasvr
restartPolicy: Never
Jobs
@girag
Job for appsvr,
> .spec.completions : run 4 instance of appsvrs.
> .spec.parallelism : run parallelly 2 appsvrs.
● introduced in v1.1
● part of extensions api
● ensures that all nodes or some (by NodeSelector) runs pod
● add a pod from Daemonset, while a node added in to k8s cluster, and
removes and clean pod when node goes off cluster.
Daemon Sets
@girag
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: ds-monitor
labels:
apps: monitor
spec:
selector:
apps: monitor
template:
metadata:
name: d-monitor
labels:
apps: monitor
spec:
hostNetwork: true
containers:
- name: ds-mon
image: bm/mon:v2
Daemon Sets
@girag
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: ds-monitor
labels:
apps: monitor
spec:
selector:
apps: monitor
template:
metadata:
name: d-monitor
labels:
apps: monitor
spec:
hostNetwork: true
containers:
- name: ds-mon
image: bm/mon:v2
Daemon Sets
@girag
node-01 node-02 node-03
kube-master
monitor monitor monitor
….
….
….
….
….
….
one “monitor”
pod per node
● introduced in v1.1
● part of extensions api
● smoothens deployment process of creating new resources and updating them
● supported resource are Pods and Replication Controllers.
● while updating, it ensures sufficient capacity of new pod(s) available to serve
and deleting old ones.
Deployments
@girag
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: appsvr-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: appsvr
spec:
containers:
- name: appsvr
image: bm/appsvr:v1
ports:
- containerPort: 8080
Deployments
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: appsvr-deployment
spec:
replicas: 5
template:
metadata:
labels:
app: appsvr
spec:
containers:
- name: appsvr
image: bm/appsvr:v2
ports:
- containerPort: 8080
@girag
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: appsvr-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: appsvr
spec:
containers:
- name: appsvr
image: bm/appsvr:v1
ports:
- containerPort: 8080
Deployments
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: appsvr-deployment
spec:
replicas: 5
template:
metadata:
labels:
app: appsvr
spec:
containers:
- name: appsvr
image: bm/appsvr:v2
ports:
- containerPort: 8080
$ kubectl create -f dep.yaml
$ kubectl apply -f dep.yaml
@girag
creates 3 replica of
appsvr:v1 pods
update 3 pod with appsvr:v2
when no more outstanding load
&&
creates 2 more replica of appsvr:
v2 pods
● introduced in v1.1
● part of extensions api
● small in size
● contains sensitive data like password, access-token, keys
● usage
○ file in mounted volume
○ used by kublet while pulling images to build pod
Secrets
@girag
apiVersion: v1
kind: Secret
metadata:
name: user-profile
type: Opaque
data:
user: graha
password: dmFsdWUtMQ0K
Secrets
apiVersion: v1
kind: Pod
metadata:
name: secret-access-pod
spec:
containers:
- name: tester
image: kubernetes/mounttest:0.1
command: [ "/mt", "--file_content=/etc/profile/user" ]
volumeMounts:
# name must match the volume name below
- name: profile
mountPath: /etc/profile
volumes:
- name: profile
secret:
secretName: user-profile
restartPolicy: Never
@girag
apiVersion: v1
kind: Secret
metadata:
name: user-profile
type: Opaque
data:
user: graha
password: dmFsdWUtMQ0K
Secrets
apiVersion: v1
kind: Pod
metadata:
name: secret-access-pod
spec:
containers:
- name: tester
image: kubernetes/mounttest:0.1
command: [ "/mt", "--file_content=/etc/profile/user" ]
volumeMounts:
# name must match the volume name below
- name: profile
mountPath: /etc/profile
volumes:
- name: profile
secret:
secretName: user-profile
restartPolicy: Never
@girag
creates a
secret store for
user-profile
mounted as file
system into
/etc/profile
● introduced in v1
● part of core api
● flexible configuration model for k8s
● simplify storing configuration profile for application
● dynamic distribution of configuration
● usage
○ as environment variable
○ in volume
○ consistent data even from updating configuration model
ConfigMap
@girag
apiVersion: v1
kind: ConfigMap
metadata:
name: bm-env-config
data:
design-cache: 100
app-cache: 100
n-cmp-thread: 5
ConfigMap
@girag
apiVersion: v1
kind: Pod
metadata:
name: config-test-pod
spec:
containers:
- name: config-test-container
image: gcr.io/google_containers/busybox
command: [ "/bin/sh", "cat", "/etc/config/bm.env" ]
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: bm-env-config
restartPolicy: Never
apiVersion: v1
kind: ConfigMap
metadata:
name: bm-env-config
data:
design-cache: 100
app-cache: 100
n-cmp-thread: 5
ConfigMap
@girag
apiVersion: v1
kind: Pod
metadata:
name: config-test-pod
spec:
containers:
- name: config-test-container
image: gcr.io/google_containers/busybox
command: [ "/bin/sh", "cat", "/etc/config/bm.env" ]
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: bm-env-config
restartPolicy: Never
creates a
configuration store for
bm-env like secrets
mounted as file
system into
/etc/config
● Locate our work
○ www.gopaddle.io
○ www.bluemeric.com
○ http://www.bluemeric.com/blog/
● Reach us
○ @bluemeric
○ http://www.bluemeric.com/contact/
Q&A
@girag

More Related Content

What's hot

Microservices with docker swarm and consul
Microservices with docker swarm and consulMicroservices with docker swarm and consul
Microservices with docker swarm and consul
Nguyen Sy Thanh Son
 
Kubernetes - Security Journey
Kubernetes - Security JourneyKubernetes - Security Journey
Kubernetes - Security Journey
Jerry Jalava
 
Setting up Kubernetes with tectonic
Setting up Kubernetes with tectonicSetting up Kubernetes with tectonic
Setting up Kubernetes with tectonic
Vishal Biyani
 
Openstack Overview
Openstack OverviewOpenstack Overview
Openstack Overview
rajdeep
 
Spring Cloud and Netflix Components
Spring Cloud and Netflix ComponentsSpring Cloud and Netflix Components
Spring Cloud and Netflix Components
Dharshan Sastry B N
 
Greach 2014 - Road to Grails 3.0
Greach 2014  - Road to Grails 3.0Greach 2014  - Road to Grails 3.0
Greach 2014 - Road to Grails 3.0
graemerocher
 
Best Practices with Azure Kubernetes Services
Best Practices with Azure Kubernetes ServicesBest Practices with Azure Kubernetes Services
Best Practices with Azure Kubernetes Services
QAware GmbH
 
How to Build Your First Web App in Go
How to Build Your First Web App in GoHow to Build Your First Web App in Go
How to Build Your First Web App in Go
All Things Open
 
Virtualization at Gilt - Rangarajan Radhakrishnan
Virtualization at Gilt - Rangarajan RadhakrishnanVirtualization at Gilt - Rangarajan Radhakrishnan
Virtualization at Gilt - Rangarajan Radhakrishnan
Datadog
 
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Lee Calcote
 
Monitoring Docker containers - Docker NYC Feb 2015
Monitoring Docker containers - Docker NYC Feb 2015Monitoring Docker containers - Docker NYC Feb 2015
Monitoring Docker containers - Docker NYC Feb 2015
Datadog
 
Server deployment
Server deploymentServer deployment
Server deployment
bsadd
 
Building Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScriptBuilding Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScript
MSDEVMTL
 
EKS security best practices
EKS security best practicesEKS security best practices
EKS security best practices
John Varghese
 
Building Microservices with Spring Cloud and Netflix OSS
Building Microservices with Spring Cloud and Netflix OSSBuilding Microservices with Spring Cloud and Netflix OSS
Building Microservices with Spring Cloud and Netflix OSS
Semih Hakkıoğlu
 
Criteo meetup - S.R.E Tech Talk
Criteo meetup - S.R.E Tech TalkCriteo meetup - S.R.E Tech Talk
Criteo meetup - S.R.E Tech Talk
Pierre Mavro
 
Consul and Consul Pusher
Consul and Consul PusherConsul and Consul Pusher
Consul and Consul Pusher
Łukasz Cieśluk
 
Google Cloud Platform for DeVops, by Javier Ramirez @ teowaki
Google Cloud Platform for DeVops, by Javier Ramirez @ teowakiGoogle Cloud Platform for DeVops, by Javier Ramirez @ teowaki
Google Cloud Platform for DeVops, by Javier Ramirez @ teowaki
javier ramirez
 
Fact-Based Monitoring - PuppetConf 2014
Fact-Based Monitoring - PuppetConf 2014Fact-Based Monitoring - PuppetConf 2014
Fact-Based Monitoring - PuppetConf 2014
Puppet
 
Security model for a remote company
Security model for a remote companySecurity model for a remote company
Security model for a remote company
Pierre Mavro
 

What's hot (20)

Microservices with docker swarm and consul
Microservices with docker swarm and consulMicroservices with docker swarm and consul
Microservices with docker swarm and consul
 
Kubernetes - Security Journey
Kubernetes - Security JourneyKubernetes - Security Journey
Kubernetes - Security Journey
 
Setting up Kubernetes with tectonic
Setting up Kubernetes with tectonicSetting up Kubernetes with tectonic
Setting up Kubernetes with tectonic
 
Openstack Overview
Openstack OverviewOpenstack Overview
Openstack Overview
 
Spring Cloud and Netflix Components
Spring Cloud and Netflix ComponentsSpring Cloud and Netflix Components
Spring Cloud and Netflix Components
 
Greach 2014 - Road to Grails 3.0
Greach 2014  - Road to Grails 3.0Greach 2014  - Road to Grails 3.0
Greach 2014 - Road to Grails 3.0
 
Best Practices with Azure Kubernetes Services
Best Practices with Azure Kubernetes ServicesBest Practices with Azure Kubernetes Services
Best Practices with Azure Kubernetes Services
 
How to Build Your First Web App in Go
How to Build Your First Web App in GoHow to Build Your First Web App in Go
How to Build Your First Web App in Go
 
Virtualization at Gilt - Rangarajan Radhakrishnan
Virtualization at Gilt - Rangarajan RadhakrishnanVirtualization at Gilt - Rangarajan Radhakrishnan
Virtualization at Gilt - Rangarajan Radhakrishnan
 
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
Create Great CNCF User-Base from Lessons Learned from Other Open Source Commu...
 
Monitoring Docker containers - Docker NYC Feb 2015
Monitoring Docker containers - Docker NYC Feb 2015Monitoring Docker containers - Docker NYC Feb 2015
Monitoring Docker containers - Docker NYC Feb 2015
 
Server deployment
Server deploymentServer deployment
Server deployment
 
Building Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScriptBuilding Angular 2.0 applications with TypeScript
Building Angular 2.0 applications with TypeScript
 
EKS security best practices
EKS security best practicesEKS security best practices
EKS security best practices
 
Building Microservices with Spring Cloud and Netflix OSS
Building Microservices with Spring Cloud and Netflix OSSBuilding Microservices with Spring Cloud and Netflix OSS
Building Microservices with Spring Cloud and Netflix OSS
 
Criteo meetup - S.R.E Tech Talk
Criteo meetup - S.R.E Tech TalkCriteo meetup - S.R.E Tech Talk
Criteo meetup - S.R.E Tech Talk
 
Consul and Consul Pusher
Consul and Consul PusherConsul and Consul Pusher
Consul and Consul Pusher
 
Google Cloud Platform for DeVops, by Javier Ramirez @ teowaki
Google Cloud Platform for DeVops, by Javier Ramirez @ teowakiGoogle Cloud Platform for DeVops, by Javier Ramirez @ teowaki
Google Cloud Platform for DeVops, by Javier Ramirez @ teowaki
 
Fact-Based Monitoring - PuppetConf 2014
Fact-Based Monitoring - PuppetConf 2014Fact-Based Monitoring - PuppetConf 2014
Fact-Based Monitoring - PuppetConf 2014
 
Security model for a remote company
Security model for a remote companySecurity model for a remote company
Security model for a remote company
 

Viewers also liked

DevOps Toolchain v1.0
DevOps Toolchain v1.0DevOps Toolchain v1.0
DevOps Toolchain v1.0
Giragadurai Vallirajan
 
KubeCon EU 2016: Using Traffic Control to Test Apps in Kubernetes
KubeCon EU 2016: Using Traffic Control to Test Apps in KubernetesKubeCon EU 2016: Using Traffic Control to Test Apps in Kubernetes
KubeCon EU 2016: Using Traffic Control to Test Apps in Kubernetes
KubeAcademy
 
Secretsofrubyonrails
SecretsofrubyonrailsSecretsofrubyonrails
Secretsofrubyonrails
RubyOnRails_dude
 
Co to je Producteev
Co to je ProducteevCo to je Producteev
Co to je Producteev
David Podhola
 
Spring Trip 2007 Texas Style
Spring Trip 2007 Texas StyleSpring Trip 2007 Texas Style
Spring Trip 2007 Texas Style
Alyson Esch
 
Co je to projekt
Co je to projektCo je to projekt
Co je to projekt
David Podhola
 
Úvod do úkolů
Úvod do úkolůÚvod do úkolů
Úvod do úkolů
David Podhola
 
Jak v Producteev zadat úkol
Jak v Producteev zadat úkolJak v Producteev zadat úkol
Jak v Producteev zadat úkol
David Podhola
 
Jak si založit účet v Producteev
Jak si založit účet v ProducteevJak si založit účet v Producteev
Jak si založit účet v ProducteevDavid Podhola
 
Konfigurace frameworku Oak v Piranha CMS Oak
Konfigurace frameworku Oak v Piranha CMS OakKonfigurace frameworku Oak v Piranha CMS Oak
Konfigurace frameworku Oak v Piranha CMS Oak
David Podhola
 
Igo [Chinese Chess]
Igo [Chinese Chess]Igo [Chinese Chess]
Igo [Chinese Chess]
gufangli
 
Seminář crm4 energy 20130821
Seminář crm4 energy 20130821Seminář crm4 energy 20130821
Seminář crm4 energy 20130821
David Podhola
 
SprinxCRM UniversalSync v6.2.4.12
SprinxCRM UniversalSync v6.2.4.12SprinxCRM UniversalSync v6.2.4.12
SprinxCRM UniversalSync v6.2.4.12
David Podhola
 
Industrial Applications of Cryptography
Industrial Applications of CryptographyIndustrial Applications of Cryptography
Industrial Applications of Cryptography
David Podhola
 
Finalmonarch
FinalmonarchFinalmonarch
Finalmonarch
Patricia Moreno
 
Úvod do CRM
Úvod do CRMÚvod do CRM
Úvod do CRM
David Podhola
 
What's new in Kubernetes
What's new in KubernetesWhat's new in Kubernetes
What's new in Kubernetes
Daniel Smith
 
Building and Deploying Application to Apache Mesos
Building and Deploying Application to Apache MesosBuilding and Deploying Application to Apache Mesos
Building and Deploying Application to Apache Mesos
Joe Stein
 
Openstack benelux 2015
Openstack benelux 2015Openstack benelux 2015
Openstack benelux 2015
Microsoft
 
Dev opsmeetup sept2013-leaseweb
Dev opsmeetup sept2013-leasewebDev opsmeetup sept2013-leaseweb
Dev opsmeetup sept2013-leaseweb
Microsoft
 

Viewers also liked (20)

DevOps Toolchain v1.0
DevOps Toolchain v1.0DevOps Toolchain v1.0
DevOps Toolchain v1.0
 
KubeCon EU 2016: Using Traffic Control to Test Apps in Kubernetes
KubeCon EU 2016: Using Traffic Control to Test Apps in KubernetesKubeCon EU 2016: Using Traffic Control to Test Apps in Kubernetes
KubeCon EU 2016: Using Traffic Control to Test Apps in Kubernetes
 
Secretsofrubyonrails
SecretsofrubyonrailsSecretsofrubyonrails
Secretsofrubyonrails
 
Co to je Producteev
Co to je ProducteevCo to je Producteev
Co to je Producteev
 
Spring Trip 2007 Texas Style
Spring Trip 2007 Texas StyleSpring Trip 2007 Texas Style
Spring Trip 2007 Texas Style
 
Co je to projekt
Co je to projektCo je to projekt
Co je to projekt
 
Úvod do úkolů
Úvod do úkolůÚvod do úkolů
Úvod do úkolů
 
Jak v Producteev zadat úkol
Jak v Producteev zadat úkolJak v Producteev zadat úkol
Jak v Producteev zadat úkol
 
Jak si založit účet v Producteev
Jak si založit účet v ProducteevJak si založit účet v Producteev
Jak si založit účet v Producteev
 
Konfigurace frameworku Oak v Piranha CMS Oak
Konfigurace frameworku Oak v Piranha CMS OakKonfigurace frameworku Oak v Piranha CMS Oak
Konfigurace frameworku Oak v Piranha CMS Oak
 
Igo [Chinese Chess]
Igo [Chinese Chess]Igo [Chinese Chess]
Igo [Chinese Chess]
 
Seminář crm4 energy 20130821
Seminář crm4 energy 20130821Seminář crm4 energy 20130821
Seminář crm4 energy 20130821
 
SprinxCRM UniversalSync v6.2.4.12
SprinxCRM UniversalSync v6.2.4.12SprinxCRM UniversalSync v6.2.4.12
SprinxCRM UniversalSync v6.2.4.12
 
Industrial Applications of Cryptography
Industrial Applications of CryptographyIndustrial Applications of Cryptography
Industrial Applications of Cryptography
 
Finalmonarch
FinalmonarchFinalmonarch
Finalmonarch
 
Úvod do CRM
Úvod do CRMÚvod do CRM
Úvod do CRM
 
What's new in Kubernetes
What's new in KubernetesWhat's new in Kubernetes
What's new in Kubernetes
 
Building and Deploying Application to Apache Mesos
Building and Deploying Application to Apache MesosBuilding and Deploying Application to Apache Mesos
Building and Deploying Application to Apache Mesos
 
Openstack benelux 2015
Openstack benelux 2015Openstack benelux 2015
Openstack benelux 2015
 
Dev opsmeetup sept2013-leaseweb
Dev opsmeetup sept2013-leasewebDev opsmeetup sept2013-leaseweb
Dev opsmeetup sept2013-leaseweb
 

Similar to New Features of Kubernetes v1.2.0 beta

Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit Microservices
QAware GmbH
 
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless OverviewOpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
María Angélica Bracho
 
Introduction to Tekton
Introduction to TektonIntroduction to Tekton
Introduction to Tekton
Victor Iglesias
 
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
Cloud Native Day Tel Aviv
 
Cloud Native APIs: The API Operator for Kubernetes
Cloud Native APIs: The API Operator for KubernetesCloud Native APIs: The API Operator for Kubernetes
Cloud Native APIs: The API Operator for Kubernetes
WSO2
 
Kubernetes for Java Developers
 Kubernetes for Java Developers Kubernetes for Java Developers
Kubernetes for Java Developers
Red Hat Developers
 
JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers
Rafael Benevides
 
[APIdays Paris 2019] From Microservices to APIs: The API operator in Kubernetes
[APIdays Paris 2019] From Microservices to APIs: The API operator in Kubernetes[APIdays Paris 2019] From Microservices to APIs: The API operator in Kubernetes
[APIdays Paris 2019] From Microservices to APIs: The API operator in Kubernetes
WSO2
 
Architecting the Future: Abstractions and Metadata - KCDC
Architecting the Future: Abstractions and Metadata - KCDCArchitecting the Future: Abstractions and Metadata - KCDC
Architecting the Future: Abstractions and Metadata - KCDC
Daniel Barker
 
Istio Playground
Istio PlaygroundIstio Playground
Istio Playground
QAware GmbH
 
Kubernetes Overview - Deploy your app with confidence
Kubernetes Overview - Deploy your app with confidenceKubernetes Overview - Deploy your app with confidence
Kubernetes Overview - Deploy your app with confidence
Omer Barel
 
Kubernetes walkthrough
Kubernetes walkthroughKubernetes walkthrough
Kubernetes walkthrough
Sangwon Lee
 
Developing Serverless Applications on Kubernetes with Knative
Developing Serverless Applications on Kubernetes with KnativeDeveloping Serverless Applications on Kubernetes with Knative
Developing Serverless Applications on Kubernetes with Knative
VMware Tanzu
 
Architecting the Future: Abstractions and Metadata - STL SilverLinings
Architecting the Future: Abstractions and Metadata - STL SilverLiningsArchitecting the Future: Abstractions and Metadata - STL SilverLinings
Architecting the Future: Abstractions and Metadata - STL SilverLinings
Daniel Barker
 
Architecting the Future: Abstractions and Metadata - BSidesKC
Architecting the Future: Abstractions and Metadata - BSidesKCArchitecting the Future: Abstractions and Metadata - BSidesKC
Architecting the Future: Abstractions and Metadata - BSidesKC
Daniel Barker
 
Kubernetes best practices
Kubernetes best practicesKubernetes best practices
Kubernetes best practices
Bill Liu
 
Mastering Microservices with Kong (DevoxxUK 2019)
Mastering Microservices with Kong (DevoxxUK 2019)Mastering Microservices with Kong (DevoxxUK 2019)
Mastering Microservices with Kong (DevoxxUK 2019)
Maarten Mulders
 
Kubernetes_Webinar_Slide_Deck.pdf
Kubernetes_Webinar_Slide_Deck.pdfKubernetes_Webinar_Slide_Deck.pdf
Kubernetes_Webinar_Slide_Deck.pdf
AuliaFebrian2
 
How to Install and Use Kubernetes by Weaveworks
How to Install and Use Kubernetes by Weaveworks How to Install and Use Kubernetes by Weaveworks
How to Install and Use Kubernetes by Weaveworks
Weaveworks
 
betterCode Workshop: Effizientes DevOps-Tooling mit Go
betterCode Workshop:  Effizientes DevOps-Tooling mit GobetterCode Workshop:  Effizientes DevOps-Tooling mit Go
betterCode Workshop: Effizientes DevOps-Tooling mit Go
QAware GmbH
 

Similar to New Features of Kubernetes v1.2.0 beta (20)

Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit Microservices
 
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless OverviewOpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
OpenShift Meetup - Tokyo - Service Mesh and Serverless Overview
 
Introduction to Tekton
Introduction to TektonIntroduction to Tekton
Introduction to Tekton
 
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
K8s Pod Scheduling - Deep Dive. By Tsahi Duek.
 
Cloud Native APIs: The API Operator for Kubernetes
Cloud Native APIs: The API Operator for KubernetesCloud Native APIs: The API Operator for Kubernetes
Cloud Native APIs: The API Operator for Kubernetes
 
Kubernetes for Java Developers
 Kubernetes for Java Developers Kubernetes for Java Developers
Kubernetes for Java Developers
 
JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers JavaOne 2016: Kubernetes introduction for Java Developers
JavaOne 2016: Kubernetes introduction for Java Developers
 
[APIdays Paris 2019] From Microservices to APIs: The API operator in Kubernetes
[APIdays Paris 2019] From Microservices to APIs: The API operator in Kubernetes[APIdays Paris 2019] From Microservices to APIs: The API operator in Kubernetes
[APIdays Paris 2019] From Microservices to APIs: The API operator in Kubernetes
 
Architecting the Future: Abstractions and Metadata - KCDC
Architecting the Future: Abstractions and Metadata - KCDCArchitecting the Future: Abstractions and Metadata - KCDC
Architecting the Future: Abstractions and Metadata - KCDC
 
Istio Playground
Istio PlaygroundIstio Playground
Istio Playground
 
Kubernetes Overview - Deploy your app with confidence
Kubernetes Overview - Deploy your app with confidenceKubernetes Overview - Deploy your app with confidence
Kubernetes Overview - Deploy your app with confidence
 
Kubernetes walkthrough
Kubernetes walkthroughKubernetes walkthrough
Kubernetes walkthrough
 
Developing Serverless Applications on Kubernetes with Knative
Developing Serverless Applications on Kubernetes with KnativeDeveloping Serverless Applications on Kubernetes with Knative
Developing Serverless Applications on Kubernetes with Knative
 
Architecting the Future: Abstractions and Metadata - STL SilverLinings
Architecting the Future: Abstractions and Metadata - STL SilverLiningsArchitecting the Future: Abstractions and Metadata - STL SilverLinings
Architecting the Future: Abstractions and Metadata - STL SilverLinings
 
Architecting the Future: Abstractions and Metadata - BSidesKC
Architecting the Future: Abstractions and Metadata - BSidesKCArchitecting the Future: Abstractions and Metadata - BSidesKC
Architecting the Future: Abstractions and Metadata - BSidesKC
 
Kubernetes best practices
Kubernetes best practicesKubernetes best practices
Kubernetes best practices
 
Mastering Microservices with Kong (DevoxxUK 2019)
Mastering Microservices with Kong (DevoxxUK 2019)Mastering Microservices with Kong (DevoxxUK 2019)
Mastering Microservices with Kong (DevoxxUK 2019)
 
Kubernetes_Webinar_Slide_Deck.pdf
Kubernetes_Webinar_Slide_Deck.pdfKubernetes_Webinar_Slide_Deck.pdf
Kubernetes_Webinar_Slide_Deck.pdf
 
How to Install and Use Kubernetes by Weaveworks
How to Install and Use Kubernetes by Weaveworks How to Install and Use Kubernetes by Weaveworks
How to Install and Use Kubernetes by Weaveworks
 
betterCode Workshop: Effizientes DevOps-Tooling mit Go
betterCode Workshop:  Effizientes DevOps-Tooling mit GobetterCode Workshop:  Effizientes DevOps-Tooling mit Go
betterCode Workshop: Effizientes DevOps-Tooling mit Go
 

Recently uploaded

Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 

Recently uploaded (20)

Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 

New Features of Kubernetes v1.2.0 beta

  • 2. Outline ● released on March 7, 2016 ● improved scalability ○ more nodes ○ more pods per node ● features from 1.1 time frames and stabilized ○ Horizontal pod auto-scaling API ■ add custom metrics ○ Ingress API ○ Job API ○ DaemonSet API ○ Deployment API ○ ConfigMap API ○ Make it easier to create resources ■ Namespace generation ■ Secret/config generation ■ export and convert @girag
  • 3. ● introduced in v1.1 ● part of extensions api ● increase or decrease the pod’s count in replication controller / deployments as per CPU utilization ● implemented as control loop ● uses heapster for metric collection (Currently CPU Utilization only) ● autoscaling and rolling-update will not work together, if rolling-update manipulates replica count of replication controller ● will support custom metrics too Horizontal Pod Autoscaler @girag
  • 4. apiVersion: extensions/v1beta1 kind: HorizontalPodAutoscaler metadata: name: tomcat7 namespace: default spec: scaleRef: kind: ReplicationController name: tomcat7 subresource: scale minReplicas: 1 maxReplicas: 5 cpuUtilization: targetPercentage: 80 Horizontal Pod Autoscaler @girag
  • 5. apiVersion: extensions/v1beta1 kind: HorizontalPodAutoscaler metadata: name: tomcat7 namespace: default spec: scaleRef: kind: ReplicationController name: tomcat7 subresource: scale minReplicas: 1 maxReplicas: 5 cpuUtilization: targetPercentage: 80 Horizontal Pod Autoscaler @girag HPA created with the name tomcat7 and act as service with 1-5 replications depending on load if cpuUtilization > 80** and replica < 5 spawn tomcat7 else cpuUtiliaztion fall down and sustained for 5 min and replica > 1 remove tomcat7 ** when start or stop pods the metric get noises, so hpa wait for a while (3-5 minutes) after every action, for picking right data.
  • 6. ● introduced in v1.1 ● part of extensions api ● set of rules that allow inbound traffic to reach the k8s cluster services. ● types ○ Single Service Ingress ○ Simple Fanout ○ Name based Virtual Hosting ○ Loadbalancing Ingress @girag
  • 7. apiVersion: extensions/v1beta1 kind: Ingress metadata: name: virtual-hosting spec: rules: - host: api.gopaddle.io http: paths: - backend: serviceName: bm-gateway servicePort: 80 Ingress - host: beta.gopaddle.io http: paths: - backend: serviceName: bm-dashboard servicePort: 80 - host: doc.gopaddle.io http: paths: - backend: serviceName: bm-docs servicePort: 80 @girag
  • 8. Ingress - host: beta.gopaddle.io http: paths: - backend: serviceName: bm-dashboard servicePort: 80 - host: doc.gopaddle.io http: paths: - backend: serviceName: bm-docs servicePort: 80 @girag bm- gateway bm- dashboard bm- docs apiVersion: extensions/v1beta1 kind: Ingress metadata: name: virtual-hosting spec: rules: - host: api.gopaddle.io http: paths: - backend: serviceName: bm-gateway servicePort: 80 172.149.22.101 api beta doc gopaddle.io
  • 9. ● introduced in v1.1 ● part of extensions api ● build custom lifecycle of pods ● creates one or more pods and ensures that a specified number of them successfully terminate ● control lifecycle of pods which has RestartPolicy equal to OnFailure or Never. Jobs @girag
  • 10. apiVersion: extensions/v1beta1 kind: Job metadata: name: appsvr spec: completions: 4 parallelism: 2 selector: matchLabels: app: appsvr template: metadata: name: appsvr labels: app: appsvr spec: containers: - name: appsvr image: bluemeric/javasvr restartPolicy: Never Jobs @girag
  • 11. apiVersion: extensions/v1beta1 kind: Job metadata: name: appsvr spec: completions: 4 parallelism: 2 selector: matchLabels: app: appsvr template: metadata: name: appsvr labels: app: appsvr spec: containers: - name: appsvr image: bluemeric/javasvr restartPolicy: Never Jobs @girag Job for appsvr, > .spec.completions : run 4 instance of appsvrs. > .spec.parallelism : run parallelly 2 appsvrs.
  • 12. ● introduced in v1.1 ● part of extensions api ● ensures that all nodes or some (by NodeSelector) runs pod ● add a pod from Daemonset, while a node added in to k8s cluster, and removes and clean pod when node goes off cluster. Daemon Sets @girag
  • 13. apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: ds-monitor labels: apps: monitor spec: selector: apps: monitor template: metadata: name: d-monitor labels: apps: monitor spec: hostNetwork: true containers: - name: ds-mon image: bm/mon:v2 Daemon Sets @girag
  • 14. apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: ds-monitor labels: apps: monitor spec: selector: apps: monitor template: metadata: name: d-monitor labels: apps: monitor spec: hostNetwork: true containers: - name: ds-mon image: bm/mon:v2 Daemon Sets @girag node-01 node-02 node-03 kube-master monitor monitor monitor …. …. …. …. …. …. one “monitor” pod per node
  • 15. ● introduced in v1.1 ● part of extensions api ● smoothens deployment process of creating new resources and updating them ● supported resource are Pods and Replication Controllers. ● while updating, it ensures sufficient capacity of new pod(s) available to serve and deleting old ones. Deployments @girag
  • 16. apiVersion: extensions/v1beta1 kind: Deployment metadata: name: appsvr-deployment spec: replicas: 3 template: metadata: labels: app: appsvr spec: containers: - name: appsvr image: bm/appsvr:v1 ports: - containerPort: 8080 Deployments apiVersion: extensions/v1beta1 kind: Deployment metadata: name: appsvr-deployment spec: replicas: 5 template: metadata: labels: app: appsvr spec: containers: - name: appsvr image: bm/appsvr:v2 ports: - containerPort: 8080 @girag
  • 17. apiVersion: extensions/v1beta1 kind: Deployment metadata: name: appsvr-deployment spec: replicas: 3 template: metadata: labels: app: appsvr spec: containers: - name: appsvr image: bm/appsvr:v1 ports: - containerPort: 8080 Deployments apiVersion: extensions/v1beta1 kind: Deployment metadata: name: appsvr-deployment spec: replicas: 5 template: metadata: labels: app: appsvr spec: containers: - name: appsvr image: bm/appsvr:v2 ports: - containerPort: 8080 $ kubectl create -f dep.yaml $ kubectl apply -f dep.yaml @girag creates 3 replica of appsvr:v1 pods update 3 pod with appsvr:v2 when no more outstanding load && creates 2 more replica of appsvr: v2 pods
  • 18. ● introduced in v1.1 ● part of extensions api ● small in size ● contains sensitive data like password, access-token, keys ● usage ○ file in mounted volume ○ used by kublet while pulling images to build pod Secrets @girag
  • 19. apiVersion: v1 kind: Secret metadata: name: user-profile type: Opaque data: user: graha password: dmFsdWUtMQ0K Secrets apiVersion: v1 kind: Pod metadata: name: secret-access-pod spec: containers: - name: tester image: kubernetes/mounttest:0.1 command: [ "/mt", "--file_content=/etc/profile/user" ] volumeMounts: # name must match the volume name below - name: profile mountPath: /etc/profile volumes: - name: profile secret: secretName: user-profile restartPolicy: Never @girag
  • 20. apiVersion: v1 kind: Secret metadata: name: user-profile type: Opaque data: user: graha password: dmFsdWUtMQ0K Secrets apiVersion: v1 kind: Pod metadata: name: secret-access-pod spec: containers: - name: tester image: kubernetes/mounttest:0.1 command: [ "/mt", "--file_content=/etc/profile/user" ] volumeMounts: # name must match the volume name below - name: profile mountPath: /etc/profile volumes: - name: profile secret: secretName: user-profile restartPolicy: Never @girag creates a secret store for user-profile mounted as file system into /etc/profile
  • 21. ● introduced in v1 ● part of core api ● flexible configuration model for k8s ● simplify storing configuration profile for application ● dynamic distribution of configuration ● usage ○ as environment variable ○ in volume ○ consistent data even from updating configuration model ConfigMap @girag
  • 22. apiVersion: v1 kind: ConfigMap metadata: name: bm-env-config data: design-cache: 100 app-cache: 100 n-cmp-thread: 5 ConfigMap @girag apiVersion: v1 kind: Pod metadata: name: config-test-pod spec: containers: - name: config-test-container image: gcr.io/google_containers/busybox command: [ "/bin/sh", "cat", "/etc/config/bm.env" ] volumeMounts: - name: config-volume mountPath: /etc/config volumes: - name: config-volume configMap: name: bm-env-config restartPolicy: Never
  • 23. apiVersion: v1 kind: ConfigMap metadata: name: bm-env-config data: design-cache: 100 app-cache: 100 n-cmp-thread: 5 ConfigMap @girag apiVersion: v1 kind: Pod metadata: name: config-test-pod spec: containers: - name: config-test-container image: gcr.io/google_containers/busybox command: [ "/bin/sh", "cat", "/etc/config/bm.env" ] volumeMounts: - name: config-volume mountPath: /etc/config volumes: - name: config-volume configMap: name: bm-env-config restartPolicy: Never creates a configuration store for bm-env like secrets mounted as file system into /etc/config
  • 24. ● Locate our work ○ www.gopaddle.io ○ www.bluemeric.com ○ http://www.bluemeric.com/blog/ ● Reach us ○ @bluemeric ○ http://www.bluemeric.com/contact/ Q&A @girag