
Minęły dwa lata i witam ponownie. Dziś krótki wpis, o tym, jak pozwolić kontenerom dockera na dostęp do innych hostów przez Tailscale.
Potencjalne zastosowanie
Jest w moim homelabie maszyna z zainstalowanym dockerem i uruchomionymi kontenerami. Część z nich powinna móc się porozumiewać przez Tailscale z innymi maszynami np.
- UptimeKuma powinna móc niczym straż nocna z Ankh Morpork zrobić obchód i oznajmić „Jest dwunasta i wszystko jest w porządku”.
- Homepage za pomocą API może dostarczyć informacje o odległych maszynach
Oficjalna dokumentacja Tailscale poleca instalowanie jako sidecar, ale w tych zastosowaniach nie zda to egzaminu, pozwoli jedynie na dostęp do kontenera przez Tailnet.
Jak to zrobić?
Rozwiązanie znalazłem na Reddicie. Wg autorów, działa tylko w systemach linuxowych, osobiście nie mam Windowsa z dockerem więc nie sprawdzałem.
Na początek zainstalujmy Tailscale bezpośrednio na maszynie z dockerem. W panelu tailscale klikamy w prawym górnym rogu Add machine -> Linux server, następnie Generate install script i kopiujemy uzyskany kod podobny do poniższego i wklejamy w konsoli systemu (kod jest fa:
curl -fsSL https://tailscale.com/install.sh | sh && sudo tailscale up --auth-key=tskey-auth-jakiwygenerujenamTailscale
Instalujemy, uruchamiamy i jest – mamy Tailscale na hoście.
Następnym krokiem jest utworzenie sieci dockera korzystającej z interfejsu Tailscale:
docker network create --driver=macvlan --subnet=100.64.0.0/10 --gateway=100.64.0.1 --ip-range=100.64.0.0/24 -o parent=tailscale0 tailscale
Na sam koniec dodajemy sieć tailscale do kontenerów, które powinny jej używać.
Powodzenia. A ty, do czego byś wykorzystał dostęp do Tailnetu z kontenera?
Leave a Reply