Wydana została wersja platformy orkiestracji kontenerów Kubernetes 1.24, która umożliwia zarządzanie klastrem z izolowanych kontenerów jako całością oraz oferuje mechanizmy do wdrażania, utrzymywania i skalowania aplikacji uruchamianych w kontenerach. Projekt został pierwotnie stworzony przez firmę Google, ale następnie przeniesiony na niezależną platformę, zarządzaną przez organizację Linux Foundation. Platforma jest postrzegana jako rozwijane przez społeczność uniwersalne rozwiązanie, niezależne od konkretnych systemów, zdolne do współpracy z dowolnymi aplikacjami w różnych środowiskach chmurowych. Kod Kubernetes napisany jest w języku Go i jest rozpowszechniany na licencji Apache 2.0.
Dostępne są funkcje do wdrażania i zarządzania infrastrukturą, takie jak prowadzenie bazy DNS, równoważenie obciążenia, przydzielanie kontenerów do węzłów klastra (migrowanie kontenerów w zależności od zmian obciążenia i potrzeb w usługach), sprawdzanie stanu aplikacji, zarządzanie kontami, aktualizacja i dynamiczne skalowanie działającego klastra bez jego zatrzymywania. Możliwe jest wdrażanie grup kontenerów oraz wykonywanie operacji aktualizacji i wycofywania zmian natychmiast dla całej grupy, a także logiczne podział klastra na części z oddzieleniem zasobów. Obsługiwane jest dynamiczne migrowanie aplikacji, dla których jako magazyny danych mogą być stosowane zarówno lokalne magazyny, jak i sieciowe systemy przechowywania.
Kluczowe zmiany w nowym wydaniu:
- Ustabilizowane zostały narzędzia do monitorowania pojemności pamięci (Storage Capacity Tracking), które zapewniają monitoring wolnego miejsca w partycjach i przesyłają dane do węzła zarządzającego, aby zapobiec włączaniu podów na węzłach, na których jest za mało wolnego miejsca.
- Ustabilizowana została możliwość rozszerzania partycji pamięci. Użytkownik może zmienić rozmiar już istniejących partycji, a Kubernetes automatycznie, bez zatrzymywania pracy rozszerzy partycję oraz związaną z nią system plików.
- Dostarczanie runtime Dockershim zostało wstrzymane, co było postrzegane jako tymczasowe rozwiązanie do użycia Docker w Kubernetes, które nie jest zgodne z standardowym interfejsem CRI (interfejs czasu uruchomienia kontenera) i prowadzi do dodatkowego skomplikowania kubelet. Do zarządzania izolowanymi kontenerami należy używać runtime, wspierającego interfejs CRI, takiego jak containerd i CRI-O, lub skorzystać z obudowy cri-dockerd, implementującej interfejs CRI na API Docker Engine.
- Zostało wprowadzone eksperymentalne wsparcie dla weryfikacji obrazów kontenerów na podstawie podpisów cyfrowych przy użyciu usługi Sigstore, prowadzącej publiczny dziennik potwierdzający autentyczność (dziennik przejrzystości). Aby zapobiec atakom na łańcuch dostaw i manipulacji komponentami, zapewniono również uwierzytelnienie podpisami cyfrowymi związanych z wydaniami artefaktów, w tym wszystkich instalowanych plików wykonywalnych Kubernetes.
- W domyślnych ustawieniach w klastrach wstrzymano włączenie interfejsów API, które znajdują się w stanie wersji beta (testowe interfejsy API dodane w poprzednich wydaniach zostały zachowane, zmiana dotyczy tylko nowych interfejsów API).
- Zrealizowane zostało testowe wsparcie dla formatu OpenAPI v3.
- Wprowadzono inicjatywę dotyczącą przekształcenia wtyczek do pracy z magazynami na zunifikowany interfejs CSI (Container Storage Interface) z zachowaniem zgodności na poziomie API. Wtyczki Azure Disk i OpenStack Cinder zostały przekształcone na CSI.
- Kubelet Credential Provider został przeniesiony do etapu beta testów, co pozwala na dynamiczne pobieranie danych uwierzytelniających repozytoriów obrazów kontenerów przez uruchamianie wtyczek, bez przechowywania danych uwierzytelniających w systemie plików węzła.
- Udostępniono możliwość rezerwacji zakresu adresów IP do przypisywania usługom. Po włączeniu tej opcji klaster automatycznie przydzieli usługom tylko adresy IP z wcześniej wydzielonej puli dla każdej usługi, co pozwala uniknąć kolizji przy wydawaniu dostępnych adresów z ogólnego zestawu.
Źródło: opennet.ru
