release van het containerorkestratieplatform , dat als een geheel het beheer van een cluster van geïsoleerde containers mogelijk maakt en mechanismen biedt voor de uitrol, het onderhoud en de schaalbaarheid van applicaties die in containers draaien. Het project is oorspronkelijk opgericht door Google, maar is vervolgens overgedragen aan een onafhankelijke organisatie, beheert door de Linux Foundation. Het platform wordt gepositioneerd als een gemeenschapsgestuurd universeel oplossing dat niet gebonden is aan specifieke systemen en kan werken met elke applicatie in verschillende cloudomgevingen. De code van Kubernetes is geschreven in Go en onder de Apache 2.0-licentie.
functies biedt voor de uitrol en het beheer van infrastructuur, zoals DNS-databasebeheer, load balancing,
het distribueren van containers over cluster knooppunten (migratie van containers op basis van veranderende belasting en servicebehoeften), controle van de functionaliteit op applicatieniveau, accountbeheer, het bijwerken en dynamisch schalen van het actieve cluster, zonder het stop te zetten. Groepen van containers kunnen worden uitgerold met operaties voor updates en terugdraaiingen direct voor de hele groep, evenals logische splitsing van het cluster in delen met resourceverdeling. Er is ondersteuning voor dynamische migratie van applicaties, waarvoor gegevensopslag zowel lokale opslag als netwerkopslagsystemen kan gebruiken.
De release van Kubernetes 1.18 omvat 38 wijzigingen en verbeteringen, waarvan 15 zijn overgebracht naar de status stabiel en 11 naar de status beta. 12 nieuwe wijzigingen zijn voorgesteld in alpha-status. Bij de voorbereiding van de nieuwe versie was er evenveel aandacht voor het verbeteren van verschillende functionaliteiten en het stabiliseren van experimentele mogelijkheden, evenals het toevoegen van nieuwe ontwikkelingen. Belangrijke wijzigingen:
- Kubectl
- alpha-versie van het commando "kubectl debug", dat het debuggen in pods vergemakkelijkt door het starten van tijdelijke containers met debugtools.
- commando "kubectl diff", waarmee je kunt zien wat er in het cluster zal veranderen als je de manifest toepast.
- alle generators van het commando "kubectl run", behalve de generator voor het starten van een enkele pod.
- De vlag «—dry-run», afhankelijk van de waarde (client, server en none), voert een testuitvoering van het commando uit aan de client- of serverzijde.
- kubectl code aan een aparte repository. Dit maakte het mogelijk om kubectl te scheiden van interne afhankelijkheden van Kubernetes en maakte de import van code in externe projecten eenvoudiger.
- Ingress
- wijziging van de API-groep voor Ingress naar networking.v1beta1.
- nieuwe velden:
- pathType, waarmee kan worden aangegeven op welke manier het pad in de aanvraag wordt vergeleken
- IngressClassName — vervangt de annotatie kubernetes.io/ingress.class, die als verouderd is verklaard. In dit veld wordt de naam van het speciale IngressClass-object opgegeven
- het IngressClass-object, waarin de naam van de ingress-controller, aanvullende parameters en het kenmerk voor gebruik als standaard worden opgegeven
- Service
- het veld AppProtocol, waarin kan worden aangegeven welk protocol de applicatie gebruikt
- naar bètastatus en is standaard ingeschakeld EndpointSlicesAPI, dat een functionele vervanging is voor de gewone Endpoints.
- Netwerk
- IPv6 is naar bètastatus vertaald.
- Permanente schijven. De volgende functionaliteit is als stabiel verklaard:
- Configuratie van de applicatie
- In ConfigMap en Secret-objecten nieuw veld «immutable». Het instellen van de waarde van het veld op true voorkomt dat het object wordt gewijzigd.
- Scheduler
- de mogelijkheid om extra profielen te creëren voor kube-scheduler. Als voorheen aparte planners moesten worden uitgevoerd voor het implementeren van niet-standaard algoritmen voor pods, dan is het nu mogelijk om extra configuratiesets voor de standaard planner te creëren en de naam ervan aan te geven in hetzelfde veld van de pod «.spec.schedulerName». Status — alfa.
- is als stabiel verklaard
- Schaalbaarheid
- de mogelijkheid om in het manifest van HPA de mate van agressiviteit bij het wijzigen van het aantal actieve pods aan te geven, dat wil zeggen bij een toename van de belasting meteen N keer meer instanties (instances) te starten.
- Kubelet
- heeft bètastatus gekregen. De functie omvat NUMA-distributie, wat helpt om prestatieverlies op multi-socket systemen te voorkomen.
- Bètastatus is de functie PodOverhead, die het mogelijk maakt om in RuntimeClass een extra hoeveelheid middelen op te geven die nodig is voor het starten van de pod.
- ondersteuning voor HugePages, container-niveau isolatie in alfa-status toegevoegd en ondersteuning voor meerdere hugepage-groottes.
- endpoint voor metrics /metrics/resource/v1alpha1, in plaats daarvan wordt /metrics/resource gebruikt
- API
- de mogelijkheid om de verouderde API-groepen apps/v1beta1 en extensions/v1beta1 te gebruiken is verwijderd.
- verhoogd tot bètastatus. Deze verbetering verplaatst objectmanipulatie van kubectl naar de API-server. De auteurs van de verbetering beweren dat dit het mogelijk maakt om veel bestaande fouten op te lossen die momenteel niet kunnen worden hersteld. Ook is er een sectie '.metadata.managedFields' toegevoegd, waarin wordt voorgesteld om de geschiedenis van objectwijzigingen op te slaan, met vermelding van wie, wanneer en wat er precies is gewijzigd.
- stabiel CertificateSigningRequest API.
- Ondersteuning voor het Windows-platform.
- De ondersteuning voor Windows-node blijft uitbreiden. Alfa-versies zijn toegevoegd:
- ondersteuning is overgezet naar stabiele status
- De ondersteuning voor Windows-node blijft uitbreiden. Alfa-versies zijn toegevoegd:
Bron: opennet.ru
