Jak połączyć się do klastra Amazon EKS

Jak połączyć się do klastra Amazon EKS

Uruchomiłeś właśnie swój pierwszy klaster Kubernetes w usłudze Amazon EKS i pewnie zastanawiasz się co dalej. W konsoli samej usługi nie za bardzo można coś zrobić. Jest tam trochę informacji i praktycznie nic poza tym.

Klastrami Kubernetesa zarządzamy za pomocą narzędzie kubectl. W artykule pokażę w jaki sposób skonfigurować maszynę z Linuxem na pokładzie, aby móc zarządzać klastrem w EKS.

Instalujemy narzędzia

Na początek jedna uwaga. Wszystkie urle do instalowanych narzędzi są aktualne w momencie gdy piszę ten tekst. Jeżeli będziecie czytali ten artykuł za jakiś czas, sprawdźcie proszę, czy nie ma dostępnych nowszych wersji

Narzędzie kubectl zainstalujemy w wersji „amazonowej”.

Czynimy nasz plik wykonywalnym.

Kopiujmy go sobie w jakieś wygodniejsze miejsce i ułatwiemy sobie życie dodając go do przeszukiwanych miejsc.

Dodamy go sobie jeszcze do pliku .bashrc, dzięki temu, po ponownym uruchomieniu maszyny, będzie nadal dostępny.

Sprawdzamy czy wszystko działa.

I jeżeli wszystko jest w porządku, możemy zainstalować AWS IAM Authenticator. To narzędzie, którego Kubernetes używa do autentykacji w AWS.

Polecania wykonujemy po kolei, podobnie do instalacji kubectl.

Sprawdzamy oczywiście, czy authenticator działa.

Konfigurujemy

W następnym kroku musimy stworzyć kubeconfig.

AWS IAM Authenticator for Kubernetes używa między innymi komendy aws sts get-caller-identity. Jest ona dostępna w CLI od wersji 1.16.156. Warto więc sprawdzić, którę wersją AWS CLI dysponujemy

i ewentualnie wykonać update:

Zakładam, że CLI jest skonfigurowane. Jeżeli nie to teraz jest na to ostatni moment. Zakładam, że mamy nowy klaster EKS, użytkownikiem musi być więc ten, który ten klaster stworzył. To ważne.

I dodajemy w końcu nowy kontekst za pomocą polecenia:

W moim przypadku wyglądało to tak

Stworzyliśmy plik ~/.kube/config Ciekawi mogą do niego zajrzeć:

Możemy już spróbować jakiejś interakcji z naszym klasterm EKS. Spróbujemy pobrać listę serwisów:

Działa? Działa. 🙂

Dodajemy innych użytkowników klastra

Dodajmy teraz kolejnego użytkownika do naszego klastra. Ktoś musi nam przecież pomóc w codziennej pracy.

Aby to zrobić musimy wyedytować aws-auth ConfigMap. Jest to konfiguracja, którą EKS wykorzystuje do autentykacji. Zarówno dla użytkowników jak i ról.

Spróbujmy na początek podejrzeć tą konfig mapę:

Jeżeli nie dodawaliście jeszcze do swojego klastra żadnych nodów ani użytkowników to wynik będzie prawdopodobnie taki: Error from server (NotFound): configmaps „aws-auth” not found.

Jeżeli tak jest, to musimy ściągnąć taką konfigurację i lekko ją wyedytować. Ściągamy plik

W pliku

musimy wpisać ARN do roli, którą będą przyjmowały nody naszego klastra. Przypomnę tylko, że jest to rola z następującymi politykami:

  • AmazonEKSWorkerNodePolicy,
  • AmazonEKSCNIPolicy,
  • AmazonEC2ContainerRegistryReadOnly.

Po zapisaniu zmian, musimy oczywiście zaaplikować zmiany na naszym klastrze:

Teraz polecenie

powinno zadziałać.

Aby dodać nowego użytkownika musimy tą mapę wyedytować. Otwieramy ją:

W sekcji data możemy dodać naszych użytkowników. Potrzebne będą trzy dodatkowe rzeczy w konfiguracji:

  • userarn: ARN użytkownika,
  • username: nazwa użytkownika wewnątrz klastra Kuberenetes,
  • groups: lista grup Kubernetes, do których użytkownik będzie przydzielony.

Wszystkie te dane umieszczamy w sekcji mapUsers. Może jej jeszcze nie być.

U mnie, po edycji, ta część konfiguracji wygląda tak:

Zanim zapiszę zmiany, w drugim terminalu użyję poświadczeń awsowych nowego użytkownika eksadmin i spróbuję pobrać listę serwisów w klastrze.

Jak widać, nic z tego. OK, wracamy do poprzedniego terminala, zapisujemy zmiany w naszej konfiguracji i jeszcze raz oddajemy głos naszemu nowemu administratorowi.

Jak widać, po dodaniu go do konfiguracji klastra EKS, nie ma on już żadnych problemów z podłączeniem się do niego.

Podsumowanie

Amazon EKS jest jeszcze dość słabo powiązany z innymi usługami w Amazon Web Services. Nie ma do niej na przykład żadnych metryk w CloudWatch.

Za pomocą EKS możemy jednak budować standardowe klastry Kubernetesowe i przenieść do AWS swoje rozwiązania.

Początki pracy z EKS mogą być trudne, próg wejścia jest na pewno wyższy niż w przypadku ECS. Dużym plusem jest jednak to, że za całego Mastera odpowiada AWS. Mamy 3 redundantne serwery i 3 etcd. Wszystko się poza tym odpowiednio skaluje.

Warto spróbować i mam nadzieję, że tym artykułem Wam to ułatwiłem.

Comments are closed.