Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator deploymentu Kubernetes — konfiguracja YAML online

Generuj konfiguracje Kubernetes Deployment, Service i Ingress w YAML. Wybierz obraz, repliki, resources limits. Pobierz gotowy YAML.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}

Repliki

2

spec.replicas — liczba podów utrzymywanych przez ReplicaSet

Obraz

nginx:1.25-alpine

containers[0].image razem z tagiem, np. nginx:1.25-alpine

Port kontenera

8 080

containerPort nasłuchiwany w kontenerze (name: http)

Port usługi

80

port Service przekierowany na targetPort — „—” gdy Service wyłączony

Dokumenty YAML

2
OK

Deployment + drugi dokument Service (rozdzielone ---) gdy włączone

apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-api
  namespace: default
  labels:
    app: demo-api
    tier: backend
    team: platform
    environment: staging
  annotations:
    maintainer: "[email protected]"
    build: manual
spec:
  replicas: 2
  selector:
    matchLabels:
      app: demo-api
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
  template:
    metadata:
      labels:
        app: demo-api
        tier: backend
        team: platform
        environment: staging
      annotations:
        maintainer: "[email protected]"
        build: manual
    spec:
      containers:
        - name: demo-api
          image: "nginx:1.25-alpine"
          imagePullPolicy: IfNotPresent
          ports:
            - name: http
              containerPort: 8080
          env:
            - name: LOG_LEVEL
              value: info
            - name: APP_ENV
              value: staging
            - name: API_BASE_URL
              value: "https://api.example.internal"
          resources:
            requests:
              cpu: 100m
              memory: 128Mi
            limits:
              cpu: 500m
              memory: 512Mi
          readinessProbe:
            httpGet:
              path: /healthz
              port: 8080
            initialDelaySeconds: 10
            periodSeconds: 10
            timeoutSeconds: 2
            failureThreshold: 3
          livenessProbe:
            httpGet:
              path: /healthz
              port: 8080
            initialDelaySeconds: 15
            periodSeconds: 10
            timeoutSeconds: 2
            failureThreshold: 3
---
apiVersion: v1
kind: Service
metadata:
  name: demo-api
  namespace: default
  labels:
    app: demo-api
    tier: backend
    team: platform
    environment: staging
spec:
  type: ClusterIP
  selector:
    app: demo-api
  ports:
    - name: http
      port: 80
      targetPort: 8080

Wiersze opisują pola, które silnik wpisuje do YAML-a dla aktualnych ustawień formularza — wartości pochodzą z bieżącej konfiguracji.

Pola manifestu Deployment (+ Service) generowane przez narzędzie
Pole YAMLKiedyWartość / opis
apiVersion zawsze apps/v1 (Deployment) — API aplikacji w klastrowie
kind zawsze Deployment — zarządza ReplicaSetami podów
metadata.name / namespace zawsze demo-api / default (etykieta DNS: małe litery, cyfry, myślniki, maks. 63 znaki)
metadata.labels zawsze app: demo-api + własne linie klucz=wartość (klucz app jest zarezerwowany dla selektora)
metadata.annotations gdy podano linie klucz=wartość z pola „Anotacje”
spec.replicas zawsze 2 — liczba podów utrzymywana przez ReplicaSet
spec.selector.matchLabels zawsze app: demo-api — selektor łączy Deployment z podami
spec.strategy zawsze type: RollingUpdate + rollingUpdate maxSurge/maxUnavailable po 25%
containers[0].name / image zawsze demo-api / nginx:1.25-alpine
containers[0].imagePullPolicy zawsze IfNotPresent (IfNotPresent / Always / Never)
containers[0].ports zawsze - name: http, containerPort: 8080
containers[0].env gdy podano pary name/value z linii KLUCZ=wartość (wartości w cudzysłowach, żeby YAML nie zmieniał typu)
containers[0].resources gdy włączone requests i limits cpu/memory — ilości typu 100m, 0.5, 128Mi, 1Gi
readinessProbe + livenessProbe gdy włączone httpGet na /healthz:8080 — liveness ma initialDelaySeconds większe o 5 od readiness
drugi dokument: apiVersion v1 / kind: Service gdy włączone typ ClusterIP, selector app: demo-api, port 80 → targetPort 8080

Nazwa i namespace muszą być etykietą DNS (małe litery, cyfry i myślniki). Wartości etykiet, anotacji i zmiennych env są wstawiane jako teksty YAML — liczby i słowa typu „on” dostają cudzysłowy, żeby Kubernetes nie zmieniał ich typu.

Kluczowe obiekty manifestu i ich pochodzenie
PojęcieSkądRokZnaczenie
Kubernetes Google 2014 otwarte narzędzie do orkiestracji kontenerów, rozwinięcie wewnętrznego systemu Borg; od 2015 wspierane przez CNCF
Pod Kubernetes 2014 najmniejsza jednostka wdrożenia — jedna lub kilka współdzielących sieć i woluminy kontenerów
Deployment / ReplicaSet Kubernetes 2014 deklaratywne aktualizacje: Deployment tworzy ReplicaSety, które utrzymują zadaną liczbę podów
Service Kubernetes 2014 stabilny adres (ClusterIP, NodePort, LoadBalancer) przed zestawem podów zmieniających IP
Namespace Kubernetes 2014 wirtualne wydzielenie zasobów wewnątrz jednego klastra (domyślny: default)

Warto wiedzieć — Kubernetes a orkiestracja

Deklaratywna orkiestracja

Kubernetes (Google, 2014, następca wewnętrznego systemu Borg) nie wykonuje poleceń po kolei, tylko dąży do opisanego stanu: wpisujesz „chcę N replik obrazu X”, a kontrolery (Deployment → ReplicaSet) doprowadzają klaster do tego stanu i utrzymują go po awariach węzłów.

RollingUpdate i selektor

Strategia RollingUpdate podmienia pody partiami (tu maxSurge/maxUnavailable po 25%), więc aplikacja nie znika na czas wdrożenia. Selektor matchLabels musi się zgadzać z etykietami szablonu poda — narzędzie wymusza app = nazwa, żeby nie zbudować Deploymentu, który nigdy nie znajdzie swoich podów.

Service daje stały adres

Pody dostają nowe IP przy każdym restarcie, dlatego ruch prowadzi się przez Service: ClusterIP wewnątrz klastra, NodePort na porcie 30000–32767 każdego węzła, LoadBalancer z zewnętrznym adresem od chmury. Service rozdziela ruch na pody wybrane po etykiecie app.

Sondy: readiness vs liveness

Readiness decyduje, czy pod dostaje ruch (podczas startu ma go nie dostawać), a liveness — czy kontener zawiesił się i trzeba go zrestartować. Dlatego liveness ma opóźnienie startowe większe o 5 sekund: aplikacja musi najpierw zdążyć się uruchomić, zanim zacznie być restartowana za brak odpowiedzi.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator deploymentu Kubernetes – stwórz poprawną specyfikację YAML online

Zarządzanie aplikacjami w nowoczesnej chmurze obliczeniowej i architekturze mikroserwisowej opiera się w dużej mierze na orkiestratorze Kubernetes (często skracanym jako K8s). Podstawowym sposobem definiowania sposobu uruchomienia aplikacji, liczby jej kopii oraz sposobu dostępu do niej jest plik konfiguracyjny YAML. Niestety, składnia YAML jest wyjątkowo rygorystyczna – jeden niewłaściwy znak spacji, nieprawidłowe wcięcie lub literówka w nazwie parametru mogą sprawić, że wdrożenie zakończy się błędem. Nasz generator deploymentu Kubernetes online to darmowe, intuicyjne narzędzie programistyczne, które pozwala wykluczyć błędy składniowe i w kilka sekund stworzyć kompletny, gotowy do wdrożenia plik konfiguracyjny (zarówno dla zasobu typu Deployment, jak i Service).

Wystarczy wypełnić podstawowe pola formularza, takie jak nazwa aplikacji, obraz kontenera z Docker Hub lub innego rejestru, port kontenera oraz liczba replik, a generator automatycznie stworzy poprawny i czysty kod YAML.

Podstawowe sekcje pliku YAML dla Deploymentu w Kubernetes

Prawidłowo sformatowana specyfikacja Deploymentu składa się z kilku kluczowych sekcji, z których każda odpowiada za inny aspekt działania aplikacji. Poniższa tabela przedstawia strukturę standardowego pliku YAML:

Klucz (Parametr YAML) Typ danych Przeznaczenie i rola w konfiguracji Przykładowa wartość
apiVersion Ciąg znaków Określa wersję API Kubernetes używaną do utworzenia tego obiektu. apps/v1
kind Ciąg znaków Definiuje typ zasobu, jaki ma zostać utworzony w klastrze. Deployment
metadata.name Ciąg znaków Unikalna nazwa wdrożenia w ramach wybranego namespace. moja-aplikacja-deployment
spec.replicas Liczba całkowita Określa docelową liczbę uruchomionych instancji (Podów) aplikacji. 3
spec.template.spec.containers Lista obiektów Definiuje szczegóły dotyczące obrazów kontenerów, portów i zmiennych. image: nginx:latest

Dobre praktyki przy tworzeniu deploymentów w K8s

Podczas projektowania konfiguracji dla środowisk produkcyjnych warto pamiętać o kilku istotnych zasadach bezpieczeństwa i wydajności:

  • Zdefiniuj limity zasobów (Resources Limits & Requests): Zawsze określaj maksymalne i minimalne zapotrzebowanie na procesor (CPU) i pamięć RAM dla każdego kontenera, aby zapobiec przeciążeniu węzłów klastra.
  • Używaj sond sprawności (Liveness & Readiness Probes): Sondy te pozwalają Kubernetesowi monitorować stan zdrowia aplikacji i automatycznie restartować zawieszone kontenery oraz kierować ruch sieciowy tylko do w pełni gotowych instancji.
  • Stosuj etykiety (Labels): Etykiety są kluczowe dla prawidłowego działania mechanizmu selektorów w serwisach (Services) oraz podczas monitorowania i zarządzania zasobami.
  • Nigdy nie używaj tagu ":latest" na produkcji: Zamiast tego zawsze wskazuj konkretną wersję obrazu (np. ":1.25.3"), aby zagwarantować powtarzalność i stabilność wdrożeń.

Jak wygenerować i wdrożyć plik YAML krok po kroku?

Korzystanie z generatora i uruchomienie aplikacji w klastrze K8s sprowadza się do prostego procesu:

  1. Uzupełnij metadane: Wpisz nazwę swojej aplikacji oraz namespace (przestrzeń nazw), w której ma zostać uruchomiona.
  2. Skonfiguruj kontener: Podaj pełną ścieżkę do obrazu kontenera, port, na którym nasłuchuje aplikacja, oraz określ liczbę replik (kopii).
  3. Wygeneruj kod: Kliknij przycisk generowania, aby natychmiast otrzymać sformatowany kod YAML.
  4. Zastosuj w klastrze: Zapisz wygenerowaną treść do pliku (np. deployment.yaml) i wykonaj w terminalu komendę: kubectl apply -f deployment.yaml.

Często zadawane pytania (FAQ)

Czym różni się Pod od Deploymentu w Kubernetes?

Pod to najmniejsza, podstawowa jednostka w Kubernetesie, reprezentująca jeden lub więcej kontenerów. Deployment to obiekt wyższego poziomu, który zarządza Podami – odpowiada za ich skalowanie, automatyczne odtwarzanie w przypadku awarii oraz wdrażanie nowych wersji aplikacji bez przestojów.

Dlaczego wcięcie spacji w YAML jest tak ważne?

Format YAML opiera się na strukturze wcięć (indentacji) realizowanej wyłącznie za pomocą spacji (tabulatory są niedozwolone). Wcięcia określają relacje nadrzędności i podrzędności danych. Błąd w liczbie spacji zmienia strukturę logiczną pliku, co uniemożliwia jego odczyt przez Kubernetes.

Jak wystawić aplikację na świat po wdrożeniu Deploymentu?

Sam Deployment nie wystawia aplikacji na zewnątrz klastra. Aby to zrobić, musisz utworzyć obiekt typu Service (np. z typem LoadBalancer lub NodePort) albo skonfigurować Ingress, który przekieruje ruch zewnętrzny do Podów zarządzanych przez dany Deployment.

Co to są limity (limits) i żądania (requests) zasobów?

Żądania (requests) to minimalna ilość CPU i pamięci RAM, jaką Kubernetes musi zagwarantować Podowi na węźle klastra podczas planowania. Limity (limits) to maksymalna ilość zasobów, jaką Pod może fizycznie zużyć. Przekroczenie limitu pamięci RAM skutkuje ubiciem kontenera (błąd OOMKilled).

Czy wygenerowany plik YAML można edytować ręcznie?

Tak, wygenerowany plik konfiguracyjny jest zwykłym dokumentem tekstowym. Możesz go pobrać lub skopiować, a następnie dowolnie modyfikować w swoim ulubionym edytorze kodu (np. VS Code), dodając zaawansowane parametry, takie jak wolumeny (Volumes) czy zmiennes środowiskowe.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!