SlideShare a Scribd company logo
Kubernetes 1.16 and
Rancher 2.3
Enhancements
@saiyampathak
About myself
Saiyam Pathak
• Twitter - @saiyampathak
• Blog –
https://medium.com/@saiyampathak
• Rancher and Influx Bangalore
Meetup Organizer
• Influx ACE
• Rancher RanchHands member
• Kubernetes Member and APAC
coordinator
Kubernetes 1.16
31
Enhancements
8 Stable
8 Beta
15 Alpha
IPV4/IPV6 Dual Stack Support
https://github.com/kubernetes/enhancements/issues/563
Alpha in 1.16
IPV6 was added in k8s 1.9: either ipv4 or ipv6 or single-pod-IP-aware
1.16 :
Multiple ipv4/ipv6 address assignment per pod
Native ipv4-to-ipv4 in parallel with ipv6-to-ipv6 communication to, from, and within the cluster
Tested in Bridge CNI plugin, PTP CNI plugin
PVC cloning
• Beta 1.16
• Support added for adding existing PVC in the data source field to
indicate that user wants to clone a Volume
• Cloning support (VolumePVCDataSource) is only available for CSI
drivers.
• PVC needs to be in same namespace
Custom
Resource
Definition #95
• Graduated
• CRD are the way to extend k8s API to include
custom resource types that behave like native
resource type. Beta since 1.7
Publish CRD
open API
schema #692
• Graduated to stable
• CustomResourceDefinition (CRD) allows the
CRD author to define an OpenAPI v3 schema to
enable server-side validation for
CustomResources (CR).
Subresources
for custom
resources -
#571
• Graduated to Stable
• /status and /scale subresources for CR’s
• // +kubebuilder:subresource:status
Defaulting and Pruning for custom resources- #575
• Pruning- Stable , Defaulting- Beta
• features aiming to facilitate the JSON
handling and processing associated with
CRD
• If pruning is enabled, unspecified fields
in CR on creation and on update are
dropped (preserveUnknownFields)
• Defaulting allows to specify default
values in the OpenAPi validation
schema (CustomResourceDefaulting)
Defaulting Sample
Webhook
conversion for
custom
resources -
#598
Graduated to stable
Different CRD versions can have different
schemas. You can now handle on-the-fly
conversion between versions defining
and implementing a conversion webhook.
Admission
Webhooks -
#492
• Graduated to stable
• Way to extend Kubernetes by putting
hook on object
creation/modification/deletion.
Admission webhooks can mutate or
validate the object
• Extended to single object
Add watch
bookmarks
support- #956
Graduted to Beta
Reduce load on ApiServer by minimizing
watch events that needs to be processed
after restarting the watch.
Bookmark represents all objects up to a
given resourceVersion requested by the
client have already been sent.
Server-Side Apply - #555
• Graduated to Beta
• `kubectl apply` - moves to control plane/apiserver
• Current problems:
• User does POST > changes something > again apply : boom!!
• User does apply > edit > apply : boom !!
• User does get > edit locally > apply : boom !!
• User tweaks annotations > apply : boom !!
Deprecate
and remove
SelfLink -
#1164 NET NEW ALPHA WILL BE DEPRECATED
IN 1 YEAR
Building
Kubernetes
without In-
Tree Cloud -
#1179
• Net New Alpha
• Removing in tree cloud provider
implementations code
Kubeadm for windows- 995
Advanced configurations with kubeadm(using kustomize) - #1177
• Net New Alpha
• Join windows machine to Kubernetes cluster
• Widows support is there since 1.14
• Rancher 2.3 has windows support (https://rancher.com/blog/2019/2019-10-17-
zero-to-windows-containers-with-rancher-2-3-and-terraform/)
• kubeadm init --experimental-kustomize kubeadm-patches/
• Static pod customizations
Kubernetes
metrics
overhaul -
#1206
• Net New Alpha
• Metrics not following instrumentation
guidelines, Prometheus guidelines
• Kubernetes 1.16 removes the
labels pod_name and container_name from
cAdvisor metrics, duplicates
of pod and container.
• Kubernetes 1.17 will deprecate some metrics
like
• apiserver_request_count
• apiserver_request_latencies
• apiserver_request_latencies_summary
• apiserver_dropped_requests
Endpoint
Slicing - #752
Net New Alpha
Endpoints object may grow too big and become
problematic; as big objects cannot be stored in etcd
will split endpoints into several Endpoint Slice
resources, solving many of the current API
problems
Any change in an endpoint, Endpoints object is re-
computed, stored and shared with all watchers and
causes problems like rolling upgrades.
Ephemeral containers- #277
• Great way to debug pods, as you can’t add regular
container
• Troubleshooting and debugging purpose
• EphemeralContainers – feature gate needs to be enabled
• Fields
like ports, livenessProbe, readinessProbe or lifecycle that
imply a role in a pod will be disallowed.
• Maybe : kubectl debug -c debug-shell --image=debian
target-pod -- bash
Node topology
manager - #693
• Alpha
• For Ultra low latency – Machine learning
workloads
• pods running in Guaranteed QoS class that
have an integer cpu value are considered by
the Topology Manager
• Kubelet component centralizes
the coordination of hardware resource
assignments
Other
Changes
• #688 Pod overhead: account resources tied to the
pod sandbox, but not specific containers
• #895 Even pod spreading across failure domains
• #950 Add pod-startup liveness-probe holdoff for
slow-starting pods
• #964 Extending RequestedToCapacityRatio priority
function to support resource bin packing of
extended resources
• #894 RuntimeClass scheduling – Beta
• #689 Support GMSA for Windows workloads - Beta
References and Kubernetes
1.17 updates link
• https://github.com/kubernetes/kubernet
es/blob/master/CHANGELOG-1.17.md
• https://sysdig.com/blog/whats-new-
kubernetes-1-16/
• https://www.youtube.com/watch?v=q9E
s0mXQlOc
Big Thanks to Awesome Kubernetes Release Team :
https://github.com/kubernetes/sig-
release/blob/master/releases/release-1.16/release_team.md
New in
Rancher 2.3
• Reuse Kubernetes configurations across all their cluster
deployments
• First Kubernetes management platform to deliver GA
support for Windows Containers and Kubernetes with
Windows worker nodes
• Gsuite integration
• Istio from Rancher
• Kiali dashboards for traffic and telemetry visualization
• Jaeger for tracing
• Prometheus and Grafana for observability
• Thank you• Thank you

More Related Content

PPTX
PDF
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
PDF
Multi-cloud Kubernetes BCDR with Velero
PDF
WTF Do We Need a Service Mesh?
PPTX
Canary Releases on Kubernetes w/ Spinnaker, Istio, and Prometheus
PDF
Kubernetes Logging
PPTX
Application Portability with Kubernetes (k8)
PDF
KUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLING
Effective Kubernetes - Is Kubernetes the new Linux? Is the new Application Se...
Multi-cloud Kubernetes BCDR with Velero
WTF Do We Need a Service Mesh?
Canary Releases on Kubernetes w/ Spinnaker, Istio, and Prometheus
Kubernetes Logging
Application Portability with Kubernetes (k8)
KUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLING

What's hot (20)

PDF
Kubernetes Multi-cluster without Federation - Kubecon EU 2018
PPTX
Why kubernetes matters
PDF
Managing kubernetes deployment with operators
PDF
KubeCon EU 2016: Heroku to Kubernetes
PPTX
Kubernetes Helm: Why It Matters
PPTX
CI Implementation with Kubernetes at LivePerson by Saar Demri
PDF
Running I/O intensive workloads on Kubernetes, by Nati Shalom
PPTX
Kubernetes security
PPTX
Gatekeeper: API gateway
PDF
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
PPTX
Kubernetes101 - Pune Kubernetes Meetup 6
PPTX
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
PDF
Setup Hybrid Clusters Using Kubernetes Federation
PDF
On Prem Container Cloud - Lessons Learned
PDF
Kubernetes debug like a pro
PDF
Crafting Kubernetes Operators
PPTX
Kubernetes fundamentals
PDF
Container Runtime Security with Falco, by Néstor Salceda
PPTX
Centralizing Kubernetes and Container Operations
ODP
Network services on Kubernetes on premise
Kubernetes Multi-cluster without Federation - Kubecon EU 2018
Why kubernetes matters
Managing kubernetes deployment with operators
KubeCon EU 2016: Heroku to Kubernetes
Kubernetes Helm: Why It Matters
CI Implementation with Kubernetes at LivePerson by Saar Demri
Running I/O intensive workloads on Kubernetes, by Nati Shalom
Kubernetes security
Gatekeeper: API gateway
KubeCon EU 2016: ITNW (If This Now What): Orchestrating an Enterprise
Kubernetes101 - Pune Kubernetes Meetup 6
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
Setup Hybrid Clusters Using Kubernetes Federation
On Prem Container Cloud - Lessons Learned
Kubernetes debug like a pro
Crafting Kubernetes Operators
Kubernetes fundamentals
Container Runtime Security with Falco, by Néstor Salceda
Centralizing Kubernetes and Container Operations
Network services on Kubernetes on premise
Ad

Similar to Kubernetes 1.16 and rancher 2.3 enhancements (20)

PDF
Introduction of kubernetes rancher
PDF
Introduction of k8s rancher
PDF
Kubernetes and Cloud Native Update Q4 2018
PPTX
Container Conf 2017: Rancher Kubernetes
PPTX
Rancher k8s Training - Oct 4 - Rajashree Mandaogane.pptx
PDF
JDO 2019: What you should be aware of before setting up kubernetes on premise...
PPTX
More tips and tricks for running containers like a pro - Rancher Online MEetu...
PPTX
Kubernetes release 1.12
PDF
Rancher 2.0 Technical Deep Dive
PDF
Rancher 2.x first step before deep dive
PPTX
Kubernetes Introduction & Whats new in Kubernetes 1.6
PPTX
Introducing Kubernetes Clusters in Rancher - February 2016 Online Meetup
PDF
Extending kubernetes
PDF
Future of Kubernetes and its Impact on Technology Industry.pdf
PDF
Extend and build on Kubernetes
PDF
Free GitOps Workshop + Intro to Kubernetes & GitOps
PDF
Kubernetes111111111111111111122233334334
PDF
Let’s unbox Rancher 2.0 <v2.0.0>
PDF
Rancher Labs - Your own PaaS in action
PDF
Rancher Labs - Your own PaaS in action
Introduction of kubernetes rancher
Introduction of k8s rancher
Kubernetes and Cloud Native Update Q4 2018
Container Conf 2017: Rancher Kubernetes
Rancher k8s Training - Oct 4 - Rajashree Mandaogane.pptx
JDO 2019: What you should be aware of before setting up kubernetes on premise...
More tips and tricks for running containers like a pro - Rancher Online MEetu...
Kubernetes release 1.12
Rancher 2.0 Technical Deep Dive
Rancher 2.x first step before deep dive
Kubernetes Introduction & Whats new in Kubernetes 1.6
Introducing Kubernetes Clusters in Rancher - February 2016 Online Meetup
Extending kubernetes
Future of Kubernetes and its Impact on Technology Industry.pdf
Extend and build on Kubernetes
Free GitOps Workshop + Intro to Kubernetes & GitOps
Kubernetes111111111111111111122233334334
Let’s unbox Rancher 2.0 <v2.0.0>
Rancher Labs - Your own PaaS in action
Rancher Labs - Your own PaaS in action
Ad

Recently uploaded (20)

PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PDF
Arduino robotics embedded978-1-4302-3184-4.pdf
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
Strings in CPP - Strings in C++ are sequences of characters used to store and...
PDF
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
PPTX
Lecture Notes Electrical Wiring System Components
PPTX
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
UNIT 4 Total Quality Management .pptx
PDF
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
PPTX
web development for engineering and engineering
PPTX
bas. eng. economics group 4 presentation 1.pptx
PDF
Structs to JSON How Go Powers REST APIs.pdf
PDF
PPT on Performance Review to get promotions
PPT
Project quality management in manufacturing
PDF
Digital Logic Computer Design lecture notes
PPT
Mechanical Engineering MATERIALS Selection
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
Arduino robotics embedded978-1-4302-3184-4.pdf
CYBER-CRIMES AND SECURITY A guide to understanding
Strings in CPP - Strings in C++ are sequences of characters used to store and...
keyrequirementskkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk
Lecture Notes Electrical Wiring System Components
MCN 401 KTU-2019-PPE KITS-MODULE 2.pptx
Model Code of Practice - Construction Work - 21102022 .pdf
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Embodied AI: Ushering in the Next Era of Intelligent Systems
UNIT 4 Total Quality Management .pptx
BMEC211 - INTRODUCTION TO MECHATRONICS-1.pdf
web development for engineering and engineering
bas. eng. economics group 4 presentation 1.pptx
Structs to JSON How Go Powers REST APIs.pdf
PPT on Performance Review to get promotions
Project quality management in manufacturing
Digital Logic Computer Design lecture notes
Mechanical Engineering MATERIALS Selection

Kubernetes 1.16 and rancher 2.3 enhancements

  • 1. Kubernetes 1.16 and Rancher 2.3 Enhancements @saiyampathak
  • 2. About myself Saiyam Pathak • Twitter - @saiyampathak • Blog – https://medium.com/@saiyampathak • Rancher and Influx Bangalore Meetup Organizer • Influx ACE • Rancher RanchHands member • Kubernetes Member and APAC coordinator
  • 4. IPV4/IPV6 Dual Stack Support https://github.com/kubernetes/enhancements/issues/563 Alpha in 1.16 IPV6 was added in k8s 1.9: either ipv4 or ipv6 or single-pod-IP-aware 1.16 : Multiple ipv4/ipv6 address assignment per pod Native ipv4-to-ipv4 in parallel with ipv6-to-ipv6 communication to, from, and within the cluster Tested in Bridge CNI plugin, PTP CNI plugin
  • 5. PVC cloning • Beta 1.16 • Support added for adding existing PVC in the data source field to indicate that user wants to clone a Volume • Cloning support (VolumePVCDataSource) is only available for CSI drivers. • PVC needs to be in same namespace
  • 6. Custom Resource Definition #95 • Graduated • CRD are the way to extend k8s API to include custom resource types that behave like native resource type. Beta since 1.7
  • 7. Publish CRD open API schema #692 • Graduated to stable • CustomResourceDefinition (CRD) allows the CRD author to define an OpenAPI v3 schema to enable server-side validation for CustomResources (CR).
  • 8. Subresources for custom resources - #571 • Graduated to Stable • /status and /scale subresources for CR’s • // +kubebuilder:subresource:status
  • 9. Defaulting and Pruning for custom resources- #575 • Pruning- Stable , Defaulting- Beta • features aiming to facilitate the JSON handling and processing associated with CRD • If pruning is enabled, unspecified fields in CR on creation and on update are dropped (preserveUnknownFields) • Defaulting allows to specify default values in the OpenAPi validation schema (CustomResourceDefaulting)
  • 11. Webhook conversion for custom resources - #598 Graduated to stable Different CRD versions can have different schemas. You can now handle on-the-fly conversion between versions defining and implementing a conversion webhook.
  • 12. Admission Webhooks - #492 • Graduated to stable • Way to extend Kubernetes by putting hook on object creation/modification/deletion. Admission webhooks can mutate or validate the object • Extended to single object
  • 13. Add watch bookmarks support- #956 Graduted to Beta Reduce load on ApiServer by minimizing watch events that needs to be processed after restarting the watch. Bookmark represents all objects up to a given resourceVersion requested by the client have already been sent.
  • 14. Server-Side Apply - #555 • Graduated to Beta • `kubectl apply` - moves to control plane/apiserver • Current problems: • User does POST > changes something > again apply : boom!! • User does apply > edit > apply : boom !! • User does get > edit locally > apply : boom !! • User tweaks annotations > apply : boom !!
  • 15. Deprecate and remove SelfLink - #1164 NET NEW ALPHA WILL BE DEPRECATED IN 1 YEAR
  • 16. Building Kubernetes without In- Tree Cloud - #1179 • Net New Alpha • Removing in tree cloud provider implementations code
  • 17. Kubeadm for windows- 995 Advanced configurations with kubeadm(using kustomize) - #1177 • Net New Alpha • Join windows machine to Kubernetes cluster • Widows support is there since 1.14 • Rancher 2.3 has windows support (https://rancher.com/blog/2019/2019-10-17- zero-to-windows-containers-with-rancher-2-3-and-terraform/) • kubeadm init --experimental-kustomize kubeadm-patches/ • Static pod customizations
  • 18. Kubernetes metrics overhaul - #1206 • Net New Alpha • Metrics not following instrumentation guidelines, Prometheus guidelines • Kubernetes 1.16 removes the labels pod_name and container_name from cAdvisor metrics, duplicates of pod and container. • Kubernetes 1.17 will deprecate some metrics like • apiserver_request_count • apiserver_request_latencies • apiserver_request_latencies_summary • apiserver_dropped_requests
  • 19. Endpoint Slicing - #752 Net New Alpha Endpoints object may grow too big and become problematic; as big objects cannot be stored in etcd will split endpoints into several Endpoint Slice resources, solving many of the current API problems Any change in an endpoint, Endpoints object is re- computed, stored and shared with all watchers and causes problems like rolling upgrades.
  • 20. Ephemeral containers- #277 • Great way to debug pods, as you can’t add regular container • Troubleshooting and debugging purpose • EphemeralContainers – feature gate needs to be enabled • Fields like ports, livenessProbe, readinessProbe or lifecycle that imply a role in a pod will be disallowed. • Maybe : kubectl debug -c debug-shell --image=debian target-pod -- bash
  • 21. Node topology manager - #693 • Alpha • For Ultra low latency – Machine learning workloads • pods running in Guaranteed QoS class that have an integer cpu value are considered by the Topology Manager • Kubelet component centralizes the coordination of hardware resource assignments
  • 22. Other Changes • #688 Pod overhead: account resources tied to the pod sandbox, but not specific containers • #895 Even pod spreading across failure domains • #950 Add pod-startup liveness-probe holdoff for slow-starting pods • #964 Extending RequestedToCapacityRatio priority function to support resource bin packing of extended resources • #894 RuntimeClass scheduling – Beta • #689 Support GMSA for Windows workloads - Beta
  • 23. References and Kubernetes 1.17 updates link • https://github.com/kubernetes/kubernet es/blob/master/CHANGELOG-1.17.md • https://sysdig.com/blog/whats-new- kubernetes-1-16/ • https://www.youtube.com/watch?v=q9E s0mXQlOc Big Thanks to Awesome Kubernetes Release Team : https://github.com/kubernetes/sig- release/blob/master/releases/release-1.16/release_team.md
  • 24. New in Rancher 2.3 • Reuse Kubernetes configurations across all their cluster deployments • First Kubernetes management platform to deliver GA support for Windows Containers and Kubernetes with Windows worker nodes • Gsuite integration • Istio from Rancher • Kiali dashboards for traffic and telemetry visualization • Jaeger for tracing • Prometheus and Grafana for observability
  • 25. • Thank you• Thank you

Editor's Notes

  • #5: Service ip should be either ipv4 ro ipv6 Kube proxy is modified to drive the ip4 and ipv6 tables in parallel and will maintain the tables for both ipv4 and ipv6 Coredns is also making changes to support multiple address endpoints.
  • #6: Added a support in 1.16 to clong an existing PVC maybe for DR purpose or just for testing if some new features with existing volume for a pod. database administrator may want to duplicate a database volume and create another instance of an existing database. Cloning is different from snapshotting. There is no separate object for cloning its just that you can mention existing pvc in the datasource to indicate that you want to clone. Eg:
  • #7: In the Kubernetes API a resource is an endpoint that stores a collection of API objects of a certain kind. For example, the built-in pods resource contains a collection of Pod objects.
  • #8: You can write complete OPEN api schema for the CRD Covers gap between CR and native Kubernetes api
  • #9: If status is enabled then main endpoint will ignore all changes in the status subpath if the spec does not change and Scale subresource, you’ll be able to check how many replicas of your subresource are deployed vs the desired amount
  • #24: By enabling the Scale subresource, you’ll be able to check how many replicas of your subresource are deployed vs the desired amount