Kubernetes 1.18 Release, Isolated Container Cluster Management System

Published container orchestration platform release Kubernetes 1.18, which allows you to manage a cluster from isolated containers as a single entity and provides mechanisms for deploying, maintaining and scaling applications running in containers. The project was originally created by Google, but then transferred to an independent site curated by the Linux Foundation. The platform is positioned as a universal solution developed by the community, not tied to individual systems and able to work with any application in any cloud environment. Kubernetes code is written in Go and spreads licensed under Apache 2.0.

Provides infrastructure deployment and management features such as DNS database maintenance, load balancing,
distribution of containers across cluster nodes (migration of containers depending on changes in load and service needs), health checks at the application level, account management, updating and dynamic scaling of a running cluster, without stopping it. It is possible to deploy container groups with update and undo operations for the entire group at once, as well as logical splitting of the cluster into parts with resource sharing. There is support for live migration of applications that can be stored on both local storage and network storage systems.

The Kubernetes 1.18 release includes 38 changes and improvements, of which 15 have been moved to stable status and 11 to beta status. 12 new changes are proposed in alpha status. When the new version was prepared, equal efforts were directed both to the refinement of various functionality and the stabilization of experimental features, and to the addition of new developments. Main changes:

  • kubectl
    • Added by An alpha version of the "kubectl debug" command that simplifies debugging in pods by running ephemeral containers with debugging tools.
    • Declared stable the "kubectl diff" command, which allows you to see what will change in the cluster if you apply the manifest.
    • Removed all the kubectl run command generators except for the single pod run generator.
    • Changed the "--dry-run" flag, depending on its value (client, server and none), the test execution of the command is performed on the client or server side.
    • kubectl code highlighted to a separate repository. This separated kubectl from internal kubernetes dependencies and made it easier to import code into third-party projects.
  • income
    • Began changing API group for Ingress to networking.v1beta1.
    • Added new fields:
      • pathType, which allows you to specify how the path will be compared in the request
      • IngressClassName is a replacement for the kubernetes.io/ingress.class annotation, which is declared deprecated. This field specifies the name of the special object InressClass
    • Added the IngressClass object, which specifies the name of the ingress controller, its additional parameters, and whether it is used by default
  • Service
    • Posted the AppProtocol field, in which you can specify which protocol the application uses
    • translated in beta status and included by default EndpointSlicesAPI, which is a more functional replacement for regular Endpoints.
  • Network
    • Support IPv6 has been moved to beta status.
  • Permanent disks. The following functionality has been declared stable:
  • Application configuration
    • To ConfigMap and Secret objects added new field "immutable". Setting the field value to true prevents the object from being modified.
  • Scheduler
    • Added by the ability to create additional profiles for kube-scheduler. If earlier it was required to run additional separate schedulers to implement non-standard pod distribution algorithms, now it is possible to create additional sets of settings for the standard scheduler and specify its name in the same β€œ.spec.schedulerName” field of the pod. Status is alpha.
    • Taint Based Eviction declared stable
  • Scaling
    • Added by the ability to specify in the HPA manifest the degree of aggressiveness when the number of running pods changes, that is, when the load increases, launch N times more instances at once.
  • kubelet
    • Topology Manager received beta status. The feature enables NUMA allocation to avoid performance degradation on multi-socket systems.
    • Beta status received the PodOverhead function, which allows you to specify in the RuntimeClass the additional amount of resources needed to start the pod.
    • Expanded support for HugePages, alpha added container-level isolation and support for multiple sizes of hugepages.
    • Removed endpoint for metrics /metrics/resource/v1alpha1, /metrics/resource is used instead
  • API
    • Finally removed the ability to use the deprecated group apps/v1beta1 and extensions/v1beta1 APIs.
    • Server Side Apply upgraded to beta2 status. This improvement moves object manipulation from kubectl to the API server. The authors of the improvement claim that this will fix many existing bugs that cannot be fixed in the current situation. They also added the ".metadata.managedFields" section, in which they propose to store the history of changes to the object, indicating who, when and what exactly changed.
    • Announced stable CertificateSigningRequest API.
  • Windows platform support.

Source: opennet.ru

Add a comment