release of the container orchestration platform , enabling unified management of a cluster of isolated containers and providing mechanisms for deploying, maintaining, and scaling applications running in containers. The project was originally created by Google but was later transitioned to an independent space overseen by the Linux Foundation. The platform is positioned as a community-driven universal solution, independent of specific systems and capable of working with any applications in any cloud environments. The Kubernetes code is written in Go and under the Apache 2.0 license.
Offers capabilities for deploying and managing infrastructure, such as DNS management, load balancing,
distributing containers across cluster nodes (migrating containers based on changes in load and service needs), application-level health checks, account management, updating and dynamically scaling the running cluster without downtime. It is possible to deploy groups of containers to perform updates and rollbacks at once for the entire group, as well as logically partition the cluster with resource separation. Support is provided for dynamic migration of applications, which can utilize both local storage and network storage systems.
The release of Kubernetes 1.18 includes 38 changes and improvements, of which 15 have been promoted to stable status, and 11 to beta status. 12 new changes are proposed in alpha status. During the preparation of the new version, equal efforts were directed towards both refining various functionalities and stabilizing experimental features, as well as adding new developments. Key changes include:
- Kubectl
- the alpha version of the "kubectl debug" command, which simplifies debugging in pods by launching ephemeral containers with debugging tools.
- the "kubectl diff" command, allowing you to see what will change in the cluster if you apply the manifest.
- all generators of the "kubectl run" command, except for the single pod launch generator.
- The flag "--dry-run", depending on its value (client, server, and none), executes a trial run of the command on the client or server side.
- The kubectl code into a separate repository. This allowed separating kubectl from the internal dependencies of Kubernetes and made it easier to import code into third-party projects.
- Ingress
- the API group change for Ingress to networking.v1beta1.
- new fields:
- pathType, which allows specifying how the path in the request will be compared
- IngressClassName — a replacement for the annotation kubernetes.io/ingress.class, which has been declared deprecated. This field specifies the name of a special IngressClass object
- the IngressClass object, which specifies the name of the ingress controller, its additional parameters, and a flag indicating its default usage
- Service
- the AppProtocol field, where you can indicate which protocol the application uses
- to beta status, and the EndpointSlicesAPI, which is a more functional replacement for standard Endpoints, is enabled by default.
- Network
- IPv6 has been converted to beta status.
- Persistent disks. The following functionality has been declared stable:
- Application configuration
- In ConfigMap and Secret objects a new field "immutable". Setting this field to true prevents the modification of the object.
- Scheduler
- the ability to create additional profiles for kube-scheduler. Previously, it was necessary to run additional separate schedulers to implement non-standard pod distribution algorithms, but now it is possible to create additional configuration sets for the standard scheduler and specify its name in the same pod field ".spec.schedulerName". Status — alpha.
- has been declared stable
- Scaling
- the ability to specify in the HPA manifest the degree of aggressiveness when changing the number of running pods, that is, when load increases, to immediately launch N times more instances.
- Kubelet
- has received beta status. The function includes NUMA distribution, which helps avoid performance degradation on multi-socket systems.
- Beta status the PodOverhead function, allowing you to specify in RuntimeClass the additional amount of resources required to run the pod.
- HugePages support, with alpha status introduced container-level isolation and support for multiple hugepage sizes.
- The endpoint for metrics /metrics/resource/v1alpha1 has been replaced with /metrics/resource
- API
- The ability to use deprecated API groups apps/v1beta1 and extensions/v1beta1 has been removed.
- upgraded to beta2 status. This enhancement shifts object manipulation from kubectl to the API server. The authors of the enhancement claim that it will fix many existing bugs that cannot be addressed in the current situation. They also added a section ‘.metadata.managedFields’ to store the history of object changes, indicating who, when, and what exactly was changed.
- stable CertificateSigningRequest API.
- Support for the Windows platform.
- Continues to expand support for Windows node. Alpha versions added:
- Support for Group Managed Service Account transitioned to stable status
- Continues to expand support for Windows node. Alpha versions added:
Source: opennet.ru
