Kubernetes 1.20

 

The Raddest Release

raddest: adjective, Slang. excellent; wonderful; cool:

 11 enhancements ==> stable

 15 enhancements ==> beta

 16 enhancements ==> alpha.

42 enhancements

Container Runtime Interface moved to stable

Dockershim is deprecated

Docker as an underlying RUNTIME is being deprecated.

 

Docker still an option.

 

Open Container Initiative (OCI) Docker, CRI-O, containerd

 

IPv4/IPv6 dual-stack

  • Still alpha feature
  • Cluster IP Service can have both IPv4 & IPv6
  • .spec.ipFamilyPolicy 
    • Move from single to dual stack
    • Move from dual to single stack

go1.15.5 is now used in K8s

kubectl

kubectl debug #beta

kubectl alpha debug ...

kubectl debug #beta

kubectl alpha debug ...
kubectl debug ...

kubectl code is decoupled

https://github.com/kubernetes/kubectl

k8s.io/kubernetes/pkg/kubectl

  • Avoid dependencies on K8s internal code
  • Make it easy for external projects to reuse code from kubectl

Graceful Node Shutdown 

  • Alpha feature
  • Allows graceful termination of pods during a system shutdown
  • kubelet is aware of system status

kubelet exec probe timeouts

Probes:

  • initialDelaySeconds
  • periodSeconds
  • successThreshold
  • failureThreshold
  • timeoutSeconds

kubelet exec probe timeouts

Turn it off via feature gate:

ExecProbeTimeout:False

Probes:

  • initialDelaySeconds
  • periodSeconds
  • successThreshold
  • failureThreshold
  • timeoutSeconds

startupProbe graduates to stable

  • hold other probes before my app is really ready to be checked
  • Avoid pod to be killed very early
  • Avoid pod to be left as dead for a long time

Tracking Terminating Endpoints in the EndpointSlice API

  • EndpointSlice API to track endpoints being terminated
  • no need to watch the pods
  • Make smarter decisions

Networking

Different protocols in the same service definition with type=loadbalancer


Two load balancers for TCP & UDP traffic

Different protocols in the same service definition with type=loadbalancer

  • alpha feature
  • both UPD & TCP is supported on the same port


Two load balancers for TCP & UDP traffic

Different protocols in the same service definition with type=loadbalancer

  • alpha feature
  • both UPD & TCP is supported on the same port


Two load balancers for TCP & UDP traffic

apiVersion: v1
kind: Service
metadata:
  name: mixed-protocol
spec:
  type: LoadBalancer
  ports:
    - name: dns-udp
      port: 53
      protocol: UDP
    - name: dns-tcp
      port: 53
      protocol: TCP
  selector:
    app: my-dns-server

Optionally Disable NodePorts for Service type=LoadBalancer

 

 

  • alpha feature
  • allocateLoadBalancerNodePort: *bool

Getting rid of non-inclusive language in kubeadm

 

 

master taint is replaced by controlplane

 CronJob (previously ScheduledJobs) graduates to stable

 

 

Thank you

K8s 1.20 release updates

By fmuyassarov

K8s 1.20 release updates

  • 233