KubeCon 2019 Trends
- Architecture: Tim Hockin explained how he intends to have a abstraction for services that could work for both L4/L7. Currently, IngressController deal with L7, and Services L4 – could something like a « Gateway » or « Ingress2 » compatible with both L4/L7 fit the bill, to have a uniform service API? Also, Can we integrate some common parts from the Service Meshes into Kubernetes?
- CRDs API and Admission Webhooks stable since k8s 1.16 – consistent treatment of built-in and customer resources
- Container runtimes pluggability: many container runtimes are available: docker runtime, cri-o, rkt, containerD, (some even more isolated: nabla containers, katacontainers, firecracker) – now Kubernetes allows you to specify in your Pod Manifest which one should be used: K8s will then run your workload on the node(s) matching the specified Runtime Class
- The same pluggability is coming to the network layer, with Network Service Mesh (NSM), allowing pods to route traffic to external networks.(VPNs, radio based networks, etc.)
- Kubernetes Operators: Kubebuilder is now the basis of the Operator Framework from Redhat – to avoid writing Go code(!) some alternatives exist, such as the Ansible Operator and KUDO
- Talking about Operators, there is a basis for Chaos Operators, to help you write your own Kubernetes ChaosEngine
- Kubernetes everywhere: on the edge (k3s for example), or even in telcos, for 5G deployments, and even Kubernetes to bootstrap bare metal infra (metal3) – even if not everything works out of the box, there is interest (and work) on expanding usage of Kubernetes beyond « hello microservices » demos!
- OpenTelemetry: open census and open tracing joined forces, you should only use open telemetry clients SDK to be able to get your traces and metrics collected by any observability tools.
- GitOps with ArgoFlux
- After Skaffold from Google, Draft from the Azure team (both apparently absent from the conference this year? or I didn’t pay attention!) a new promising developer productivity tool : Tilt – similar to Skaffold, with a nice UI on top of it – to try out!
- Telepresence from Datawire is still going strong, supposedly a more lightweight experience than the 3 mentioned above (that rebuild an image, than push it, then redeploy it on change – even though changes are very lightweight thanks to layer caching)
- Squash debugger tool for Kubernetes: allows your IDE to attach its debugger to a running container in k8s
- Not a tool per say, but a nice new feature that will help debugging clusters: ephemeral containers.
- Good to know: Eclipse and VSCode can share plugins via CodeWind
- Ease the Kubectl pain with kubectx to easily switch context (and its kubens companion); Krew is a kubectl plugin manager
- Octant: an OSS tool from VMWare to debug your Kubernetes cluster
- Krane started at Shopify to help deploy (kube-deploy)
- Puppet wash shell for cloud native
- Gloo to install an Envoy based API Gateway on the cluster
- Kail to aggregate all pod logs in a namespace
- Running Kubernetes on your laptop? Kind (Kubernetes in Docker) is now the most popular option (among speakers at least!), before Minikube and DockerForMac
Kubernetes Workshops you can access online
Good things to know
kubectl auth can-i create pods # do you have sufficient rights
kubectl get events # list events
kubectl get pods -v=7 # super chatty, HTTP level
kubectl get api-resources # list of all object types
kubectl explain deployment # output documentation for the Deployment API
kubectl apply -f <directory/> --prune -l your=label # delete all objects not part of the manifests of the directory