 I'm Tim Serowicz with the Linux Foundation. In today's video, we're going to talk about Kubernetes news for April 2020. Let's start by looking at some highlights. Kubernetes version 1.18.0, named a bit quirky, which was inspired by the large Adrien Collider, was released on March 24th. You may want to check the overall release notes, as well as any of the sigs that you are keeping track of. Inside of that, you're going to find kubectl-diff command. We can now see the differences between a YAML file, or standard in, and the live configuration. Another change to kubectl is the lack of usage menus being printed out when you make a mistake on the command line. Instead of a page or two of information, now you'll just see the errors printed to the screen. HPA, horizontal pod autoscaler, now has a velocity setting. This feature allows us to modify the velocity of change once the HPA starts to work. So if the alert manager or some outsourced resource causes the HPA to start, you can say, will I do one pod per minute, or as fast as it goes, you are not going to have that a stampede if the demands on your cluster change dramatically. Immutable secrets and config maps. Historically, if you changed a config map or a secret, when any of the pods restarted, they would use the updated secret, meaning that I have an application in production with different configurations. When doing rolling updates or just typical pod determination and replacement, this can cause a lot of headache. Now we can set it and have a much more granular configuration. It becomes immutable until we go out of our way to change it. Pod topology spread setting goes beta. This affects how the scheduler handles out-of-resource issues, for example with critical pods, and how the pods should be distributed across the nodes in the cluster. IPv6 support continues to grow. We have cube proxy IP tables now supports the dual stack, both IPv4 and IPv6. And there's quite a few new Windows features. The run as username allows you to set a UID for that process to run as when integrating back with Linux systems. QBADM now is going into beta on a Windows system, so instead of downloading a series of scripts and causing it to join the cluster, we can use QBADM as we would with other Linux nodes. GMSA support moving towards active directory identities support is being added. Azure disk fixes and write accelerator to make performance even better. Looking forward, pod security policy or PSP, it might be replaced by Open Policy Agent OPA, otherwise known as OPPA. OPPA can be implemented as an admission controller or as a CRD. OPPA allows us to have a central and consistent policy framework for multiple projects, not just Kubernetes, but most of my environment then can have policies set and configured from a single tool. The OPA gatekeeper project for Kubernetes is something to take a look at. There's a proposal that the cube CTL command have a debug sub command. There are three features that are proposed, would be to create an ephemeral container in a running pod to attack debugging tools to a distrelist container image. To restart a pod with a modified pod spec, this would allow us to do in place troubleshooting using different images or permissions or settings. The third option inside of the proposal is to start and attach to a privileged container in the host namespace. You can start troubleshooting and working with some of the namespace issues. Endpoint slices is something else the community is talking about. Currently, with changes like rolling updates and so forth, the endpoints are recomputed, saved to disk, and then referenced continuously. This is not the most efficient way of doing it and can cause a bottleneck. That bottleneck then, especially during things like rolling upgrades when you have lots of pods getting terminated restarted, can cause other secondary issues. We're moving then, or the proposal is to move then, towards a backend discovery API instead of having localized information. Next up, let's talk about some of the deprecations. As with any release, you should go through your YAML files and look for deprecated APIs or other settings. The only thing constant so far in Kubernetes is change. So expect that some of your YAML files may need to be edited. And if you are changing to a new API, be aware that some of the settings are likely to change as well. Deprecated metrics are being pulled out. They were actually renamed back in the 1.14 release. QBDM is dropping Qube DNS support. And the core DNS feature gate is being removed, or DNS being wonderfully stable. All of the generators that we used to use with the Qube CTL Run command have been removed. Now, Qube CTL Run will only create pods. QBDM upgrade node config has been removed in 1.18. And the hard pod affinity symmetric weight setting has been removed from the configuration in favor of the plug-in config. These are some of the features and deprecations going on with the 1.18 release of Kubernetes. Now you might be asking yourself, can I get a discount? Yes, I have a discount for you. Go to training.linuxfoundation.org. Find a class you might be interested in taking, such as the LFS 258, Kubernetes Administration, or LFD 259, Kubernetes for Developer Course. And then use this code to get 10% off. There are some terms and conditions, such as not being able to stack the discount with others and so forth. Thanks for watching.