Dostępna jest wersja platformy do orkiestracji kontenerów Kubernetes 1.24, która umożliwia zarządzanie klastrem izolowanych kontenerów jako całością oraz zapewnia mechanizmy wdrażania, utrzymywania i skalowania aplikacji działających w kontenerach. Projekt został pierwotnie stworzony przez Google, ale następnie został przeniesiony na niezależny serwis nadzorowany przez Linux Foundation. Platforma pozycjonowana jest jako rozwiązanie uniwersalne, opracowane przez społeczność, niezależne od poszczególnych systemów i zdolne do współpracy z dowolnymi aplikacjami w dowolnym środowisku chmurowym. Kod Kubernetesa napisany jest w Go i rozpowszechniany na licencji Apache 2.0.
Dostępne są funkcje wdrażania i zarządzania infrastrukturą, takie jak utrzymywanie bazy danych DNS, równoważenie obciążenia, dystrybucja kontenerów pomiędzy węzłami klastra (migracja kontenerów w zależności od zmian w obciążeniu i potrzebach usług), kontrola stanu na poziomie aplikacji, zarządzanie kontami, aktualizacja i dynamiczne skalowanie działającego klastra, bez jego zatrzymywania. Możliwe jest wdrażanie grup kontenerów z możliwością aktualizacji i cofania operacji jednocześnie dla całej grupy, a także logiczny podział klastra na części z podziałem zasobów. Obsługiwana jest dynamiczna migracja aplikacji, do przechowywania danych można wykorzystać zarówno lokalne systemy przechowywania, jak i sieciowe systemy przechowywania.
Kluczowe zmiany w nowej wersji:
- Narzędzia do śledzenia pojemności pamięci masowej zostały ustabilizowane w celu monitorowania wolnego miejsca w partycjach i przesyłania danych do węzła kontrolnego, aby zapobiec uruchamianiu podów na węzłach, które nie mają wystarczającej ilości wolnego miejsca.
- Ustabilizowano możliwość rozbudowy partycji pamięci masowej. Użytkownik może zmienić rozmiar istniejących partycji, a Kubernetes automatycznie powiększy partycję i powiązany z nią system plików bez przerywania pracy.
- Zaprzestanie dostarczania runtime Dockershim, który był pozycjonowany jako tymczasowe rozwiązanie do wykorzystania Dockera w Kubernetesie, niezgodnego ze standardowym interfejsem CRI (container runtime interfejs) i prowadzącym do dodatkowej komplikacji kubeletu. Aby zarządzać izolowanymi kontenerami, należy użyć środowiska wykonawczego obsługującego interfejs CRI, takiego jak Containerd i CRI-O, lub użyć frameworka cri-dockerd, który implementuje interfejs CRI na wierzchu API Docker Engine.
- Zapewniono eksperymentalne wsparcie weryfikacji obrazów kontenerów przy użyciu podpisów cyfrowych przy użyciu usługi Sigstore, która prowadzi dziennik publiczny w celu potwierdzenia autentyczności (dziennik przejrzystości). Aby zapobiec atakom na łańcuch dostaw i podmianie komponentów, zapewniono także podpisy cyfrowe dla artefaktów związanych z wersją, w tym wszystkich zainstalowanych plików wykonywalnych Kubernetes.
- Domyślnie interfejsy API w wersji beta nie są już włączone w klastrach (testowe interfejsy API dodane w poprzednich wersjach zostają zachowane; zmiana dotyczy tylko nowych interfejsów API).
- Zaimplementowano testową obsługę formatu OpenAPI v3.
- Wprowadzono inicjatywę przeniesienia wtyczek pamięci masowej do ujednoliconego interfejsu CSI (Container Storage Interface) przy zachowaniu kompatybilności na poziomie API. Wtyczki Azure Disk i OpenStack Cinder zostały przeniesione do CSI.
- Dostawca poświadczeń Kubelet został przeniesiony do etapu testów beta, umożliwiając dynamiczne pobieranie poświadczeń do repozytorium obrazów kontenerów poprzez uruchamianie wtyczek, bez przechowywania poświadczeń w systemie plików hosta.
- Istnieje możliwość zarezerwowania zakresu adresów IP na potrzeby przypisania do usług. Gdy ta opcja jest włączona, klaster automatycznie będzie przydzielał usługom adresy IP z puli wstępnie przydzielonej dla każdej usługi, co pozwala uniknąć kolizji przy wydawaniu bezpłatnych adresów z zestawu ogólnego.
Źródło: opennet.ru