Generator Kubernetes Ingress
Udostępnij aplikację pod domeną
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćGenerator manifestu Kubernetes Ingress
Ingress udostępnia usługi klastra na zewnątrz — kieruje ruch z domeny do odpowiedniego serwisu. Wymaga kontrolera (np. nginx-ingress).
Struktura manifestu
| Pole | Znaczenie |
|---|---|
| ingressClassName | który kontroler obsłuży ruch (np. nginx) |
| rules.host | domena, pod którą działa aplikacja |
| paths.pathType | Prefix lub Exact — sposób dopasowania ścieżki |
| tls | sekret z certyfikatem HTTPS |
TLS z cert-manager
Adnotacja cert-manager.io/cluster-issuer sprawia, że cert-manager automatycznie wystawi i odnowi certyfikat Let's Encrypt. Sekret (nazwa-tls) tworzy się sam.
Wdrożenie
Zapisz plik jako ingress.yaml i zastosuj: kubectl apply -f ingress.yaml. Sprawdź stan: kubectl describe ingress nazwa.
Jak generator zamienia pola formularza na manifest YAML
Generator działa w przeglądarce i nie wysyła danych na serwer — YAML powstaje lokalnie na podstawie tego, co wpiszesz w formularzu. Każde pole odpowiada konkretnemu kluczowi w obiekcie Ingress z API networking.k8s.io/v1. Nazwa trafia do metadata.name, wybrany kontroler do spec.ingressClassName, host i ścieżki do spec.rules, a ustawienia HTTPS do spec.tls.
Ścieżki są budowane jako lista obiektów z polami path, pathType i backend. Backend wskazuje nazwę serwisu oraz numer portu. Gdy dodasz kilka ścieżek, generator zachowuje ich kolejność — kontroler dopasowuje pierwszą pasującą regułę, więc wpis /api powinien znaleźć się przed ogólnym /. PathType Prefix obejmuje podścieżki, a Exact tylko dokładnie podany adres.
Sekcja TLS powstaje, gdy włączysz HTTPS: podajesz listę hostów i jedną nazwę sekretu. Adnotacja cert-manager.io/cluster-issuer powoduje, że cert-manager wystawi certyfikat i zapisze go w tym sekrecie. Sam generator nie tworzy jednak ani sekretu, ani wystawcy — wstawia wyłącznie odwołania. Wynik jest deterministyczny: te same dane wejściowe dają identyczny manifest.
Przykład: publikacja shop.example.com krok po kroku
- W polu nazwy Ingress wpisujesz shop-ingress, a jako ingressClassName wybierasz nginx.
- Dodajesz regułę: host shop.example.com, ścieżka /, pathType Prefix.
- Ustawiasz backend: serwis shop-svc, port 8080.
- Włączasz TLS: host shop.example.com, sekret shop-example-tls, adnotacja cert-manager z cluster-issuer letsencrypt-prod.
- Klikasz generuj — w podglądzie pojawia się manifest z apiVersion networking.k8s.io/v1, kind Ingress, nazwą shop-ingress, ingressClassName nginx, regułą dla shop.example.com kierującą / do shop-svc:8080 oraz sekcją tls z secretName shop-example-tls.
- Kopiujesz YAML do pliku shop-ingress.yaml i wykonujesz kubectl apply -f shop-ingress.yaml. Kontroler nginx zacznie kierować ruch z shop.example.com na shop-svc, a cert-manager wystawi certyfikat i zapisze go w sekrecie shop-example-tls.
Mapowanie pól formularza na klucze manifestu
| Pole w formularzu | Klucz w YAML | Co ustawia |
|---|---|---|
| Nazwa Ingress | metadata.name | nazwa obiektu w klastrze |
| ingressClassName | spec.ingressClassName | kontroler, który obsłuży ten Ingress |
| Host | spec.rules[].host | domena, dla której działa reguła |
| Ścieżka | spec.rules[].http.paths[].path | adres URL kierowany do serwisu |
| pathType | spec.rules[].http.paths[].pathType | sposób dopasowania: Prefix lub Exact |
| Nazwa serwisu | spec.rules[].http.paths[].backend.service.name | serwis docelowy w klastrze |
| Port serwisu | spec.rules[].http.paths[].backend.service.port.number | port, na który trafia ruch |
| Nazwa sekretu TLS | spec.tls[].secretName | sekret z certyfikatem HTTPS |
Jak używać generatora bez błędów
- Ustaw ścieżki od najbardziej szczegółowej. Kontroler sprawdza reguły po kolei. Jeśli najpierw dasz Prefix /, to /api nigdy nie trafi do osobnego backendu — w formularzu dodawaj najpierw /api, a potem /.
- Trzymaj jedną nazwę sekretu TLS dla wszystkich hostów. Sekcja tls ma listę hosts, ale tylko jedno secretName. Przy wielu domenach z różnymi certyfikatami lepiej rozdzielić je na osobne manifesty.
- Nie mieszaj starej i nowej składni. Jeśli używasz ingressClassName, nie dodawaj równolegle adnotacji kubernetes.io/ingress.class — w nowszych wersjach Kubernetes może to powodować konflikt.
- Sprawdź manifest przed wdrożeniem. Po skopiowaniu YAML uruchom kubectl apply --dry-run=server -f plik.yaml, żeby wychwycić literówki w nazwach serwisów i portach.
- Pamiętaj o DNS. Manifest nie tworzy rekordu A. Host musi wskazywać na adres IP lub nazwę LoadBalancera kontrolera ingress, inaczej ruch nie dotrze do klastra.
Czego generator nie zrobi
- Nie łączy się z klastrem. Nie sprawdzi, czy kontroler ingress działa, czy serwis docelowy istnieje ani czy port jest otwarty. To wyłącznie tekst manifestu.
- Nie tworzy zasobów towarzyszących. Nie wygeneruje Deploymentu, Service, ClusterIssuer ani sekretu TLS — muszą istnieć wcześniej albo powstać osobno.
- Nie obsługuje zaawansowanych funkcji kontrolerów. Adnotacje specyficzne dla nginx, takie jak przepisywanie ścieżek, limity, CORS czy kanary, trzeba dopisać ręcznie. Generator tworzy podstawową strukturę.
- Nie waliduje DNS ani certyfikatów. Nie sprawdzi, czy domena jest poprawnie skierowana, czy certyfikat się wystawił, ani czy adnotacja cert-manager pasuje do istniejącego ClusterIssuer.
Najczęstsze pytania
Czym Ingress różni się od Service?
Service udostępnia pody wewnątrz klastra (lub przez LoadBalancer). Ingress działa warstwę wyżej — kieruje ruch HTTP/HTTPS z domen.
Dlaczego certyfikat się nie tworzy?
Sprawdź, czy cert-manager działa i czy ClusterIssuer istnieje. Adnotacja musi wskazywać właściwą nazwę.
Czy potrzebny jest kontroler?
Tak — bez zainstalowanego kontrolera (np. ingress-nginx) sam Ingress nic nie robi.
Czy generator wysyła mój manifest na serwer?
Nie. Narzędzie działa w przeglądarce i nie przesyła danych — YAML powstaje lokalnie. Możesz wklejać nazwy wewnętrznych serwisów bez obaw o ich wyciek.
Jak dodać kilka domen do jednego Ingress?
Dodaj osobne reguły dla każdego hosta w formularzu. Pamiętaj, że sekcja tls ma jedną nazwę sekretu dla wszystkich hostów — przy różnych certyfikatach rozdziel Ingress na kilka plików.
Kiedy wybrać pathType Exact, a kiedy Prefix?
Exact dopasowuje tylko dokładnie podany adres, na przykład /api. Prefix obejmuje też podścieżki, na przykład /api/v1. Dla większości aplikacji webowych wystarczy Prefix z pojedynczą ścieżką /.
Czy sam Ingress wystarczy, żeby działał HTTPS?
Nie. Potrzebny jest kontroler ingress oraz certyfikat w sekrecie TLS. Adnotacja cert-manager.io/cluster-issuer zleca cert-managerowi wystawienie certyfikatu, ale sam Ingress go nie tworzy.
Czy mogę użyć generatora dla starszego klastra bez networking.k8s.io/v1?
Generator tworzy manifest zgodny z networking.k8s.io/v1. W bardzo starych klastrach używano extensions/v1beta1 — wtedy trzeba dostosować apiVersion ręcznie lub zaktualizować klaster.