Skip to main content
  • »
  • KUBERNETES »
  • Uzyskiwanie dostępu do EODATA jako mountów s3fs z kapsuł Kubernetes na NSIS

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:

../_images/use_waw3-2_or_FRA1-2.png

Postępuj zgodnie z Warunkiem wstępnym nr 2 i zwróć uwagę na okienko Szczegóły:

../_images/create_new_cluster_waw3-2.png

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:

../_images/image-2024-3-5_13-14-23.png

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.