Uzyskiwanie dostępu do EODATA jako mountów s3fs z kapsuł Kubernetes na NSIS
W powiązanym artykule Dostęp do EODATA z Kubernetes Pods w NSIS Cloud przy użyciu boto3 opisaliśmy bardziej szczegółowo kolekcje obrazów satelitarnych EODATA i dostęp do nich z kapsuł Kubernetes przy użyciu biblioteki Pythona boto3.
W tym artykule omówiono dostęp do EODATA z Kubernetes przy użyciu naszego niestandardowego EODATA mounter. Ta nowa funkcja umożliwia wygodny dostęp do EODATA z kapsuł Kubernetes, w których kolekcje EODATA są abstrahowane do drzewa systemu plików.
Wymagania wstępne
Nr 1 Konto
Potrzebne jest konto hostingowe NSIS Cloud z dostępem do interfejsu Horizon: https://horizon.cloudferro.com.
Nr 2 Klaster Kubernetes z dostępem do EODATA (utworzony w marcu 2024 r.)
Klaster Kubernetes w chmurze NSIS Cloud utworzony z opcją „EODATA access enabled”. Patrz artykuł bazy wiedzy Jak utworzyć klaster Kubernetes przy użyciu NSIS OpenStack Magnum.
Nr 3 Znajomość kubectl
Dalsze instrukcje można znaleźć w Jak uzyskać dostęp do klastra Kubernetes po wdrożeniu przy użyciu Kubectl na NSIS OpenStack Magnum?.
Co zamierzamy zrobić
Zapewnienie podstawowych informacji o funkcji mountera EODATA
Wdrożenie kapsuły Kubernetes korzystającej z kontenera EODATA
Weryfikacja dostępu do urządzenia
Tło - funkcja instalatora EODATA
EODATA mounter to funkcja wprowadzona do Kubernetes as a Service na chmurach CloudFerro - WAW4-1, WAW3-2 i FRA1-2. Funkcja jest domyślnie włączona dla nowych klastrów utworzonych z opcją „EODATA access enabled” zaznaczoną podczas tworzenia klastra (klastry utworzone od marca 2024 r.).
Podczas tworzenia klastra, daemonset mountera EODATA jest wdrażany w przestrzeni nazw eodata-mounter. Ten daemonset jest odpowiedzialny za montowanie EODATA za pomocą narzędzia s3fs na wszystkich węzłach roboczych, na których włączony jest dostęp sieciowy EODATA.
Mocowania EODATA mogą być dostępne z samodzielnych kapsuł Kubernetes, a także z innych powiązanych zasobów K8s, np. zadań lub wdrożeń. Poniżej przedstawiamy przykład dla kapsuły, inne zasoby są zgodne z tymi samymi zasadami włączania montowania EODATA.
Utworzymy teraz nowy klaster specjalnie po to, aby zademonstrować, na jakie szczegóły należy zwrócić uwagę podczas uzyskiwania dostępu do EODATA za pośrednictwem s3fs w podie.
Krok 1. Utwórz nowy klaster Kubernetes na chmurach WAW4-1, WAW3-2 lub FRA1-2.
Upewnij się, że pracujesz z chmurą WAW4-1, WAW3-2 lub FRA1-2:
Postępuj zgodnie z Warunkiem wstępnym nr 2 i zwróć uwagę na okienko Szczegóły:
Zaznacz pole EODATA access enabled i utwórz klaster zgodnie z dalszymi instrukcjami w Warunku wstępnym nr 2.
Krok 2. Wdrożenie kapsuły Kubernetes korzystającej z kontenera EODATA
Aby korzystać z montowania EODATA s3fs zapewnianego przez mounter EODATA, pod powinien używać woluminu typu hostPath, wskazującego na zamontowany katalog EODATA na hoście w lokalizacji /mnt/eodata. Przykładowa instrukcja dla takiego wolumenu to:
- name: my-volume
hostPath:
path: /mnt/eodata
Innym warunkiem wstępnym jest zapewnienie nodeSelector w specyfikacji pod, co zapewnia, że pod działa tylko na węzłach, na których EODATA jest włączona. Oto jak zastosować taki nodeSelector do specyfikacji pod:
nodeSelector:
magnum.openstack.org/worker-eodata: enabled
Poniżej znajduje się kompletny przykład wdrożenia nginx pod z EODATA zamontowanym w kontenerze. EODATA w kontenerze będzie dostępna w ścieżce /eodata, która jest określona w dyrektywie volumeMounts. Aby zastosować ten przykład, utwórz plik o nazwie eodata_mount.yaml z następującą zawartością:
eodata_mount.yaml
apiVersion: v1
kind: Pod
metadata:
name: myapp-test
namespace: default
spec:
nodeSelector:
magnum.openstack.org/worker-eodata: enabled
containers:
- name: my-app
image: nginx
ports:
- containerPort: 8080
volumeMounts:
- name: my-volume
mountPath: /eodata
readOnly: true
volumes:
- name: my-volume
hostPath:
path: /mnt/eodata
Następnie wprowadź następujące polecenie, aby wdrożyć kapsułę w klastrze:
kubectl apply -f eodata_mount.yaml
Krok 3. Weryfikacja dostępu do uchwytu
Aby sprawdzić, czy EODATA jest prawidłowo zamontowana, należy uzyskać dostęp do kontenera aplikacji w podie za pomocą tego polecenia:
kubectl exec -it myapp-test -- sh
Na ekranie pojawi się wiersz zaczynający się od #. Jest to tryb wiersza poleceń dla myapp-test i można wyświetlić listę eodata za pomocą następującego polecenia:
ls /eodata
Wynik będzie podobny do poniższego ekranu:
Kolekcje EODATA można eksplorować głębiej w drzewie. Po zapoznaniu się ze strukturą EODATA można używać tych kolekcji w rzeczywistych aplikacjach, zadaniach i przepływach pracy.