diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES
index b6d0cfcd45053..c721a2779a84d 100644
--- a/OWNERS_ALIASES
+++ b/OWNERS_ALIASES
@@ -216,3 +216,9 @@ aliases:
- aisonaku
- potapy4
- dianaabv
+ sig-docs-pl-owners: # Admins for Polish content
+ - mfilocha
+ - nvtkaszpir
+ sig-docs-pl-reviews: # PR reviews for Polish content
+ - mfilocha
+ - nvtkaszpir
diff --git a/README-pl.md b/README-pl.md
new file mode 100644
index 0000000000000..c05631df91fe8
--- /dev/null
+++ b/README-pl.md
@@ -0,0 +1,87 @@
+# Dokumentacja projektu Kubernetes
+
+[![Build Status](https://api.travis-ci.org/kubernetes/website.svg?branch=master)](https://travis-ci.org/kubernetes/website)
+[![GitHub release](https://img.shields.io/github/release/kubernetes/website.svg)](https://github.com/kubernetes/website/releases/latest)
+
+Witamy!
+
+W tym repozytorium znajdziesz wszystko, czego potrzebujesz do zbudowania [strony internetowej Kubernetesa wraz z dokumentacją](https://kubernetes.io/). Bardzo nam miło, że chcesz wziąć udział w jej współtworzeniu!
+
+## Twój wkład w dokumentację
+
+Możesz kliknąć w przycisk **Fork** w prawym górnym rogu ekranu, aby stworzyć kopię tego repozytorium na swoim koncie GitHub. Taki rodzaj kopii (odgałęzienia) nazywa się *fork*. Zmieniaj w nim, co chcesz, a kiedy będziesz już gotowy/a przesłać te zmiany do nas, przejdź do swojej kopii i stwórz nowy *pull request*, abyśmy zostali o tym poinformowani.
+
+Po stworzeniu *pull request*, jeden z recenzentów projektu Kubernetes podejmie się przekazania jasnych wskazówek pozwalających podjąć następne działania. Na Tobie, jako właścicielu *pull requesta*, **spoczywa odpowiedzialność za wprowadzenie poprawek zgodnie z uwagami recenzenta.** Może też się zdarzyć, że swoje uwagi zgłosi więcej niż jeden recenzent, lub że recenzję będzie robił ktoś inny, niż ten, kto został przydzielony na początku. W niektórych przypadkach, jeśli zajdzie taka potrzeba, recenzent może poprosić dodatkowo o recenzję jednego z [recenzentów technicznych](https://github.com/kubernetes/website/wiki/Tech-reviewers). Recenzenci zrobią wszystko, aby odpowiedzieć sprawnie, ale konkretny czas odpowiedzi zależy od wielu czynników.
+
+Więcej informacji na temat współpracy przy tworzeniu dokumentacji znajdziesz na stronach:
+
+* [Jak rozpocząć współpracę](https://kubernetes.io/docs/contribute/start/)
+* [Podgląd wprowadzanych zmian w dokumentacji](http://kubernetes.io/docs/contribute/intermediate#view-your-changes-locally)
+* [Szablony stron](http://kubernetes.io/docs/contribute/style/page-templates/)
+* [Styl pisania dokumentacji](http://kubernetes.io/docs/contribute/style/style-guide/)
+* [Lokalizacja dokumentacji Kubernetes](https://kubernetes.io/docs/contribute/localization/)
+
+## Różne wersje językowe `README.md`
+| | |
+|---|---|
+|[README po francusku](README-fr.md)|[README po koreańsku](README-ko.md)|
+|[README po niemiecku](README-de.md)|[README po portugalsku](README-pt.md)|
+|[README w hindi](README-hi.md)|[README po hiszpańsku](README-es.md)|
+|[README po indonezyjsku](README-id.md)|[README po chińsku](README-zh.md)|
+|[README po japońsku](README-ja.md)|[README po polsku](README-pl.md)|
+|||
+
+## Jak uruchomić lokalną kopię strony przy pomocy Dockera?
+
+Zalecaną metodą uruchomienia serwisu internetowego Kubernetesa lokalnie jest użycie specjalnego obrazu [Dockera](https://docker.com), który zawiera generator stron statycznych [Hugo](https://gohugo.io).
+
+> Użytkownicy Windows będą potrzebowali dodatkowych narzędzi, które mogą zainstalować przy pomocy [Chocolatey](https://chocolatey.org).
+
+```bash
+choco install make
+```
+
+> Jeśli wolisz uruchomić serwis lokalnie bez Dockera, przeczytaj [jak uruchomić serwis lokalnie przy pomocy Hugo](#jak-uruchomić-serwis-lokalnie-przy-pomocy-hugo) poniżej.
+
+Jeśli [zainstalowałeś i uruchomiłeś](https://www.docker.com/get-started) już Dockera, zbuduj obraz `kubernetes-hugo` lokalnie:
+
+```bash
+make docker-image
+```
+
+Po zbudowaniu obrazu, możesz uruchomić serwis lokalnie:
+
+```bash
+make docker-serve
+```
+
+Aby obejrzeć zawartość serwisu otwórz w przeglądarce adres http://localhost:1313. Po każdej zmianie plików źródłowych, Hugo automatycznie aktualizuje stronę i odświeża jej widok w przeglądarce.
+
+## Jak uruchomić lokalną kopię strony przy pomocy Hugo?
+
+Zajrzyj do [oficjalnej dokumentacji Hugo](https://gohugo.io/getting-started/installing/) po instrukcję instalacji. Upewnij się, że instalujesz rozszerzoną wersję Hugo, określoną przez zmienną środowiskową `HUGO_VERSION` w pliku [`netlify.toml`](netlify.toml#L9).
+
+Aby uruchomić serwis lokalnie po instalacji Hugo, napisz:
+
+```bash
+make serve
+```
+
+Zostanie uruchomiony lokalny serwer Hugo na porcie 1313. Otwórz w przeglądarce adres http://localhost:1313, aby obejrzeć zawartość serwisu. Po każdej zmianie plików źródłowych, Hugo automatycznie aktualizuje stronę i odświeża jej widok w przeglądarce.
+
+## Społeczność, listy dyskusyjne, uczestnictwo i wsparcie
+
+Zajrzyj na stronę [społeczności](http://kubernetes.io/community/), aby dowiedzieć się, jak możesz zaangażować się w jej działania.
+
+Możesz kontaktować się z gospodarzami projektu za pomocą:
+
+* [Komunikatora Slack](https://kubernetes.slack.com/messages/sig-docs)
+* [List dyskusyjnych](https://groups.google.com/forum/#!forum/kubernetes-sig-docs)
+
+### Zasady postępowania
+
+Udział w działaniach społeczności Kubernetes jest regulowany przez [Kodeks postępowania](code-of-conduct.md).
+
+## Dziękujemy!
+
+Kubernetes rozkwita dzięki zaangażowaniu społeczności — doceniamy twój wkład w tworzenie naszego serwisu i dokumentacji!
diff --git a/README.md b/README.md
index f403f9e9dee65..6780cf8d19fe6 100644
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@ For more information about contributing to the Kubernetes documentation, see:
|[Hindi README](README-hi.md)|[Spanish README](README-es.md)|
|[Indonesian README](README-id.md)|[Chinese README](README-zh.md)|
|[Japanese README](README-ja.md)|[Vietnamese README](README-vi.md)|
-|[Russian README](README-ru.md)|
+|[Russian README](README-ru.md)|[Polish README](README-pl.md)|
|||
## Running the website locally using Docker
diff --git a/config.toml b/config.toml
index 990392d659cb6..894eac25eae8e 100644
--- a/config.toml
+++ b/config.toml
@@ -286,3 +286,14 @@ time_format_blog = "02.01.2006"
# A list of language codes to look for untranslated content, ordered from left to right.
language_alternatives = ["en"]
+[languages.pl]
+title = "Kubernetes"
+description = "Produkcyjny system zarządzania kontenerami"
+languageName = "Polski"
+weight = 13
+contentDir = "content/pl"
+
+[languages.pl.params]
+time_format_blog = "01.02.2006"
+# A list of language codes to look for untranslated content, ordered from left to right.
+language_alternatives = ["en"]
diff --git a/content/pl/OWNERS b/content/pl/OWNERS
new file mode 100644
index 0000000000000..f51cfd63f3e19
--- /dev/null
+++ b/content/pl/OWNERS
@@ -0,0 +1,13 @@
+# See the OWNERS docs at https://go.k8s.io/owners
+
+# This is the directory for Polish source content.
+# Teams and members are visible at https://github.com/orgs/kubernetes/teams.
+
+reviewers:
+- sig-docs-pl-reviews
+
+approvers:
+- sig-docs-pl-owners
+
+labels:
+- language/pl
diff --git a/content/pl/concepts/_index.md b/content/pl/concepts/_index.md
new file mode 100644
index 0000000000000..8be3830b9cc48
--- /dev/null
+++ b/content/pl/concepts/_index.md
@@ -0,0 +1,70 @@
+---
+title: Pojęcia
+main_menu: true
+content_template: templates/concept
+weight: 40
+---
+
+{{% capture overview %}}
+
+Rozdział dotyczący pojęć ma za zadanie pomóc w zrozumieniu poszczególnych składowych systemu oraz obiektów abstrakcyjnych, których Kubernetes używa do reprezentacji {{< glossary_tooltip text="klastra" term_id="cluster" length="all" >}}, a także posłużyć do lepszego poznania działania całego systemu.
+
+{{% /capture %}}
+
+{{% capture body %}}
+
+## Przegląd
+
+Pracując w środowisku Kubernetes, używasz *obiektów API Kubernetes* aby opisać *zamierzony stan* klastra: jakie aplikacje lub inne zadania chcesz uruchomić, jakich obrazów kontenerów chcesz użyć, ilu replik potrzebujesz, które zasoby dyskowe i sieciowe chcesz udostępnić itp. Zamierzony stan uzyskuje się definiując obiekty API Kubernetes, zazwyczaj przy pomocy polecenia `kubectl`. Możesz także używać API bezpośrednio, aby konfigurować i modyfikować stan klastra.
+
+Gdy tylko zdefiniujesz zamierzony stan, warstwa sterowania Kubernetes (*Kubernetes Control Plane*) podejmuje działania, aby aktualny stan klastra był zgodny ze stanem zamierzonym, wykorzystując do tego Pod Lifecycle Event Generator ([PLEG](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/node/pod-lifecycle-event-generator.md)). W tym celu Kubernetes wykonuje szereg automatycznych zadań, takich jak start lub restart kontenerów, skalowanie liczby replik dla danej aplikacji itp. Warstwa sterowania Kubernetes to zbiór różnych procesów działających na klastrze:
+
+* **Kubernetes Master** to zbiór trzech procesów uruchamianych na pojedynczym węźle klastra, który pełni rolę węzła _master_. Te procesy to: [kube-apiserver](/docs/admin/kube-apiserver/), [kube-controller-manager](/docs/admin/kube-controller-manager/) oraz [kube-scheduler](/docs/admin/kube-scheduler/).
+* Na każdym węźle klastra, nie będącym węzłem typu _Master_, działają dwa procesy:
+ * **[kubelet](/docs/admin/kubelet/)**, który komunikuje się z Kubernetes Master.
+ * **[kube-proxy](/docs/admin/kube-proxy/)**, proxy sieciowe pośredniczące w usługach sieciowych Kubernetes.
+
+## Obiekty Kubernetes
+
+Kubernetes składa się z różnych abstrakcyjnych obiektów, które reprezentują stan systemu: wdrożone aplikacje i zadania w kontenerach, powiązane zasoby sieciowe i dyskowe oraz inne informacje o tym, co się dzieje na klasterze. Te abstrakcyjne obiekty są reprezentowane przez API Kubernetes. [Opis Obiektów w Kubernetesie](/docs/concepts/overview/working-with-objects/kubernetes-objects/) zawiera więcej szczegółów na ten temat.
+
+Do podstawowych obiektów Kubernetes należą:
+
+* [Pod](/docs/concepts/workloads/pods/pod-overview/)
+* [Service *(Serwis)*](/docs/concepts/services-networking/service/)
+* [Volume *(Wolumin)*](/docs/concepts/storage/volumes/)
+* [Namespace *(Przestrzeń nazw)*](/docs/concepts/overview/working-with-objects/namespaces/)
+
+Kubernetes zawiera także obiekty abstrakcyjne wyższego poziomu, zbudowane z obiektów podstawowych przy wykorzystaniu [kontrolerów](/docs/concepts/architecture/controller/), które dostarczają dodatkowe funkcjonalności i udogodnienia. Należą do nich:
+
+ * [Deployment](/docs/concepts/workloads/controllers/deployment/)
+ * [DaemonSet](/docs/concepts/workloads/controllers/daemonset/)
+ * [StatefulSet](/docs/concepts/workloads/controllers/statefulset/)
+ * [ReplicaSet](/docs/concepts/workloads/controllers/replicaset/)
+ * [Job](/docs/concepts/workloads/controllers/jobs-run-to-completion/)
+
+## Warstwa sterowania (*Kubernetes Control Plane*) {#warstwa-sterowania}
+
+Różne komponenty warstwy sterowania, takie jak: *Kubernetes Master* czy *kubelet*, odpowiadają za to, jak Kubernetes komunikuje się z klastrem. Warstwa sterowania przechowuje informacje o wszystkich obiektach Kubernetes w systemie i w sposób ciągły steruje ich stanem. Pętle sterowania reagują na zmiany zachodzące w klastrze w sposób ciągły, starając się doprowadzić, aby stan faktyczny wszystkich obiektów odpowiadał stanowi zamierzonemu przez użytkownika.
+
+Przykładowo, kiedy używasz Kubernetes API do stworzenia Deploymentu, podajesz oczekiwany stan systemu. Warstwa sterowania Kubernetes zapisuje stworzenie tego obiektu, a następnie realizuje Twoje polecenie startując wymagane aplikacje i zlecając ich uruchomienie na węzłach klastra - w ten sposób starając się zapewnić, że faktyczny stan klastra jest zgodny ze stanem zamierzonym.
+
+### Kubernetes Master
+
+*Kubernetes Master* odpowiada za utrzymanie klastra w zamierzonym stanie. Za każdym razem, kiedy korzystasz z `kubectl`, łączysz się z węzłem typu *master* danego klastra.
+
+> "*Master*" odnosi się do zbioru procesów zarządzających stanem klastra. Zazwyczaj procesy te są uruchomione na pojedynczym węźle klastra, który jest określany jako "master". Master może być też zreplikowany w celu zagwarantowania wyższej dostępności i niezawodności.
+
+### Węzły (*Kubernetes Nodes*) {#wezly}
+
+Węzły klastra to maszyny (wirtualne, fizyczne i in.), na których uruchamiane są aplikacje i inne zadania. Kubernetes master steruje każdym z węzłów — rzadko kiedy zachodzi konieczność bezpośredniej interakcji z węzłami.
+
+{{% /capture %}}
+
+{{% capture whatsnext %}}
+
+Jeśli chcesz dodać stronę z nowym pojęciem, odwiedź
+[Jak używać szablonu strony](/docs/home/contribute/page-templates/)
+aby dowiedzieć się o tworzeniu stron opisujących pojęcia i o dostępnych szablonach.
+
+{{% /capture %}}
diff --git a/content/pl/concepts/overview/_index.md b/content/pl/concepts/overview/_index.md
new file mode 100755
index 0000000000000..9d2cdd909c079
--- /dev/null
+++ b/content/pl/concepts/overview/_index.md
@@ -0,0 +1,4 @@
+---
+title: "Przegląd"
+weight: 20
+---
\ No newline at end of file
diff --git a/content/pl/concepts/overview/components.md b/content/pl/concepts/overview/components.md
new file mode 100644
index 0000000000000..eda8ed7519b55
--- /dev/null
+++ b/content/pl/concepts/overview/components.md
@@ -0,0 +1,115 @@
+---
+title: Składniki Kubernetes
+content_template: templates/concept
+weight: 20
+card:
+ name: concepts
+ weight: 20
+---
+
+{{% capture overview %}}
+W wyniku instalacji Kubernetes otrzymujesz klaster.
+
+{{< glossary_definition term_id="cluster" length="all" prepend="Klaster to">}}
+
+W tym dokumencie opisujemy składniki niezbędne do zbudowania kompletnego, poprawnie działającego klastra Kubernetes.
+
+Poniższy rysunek przedstawia klaster Kubernetes i powiązania pomiędzy jego różnymi częściami składowymi.
+
+![Składniki Kubernetes](/images/docs/components-of-kubernetes.png)
+{{% /capture %}}
+
+{{% capture body %}}
+## Master — częsci składowe
+
+Komponenty *master* odpowiadają za warstwę sterowania klastra. Podejmują ogólne decyzje dotyczące klastra (np. zlecanie zadań), wykrywają i reagują na zdarzenia w klastrze (przykładowo, start nowego {{< glossary_tooltip text="poda" term_id="pod">}}, kiedy wartość `replicas` dla deploymentu nie zgadza się z faktyczną liczbą replik).
+
+Komponenty *master* mogą być uruchomione na dowolnej maszynie w klastrze. Dla uproszczenia skrypty instalacyjne zazwyczaj startują wszystkie składniki na tej samej maszynie i jednocześnie nie pozwalają na uruchamianie na niej kontenerów użytkowników. Na stronie [Tworzenie Wysoko Dostępnych Klastrów](/docs/admin/high-availability/) jest więcej informacji o konfiguracji typu *multi-master-VM*.
+
+### kube-apiserver
+
+{{< glossary_definition term_id="kube-apiserver" length="all" >}}
+
+### etcd
+
+{{< glossary_definition term_id="etcd" length="all" >}}
+
+### kube-scheduler
+
+{{< glossary_definition term_id="kube-scheduler" length="all" >}}
+
+### kube-controller-manager
+
+{{< glossary_definition term_id="kube-controller-manager" length="all" >}}
+
+Kontrolerami są:
+
+* Node Controller: Odpowiada za rozpoznawanie i reagowanie na sytuacje, kiedy węzeł staje się z jakiegoś powodu niedostępny.
+* Replication Controller: Odpowiada za utrzymanie prawidłowej liczby podów dla każdego obiektu typu *ReplicationController* w systemie.
+* Endpoints Controller: Dostarcza informacji do obiektów typu *Endpoints* (tzn. łączy ze sobą Serwisy i Pody).
+* Service Account & Token Controllers: Tworzy domyślne konta i tokeny dostępu API dla nowych przestrzeni nazw (*namespaces*).
+
+### cloud-controller-manager
+
+[cloud-controller-manager](/docs/tasks/administer-cluster/running-cloud-controller/) uruchamia kontroler, który komunikuje się z usługami dostawcy chmury, na których zbudowany jest klaster. Oprogramowanie cloud-controller-manager, wprowadzone w Kubernetes 1.6 ma status rozwojowy beta.
+
+cloud-controller-manager wykonuje tylko pętle sterowania konkretnych dostawców usług chmurowych. Wykonywanie tych pętli sterowania musi być wyłączone w kube-controller-manager. Wyłączenie następuje poprzez ustawienie opcji `--cloud-provider` jako `external` przy starcie kube-controller-manager.
+
+cloud-controller-manager umożliwia rozwój oprogramowania dostawców usług chmurowych niezależnie od samego oprogramowania Kubernetes. W poprzednich wersjach, główny kod Kubernetes był zależny od kodu dostarczonego przez zewnętrznych dostawców różnych usług chmurowych. W przyszłych wydaniach, oprogramowanie związane z dostawcami chmurowymi będzie utrzymywane przez nich samych i podłączane do cloud-controller-managera w trakcie uruchamiana Kubernetes.
+
+Następujące kontrolery zależą od dostawców usług chmurowych:
+
+ * Node Controller: Aby sprawdzić u dostawcy usługi chmurowej, czy węzeł został skasowany po tym, jak przestał odpowiadać
+ * Route Controller: Aby ustawić trasy *(routes)* w niższych warstwach infrastruktury chmurowej
+ * Service Controller: Aby tworzyć, aktualizować i kasować *cloud load balancers*
+ * Volume Controller: Aby tworzyć, podłączać i montować woluminy oraz zarządzać nimi przez dostawcę usług chmurowych
+
+## Składniki węzłów
+
+Składniki węzłów uruchomiane są na każdym węźle. Utrzymują pody w działaniu i ustawiają środowisko uruchomieniowe Kubernetes.
+
+### kubelet
+
+{{< glossary_definition term_id="kubelet" length="all" >}}
+
+### kube-proxy
+
+{{< glossary_definition term_id="kube-proxy" length="all" >}}
+
+### Container Runtime
+
+{{< glossary_definition term_id="container-runtime" length="all" >}}
+
+## Dodatki (*Addons*) {#dodatki}
+
+Dodatki korzystają z podstawowych obiektów Kubernetes ({{< glossary_tooltip term_id="daemonset" >}}, {{< glossary_tooltip term_id="deployment" >}}, itp.), aby rozszerzyć funkcjonalności klastra. Ponieważ są to funkcjonalności obejmujące cały klaster, zasoby te należą do przestrzeni nazw *(namespace)* `kube-system`.
+
+Wybrane dodatki opisano poniżej. Rozszerzona lista dostępnych dodatków jest w części [Dodatki](/docs/concepts/cluster-administration/addons/).
+
+### DNS
+
+Mimo, że inne dodatki nie są bezwzględnie wymagane, wszystkie klastry Kubernetes powinny mieć [cluster DNS](/docs/concepts/services-networking/dns-pod-service/), ponieważ wiele przykładów z niego korzysta.
+
+*Cluster DNS* to serwer DNS, który uzupełnienia inne serwery DNS z twojego środowiska, dostarczając informacje o rekordach DNS dla usług Kubernetes.
+
+Kontenery uruchomione przez Kubernetes automatycznie przeszukują ten serwer DNS.
+
+### Interfejs użytkownika (Dashboard)
+
+[Dashboard](/docs/tasks/access-application-cluster/web-ui-dashboard/) to webowy interfejs ogólnego zastosowania przeznaczony dla użytkowników klastra Kubernetes. Umożliwia zarządzanie i rozwiązywanie problemów związanych z aplikacjami uruchamianymi na klastrze, a także z samym klastrem.
+
+### Monitorowanie zasobów w kontenerach
+
+[Container Resource Monitoring](/docs/tasks/debug-application-cluster/resource-usage-monitoring/) zapisuje serie czasowe podstawowych metryk kontenerów w centralnej bazie danych i oferuje interfejs użytkownika do przeglądania tych danych.
+
+### Logowanie na poziomie klastra
+
+Mechanizm [logowania na poziomie klastra](/docs/concepts/cluster-administration/logging/) odpowiada za zapisywanie logów pochodzących z poszczególnych kontenerów do wspólnego magazynu, który posiada interfejs do przeglądania i przeszukiwania.
+
+{{% /capture %}}
+{{% capture whatsnext %}}
+* Więcej o [Węzłach](/docs/concepts/architecture/nodes/)
+* Więcej o [Kontrolerach](/docs/concepts/architecture/controller/)
+* Więcej o [kube-scheduler](/docs/concepts/scheduling/kube-scheduler/)
+* Oficjalna [dokumentacja](https://etcd.io/docs/) etcd
+{{% /capture %}}
diff --git a/content/pl/concepts/overview/kubernetes-api.md b/content/pl/concepts/overview/kubernetes-api.md
new file mode 100644
index 0000000000000..5813ada50e63e
--- /dev/null
+++ b/content/pl/concepts/overview/kubernetes-api.md
@@ -0,0 +1,127 @@
+---
+title: API Kubernetes
+content_template: templates/concept
+weight: 30
+card:
+ name: concepts
+ weight: 30
+---
+
+{{% capture overview %}}
+
+Ogólne reguły dotyczące API opisane są w dokumentacji [API conventions](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md).
+
+Punkty dostępowe *(endpoints)* API, typy zasobów oraz przykłady są dostępne w [API Reference](/docs/reference).
+
+Zdalny dostęp do API omówiono w dokumentacji [Controlling API Access](/docs/reference/access-authn-authz/controlling-access/).
+
+API Kubernetes to także podstawa deklaratywnego schematu konfiguracji dla systemu. Obiekty API mogą być tworzone, zmieniane, kasowane i odpytywane sa pomocą narzędzia linii poleceń [kubectl](/docs/reference/kubectl/overview/).
+
+Kubernetes przechowuje także swój serializowany stan (obecnie w [etcd](https://coreos.com/docs/distributed-configuration/getting-started-with-etcd/)) w postaci obiektów API.
+
+Kubernetes jako taki składa się z wielu elementów składowych, które komunikują się ze sobą poprzez swoje API.
+
+{{% /capture %}}
+
+
+{{% capture body %}}
+
+## Zmiany w API
+
+Z naszego doświadczenia wynika, że każdy system, który odniósł sukces, musi się nieustająco rozwijać w miarę zmieniających się potrzeb. Dlatego oczekujemy, że API też będzie się zmieniało i rozrastało. W dłuższym horyzoncie nie planujemy jednak żadnych zmian, które mogą być niezgodne z istniejącymi klientami. W ogólności, nowe zasoby i pola definiujące zasoby API są dodawane stosunkowo często. Usuwanie zasobów lub pól jest regulowane przez [API deprecation policy](/docs/reference/using-api/deprecation-policy/).
+
+Definicja zmiany zgodnej (kompatybilnej) oraz metody wprowadzania zmian w API opisano w szczegółach w [API change document](https://git.k8s.io/community/contributors/devel/sig-architecture/api_changes.md).
+
+## Definicje OpenAPI i Swagger
+
+Pełne szczegóły API są udokumentowane zgodnie z [OpenAPI](https://www.openapis.org/).
+
+Począwszy od Kubernetes w wersji 1.10, serwer Kubernetes API dostarcza specyfikację OpenAPI poprzez punkt końcowy `/openapi/v2`.
+Wymagany format określa się w nagłówkach HTTP:
+
+Nagłówek | Dopuszczalne wartości
+------ | ---------------
+Accept | `application/json`, `application/com.github.proto-openapi.spec.v2@v1.0+protobuf` (domyślnie content-type to `application/json` dla `*/*` lub pominięcie tego nagłówka)
+Accept-Encoding | `gzip` (pominięcie nagłówka jest dozwolone)
+
+W wersjach wcześniejszych niż 1.14, punkty końcowe określone przez ich format (`/swagger.json`, `/swagger-2.0.0.json`, `/swagger-2.0.0.pb-v1`, `/swagger-2.0.0.pb-v1.gz`) udostępniały specyfikację OpenAPI zgodnie z tymi formatami. Te punkty końcowe były stopniowo wycofywane i ostatecznie usunięte w wersji 1.14 Kubernetes.
+
+**Przykłady pobierania specyfikacji OpenAPI**:
+
+Przed 1.10 | Począwszy od Kubernetes 1.10
+----------- | -----------------------------
+GET /swagger.json | GET /openapi/v2 **Accept**: application/json
+GET /swagger-2.0.0.pb-v1 | GET /openapi/v2 **Accept**: application/com.github.proto-openapi.spec.v2@v1.0+protobuf
+GET /swagger-2.0.0.pb-v1.gz | GET /openapi/v2 **Accept**: application/com.github.proto-openapi.spec.v2@v1.0+protobuf **Accept-Encoding**: gzip
+
+W Kubernetes zaimplementowany jest alternatywny format serializacji na potrzeby API oparty o Protobuf, który jest przede wszystkim przeznaczony na potrzeby wewnętrznej komunikacji w klastrze i opisany w [design proposal](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/protobuf.md). Pliki IDL dla każdego ze schematów można znaleźć w pakietach Go, które definiują obiekty API.
+
+Przed wersją 1.14, apiserver Kubernetes udostępniał też specyfikację API [Swagger v1.2](http://swagger.io/) poprzez `/swaggerapi`.
+Ten punkt końcowy jest fazie wycofywania i zostanie ostatecznie usunięty w wersji Kubernetes 1.14.
+
+## Obsługa wersji API
+
+Aby ułatwić usuwanie poszczególnych pól lub restrukturyzację reprezentacji zasobów, Kubernetes obsługuje równocześnie wiele wersji API, każde poprzez osobną ścieżkę API, na przykład: `/api/v1` lub
+`/apis/extensions/v1beta1`.
+
+Zdecydowaliśmy się na rozdział wersji na poziomie całego API, a nie na poziomie poszczególnych zasobów lub pól, aby być pewnym, że API odzwierciedla w sposób przejrzysty i spójny zasoby systemowe i ich zachowania i pozwala na kontrolowany dostęp do tych API, które są w fazie wycofywania lub fazie eksperymentalnej. Schematy serializacji JSON i Protobuf stosują się do tych samych reguł wprowadzania zmian schematów — cały opis poniżej odnosi się do obydwu z nich.
+
+Należy mieć na uwadze, że wersje API i wersje oprogramowania są powiązane ze sobą w sposób niebezpośredni. [API and release
+versioning proposal](https://git.k8s.io/community/contributors/design-proposals/release/versioning.md) opisuje związki pomiędzy zarządzaniem wersjami API i oprogramowania.
+
+Różne wersje API oznaczają inną stabilność i poziom wsparcia. Kryteria dla każdego z tych poziomów opisano szczegółowo w [API Changes documentation](https://git.k8s.io/community/contributors/devel/sig-architecture/api_changes.md#alpha-beta-and-stable-versions). Podsumowanie zamieszczono poniżej poniżej:
+
+- Poziom Alfa:
+ - Nazwa wersji zawiera słowo `alpha` (np. `v1alpha1`).
+ - Może zawierać błędy. Włączenie tej funkcjonalności może wyeksponować różne błędy. Domyślnie jest wyłączona.
+ - Wsparcie dla tej funkcjonalności może być zakończone w dowolnej chwili bez uprzedniego powiadomienia.
+ - W kolejnych wersjach API może zostać zmienione w sposób niezgodny z wersjami wcześniejszymi.
+ - Rekomendowana do użycia tylko na często przebudowywanych klastrach testowych ze względu na duże ryzyko wystąpienia błędów i brak gwarancji wsparcia w dalszym horyzoncie.
+- Poziom Beta:
+ - Nazwa wersji zawiera słowo `beta` (np. `v2beta3`).
+ - Oprogramowanie jest dobrze przetestowane. Włączenie tej funkcjonalności uznaje się za bezpieczne. Funkcjonalność domyślnie włączona.
+ - Wsparcie dla funkcjonalności będzie utrzymywane, choć może zmieniać się w niektórych szczegółach.
+ - Schemat lub semantyka obiektu może się zmienić w sposób niezgodny z poprzednimi wersjami w następnych wydaniach beta lub stabilnych. Jeśli taka zmiana będzie miała miejsce, dostarczymy instrukcję migracji do kolejnej wersji. Możemy wymagać skasowania, zmiany i odtworzenia obiektów API. Proces zmiany może wymagać dodatkowych wstępnych analiz. W czasie wprowadzania zmian mogą wystąpić przerwy w dostępności aplikacji, które z tej funkcjonalności korzystają.
+ - Rekomendowane tylko dla zastosowań niekrytycznych dla biznesu ze względu na potencjalnie niezgodne zmiany w kolejnych wersjach oprogramowania. Jeśli masz wiele klastrów, które mogą być aktualizowane niezależnie, można to ograniczenie pominąć.
+ - **Testuj nasze funkcjonalności w fazie beta i zgłaszaj swoje uwagi! Po wyjściu z fazy beta, możemy nie mieć już możliwości — ze względów praktycznych — wprowadzać w nich żadnych zmian.**
+- Poziom Stabilny:
+ - Nazwa wersji jest w postaci `vX`, gdzie `X` jest liczbą naturalną.
+ - Stabilne funkcjonalności będą dostępne w wielu kolejnych wersjach oprogramowania.
+
+## Grupy API
+
+Aby ułatwić rozbudowę API Kubernetes, wprowadziliśmy [*grupy API*](https://git.k8s.io/community/contributors/design-proposals/api-machinery/api-group.md).
+Grupa API jest określona przez ścieżkę API i pole `apiVersion` serializowanego obiektu.
+
+Obecne w użyciu jest kilka grup API:
+
+1. Grupa *podstawowa* (*core*), nazywana także *legacy group*, jest dostępna przez ścieżkę REST `/api/v1` i używa `apiVersion: v1`.
+
+1. Nazwane grupy udostępnione są przez ścieżkę REST `/apis/$GROUP_NAME/$VERSION` i używają `apiVersion: $GROUP_NAME/$VERSION`
+ (np. `apiVersion: batch/v1`). Pełna lista wpieranych grup API jest dostępna w [Kubernetes API reference](/pl/docs/reference/).
+
+API może być rozbudowane na dwa sposoby przy użyciu [custom resources](/docs/concepts/api-extension/custom-resources/):
+
+1. [CustomResourceDefinition](/docs/tasks/access-kubernetes-api/extend-api-custom-resource-definitions/)
+ jest przewidziana dla użytkowników z minimalnymi wymaganiami CRUD.
+1. Użytkownicy, którzy potrzebują pełnej semantyki API Kubernetes, mogą zaimplementować własny apiserver
+ i użyć [agregatora](/docs/tasks/access-kubernetes-api/configure-aggregation-layer/),
+ aby zintegrować je w sposób niezauważalny dla klientów.
+
+## Włączanie grup API
+
+Określone zasoby i grupy API są włączone domyślnie. Włączanie i wyłączanie odbywa się poprzez ustawienie `--runtime-config`
+w apiserwerze. `--runtime-config` przyjmuje wartości oddzielane przecinkami. Przykładowo, aby wyłączyć batch/v1, należy ustawić
+`--runtime-config=batch/v1=false`, aby włączyć batch/v2alpha1, należy ustawić `--runtime-config=batch/v2alpha1`.
+Ta opcja przyjmuje rozdzielony przecinkami zbiór par klucz=wartość, który opisuje konfigurację wykonawczą apiserwera.
+
+WAŻNE: Włączenie lub wyłączenie grup lub zasobów wymaga restartu apiserver i controller-manager, aby zmiany w `--runtime-config` zostały wprowadzone.
+
+## Jak włączać dostęp do grup zasobów
+
+DaemonSets, Deployments, HorizontalPodAutoscalers, Ingresses, Jobs and ReplicaSets są domyślnie włączone.
+Pozostałe rozszerzenia mogą być włączane poprzez ustawienie `--runtime-config` w
+apiserver. `--runtime-config` przyjmuje wartości rozdzielane przecinkami. Na przykład, aby zablokować deployments oraz ingress, ustaw
+`--runtime-config=extensions/v1beta1/deployments=false,extensions/v1beta1/ingresses=false`
+
+{{% /capture %}}
diff --git a/content/pl/concepts/overview/what-is-kubernetes.md b/content/pl/concepts/overview/what-is-kubernetes.md
new file mode 100644
index 0000000000000..f03f7857bd73f
--- /dev/null
+++ b/content/pl/concepts/overview/what-is-kubernetes.md
@@ -0,0 +1,91 @@
+---
+title: Kubernetes — co to jest?
+content_template: templates/concept
+weight: 10
+card:
+ name: concepts
+ weight: 10
+---
+
+{{% capture overview %}}
+Na tej stronie znajdziesz ogólne informacje o Kubernetesie.
+{{% /capture %}}
+
+{{% capture body %}}
+Kubernetes to przenośna, rozszerzalna platforma oprogramowania *open-source* służąca do zarządzania zadaniami i serwisami uruchamianymi w kontenerach, która umożliwia deklaratywną konfigurację i automatyzację. Ekosystem Kubernetesa jest duży i dynamicznie się rozwija. Serwisy Kubernetesa, wsparcie i narzędzia są szeroko dostępne.
+
+Nazwa Kubernetes pochodzi z greki i oznacza sternika albo pilota. Google otworzyło projekt Kubernetes publicznie w 2014. Kubernetes korzysta z [piętnastoletniego doświadczenia Google w uruchamianiu wielkoskalowych serwisów](https://ai.google/research/pubs/pub43438) i łączy je z najlepszymi pomysłami i praktykami wypracowanymi przez społeczność.
+
+## Trochę historii
+
+Aby zrozumieć, dlaczego Kubernetes stał się taki przydatny, cofnijmy sie trochę w czasie.
+
+![Jak zmieniały sie metody wdrożeń](/images/docs/Container_Evolution.svg)
+
+**Era wdrożeń tradycyjnych:**
+Na początku aplikacje uruchamiane były na fizycznych serwerach. Nie było możliwości separowania zasobów poszczególnych aplikacji, co prowadziło do problemów z alokacją zasobów. Przykładowo, kiedy wiele aplikacji jest uruchomionych na jednym fizycznym serwerze, część tych aplikacji może zużyć większość dostępnych zasobów, powodując spowolnienie działania innych. Rozwiązaniem tego problemu mogło być uruchamianie każdej aplikacji na osobnej maszynie. Niestety, takie podejście ograniczało skalowanie, ponieważ większość zasobów nie była w pełni wykorzystywana, a utrzymanie wielu fizycznych maszyn było kosztowne.
+
+**Era wdrożeń w środowiskach wirtualnych:**
+Jako rozwiązanie zaproponowano wirtualizację, która umożliwiała uruchamianie wielu maszyn wirtualnych (VM) na jednym procesorze fizycznego serwera. Wirtualizacja pozwalała izolować aplikacje pomiędzy maszynami wirtualnymi i osiągnąć pewien poziom bezpieczeństwa, jako że informacje związane z jedną aplikacją nie były w łatwy sposób dostępne dla pozostałych.
+
+Wirtualizacja pozwala lepiej wykorzystywać zasoby fizycznego serwera i lepiej skalować, ponieważ aplikacje mogą być łatwo dodawane oraz aktualizowane, pozwala ograniczyć koszty sprzętu oraz ma wiele innych zalet. Za pomocą wirtualizacji można udostępnić wybrane zasoby fizyczne jako klaster maszyn wirtualnych "wielokrotnego użytku".
+
+Każda maszyna wirtualna jest pełną maszyną zawierającą własny system operacyjny pracujący na zwirtualizowanej warstwie sprzętowej.
+
+**Era wdrożeń w kontenerach:**
+Kontenery działają w sposób zbliżony do maszyn wirtualnych, ale mają mniejszy stopnień wzajemnej izolacji, współdzieląc ten sam system operacyjny. Kontenery określane są mianem "lekkich". Podobnie, jak maszyna wirtualna, kontener posiada własny system plików, procesor, pamięć, przestrzeń procesów itd. Ponieważ kontenery nie są związane z leżącymi poniżej warstwami infrastruktury, mogą być łatwiej przenoszone pomiędzy chmurami i różnymi dystrybucjami systemu operacyjnego.
+
+Kontenery zyskały popularność ze względu na swoje zalety, takie jak:
+
+* Szybkość i elastyczność w tworzeniu i instalacji aplikacji: obraz kontenera buduje się łatwiej niż obraz VM.
+* Ułatwienie ciągłego rozwoju, integracji oraz wdrażania aplikacji (*Continuous development, integration, and deployment*): obrazy kontenerów mogą być budowane w sposób wiarygodny i częsty. Wycofanie zmian jest łatwe i szybkie (ponieważ obrazy są niezmienne).
+* Rozdzielenie zadań *Dev* i *Ops*: obrazy kontenerów powstają w fazie *build/release*, oddzielając w ten sposób aplikacje od infrastruktury.
+* Obserwowalność obejmuje nie tylko informacje i metryki z poziomu systemu operacyjnego, ale także poprawność działania samej aplikacji i inne sygnały.
+* Spójność środowiska na etapach rozwoju oprogramowania, testowania i działania w trybie produkcyjnym: działa w ten sam sposób na laptopie i w chmurze.
+* Możliwość przenoszenia pomiędzy systemami operacyjnymi i platformami chmurowymi: Ubuntu, RHEL, CoreOS, prywatnymi centrami danych, Google Kubernetes Engine czy gdziekolwiek indziej.
+* Zarządzanie, które w centrum uwagi ma aplikacje: Poziom abstrakcji przeniesiony jest z warstwy systemu operacyjnego działającego na maszynie wirtualnej na poziom działania aplikacji, która działa na systemie operacyjnym używając zasobów logicznych.
+* Luźno powiązane, rozproszone i elastyczne "swobodne" mikro serwisy: Aplikacje podzielone są na mniejsze, niezależne komponenty, które mogą być dynamicznie uruchamiane i zarządzane - nie jest to monolityczny system działający na jednej, dużej maszynie dedykowanej na wyłączność.
+* Izolacja zasobów: wydajność aplikacji możliwa do przewidzenia
+* Wykorzystanie zasobów: wysoka wydajność i upakowanie.
+
+## Do czego potrzebujesz Kubernetesa i jakie są jego możliwości
+
+Kontenery są dobrą metodą na opakowywanie i uruchamianie aplikacji. W środowisku produkcyjnym musisz zarządzać kontenerami, w których działają aplikacje i pilnować, aby nie było żadnych przerw w ich dostępności. Przykładowo, kiedy jeden z kontenerów przestaje działać, inny musi zostać uruchomiony. Nie byłoby prościej, aby takimi działaniami zajmował się jakiś system?
+
+I tu właśnie Kubernetes przychodzi z pomocą! Kubernetes dostarcza środowisko do uruchamiania systemów rozproszonych o wysokiej niezawodności. Kubernetes obsługuje skalowanie aplikacji, przełączanie w sytuacjach awaryjnych, różne scenariusze wdrożeń itp. Przykładowo, Kubernetes w łatwy sposób może zarządzać wdrożeniem nowej wersji oprogramowania zgodnie z metodyką *canary deployments*.
+
+Kubernetes zapewnia:
+
+* **Detekcję nowych serwisów i balansowanie ruchu**
+Kubernetes może udostępnić kontener używając nazwy DNS lub swojego własnego adresu IP. Jeśli ruch przychodzący do kontenera jest duży, Kubernetes może balansować obciążenie i przekierować ruch sieciowy, aby zapewnić stabilność całej instalacji.
+* **Zarządzanie obsługą składowania danych**
+Kubernetes umożliwia automatyczne montowanie systemów składowania danych dowolnego typu — lokalnych, od dostawców chmurowych i innych.
+* **Automatyczne wdrożenia i wycofywanie zmian**
+Możesz opisać oczekiwany stan instalacji za pomocą Kubernetesa, który zajmie się doprowadzeniem w sposób kontrolowany stanu faktycznego do stanu oczekiwanego. Przykładowo, przy pomocy Kubernetesa możesz zautomatyzować proces tworzenia nowych kontenerów na potrzeby swojego wdrożenia, usuwania istniejących i przejęcia zasobów przez nowe kontenery.
+* **Automatyczne zarządzanie dostępnymi zasobami**
+Twoim zadaniem jest dostarczenie klastra maszyn, które Kubernetes może wykorzystać do uruchamiania zadań w kontenerach. Określasz zapotrzebowanie na moc procesora i pamięć RAM dla każdego z kontenerów. Kubernetes rozmieszcza kontenery na maszynach w taki sposób, aby jak najlepiej wykorzystać dostarczone zasoby.
+* **Samoczynne naprawianie**
+Kubernetes restartuje kontenery, które przestały działać, wymienia je na nowe, wymusza wyłączenie kontenerów, które nie odpowiadają na określone zapytania o stan i nie rozgłasza powiadomień o ich dostępności tak długo, dopóki nie są gotowe do działania.
+* **Zarządzanie informacjami poufnymi i konfiguracją**
+Kubernetes pozwala składować i zarządzać informacjami poufnymi, takimi jak hasła, tokeny OAuth i klucze SSH. Informacje poufne i zawierające konfigurację aplikacji mogą być dostarczane i zmieniane bez konieczności ponownego budowania obrazu kontenerów i bez ujawniania poufnych danych w ogólnej konfiguracji oprogramowania.
+
+## Czym Kubernetes nie jest
+
+Kubernetes nie jest tradycyjnym, zawierającym wszystko systemem PaaS *(Platform as a Service)*. Ponieważ Kubernetes działa w warstwie kontenerów, a nie sprzętu, posiada różne funkcjonalności ogólnego zastosowania, wspólne dla innych rozwiązań PaaS, takie jak: instalacje *(deployments)*, skalowanie, balansowanie ruchu, logowanie i monitoring. Co ważne, Kubernetes nie jest monolitem i te domyślnie dostępne rozwiązania są opcjonalne i działają jako wtyczki. Kubernetes dostarcza elementy, z których może być zbudowana platforma deweloperska, ale pozostawia użytkownikowi wybór i elastyczność tam, gdzie jest to ważne.
+
+Kubernetes:
+
+* Nie ogranicza typów aplikacji, które są obsługiwane. Celem Kubernetesa jest możliwość obsługi bardzo różnorodnego typu zadań, włączając w to aplikacje bezstanowe (*stateless*), aplikacje ze stanem (*stateful*) i ogólne przetwarzanie danych. Jeśli jakaś aplikacja może działać w kontenerze, będzie doskonale sobie radzić w środowisku Kubernetesa.
+* Nie oferuje wdrażania aplikacji wprost z kodu źródłowego i nie buduje aplikacji. Procesy Continuous Integration, Delivery, and Deployment (CI/CD) są zależne od kultury pracy organizacji, jej preferencji oraz wymagań technicznych.
+* Nie dostarcza serwisów z warstwy aplikacyjnej, takich jak warstwy pośrednie *middleware* (np. broker wiadomości), środowiska analizy danych (np. Spark), bazy danych (np. MySQL), cache ani klastrowych systemów składowania danych (np. Ceph) jako usług wbudowanych. Te składniki mogą być uruchamiane na klastrze Kubernetes i udostępniane innym aplikacjom przez przenośne rozwiązania, takie jak [Open Service Broker](https://openservicebrokerapi.org/).
+* Nie wymusza użycia konkretnych systemów zbierania logów, monitorowania ani ostrzegania. Niektóre z tych rozwiązań są udostępnione jako przykłady. Dostępne są też mechanizmy do gromadzenia i eksportowania różnych metryk.
+* Nie dostarcza, ani nie wymusza języka/systemu używanego do konfiguracji (np. Jsonnet). Udostępnia API typu deklaratywnego, z którego można korzystać za pomocą różnych metod wykorzystujących deklaratywne specyfikacje.
+* Nie zapewnia, ani nie wykorzystuje żadnego ogólnego systemu do zarządzania konfiguracją, utrzymaniem i samo-naprawianiem maszyn.
+* Co więcej, nie jest zwykłym systemem planowania *(orchestration)*. W rzeczywistości, eliminuje konieczność orkiestracji. Zgodnie z definicją techniczną, orkiestracja to wykonywanie określonego ciągu zadań: najpierw A, potem B i następnie C. Dla kontrastu, Kubernetes składa się z wielu niezależnych, możliwych do złożenia procesów sterujących, których zadaniem jest doprowadzenie stanu faktycznego do stanu oczekiwanego. Nie ma znaczenia, w jaki sposób przechodzi się od A do C. Nie ma konieczności scentralizowanego zarządzania. Dzięki temu otrzymujemy system, który jest potężniejszy, bardziej odporny i niezawodny i dający więcej możliwości rozbudowy.
+
+{{% /capture %}}
+
+{{% capture whatsnext %}}
+* Dowiedz się o [komponentach Kubernetesa](/pl/docs/concepts/overview/components/)
+* Jesteś gotowy [zacząć pracę](/pl/docs/setup/)?
+{{% /capture %}}
diff --git a/content/pl/docs/_index.md b/content/pl/docs/_index.md
new file mode 100644
index 0000000000000..17226790207c8
--- /dev/null
+++ b/content/pl/docs/_index.md
@@ -0,0 +1,3 @@
+---
+title: Dokumentacja
+---
diff --git a/content/pl/docs/home/_index.md b/content/pl/docs/home/_index.md
new file mode 100644
index 0000000000000..662670fb51f6e
--- /dev/null
+++ b/content/pl/docs/home/_index.md
@@ -0,0 +1,56 @@
+---
+title: Kubernetes — Dokumentacja
+noedit: true
+cid: docsHome
+layout: docsportal_home
+class: gridPage
+linkTitle: "Strona główna"
+main_menu: true
+weight: 10
+hide_feedback: true
+menu:
+ main:
+ title: "Dokumentacja"
+ weight: 20
+ post: >
+
Naucz się, jak korzystać z Kubernetesa z pomocą dokumentacji, która opisuje pojęcia, zawiera samouczki i informacje źródłowe. Możesz także pomóc w jej tworzeniu!
+overview: >
+ Kubernetes to otwarte oprogramowanie służące do automatyzacji procesów uruchamiania, skalowania i zarządzania aplikacjami w kontenerach. Gospodarzem tego projektu o otwartym kodzie źródłowym jest Cloud Native Computing Foundation (CNCF).
+cards:
+- name: concepts
+ title: "Podstawy"
+ description: "Poznaj system Kubernetes i podstawowe pojęcia z nim związane."
+ button: "Podstawowe pojęcia"
+ button_path: "/docs/concepts"
+- name: tutorials
+ title: "Wypróbuj Kubernetesa"
+ description: "Skorzystaj z samouczków, aby nauczyć się uruchamiać aplikacje na Kubernetesie."
+ button: "Samouczki"
+ button_path: "/docs/tutorials"
+- name: setup
+ title: "Uruchom klaster"
+ description: "Uruchom klaster Kubernetes dopasowany do Twoich potrzeb i możliwości."
+ button: "Uruchom Kubernetesa"
+ button_path: "/docs/setup"
+- name: tasks
+ title: "Naucz się korzystać z Kubernetesa"
+ description: "Wyszukaj popularne zadania i dowiedz się, jak sobie z nimi efektywnie poradzić."
+ button: "Przegląd zadań"
+ button_path: "/docs/tasks"
+- name: reference
+ title: Dokumentacja źródłowa
+ description: Zapoznaj się z terminologią, składnią poleceń, typami zasobów API i dokumentacją narzędzi instalacyjnych.
+ button: Zajrzyj do źródeł
+ button_path: /docs/reference
+- name: contribute
+ title: Weź udział w tworzeniu dokumentacji
+ description: Każdy może przyczynić się do tworzenia dokumentacji - zarówno nowicjusze, jak i starzy wyjadacze.
+ button: Weź udział
+ button_path: /docs/contribute
+- name: download
+ title: Pobierz Kubernetesa
+ description: Jeśli instalujesz lub aktualizujesz Kubernetesa, zajrzyj do informacji o najnowszym wydaniu.
+- name: about
+ title: O dokumentacji
+ description: Tu znajdziesz dokumentację bieżącej i czterech poprzednich wersji Kubernetes.
+---
diff --git a/content/pl/docs/home/supported-doc-versions.md b/content/pl/docs/home/supported-doc-versions.md
new file mode 100644
index 0000000000000..eb62350ce52c1
--- /dev/null
+++ b/content/pl/docs/home/supported-doc-versions.md
@@ -0,0 +1,27 @@
+---
+title: Wspierane wersje dokumentacji Kubernetesa
+content_template: templates/concept
+card:
+ name: about
+ weight: 10
+ title: Wspierane wersje dokumentacji
+---
+
+{{% capture overview %}}
+
+Ten serwis zawiera dokumentację do bieżącej i czterech poprzednich wersji Kubernetesa.
+
+{{% /capture %}}
+
+{{% capture body %}}
+
+## Bieżąca wersja
+
+Bieżąca wersja to
+[{{< param "version" >}}](/).
+
+## Poprzednie wersje
+
+{{< versions-other >}}
+
+{{% /capture %}}
diff --git a/content/pl/docs/reference/_index.md b/content/pl/docs/reference/_index.md
new file mode 100644
index 0000000000000..92177da44be46
--- /dev/null
+++ b/content/pl/docs/reference/_index.md
@@ -0,0 +1,57 @@
+---
+title: Materiały źródłowe
+linkTitle: "Materiały źródłowe"
+main_menu: true
+weight: 70
+content_template: templates/concept
+---
+
+{{% capture overview %}}
+
+Tutaj znajdziesz dokumentację źródłową Kubernetes.
+
+{{% /capture %}}
+
+{{% capture body %}}
+
+## Dokumentacja API
+
+* [Kubernetes API Overview](/docs/reference/using-api/api-overview/) - Ogólne informacje na temat Kubernetes API.
+* Wersje Kubernetes API
+ * [1.17](/docs/reference/generated/kubernetes-api/v1.17/)
+ * [1.16](/docs/reference/generated/kubernetes-api/v1.16/)
+ * [1.15](/docs/reference/generated/kubernetes-api/v1.15/)
+ * [1.14](/docs/reference/generated/kubernetes-api/v1.14/)
+ * [1.13](/docs/reference/generated/kubernetes-api/v1.13/)
+
+## Biblioteki klientów API
+
+Aby wywołać Kubernetes API z wybranego języka programowania, możesz skorzystać z
+[bibliotek klienckich](/docs/reference/using-api/client-libraries/). Oficjalnie wspierane
+biblioteki to:
+
+* [Kubernetes Go client library](https://github.com/kubernetes/client-go/)
+* [Kubernetes Python client library](https://github.com/kubernetes-client/python)
+* [Kubernetes Java client library](https://github.com/kubernetes-client/java)
+* [Kubernetes JavaScript client library](https://github.com/kubernetes-client/javascript)
+
+## Dokumentacja poleceń tekstowych *(CLI)*
+
+* [kubectl](/docs/user-guide/kubectl-overview) - Główne narzędzie tekstowe (linii poleceń) do zarządzania klastrem Kubernetes.
+ * [JSONPath](/docs/user-guide/jsonpath/) - Podręcznik składni [wyrażeń JSONPath](http://goessner.net/articles/JsonPath/) dla kubectl.
+* [kubeadm](/docs/admin/kubeadm/) - Narzędzie tekstowe do łatwego budowania klastra Kubernetes spełniającego niezbędne wymogi bezpieczeństwa.
+* [kubefed](/docs/admin/kubefed/) - Narzędzie tekstowe poleceń do zarządzania klastrami w federacji.
+
+## Dokumentacja konfiguracji
+
+* [kubelet](/docs/admin/kubelet/) - Główny agent działający na każdym węźle. Kubelet pobiera zestaw definicji PodSpecs i gwarantuje, że opisane przez nie kontenery poprawnie działają.
+* [kube-apiserver](/docs/admin/kube-apiserver/) - REST API, które sprawdza poprawność i konfiguruje obiekty API, takie jak pody, serwisy czy kontrolery replikacji.
+* [kube-controller-manager](/docs/admin/kube-controller-manager/) - Proces wykonujący główne pętle sterowania Kubernetes.
+* [kube-proxy](/docs/admin/kube-proxy/) - Przekazuje bezpośrednio dane przepływające w transmisji TCP/UDP lub dystrybuuje ruch TCP/UDP zgodnie ze schematem *round-robin* pomiędzy usługi back-endu.
+* [kube-scheduler](/docs/admin/kube-scheduler/) - Scheduler odpowiada za dostępność, wydajność i zasoby.
+
+## Dokumentacja projektowa
+
+Archiwum dokumentacji projektowej różnych funkcjonalności Kubernetes. Warto zacząć od [Kubernetes Architecture](https://git.k8s.io/community/contributors/design-proposals/architecture/architecture.md) oraz [Kubernetes Design Overview](https://git.k8s.io/community/contributors/design-proposals).
+
+{{% /capture %}}
diff --git a/content/pl/docs/reference/glossary/cluster.md b/content/pl/docs/reference/glossary/cluster.md
new file mode 100755
index 0000000000000..0021caefe0274
--- /dev/null
+++ b/content/pl/docs/reference/glossary/cluster.md
@@ -0,0 +1,17 @@
+---
+title: Klaster
+id: cluster
+date: 2019-06-15
+full_link:
+short_description: >
+ Zestaw maszyn, nazywanych węzłami, na których uruchamiane są aplikacje zarządzane przez Kubernetes. Klaster posiada przynajmniej jeden węzeł roboczy (*node*) i jeden węzeł typu master (*master node*).
+
+aka:
+tags:
+- fundamental
+- operation
+---
+Zestaw maszyn, nazywanych węzłami, na których uruchamiane są aplikacje zarządzane przez Kubernetes. Klaster posiada przynajmniej jeden węzeł roboczy (*node*) i jeden węzeł typu master (*master node*).
+
+
+Na węźle (lub węzłach) roboczych rozmieszczane są pody, które są częściami składowymi aplikacji. Węzeł (lub węzły) typu master zarządzają węzłami roboczymi i podami należącymi do klastra. Zwielokrotnione węzły typu master zapewniają większą niezawodność i odporność klastra na awarie.
diff --git a/content/pl/docs/reference/glossary/container-runtime.md b/content/pl/docs/reference/glossary/container-runtime.md
new file mode 100644
index 0000000000000..804e367a703f6
--- /dev/null
+++ b/content/pl/docs/reference/glossary/container-runtime.md
@@ -0,0 +1,21 @@
+---
+title: Container Runtime
+id: container-runtime
+date: 2019-06-05
+full_link: /docs/reference/generated/container-runtime
+short_description: >
+ *Container runtime* to oprogramowanie zajmujące się uruchamianiem kontenerów.
+
+aka:
+tags:
+- fundamental
+- workload
+---
+ *Container runtime* to oprogramowanie zajmujące się uruchamianiem kontenerów.
+
+
+
+Kubernetes obsługuje różne *container runtimes*: [Docker](http://www.docker.com),
+[containerd](https://containerd.io), [cri-o](https://cri-o.io/),
+[rktlet](https://github.com/kubernetes-incubator/rktlet) oraz każdą implementację zgodną z
+[Kubernetes CRI (Container Runtime Interface)](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md).
diff --git a/content/pl/docs/reference/glossary/etcd.md b/content/pl/docs/reference/glossary/etcd.md
new file mode 100755
index 0000000000000..3f49894b29f67
--- /dev/null
+++ b/content/pl/docs/reference/glossary/etcd.md
@@ -0,0 +1,21 @@
+---
+title: etcd
+id: etcd
+date: 2018-04-12
+full_link: /docs/tasks/administer-cluster/configure-upgrade-etcd/
+short_description: >
+ Magazyn typu klucz-wartość *(key/value store)*, zapewniający spójność i wysoką dostępność, używany do przechowywania wszystkich danych o klastrze Kubernetes.
+
+aka:
+tags:
+- architecture
+- storage
+---
+Magazyn typu klucz-wartość *(key/value store)*, zapewniający spójność i wysoką dostępność, używany do przechowywania wszystkich danych o klastrze Kubernetes.
+
+
+
+Jeśli Twój klaster Kubernetes używa etcd do przechowywania swoich danych, upewnij się, że masz opracowany plan tworzenia
+[kopii zapasowych](/docs/tasks/administer-cluster/configure-upgrade-etcd/#backing-up-an-etcd-cluster) tych danych.
+
+Szczegółowe informacje na temat etcd można znaleźć w oficjalnej [dokumentacji](https://etcd.io/docs/).
diff --git a/content/pl/docs/reference/glossary/index.md b/content/pl/docs/reference/glossary/index.md
new file mode 100755
index 0000000000000..1cdf5a1a3ef14
--- /dev/null
+++ b/content/pl/docs/reference/glossary/index.md
@@ -0,0 +1,12 @@
+---
+title: Ujednolicony słownik
+layout: glossary
+noedit: true
+default_active_tag: fundamental
+weight: 5
+card:
+ name: reference
+ weight: 10
+ title: Słownik
+---
+
diff --git a/content/pl/docs/reference/glossary/kube-apiserver.md b/content/pl/docs/reference/glossary/kube-apiserver.md
new file mode 100755
index 0000000000000..61d55fb6f7d34
--- /dev/null
+++ b/content/pl/docs/reference/glossary/kube-apiserver.md
@@ -0,0 +1,24 @@
+---
+title: Serwer API
+id: kube-apiserver
+date: 2018-04-12
+full_link: /docs/reference/generated/kube-apiserver/
+short_description: >
+ Składnik warstwy sterowania udostępniający API Kubernetes.
+
+aka:
+- kube-apiserver
+tags:
+- architecture
+- fundamental
+---
+ Składnik *master* udostępniający API Kubernetes. Służy jako *front-end* dla warstwy sterowania Kubernetes.
+ Serwer API jest składnikiem
+{{< glossary_tooltip text="warstwy sterowania" term_id="control-plane" >}} Kubernetes, który udostępnia API.
+Server API służy jako front-end warstwy sterowania Kubernetes.
+
+
+
+Podstawowa implementacją serwera API Kubernetes jest [kube-apiserver](/docs/reference/generated/kube-apiserver/).
+kube-apiserver został zaprojektowany w taki sposób, aby móc skalować się horyzontalnie — to oznacza, że zwiększa swoją wydajność poprzez dodawanie kolejnych instancji.
+Można uruchomić kilka instancji kube-apiserver i rozkładać między nimi ruch od klientów.
diff --git a/content/pl/docs/reference/glossary/kube-controller-manager.md b/content/pl/docs/reference/glossary/kube-controller-manager.md
new file mode 100755
index 0000000000000..4a3a4e64b5e77
--- /dev/null
+++ b/content/pl/docs/reference/glossary/kube-controller-manager.md
@@ -0,0 +1,18 @@
+---
+title: kube-controller-manager
+id: kube-controller-manager
+date: 2018-04-12
+full_link: /docs/reference/command-line-tools-reference/kube-controller-manager/
+short_description: >
+ Składnik *master* odpowiedzialny za uruchamianie kontrolerów.
+
+aka:
+tags:
+- architecture
+- fundamental
+---
+ Składnik *master* odpowiedzialny za uruchamianie {{< glossary_tooltip text="kontrolerów" term_id="controller" >}}.
+
+
+
+Z poziomu podziału logicznego, każdy {{< glossary_tooltip text="kontroler" term_id="controller" >}} jest oddzielnym procesem, ale w celu zmniejszenia złożoności, wszystkie kontrolery są skompilowane do jednego programu binarnego i uruchamiane jako jeden proces.
diff --git a/content/pl/docs/reference/glossary/kube-proxy.md b/content/pl/docs/reference/glossary/kube-proxy.md
new file mode 100755
index 0000000000000..9a555dbe91ff3
--- /dev/null
+++ b/content/pl/docs/reference/glossary/kube-proxy.md
@@ -0,0 +1,23 @@
+---
+title: kube-proxy
+id: kube-proxy
+date: 2018-04-12
+full_link: /docs/reference/command-line-tools-reference/kube-proxy/
+short_description: >
+ `kube-proxy` to *proxy* sieciowe, które uruchomione jest na każdym węźle klastra.
+
+aka:
+tags:
+- fundamental
+- networking
+---
+ [kube-proxy](/docs/reference/command-line-tools-reference/kube-proxy/) to *proxy* sieciowe, które uruchomione jest na każdym węźle klastra
+ i uczestniczy w tworzeniu {{< glossary_tooltip term_id="service">}}.
+
+
+
+kube-proxy utrzymuje reguły sieciowe na węźle. Dzięki tym regułom
+sieci na zewnątrz i wewnątrz klastra mogą komunikować się z Podami.
+
+kube-proxy używa warstwy filtrowania pakietów dostarczanych przez system operacyjny, o ile taka jest dostępna.
+W przeciwnym przypadku, kube-proxy samo zajmuje sie przekazywaniem ruchu sieciowego.
diff --git a/content/pl/docs/reference/glossary/kube-scheduler.md b/content/pl/docs/reference/glossary/kube-scheduler.md
new file mode 100755
index 0000000000000..074680ac02a6f
--- /dev/null
+++ b/content/pl/docs/reference/glossary/kube-scheduler.md
@@ -0,0 +1,17 @@
+---
+title: kube-scheduler
+id: kube-scheduler
+date: 2018-04-12
+full_link: /docs/reference/generated/kube-scheduler/
+short_description: >
+ Składnik *master*, który monitoruje tworzenie nowych podów i przypisuje im węzły, na których powinny zostać uruchomione.
+
+aka:
+tags:
+- architecture
+---
+Składnik *master*, który monitoruje tworzenie nowych podów i przypisuje im węzły, na których powinny zostać uruchomione.
+
+
+
+Przy podejmowaniu decyzji o wyborze węzła brane pod uwagę są wymagania indywidualne i zbiorcze odnośnie zasobów, ograniczenia wynikające z polityk sprzętu i oprogramowania, wymagania *affinity* i *anty-affinity*, lokalizacja danych, zależności między zadaniami i wymagania czasowe.
diff --git a/content/pl/docs/reference/glossary/kubelet.md b/content/pl/docs/reference/glossary/kubelet.md
new file mode 100755
index 0000000000000..ad957da9a7394
--- /dev/null
+++ b/content/pl/docs/reference/glossary/kubelet.md
@@ -0,0 +1,18 @@
+---
+title: Kubelet
+id: kubelet
+date: 2018-04-12
+full_link: /docs/reference/generated/kubelet
+short_description: >
+ Agent, który działa na każdym węźle klastra. Odpowiada za uruchamianie kontenerów w ramach poda.
+
+aka:
+tags:
+- fundamental
+- core-object
+---
+ Agent, który działa na każdym węźle klastra. Odpowiada za uruchamianie kontenerów w ramach poda.
+
+
+
+Kubelet korzysta z dostarczanych na różne sposoby PodSpecs i gwarantuje, że kontenery opisane przez te PodSpecs są uruchomione i działają poprawnie. Kubelet nie zarządza kontenerami, które nie zostały utworzone przez Kubernetes.
diff --git a/content/pl/docs/reference/tools.md b/content/pl/docs/reference/tools.md
new file mode 100644
index 0000000000000..c7246957f5d01
--- /dev/null
+++ b/content/pl/docs/reference/tools.md
@@ -0,0 +1,52 @@
+---
+title: Narzędzia
+content_template: templates/concept
+---
+
+{{% capture overview %}}
+Kubernetes zawiera różne wbudowane narzędzia służące do pracy z systemem:
+{{% /capture %}}
+
+{{% capture body %}}
+## Kubectl
+
+[`kubectl`](/docs/tasks/tools/install-kubectl/) to narzędzie tekstowe (linii poleceń) do Kubernetes. Służy do zarządzania klastrem Kubernetes.
+
+## Kubeadm
+
+[`kubeadm`](/docs/setup/production-environment/tools/kubeadm/install-kubeadm/) to narzędzie tekstowe do łatwej instalacji klastra Kubernetes w bezpiecznej konfiguracji, uruchamianego na infrastrukturze serwerów fizycznych, serwerów w chmurze bądź na maszynach wirtualnych (aktualnie w fazie rozwojowej alfa).
+
+## Kubefed
+
+[`kubefed`](/docs/tasks/federation/set-up-cluster-federation-kubefed/) to narzędzie tekstowe do zarządzania klastrami w federacji.
+
+## Minikube
+
+[`minikube`](/docs/tasks/tools/install-minikube/) to narzędzie do łatwego uruchamiania lokalnego klastra Kubernetes na twojej stacji roboczej na potrzeby rozwoju oprogramowania lub prowadzenia testów.
+
+## Pulpit *(Dashboard)*
+
+[`Dashboard`](/docs/tasks/access-application-cluster/web-ui-dashboard/) - graficzny interfejs użytkownika w przeglądarce web, który umożliwia instalację aplikacji w kontenerach na klastrze Kubernetes, rozwiązywanie problemów z nimi związanych oraz zarządzanie samym klastrem i jego zasobami.
+
+## Helm
+
+[`Kubernetes Helm`](https://github.com/kubernetes/helm) — narzędzie do zarządzania pakietami wstępnie skonfigurowanych zasobów Kubernetes (nazywanych *Kubernetes charts*).
+
+Helm-a można używać do:
+
+* Wyszukiwania i instalowania popularnego oprogramowania dystrybuowanego jako Kubernetes *charts*
+* Udostępniania własnych aplikacji w postaci pakietów Kubernetes *charts*
+* Definiowania powtarzalnych instalacji aplikacji na Kubernetes
+* Inteligentnego zarządzania plikami list (*manifests*) Kubernetes
+* Zarządzaniem kolejnymi wydaniami pakietów Helm
+
+## Kompose
+
+[`Kompose`](https://github.com/kubernetes-incubator/kompose) to narzędzie, które ma pomóc użytkownikom Docker Compose przenieść się na Kubernetes.
+
+Kompose można używać do:
+
+* Tłumaczenia plików Docker Compose na obiekty Kubernetes
+* Zmiany sposóbu zarządzania twoimi aplikacjami z lokalnego środowiska Docker na system Kubernetes
+* Zamiany plików `yaml` Docker Compose v1 lub v2 oraz [Distributed Application Bundles](https://docs.docker.com/compose/bundles/)
+{{% /capture %}}
diff --git a/content/pl/docs/search.md b/content/pl/docs/search.md
new file mode 100644
index 0000000000000..9ae06bfa7d7ca
--- /dev/null
+++ b/content/pl/docs/search.md
@@ -0,0 +1,5 @@
+---
+layout: search
+title: Wyniki wyszukiwania
+---
+
diff --git a/content/pl/docs/setup/_index.md b/content/pl/docs/setup/_index.md
new file mode 100644
index 0000000000000..0d0fde34b8d04
--- /dev/null
+++ b/content/pl/docs/setup/_index.md
@@ -0,0 +1,112 @@
+---
+no_issue: true
+title: Od czego zacząć
+main_menu: true
+weight: 20
+content_template: templates/concept
+card:
+ name: setup
+ weight: 20
+ anchors:
+ - anchor: "#srodowisko-do-nauki"
+ title: Środowisko do nauki
+ - anchor: "#srodowisko-produkcyjne"
+ title: Środowisko produkcyjne
+---
+
+{{% capture overview %}}
+
+Ten rozdział poświęcony jest różnym metodom konfiguracji i uruchomienia Kubernetesa.
+
+Istnieje wiele rozwiązań dopasowanych do różnych potrzeb użytkowników: łatwości w utrzymaniu, wymagań bezpieczeństwa, poziomu sterowania, dostępności zasobów oraz niezbędnego doświadczenia do zarządzania klastrem.
+
+Klaster Kubernetes możesz zainstalować na lokalnym komputerze, w chmurze czy w prywatnym centrum obliczeniowym albo skorzystać z klastra Kubernetes udostępnianego jako usługa. Inną możliwością jest budowa własnego rozwiązania opartego o różnych dostawców usług chmurowych, bądź bazującego bezpośrednio na sprzęcie fizycznym.
+
+W dużym uproszczeniu, możesz zbudować klaster Kubernetes zarówno w środowisku szkoleniowym, jak i na potrzeby produkcyjne.
+
+{{% /capture %}}
+
+{{% capture body %}}
+
+## Środowisko do nauki {#srodowisko-do-nauki}
+
+Aby uruchomić klaster Kubernetes do nauki na lokalnym komputerze, skorzystaj z rozwiązań opartych o Dockera — z narzędzi wspieranych przez społeczność Kubernetesa, bądź innych narzędzi dostępnych w ekosystemie.
+
+{{< table caption="Tabela z rozwiązaniami pozwalającymi na uruchomienie Kubernetesa na komputerze lokalnym - wspieranymi przez społeczność lub innymi dostępnymi w ekosystemie" >}}
+
+|Społeczność |Ekosystem |
+| ------------ | -------- |
+| [Minikube](/docs/setup/learning-environment/minikube/) | [CDK on LXD](https://www.ubuntu.com/kubernetes/docs/install-local) |
+| [kind (Kubernetes IN Docker)](https://github.com/kubernetes-sigs/kind) | [Docker Desktop](https://www.docker.com/products/docker-desktop)|
+| | [Minishift](https://docs.okd.io/latest/minishift/)|
+| | [MicroK8s](https://microk8s.io/)|
+| | [IBM Cloud Private-CE (Community Edition)](https://github.com/IBM/deploy-ibm-cloud-private) |
+| | [IBM Cloud Private-CE (Community Edition) on Linux Containers](https://github.com/HSBawa/icp-ce-on-linux-containers)|
+| | [k3s](https://k3s.io)|
+| | [Ubuntu on LXD](/docs/getting-started-guides/ubuntu/)|
+
+## Środowisko produkcyjne {#srodowisko-produkcyjne}
+
+Wybierając rozwiązanie dla środowiska produkcyjnego musisz zdecydować, którymi poziomami zarządzania klastrem (_abstrakcjami_) chcesz zajmować się sam, a które będą realizowane po stronie zewnętrznego operatora.
+
+Przykładowe poziomy abstrakcji klastra Kubernetesa to: {{< glossary_tooltip text="aplikacje" term_id="applications" >}}, {{< glossary_tooltip text="warstwa danych" term_id="data-plane" >}}, {{< glossary_tooltip text="warstwa sterowania" term_id="control-plane" >}}, {{< glossary_tooltip text="infrastruktura klastra" term_id="cluster-infrastructure" >}} i {{< glossary_tooltip text="operacje na klastrze" term_id="cluster-operations" >}}.
+
+Poniższy schemat pokazuje poszczególne poziomy abstrakcji klastra Kubernetes oraz informacje, kto jest za nie odpowiedzialny (sam użytkownik czy zewnętrzny operator).
+
+Rozwiązania dla środowisk produkcyjnych![Rozwiązania dla środowisk produkcyjnych](/images/docs/KubernetesSolutions.svg)
+
+{{< table caption="Tabela z dostawcami i rozwiązaniami dla środowisk produkcyjnych." >}}
+Poniższa tabela zawiera przegląd dostawców środowisk produkcyjnych i rozwiązań, które oferują.
+
+|Dostawca | Zarządzana | Chmura "pod klucz" | Prywatne centrum danych | Własne (w chmurze) | Własne (VM lokalne)| Własne (Bare Metal) |
+| --------- | ------ | ------ | ------ | ------ | ------ | ----- |
+| [Agile Stacks](https://www.agilestacks.com/products/kubernetes)| | ✔ | ✔ | | |
+| [Alibaba Cloud](https://www.alibabacloud.com/product/kubernetes)| | ✔ | | | |
+| [Amazon](https://aws.amazon.com) | [Amazon EKS](https://aws.amazon.com/eks/) |[Amazon EC2](https://aws.amazon.com/ec2/) | | | |
+| [AppsCode](https://appscode.com/products/pharmer/) | ✔ | | | | |
+| [APPUiO](https://appuio.ch/) | ✔ | ✔ | ✔ | | | |
+| [Banzai Cloud Pipeline Kubernetes Engine (PKE)](https://banzaicloud.com/products/pke/) | | ✔ | | ✔ | ✔ | ✔ |
+| [CenturyLink Cloud](https://www.ctl.io/) | | ✔ | | | |
+| [Cisco Container Platform](https://cisco.com/go/containers) | | | ✔ | | |
+| [Cloud Foundry Container Runtime (CFCR)](https://docs-cfcr.cfapps.io/) | | | | ✔ |✔ |
+| [CloudStack](https://cloudstack.apache.org/) | | | | | ✔|
+| [Canonical](https://ubuntu.com/kubernetes) | ✔ | ✔ | ✔ | ✔ |✔ | ✔
+| [Containership](https://containership.io) | ✔ |✔ | | | |
+| [D2iQ](https://d2iq.com/) | | [Kommander](https://d2iq.com/solutions/ksphere) | [Konvoy](https://d2iq.com/solutions/ksphere/konvoy) | [Konvoy](https://d2iq.com/solutions/ksphere/konvoy) | [Konvoy](https://d2iq.com/solutions/ksphere/konvoy) | [Konvoy](https://d2iq.com/solutions/ksphere/konvoy) |
+| [Digital Rebar](https://provision.readthedocs.io/en/tip/README.html) | | | | | | ✔
+| [DigitalOcean](https://www.digitalocean.com/products/kubernetes/) | ✔ | | | | |
+| [Docker Enterprise](https://www.docker.com/products/docker-enterprise) | |✔ | ✔ | | | ✔
+| [Fedora (Multi Node)](https://kubernetes.io/docs/getting-started-guides/fedora/flannel_multi_node_cluster/) | | | | | ✔ | ✔
+| [Fedora (Single Node)](https://kubernetes.io/docs/getting-started-guides/fedora/fedora_manual_config/) | | | | | | ✔
+| [Gardener](https://gardener.cloud/) | ✔ | ✔ | ✔ | ✔ | ✔ | [Custom Extensions](https://github.com/gardener/gardener/blob/master/docs/extensions/overview.md) |
+| [Giant Swarm](https://www.giantswarm.io/) | ✔ | ✔ | ✔ | |
+| [Google](https://cloud.google.com/) | [Google Kubernetes Engine (GKE)](https://cloud.google.com/kubernetes-engine/) | [Google Compute Engine (GCE)](https://cloud.google.com/compute/)|[GKE On-Prem](https://cloud.google.com/gke-on-prem/) | | | | | | | |
+| [IBM](https://www.ibm.com/in-en/cloud) | [IBM Cloud Kubernetes Service](https://cloud.ibm.com/kubernetes/catalog/cluster)| |[IBM Cloud Private](https://www.ibm.com/in-en/cloud/private) | |
+| [Ionos](https://www.ionos.com/enterprise-cloud) | [Ionos Managed Kubernetes](https://www.ionos.com/enterprise-cloud/managed-kubernetes) | [Ionos Enterprise Cloud](https://www.ionos.com/enterprise-cloud) | |
+| [Kontena Pharos](https://www.kontena.io/pharos/) | |✔| ✔ | | |
+| [KubeOne](https://kubeone.io/) | | ✔ | ✔ | ✔ | ✔ | ✔ |
+| [Kubermatic](https://kubermatic.io/) | ✔ | ✔ | ✔ | ✔ | ✔ | |
+| [KubeSail](https://kubesail.com/) | ✔ | | | | |
+| [Kubespray](https://kubespray.io/#/) | | | |✔ | ✔ | ✔ |
+| [Kublr](https://kublr.com/) |✔ | ✔ |✔ |✔ |✔ |✔ |
+| [Microsoft Azure](https://azure.microsoft.com) | [Azure Kubernetes Service (AKS)](https://azure.microsoft.com/en-us/services/kubernetes-service/) | | | | |
+| [Mirantis Cloud Platform](https://www.mirantis.com/software/kubernetes/) | | | ✔ | | |
+| [Nirmata](https://www.nirmata.com/) | | ✔ | ✔ | | |
+| [Nutanix](https://www.nutanix.com/en) | [Nutanix Karbon](https://www.nutanix.com/products/karbon) | [Nutanix Karbon](https://www.nutanix.com/products/karbon) | | | [Nutanix AHV](https://www.nutanix.com/products/acropolis/virtualization) |
+| [OpenNebula](https://www.opennebula.org) |[OpenNebula Kubernetes](https://marketplace.opennebula.systems/docs/service/kubernetes.html) | | | | |
+| [OpenShift](https://www.openshift.com) |[OpenShift Dedicated](https://www.openshift.com/products/dedicated/) i [OpenShift Online](https://www.openshift.com/products/online/) | | [OpenShift Container Platform](https://www.openshift.com/products/container-platform/) | | [OpenShift Container Platform](https://www.openshift.com/products/container-platform/) |[OpenShift Container Platform](https://www.openshift.com/products/container-platform/)
+| [Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE)](https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm) | ✔ | ✔ | | | |
+| [oVirt](https://www.ovirt.org/) | | | | | ✔ |
+| [Pivotal](https://pivotal.io/) | | [Enterprise Pivotal Container Service (PKS)](https://pivotal.io/platform/pivotal-container-service) | [Enterprise Pivotal Container Service (PKS)](https://pivotal.io/platform/pivotal-container-service) | | |
+| [Platform9](https://platform9.com/) | [Platform9 Managed Kubernetes](https://platform9.com/managed-kubernetes/) | | [Platform9 Managed Kubernetes](https://platform9.com/managed-kubernetes/) | ✔ | ✔ | ✔
+| [Rancher](https://rancher.com/) | | [Rancher 2.x](https://rancher.com/docs/rancher/v2.x/en/) | | [Rancher Kubernetes Engine (RKE)](https://rancher.com/docs/rke/latest/en/) | | [k3s](https://k3s.io/)
+| [StackPoint](https://stackpoint.io/) | ✔ | ✔ | | | |
+| [Supergiant](https://supergiant.io/) | |✔ | | | |
+| [SUSE](https://www.suse.com/) | | ✔ | | | |
+| [SysEleven](https://www.syseleven.io/) | ✔ | | | | |
+| [Tencent Cloud](https://intl.cloud.tencent.com/) | [Tencent Kubernetes Engine](https://intl.cloud.tencent.com/product/tke) | ✔ | ✔ | | | ✔ |
+| [VEXXHOST](https://vexxhost.com/) | ✔ | ✔ | | | |
+| [VMware](https://cloud.vmware.com/) | [VMware Cloud PKS](https://cloud.vmware.com/vmware-cloud-pks) |[VMware Enterprise PKS](https://cloud.vmware.com/vmware-enterprise-pks) | [VMware Enterprise PKS](https://cloud.vmware.com/vmware-enterprise-pks) | [VMware Essential PKS](https://cloud.vmware.com/vmware-essential-pks) | |[VMware Essential PKS](https://cloud.vmware.com/vmware-essential-pks)
+| [Z.A.R.V.I.S.](https://zarvis.ai/) | ✔ | | | | | |
+
+{{% /capture %}}
diff --git a/content/pl/docs/sitemap.md b/content/pl/docs/sitemap.md
new file mode 100644
index 0000000000000..178c79573000f
--- /dev/null
+++ b/content/pl/docs/sitemap.md
@@ -0,0 +1,114 @@
+---
+---
+
+
+
+Aby zastosować odpowiedni filtr, kliknij w etykietę lub użyj rozwijanej listy. Aby posortować rosnąco lub malejąco, kliknij w wybrany nagłówek tabeli.
+
+
+Filtruj według pojęć:
+Filtruj według obiektów:
+Filtruj według poleceń:
+
+
+
diff --git a/content/pl/docs/templates/feature-state-alpha.txt b/content/pl/docs/templates/feature-state-alpha.txt
new file mode 100644
index 0000000000000..c6c74ede8e324
--- /dev/null
+++ b/content/pl/docs/templates/feature-state-alpha.txt
@@ -0,0 +1,8 @@
+Ta funkcjonalność jest w fazie *alfa*, co oznacza:
+
+* Nazwa wersji zawiera słowo _alpha_ (np. v1alpha1).
+* Może zawierać błędy. Włączenie tej funkcjonalności może wyeksponować także inne błędy. Domyślnie jest wyłączona.
+* Wsparcie dla tej funkcjonalności może być zakończone w dowolnej chwili bez uprzedniego powiadomienia.
+* W kolejnych wersjach API może zostać zmienione w sposób niezgodny z wersjami wcześniejszymi.
+* Rekomendowana do użycia tylko na często przebudowywanych klastrach testowych ze względu na duże ryzyko wystąpienia błędów i brak gwarancji wsparcia w dalszym horyzoncie.
+
diff --git a/content/pl/docs/templates/feature-state-beta.txt b/content/pl/docs/templates/feature-state-beta.txt
new file mode 100644
index 0000000000000..df010ee34d9c9
--- /dev/null
+++ b/content/pl/docs/templates/feature-state-beta.txt
@@ -0,0 +1,8 @@
+Ta funkcjonalność jest w fazie *beta*, co oznacza:
+
+* Nazwa wersji zawiera słowo beta (np. v2beta3).
+* Oprogramowanie jest dobrze przetestowane. Włączenie tej funkcjonalności uznaje się za bezpieczne. Funkcjonalność domyślnie włączona.
+* Wsparcie dla funkcjonalności będzie utrzymywane, choć może zmieniać się w niektórych szczegółach.
+* Schemat lub semantyka obiektu może się zmienić w sposób niezgodny z poprzednimi wersjami w następnych wydaniach beta lub stabilnych. Jeśli taka zmiana będzie miała miejsce, dostarczymy instrukcję migracji do kolejnej wersji. Możemy wymagać skasowania, zmiany i odtworzenia obiektów API. Proces zmiany może wymagać dodatkowych wstępnych analiz. W czasie wprowadzania zmian mogą wystąpić przerwy w dostępności aplikacji, które z tej funkcjonalności korzystają.
+* Rekomendowane tylko dla zastosowań niekrytycznych dla biznesu ze względu na potencjalnie niezgodne zmiany w kolejnych wersjach oprogramowania. Jeśli masz wiele klastrów, które mogą być aktualizowane niezależnie, można to ograniczenie pominąć.
+* **Testuj nasze funkcjonalności w fazie beta i zgłaszaj swoje uwagi! Po wyjściu z fazy beta, możemy nie mieć już możliwości - ze względów praktycznych - wprowadzać w nich żadnych zmian.**
diff --git a/content/pl/docs/templates/feature-state-deprecated.txt b/content/pl/docs/templates/feature-state-deprecated.txt
new file mode 100644
index 0000000000000..9ec63cf0f1ecb
--- /dev/null
+++ b/content/pl/docs/templates/feature-state-deprecated.txt
@@ -0,0 +1,2 @@
+
+Ta funkcjonalność jest fazie *wycofywania*. Więcej informacji na temat tej fazy jest opisane w [Kubernetes Deprecation Policy](/docs/reference/deprecation-policy/).
diff --git a/content/pl/docs/templates/feature-state-stable.txt b/content/pl/docs/templates/feature-state-stable.txt
new file mode 100644
index 0000000000000..f54ae36ac2551
--- /dev/null
+++ b/content/pl/docs/templates/feature-state-stable.txt
@@ -0,0 +1,5 @@
+
+Ta funkcjonalność jest *stabilna*, co oznacza:
+
+* Nazwa wersji jest w postaci vX, gdzie X jest liczbą naturalną.
+* Stabilne funkcjonalności będą dostępne w wielu kolejnych wersjach oprogramowania.
diff --git a/content/pl/docs/templates/index.md b/content/pl/docs/templates/index.md
new file mode 100644
index 0000000000000..64f3d0c489e20
--- /dev/null
+++ b/content/pl/docs/templates/index.md
@@ -0,0 +1,13 @@
+---
+headless: true
+
+resources:
+- src: "*alpha*"
+ title: "alfa"
+- src: "*beta*"
+ title: "beta"
+- src: "*deprecated*"
+ title: "wycofywane"
+- src: "*stable*"
+ title: "stabilne"
+---
diff --git a/content/pl/docs/tutorials/_index.md b/content/pl/docs/tutorials/_index.md
new file mode 100644
index 0000000000000..6005968936268
--- /dev/null
+++ b/content/pl/docs/tutorials/_index.md
@@ -0,0 +1,77 @@
+---
+title: Samouczki
+main_menu: true
+weight: 60
+content_template: templates/concept
+---
+
+{{% capture overview %}}
+
+W tym rozdziale dokumentacji Kubernetes znajdziesz różne samouczki.
+Dzięki nim dowiesz się, jak osiągnąć złożone cele, które przekraczają wielkość
+pojedynczego [zadania](/docs/tasks/). Typowy samouczek podzielony jest na kilka części,
+z których każda zawiera sekwencję odpowiednich kroków.
+Przed zapoznaniem się z samouczkami warto stworzyć zakładkę do
+[słownika](/docs/reference/glossary/), aby móc się później do niego na bieżąco odwoływać.
+
+{{% /capture %}}
+
+{{% capture body %}}
+
+## Podstawy
+
+* [Podstawy Kubernetes](/docs/tutorials/kubernetes-basics/) to interaktywny samouczek, który pomoże zrozumieć system Kubernetes i wypróbować jego podstawowe możliwości.
+
+* [Scalable Microservices with Kubernetes (Udacity)](https://www.udacity.com/course/scalable-microservices-with-kubernetes--ud615)
+
+* [Introduction to Kubernetes (edX)](https://www.edx.org/course/introduction-kubernetes-linuxfoundationx-lfs158x#)
+
+* [Hello Minikube](/docs/tutorials/hello-minikube/)
+
+## Konfiguracja
+
+[Konfiguracja serwera Redis z użyciem ConfigMap](/docs/tutorials/configuration/configure-redis-using-configmap/)
+
+## Aplikacje bezstanowe *(Stateless Applications)*
+
+* [Exposing an External IP Address to Access an Application in a Cluster](/docs/tutorials/stateless-application/expose-external-ip-address/)
+
+* [Example: Deploying PHP Guestbook application with Redis](/docs/tutorials/stateless-application/guestbook/)
+
+## Aplikacje stanowe *(Stateful Applications)*
+
+* [StatefulSet Basics](/docs/tutorials/stateful-application/basic-stateful-set/)
+
+* [Example: WordPress and MySQL with Persistent Volumes](/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/)
+
+* [Example: Deploying Cassandra with Stateful Sets](/docs/tutorials/stateful-application/cassandra/)
+
+* [Running ZooKeeper, A CP Distributed System](/docs/tutorials/stateful-application/zookeeper/)
+
+## CI/CD Pipeline
+
+* [Set Up a CI/CD Pipeline with Kubernetes Part 1: Overview](https://www.linux.com/blog/learn/chapter/Intro-to-Kubernetes/2017/5/set-cicd-pipeline-kubernetes-part-1-overview)
+
+* [Set Up a CI/CD Pipeline with a Jenkins Pod in Kubernetes (Part 2)](https://www.linux.com/blog/learn/chapter/Intro-to-Kubernetes/2017/6/set-cicd-pipeline-jenkins-pod-kubernetes-part-2)
+
+* [Run and Scale a Distributed Crossword Puzzle App with CI/CD on Kubernetes (Part 3)](https://www.linux.com/blog/learn/chapter/intro-to-kubernetes/2017/6/run-and-scale-distributed-crossword-puzzle-app-cicd-kubernetes-part-3)
+
+* [Set Up CI/CD for a Distributed Crossword Puzzle App on Kubernetes (Part 4)](https://www.linux.com/blog/learn/chapter/intro-to-kubernetes/2017/6/set-cicd-distributed-crossword-puzzle-app-kubernetes-part-4)
+
+## Klastry
+
+* [AppArmor](/docs/tutorials/clusters/apparmor/)
+
+## Serwisy
+
+* [Using Source IP](/docs/tutorials/services/source-ip/)
+
+{{% /capture %}}
+
+{{% capture whatsnext %}}
+
+Jeśli chciałbyś napisać nowy samouczek, zajrzyj na stronę
+[Jak używać szablonów stron](/docs/home/contribute/page-templates/)
+gdzie znajdziesz dodatkowe informacje na temat stron i szablonów samouczków.
+
+{{% /capture %}}
diff --git a/content/pl/docs/tutorials/hello-minikube.md b/content/pl/docs/tutorials/hello-minikube.md
new file mode 100644
index 0000000000000..f962199317165
--- /dev/null
+++ b/content/pl/docs/tutorials/hello-minikube.md
@@ -0,0 +1,284 @@
+---
+title: Hello Minikube
+content_template: templates/tutorial
+weight: 5
+menu:
+ main:
+ title: "Jak zacząć?"
+ weight: 10
+ post: >
+
Jesteś gotowy ubrudzić ręce? Zbuduj własny klaster kubernetes z działającą na nim aplikacją "Hello World" w Node.js.
+card:
+ name: tutorials
+ weight: 10
+---
+
+{{% capture overview %}}
+
+Ten samouczek pokaże, jak uruchomić prostą aplikację Hello World w Node.js
+na Kubernetes przy użyciu [Minikube](/docs/setup/learning-environment/minikube) oraz Katacoda.
+Katacoda to darmowe środowisko Kubernetes dostępne bezpośrednio z przeglądarki web.
+
+{{< note >}}
+Możesz też skorzystać z tego samouczka, jeśli już zainstalowałeś [Minikube lokalnie](/docs/tasks/tools/install-minikube/).
+{{< /note >}}
+
+{{% /capture %}}
+
+{{% capture objectives %}}
+
+* Skonfiguruj aplikację *hello world* do uruchomienia w Minikube.
+* Uruchom aplikację.
+* Przejrzyj jej logi.
+
+{{% /capture %}}
+
+{{% capture prerequisites %}}
+
+W tym samouczku wykorzystamy obraz kontenera zbudowany z następujących plików:
+
+{{< codenew language="js" file="minikube/server.js" >}}
+
+{{< codenew language="conf" file="minikube/Dockerfile" >}}
+
+Więcej informacji na temat polecenia `docker build` znajdziesz w [dokumentacji Dockera](https://docs.docker.com/engine/reference/commandline/build/).
+
+{{% /capture %}}
+
+{{% capture lessoncontent %}}
+
+## Stwórz klaster Minikube
+
+1. Kliknij w **Launch Terminal**
+
+ {{< kat-button >}}
+
+ {{< note >}}Jeśli masz Minikube zainstalowane lokalnie, uruchom `minikube start`.{{< /note >}}
+
+2. Otwórz panel Kubernetes w przeglądarce:
+
+ ```shell
+ minikube dashboard
+ ```
+
+3. Tylko w Katacoda: Na górze okienka z terminalem kliknij na znak plus, a następnie wybierz **Select port to view on Host 1**.
+
+4. Tylko w Katacoda: Wpisz `30000`i kliknij **Display Port**.
+
+## Stwórz Deployment
+
+[*Pod*](/docs/concepts/workloads/pods/pod/) w Kubernetes to grupa jednego lub wielu kontenerów połączonych ze sobą
+na potrzeby administrowania i dostępu sieci. W tym samouczku Pod zawiera tylko jeden kontener.
+[*Deployment*](/docs/concepts/workloads/controllers/deployment/) w Kubernetes monitoruje stan twojego Poda
+i restartuje należący do niego kontener, jeśli ten z jakichś powodów przestanie działać.
+Użycie Deploymentu to rekomendowana metoda zarządzania tworzeniem i skalowaniem Podów.
+
+1. Użyj polecenia `kubectl create` do stworzenia Deploymentu, który będzie zarządzał Podem. Pod uruchamia kontener
+wykorzystując podany obraz Dockera.
+
+ ```shell
+ kubectl create deployment hello-node --image=gcr.io/hello-minikube-zero-install/hello-node
+ ```
+
+2. Sprawdź stan Deploymentu:
+
+ ```shell
+ kubectl get deployments
+ ```
+
+ Wynik powinien wyglądać podobnie do:
+
+ ```
+ NAME READY UP-TO-DATE AVAILABLE AGE
+ hello-node 1/1 1 1 1m
+ ```
+
+3. Sprawdź stan Poda:
+
+ ```shell
+ kubectl get pods
+ ```
+
+ Wynik powinien wyglądać podobnie do:
+
+ ```
+ NAME READY STATUS RESTARTS AGE
+ hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m
+ ```
+
+4. Obejrzyj zdarzenia na klastrze:
+
+ ```shell
+ kubectl get events
+ ```
+
+5. Sprawdź konfigurację `kubectl`:
+
+ ```shell
+ kubectl config view
+ ```
+
+ {{< note >}}Więcej informacji na temat polecenia `kubectl` znajdziesz w [przeglądzie kubectl](/docs/user-guide/kubectl-overview/).{{< /note >}}
+
+## Stwórz Serwis
+
+Domyślnie Pod jest dostępny tylko poprzez swój wewnętrzny adres IP wewnątrz klastra
+Kubernetes. Aby kontener `hello-node` był osiągalny spoza wirtualnej sieci Kubernetes,
+musisz najpierw wystawić Pod jako [*Serwis*](/docs/concepts/services-networking/service/) Kubernetes, na który można będzie dostać się z zewnątrz.
+
+1. Udostępnij Pod w Internecie przy pomocy polecenia `kubectl expose`:
+
+ ```shell
+ kubectl expose deployment hello-node --type=LoadBalancer --port=8080
+ ```
+
+ Opcja `--type=LoadBalancer` wskazuje, że chcesz udostępnić swój Serwis
+ na zewnątrz klastra.
+
+2. Sprawdź Serwis, który właśnie utworzyłeś:
+
+ ```
+ kubectl get services
+ ```
+
+ Wynik powinien wyglądać podobnie do:
+
+ ```shell
+ NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
+ hello-node LoadBalancer 10.108.144.78 8080:30369/TCP 21s
+ kubernetes ClusterIP 10.96.0.1 443/TCP 23m
+ ```
+
+ U dostawców usług chmurowych, którzy obsługują *load balancers*,
+ zostanie przydzielony zewnętrzny adres IP na potrzeby serwisu.
+ W Minikube, typ `LoadBalancer` udostępnia serwis poprzez polecenie `minikube service`.
+
+3. Uruchom poniższe polecenie:
+
+ ```shell
+ minikube service hello-node
+ ```
+
+4. Tylko w Katacoda: Kliknij znak plus, a następnie **Select port to view on Host 1**.
+
+5. Tylko w Katacoda: Wpisz `30369` (sprawdź numer portu obok `8080` w opisie Serwisu) i kliknij **Display Port**
+
+ Otworzy sie okno przeglądarki obsługującej twoją aplikację i wyświetli w nim komunikat "Hello World".
+
+## Włącz dodatki
+
+Minikube ma zestaw wbudowanych dodatków, które mogą być włączane, wyłączane i otwierane w lokalnym środowisku Kubernetes.
+
+1. Lista aktualnie obsługiwanych dodatków:
+
+ ```shell
+ minikube addons list
+ ```
+
+ Wynik powinien wyglądać podobnie do:
+
+ ```
+ addon-manager: enabled
+ dashboard: enabled
+ default-storageclass: enabled
+ efk: disabled
+ freshpod: disabled
+ gvisor: disabled
+ heapster: disabled
+ helm-tiller: disabled
+ ingress: disabled
+ ingress-dns: disabled
+ logviewer: disabled
+ metrics-server: disabled
+ nvidia-driver-installer: disabled
+ nvidia-gpu-device-plugin: disabled
+ registry: disabled
+ registry-creds: disabled
+ storage-provisioner: enabled
+ storage-provisioner-gluster: disabled
+ ```
+
+2. Włącz dodatek, na przykład `heapster`:
+
+ ```shell
+ minikube addons enable heapster
+ ```
+
+ Wynik powinien wyglądać podobnie do:
+
+ ```
+ heapster was successfully enabled
+ ```
+
+3. Sprawdź Pod i Serwis, który właśnie stworzyłeś:
+
+ ```shell
+ kubectl get pod,svc -n kube-system
+ ```
+
+ Wynik powinien wyglądać podobnie do:
+
+ ```
+ NAME READY STATUS RESTARTS AGE
+ pod/coredns-5644d7b6d9-mh9ll 1/1 Running 0 34m
+ pod/coredns-5644d7b6d9-pqd2t 1/1 Running 0 34m
+ pod/heapster-9jttx 1/1 Running 0 26s
+ pod/etcd-minikube 1/1 Running 0 34m
+ pod/influxdb-grafana-b29w8 2/2 Running 0 26s
+ pod/kube-addon-manager-minikube 1/1 Running 0 34m
+ pod/kube-apiserver-minikube 1/1 Running 0 34m
+ pod/kube-controller-manager-minikube 1/1 Running 0 34m
+ pod/kube-proxy-rnlps 1/1 Running 0 34m
+ pod/kube-scheduler-minikube 1/1 Running 0 34m
+ pod/storage-provisioner 1/1 Running 0 34m
+
+ NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
+ service/heapster ClusterIP 10.96.241.45 80/TCP 26s
+ service/kube-dns ClusterIP 10.96.0.10 53/UDP,53/TCP 34m
+ service/monitoring-grafana NodePort 10.99.24.54 80:30002/TCP 26s
+ service/monitoring-influxdb ClusterIP 10.111.169.94 8083/TCP,8086/TCP 26s
+
+ ```
+
+4. Wyłącz dodatek `heapster`:
+
+ ```shell
+ minikube addons disable heapster
+ ```
+
+ Wynik powinien wyglądać podobnie do:
+
+ ```
+ heapster was successfully disabled
+ ```
+
+## Porządkujemy po sobie
+
+Teraz jest czas na wyczyszczenie zasobów, które utworzyłeś w klastrze:
+
+```shell
+kubectl delete service hello-node
+kubectl delete deployment hello-node
+```
+
+(Opcjonalnie) Zatrzymaj wirtualną maszynę Minikube (VM):
+
+```shell
+minikube stop
+```
+
+(Opcjonalnie) Skasuj Minikube VM:
+
+```shell
+minikube delete
+```
+
+{{% /capture %}}
+
+{{% capture whatsnext %}}
+
+* Dowiedz się więcej o [obiektach typu Deployment](/docs/concepts/workloads/controllers/deployment/).
+* Dowiedz się więcej o [instalowaniu aplikacji](/docs/user-guide/deploying-applications/).
+* Dowiedz się więcej o [obiektach typu Serwis](/docs/concepts/services-networking/service/).
+
+{{% /capture %}}
diff --git a/content/pl/docs/tutorials/kubernetes-basics/_index.html b/content/pl/docs/tutorials/kubernetes-basics/_index.html
new file mode 100644
index 0000000000000..9fcdc5c4cb586
--- /dev/null
+++ b/content/pl/docs/tutorials/kubernetes-basics/_index.html
@@ -0,0 +1,116 @@
+---
+title: Naucz się podstaw
+linkTitle: Podstawy Kubernetes
+weight: 10
+card:
+ name: tutorials
+ weight: 20
+ title: Pierwsze kroki
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Podstawy Kubernetes
+
Ten samouczek poprowadzi Cię przez podstawy systemu zarządzania zadaniami na klastrze Kubernetes. W każdym module znajdziesz najważniejsze informacje o głównych pojęciach i funkcjonalnościach Kubernetes oraz interaktywny samouczek online. Dzięki samouczkom nauczysz się zarządzać prostym klasterem i skonteneryzowanymi aplikacjami uruchamianymi na tym klastrze.
+
Nauczysz się, jak:
+
+
Zainstalować skonteneryzowaną aplikację na klastrze.
+
Wyskalować tą instalację.
+
Zaktualizować aplikację do nowej wersji.
+
Rozwiązywać problemy z aplikacją.
+
+
Ten samouczek korzysta z Katacoda do uruchomienia wirtualnego terminalu w przeglądarce. W terminalu dostępny jest Minikube, niewielka lokalna instalacja Kubernetes, która może być uruchamiana z dowolnego miejsca. Nie ma konieczności instalowania ani konfigurowania żadnego oprogramowania. Każdy z interaktywnych samouczków jest wykonywany bezpośrednio w przeglądarce.
+
+
+
+
+
+
+
+
Co Kubernetes może dla Ciebie zrobić?
+
Użytkownicy oczekują od współczesnych serwisów internetowych dostępności non-stop, a deweloperzy chcą móc instalować nowe wersje swoich serwisów kilka razy dziennie. Używając kontenerów można przygotowywać oprogramowanie w taki sposób, aby mogło być instalowane i aktualizowane łatwo i nie powodując żadnych przestojów. Kubernetes pomaga uruchamiać te aplikacje w kontenerach tam, gdzie chcesz i kiedy chcesz i znajdować niezbędne zasoby i narzędzia wymagane do ich pracy. Kubernetes może działać w środowiskach produkcyjnych, jest otwartym oprogramowaniem zaprojektowanym z wykorzystaniem nagromadzonego przez Google doświadczenia w zarządzaniu kontenerami, w połączeniu z najcenniejszymi ideami społeczności.
+
+
+
diff --git a/content/pl/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro.html b/content/pl/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro.html
new file mode 100644
index 0000000000000..4a9c4231fedd9
--- /dev/null
+++ b/content/pl/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro.html
@@ -0,0 +1,108 @@
+---
+title: Jak użyć Minikube do stworzenia klastra
+weight: 10
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Cele
+
+
Nauczyć się, czym jest klaster Kubernetes.
+
Nauczyć się, czym jest Minikube.
+
Uruchomić klaster Kubernetes przy pomocy terminala online.
+
+
+
+
+
Klaster Kubernetes
+
+ Zadaniem Kubernetes jest koordynacja wysoko dostępnego klastra komputerów działającego jako jedna całość. Obiekty abstrakcyjne Kubernetes pozwalają instalować (uruchamiać) aplikacje w kontenerach bez przypisywania ich do konkretnej maszyny. Aby móc korzystać z tego nowego modelu instalacji, aplikacje muszą być przygotowane w taki sposób, aby były niezależne od konkretnego serwera: muszą być skonteneryzowane. Aplikacje w kontenerach są bardziej elastyczne przy instalacji, niż to miało miejsce w poprzednich modelach, kiedy aplikacje były instalowane bezpośrednio na konkretne maszyny jako pakiety ściśle powiązane z konkretną maszyną. Kubernetes automatyzuje dystrybucję i zlecanie uruchamiania aplikacji na klastrze w bardziej efektywny sposób. Kubernetes jest platformą otwartego oprogramowania, gotowym do pracy w środowiskach produkcyjnych.
+
+
Klaster Kubernetes składa się z dwóch rodzajów zasobów:
+
+
Master koordynuje działanie klastra
+
Na węzłach (nodes) uruchamiane są aplikacje
+
+
+
+
+
+
+
Podsumowanie:
+
+
Klaster Kubernetes
+
Minikube
+
+
+
+
+ Kubernetes to platforma oprogramowania typu open source, gotowa do pracy w środowiskach produkcyjnych, która zarządza rozmieszczeniem i uruchomieniem kontenerów zawierających aplikacje na klastrach komputerowych.
+
+
+
+
+
+
+
+
+
Schemat klastra
+
+
+
+
+
+
+
+
+
+
+
+
+
Master odpowiada za zarządzanie klastrem. Master koordynuje wszystkie działania klastra, takie jak zlecanie uruchomienia aplikacji, utrzymywanie pożądanego stanu aplikacji, skalowanie aplikacji i instalowanie nowych wersji.
+
Węzeł to maszyna wirtualna (VM) lub fizyczny serwer, który jest maszyną roboczą w klastrze Kubernetes. Na każdym węźle działa Kubelet, agent zarządzający tym węzłem i komunikujący się z masterem Kubernetes. Węzeł zawiera także narzędzia do obsługi kontenerów, takie jak Docker lub rkt. Klaster Kubernetes w środowisku produkcyjnym powinien składać się minimum z trzech węzłów.
+
+
+
+
+
Węzły typu master zarządzają klastrem, pozostałe węzły są wykorzystywane do uruchamiania na nich aplikacji.
+
+
+
+
+
+
+
Kiedy instalujesz aplikację na Kubernetes, polecasz masterowi uruchomienie kontenera z aplikacją. Master zleca uruchomienie kontenera na węzłach klastra. Węzły komunikują się z masterem przy użyciu Kubernetes API, wystawianego przez mastera. Użytkownicy końcowi mogą korzystać bezpośrednio z Kubernetes API do komunikacji z klastrem.
+
+
Klaster Kubernetes może być zainstalowany zarówno na fizycznych, jak i na maszynach wirtualnych. Aby wypróbować Kubernetes, można też wykorzystać Minikube. Minikube to "lekka" implementacja Kubernetes, która tworzy VM na maszynie lokalnej i instaluje prosty klaster składający się tylko z jednego węzła. Minikube jest dostępne na systemy Linux, macOS i Windows. Narzędzie linii poleceń Minikube obsługuje podstawowe operacje na klastrze, takie jak start, stop, informacje o stanie i usunięcie klastra. Na potrzeby tego samouczka wykorzystamy jednak terminal online z zainstalowanym już wcześniej Minikube.
+
+
Teraz, kiedy już wiesz, co to jest Kubernetes, przejdźmy do samouczka online i stwórzmy nasz pierwszy klaster!
+
+
+
diff --git a/content/pl/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro.html b/content/pl/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro.html
new file mode 100644
index 0000000000000..623fe820d360e
--- /dev/null
+++ b/content/pl/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro.html
@@ -0,0 +1,115 @@
+---
+title: Jak użyć kubectl do tworzenia Deploymentu
+weight: 10
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Cele
+
+
Nauczyć się jak działa Deployment dla aplikacji.
+
Zainstalować pierwszą aplikację używając kubectl.
+
+
+
+
+
Instalacje w Kubernetes
+
+ Mając działający klaster Kubernetes, można na nim zacząć instalować aplikacje.
+ W tym celu należy skonfigurować Deployment. Deployment informuje Kubernetes,
+ jak tworzyć i aktualizować instancje Twojej aplikacji. Po stworzeniu Deploymentu, węzeł master Kubernetes
+ zleca uruchomienie tej aplikacji na indywidualnych węzłach klastra.
+
+
+
Po utworzeniu instancji aplikacji, Kubernetes Deployment Controller na bieżąco monitoruje te instancje. Jeśli węzeł, na którym działała jedna z instancji ulegnie awarii lub zostanie usunięty, Deployment Controller zamieni tę instancję z instancją na innym węźle klastra. W ten sposób działa samo naprawiający się mechanizm, który reaguje na awarie lub wyłączenia maszyn w klastrze.
+
+
W czasach przed wprowadzeniem takiej automatyzacji, skrypty instalacyjne używane były zazwyczaj do uruchomienia aplikacji, ale nie radziły sobie z awariami maszyn. Poprzez połączenie procesu instalacji i kontroli nad działaniem aplikacji na węzłach, Deployment Kubernetes oferuje fundamentalnie różne podejście do zarządzania aplikacjami.
+
+
+
+
+
+
Podsumowanie:
+
+
Deployments
+
Kubectl
+
+
+
+
+ Deployment odpowiada za stworzenie i aktualizacje instancji Twojej aplikacji
+
+
+
+
+
+
+
+
+
Instalacja pierwszej aplikacji w Kubernetes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Do tworzenia i zarządzaniem Deploymentem służy polecenie linii komend, Kubectl. Kubectl używa Kubernetes API do komunikacji z klasterem. W tym module nauczysz się najczęściej używanych poleceń Kubectl niezbędnych do stworzenia Deploymentu, który uruchomi Twoje aplikacje na klastrze Kubernetes.
+
+
Tworząc Deployment musisz określić obraz kontenera oraz liczbę replik, które mają być uruchomione. Te ustawienia możesz zmieniać później, aktualizując Deployment. Moduły 5 oraz 6 omawiają skalowanie i aktualizowanie Deploymentów.
+
+
+
+
+
+
+
+
Aby aplikacja mogła zostać uruchomiona w Kubernetes, musi być opakowana w jeden z obsługiwanych formatów kontenerów
+
+
+
+
+
+
+
+ Na potrzeby pierwszej instalacji użyjesz aplikacji na Node.js zapakowaną w kontener Docker-a. (Jeśli jeszcze nie próbowałeś stworzyć
+ aplikacji na Node.js i uruchomić za pomocą kontenerów, możesz spróbować teraz, kierując się instrukcjami samouczka
+ Hello Minikube).
+
+
+
Teraz, kiedy wiesz, czym są Deploymenty, przejdźmy do samouczka online, żeby zainstalować naszą pierwszą aplikację!
Po stworzeniu Deploymentu w Module 2, Kubernetes stworzył Pod, który "przechowuje" instancję Twojej aplikacji. Pod jest obiektem abstrakcyjnym Kubernetes, który reprezentuje grupę jednego bądź wielu kontenerów (takich jak Docker lub rkt) wraz ze wspólnymi zasobami dla tych kontenerów. Zasobami mogą być:
+
+
Współdzielona przestrzeń dyskowa, np. Volumes
+
Zasoby sieciowe, takie jak unikatowy adres IP klastra
+
Informacje służące do uruchamiania każdego z kontenerów ⏤ wersja obrazu dla kontenera lub numery portów, które mają być użyte
+
+
Pod tworzy model specyficznego dla aplikacji "wirtualnego serwera" i może zawierać różne kontenery aplikacji, które są relatywnie blisko powiązane. Przykładowo, pod może zawierać zarówno kontener z Twoją aplikacją w Node.js, jak i inny kontener dostarczający dane, które mają być opublikowane przez serwer Node.js. Kontenery wewnątrz poda współdzielą adres IP i przestrzeń portów, zawsze są uruchamiane wspólnie w tej samej lokalizacji i współdzielą kontekst wykonawczy na tym samym węźle.
+
+
Pody są niepodzielnymi jednostkami na platformie Kubernetes. W trakcie tworzenia Deploymentu na Kubernetes, Deployment tworzy Pody zawierające kontenery (w odróżnieniu od tworzenia kontenerów bezpośrednio). Każdy Pod związany jest z węzłem, na którym zostało zlecone jego uruchomienie i pozostaje tam aż do jego wyłączenia (zgodnie z polityką restartowania) lub skasowania. W przypadku awarii węzła, identyczny pod jest skierowany do uruchomienia na innym węźle klastra.
+
+
+
+
+
Podsumowanie:
+
+
Pody
+
Węzły
+
Główne polecenia Kubectl
+
+
+
+
+ Pod to grupa jednego lub wielu kontenerów aplikacji (takich, jak Docker czy rkt) zawierający współdzielony storage (volumes), adres IP i informacje, jak mają być uruchamiane.
+
+
+
+
+
+
+
+
+
Schemat ogólny podów
+
+
+
+
+
+
+
+
+
+
+
+
+
Węzły
+
Pod jest uruchamiany na węźle (Node). Węzeł jest maszyną roboczą, fizyczną lub wirtualną, w zależności od klastra. Każdy z węzłów jest zarządzany przez węzeł główny (Master). Węzeł może zawierać wiele podów. Kubernetes master automatycznie zleca uruchomienie podów na różnych węzłach w ramach klastra. Automatyczne zlecanie uruchomienia bierze pod uwagę zasoby dostępne na każdym z węzłów.
+
+
Na każdym węźle Kubernetes działają co najmniej:
+
+
Kubelet, proces odpowiedzialny za komunikację pomiędzy Kubernetes Master i węzłami; zarządza podami i kontenerami działającymi na maszynie.
+
Proces wykonawczy kontenera (przykładowo Docker czy rkt), który zajmuje się pobraniem obrazu dla kontenera z repozytorium, rozpakowaniem kontenera i uruchomieniem aplikacji.
+
+
+
+
+
+
Kontenery powinny być uruchamiane razem w jednym podzie, jeśli są ściśle ze sobą związane i muszą współdzielić zasoby, np. dysk.
+
+
+
+
+
+
+
+
+
Schemat węzła
+
+
+
+
+
+
+
+
+
+
+
+
+
Rozwiązywanie problemów przy pomocy kubectl
+
W module 2 używałeś narzędzia Kubectl. W module 3 będziemy go nadal używać, aby wydobyć informacje na temat zainstalowanych aplikacji i środowiska, w jakim działają. Najczęstsze operacje przeprowadzane są przy pomocy następujących poleceń kubectl:
+
+
kubectl get - wyświetl informacje o zasobach
+
kubectl describe - pokaż szczegółowe informacje na temat konkretnego zasobu
+
kubectl logs - wyświetl logi z kontenera w danym podzie
+
kubectl exec - wykonaj komendę wewnątrz kontenera w danym podzie
+
+
+
Korzystaj z tych poleceń, aby sprawdzić, kiedy aplikacja została zainstalowana, jaki jest jej aktualny status, gdzie jest uruchomiona i w jakiej konfiguracji.
+
+
Kiedy już wiemy więcej na temat części składowych klastra i podstawowych poleceń, przyjrzyjmy się naszej aplikacji.
+
+
+
+
+
Węzeł jest maszyną roboczą Kubernetes - fizyczną lub wirtualną, zależnie od klastra. Wiele podów może być uruchomionych na tym samym węźle.
+
+
+
diff --git a/content/pl/docs/tutorials/kubernetes-basics/expose/expose-intro.html b/content/pl/docs/tutorials/kubernetes-basics/expose/expose-intro.html
new file mode 100644
index 0000000000000..253756cba79de
--- /dev/null
+++ b/content/pl/docs/tutorials/kubernetes-basics/expose/expose-intro.html
@@ -0,0 +1,114 @@
+---
+title: Jak używać Service do udostępniania aplikacji
+weight: 10
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Cele
+
+
Poznać Serwis w Kubernetes
+
Zrozumieć, jak obiekty Label i LabelSelector są powiązane z Serwisem
+
Udostępnić aplikację na zewnątrz klastra Kubernetes korzystając z Serwisu
+
+
+
+
+
Kubernetes Services - przegląd
+
+
Pody Kubernetes są nietrwałe. Pody mają swój cykl życia. Jeśli węzeł roboczy ulegnie awarii, tracone są wszystkie pody działające na węźle. ReplicaSet będzie próbował automatycznie doprowadzić klaster z powrotem do pożądanego stanu tworząc nowe pody i w ten sposób zapewnić działanie aplikacji. Innym przykładem może być system na back-endzie przetwarzania obrazów posiadający 3 repliki. Każda z tych replik jest wymienna - system front-endu nie powinien musieć pilnować replik back-endu ani tego, czy któryś z podów przestał działać i został odtworzony na nowo. Nie należy jednak zapominać o tym, że każdy Pod w klastrze Kubernetes ma swój unikatowy adres IP, nawet pody w obrębie tego samego węzła, zatem powinna istnieć metoda automatycznego uzgadniania zmian pomiędzy podami, aby aplikacja mogła dalej funkcjonować.
+
+
Serwis w Kubernetes jest abstrakcyjnym obiektem, która definiuje logiczny zbiór podów oraz politykę dostępu do nich. Serwisy pozwalają na swobodne łączenie zależnych podów. Serwis jest zdefiniowany w YAMLu (zalecane) lub w JSONie - tak, jak wszystkie obiekty Kubernetes. Zbiór podów, które obsługuje Serwis, jest zazwyczaj określany przez LabelSelector (poniżej opisane jest, w jakich przypadkach możesz potrzebować zdefiniować Serwis bez specyfikowania selektora).
+
+
Mimo, że każdy pod ma swój unikatowy adres IP, te adresy nie są dostępne poza klastrem, o ile nie zostaną wystawione za pomocą Serwisu. Serwis umożliwia aplikacji przyjmować ruch przychodzący. Serwisy mogą być wystawiane na zewnątrz na kilka różnych sposobów, poprzez określenie typu w ServiceSpec:
+
+
ClusterIP (domyślnie) - Wystawia serwis poprzez wewnętrzny adres IP w klastrze. W ten sposób serwis jest dostępny tylko wewnątrz klastra.
+
NodePort - Wystawia serwis na tym samym porcie na każdym z wybranych węzłów klastra przy pomocy NAT. W ten sposób serwis jest dostępny z zewnątrz klastra poprzez <NodeIP>:<NodePort>. Nadzbiór ClusterIP.
+
LoadBalancer - Tworzy zewnętrzny load balancer u bieżącego dostawcy usług chmurowych (o ile jest taka możliwość) i przypisuje serwisowi stały, zewnętrzny adres IP. Nadzbiór NodePort.
+
ExternalName - Wystawia Service przy pomocy wybranej nazwy (wyspecyfikowanej jako externalName) poprzez zwracanie wartości rekordu CNAME przypisanego w usłudze DNS. W tym przypadku nie jest wykorzystywany proces przekierowania ruchu metodą proxy. Ten typ wymaga wersji v1.7 lub wyższej usługi kube-dns.
W pewnych przypadkach w serwisie nie specyfikuje się selector. Serwis, który został stworzony bez pola selector, nie utworzy odpowiedniego obiektu Endpoints. W ten sposób użytkownik ma możliwość ręcznego przyporządkowania serwisu do konkretnych endpoints. Inny przypadek, kiedy nie używa się selektora, ma miejsce, kiedy stosujemy type: ExternalName.
+
+
+
+
Podsumowanie
+
+
Otwarcie Poda na ruch z zewnątrz
+
Rozkładanie ruchu pomiędzy poszczególne Pody
+
Używanie etykiet
+
+
+
+
Serwis Kubernetes to warstwa abstrakcji, która definiuje logiczny zbiór Podów i umożliwia kierowanie ruchu przychodzącego do Podów, jego równoważenie oraz service discovery.
+
+
+
+
+
+
+
+
Sewisy i Etykiety (Labels)
+
+
+
+
+
+
+
+
+
+
+
+
Serwis kieruje przychodzący ruch do grupy Podów. Serwisy są obiektami abstrakcyjnymi, dzięki którym pody mogą się psuć i być zastępowane przez Kubernetes nowymi bez ujemnego wpływu na działanie twoich aplikacji. Detekcją nowych podów i kierowaniem ruchu pomiędzy zależnymi podami (takimi, jak składowe front-end i back-end w aplikacji) zajmują się Serwisy Kubernetes.
+
Serwis znajduje zestaw odpowiednich Podów przy pomocy etykiet i selektorów, podstawowych jednostek grupujących, które umożliwiają operacje logiczne na obiektach Kubernetes. Etykiety to pary klucz/wartość przypisane do obiektów. Mogą być używane na różne sposoby:
+
+
Dzielić obiekty na deweloperskie, testowe i produkcyjne
+
Osadzać znaczniki (tags)określające wersje
+
Klasyfikować obiekty przy użyciu znaczników
+
+
+
+
+
+
Możemy połączyć tworzenie Deploymentu i Serwisu stosując opcję --expose w kubectl.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Obiekty mogą być oznaczane etykietami w momencie tworzenia lub później. Etykiety mogą być zmienianie w dowolnej chwili. Udostępnijmy teraz naszą aplikację przy użyciu Serwisu i oznaczmy ją odpowiednimi etykietami.
W poprzednim module stworzyliśmy Deployment i udostępniliśmy go publicznie korzystając z Serwisu. Deployment utworzył tylko jeden Pod, w którym uruchomiona jest nasza aplikacja. Wraz ze wzrostem ruchu, będziemy musieli wyskalować aplikację, aby była w stanie obsłużyć zwiększone zapotrzebowanie użytkowników.
+
+
Skalowanie polega na zmianie liczby replik w Deploymencie.
+
+
+
+
+
Podsumowanie:
+
+
Skalowanie Deploymentu
+
+
+
+
Od samego początku w ramach Deploymentu można uruchomić wiele instancji — skorzystaj z parametru --replicas polecenia kubectl run
Kiedy zwiększamy skalę Deploymentu, uruchomienie nowych Podów jest zlecane na Węzłach, które posiadają odpowiednio dużo zasobów. Operacja skalowania zwiększy liczbę Podów do oczekiwanej wartości. W Kubernetes możliwe jest również autoskalowanie Podów, ale jest ono poza zakresem niniejszego samouczka. Istnieje także możliwość skalowania do zera — w ten sposób zatrzymane zostaną wszystkie Pody należące do konkretnego Deploymentu.
+
+
Kiedy działa jednocześnie wiele instancji jednej aplikacji, należy odpowiednio rozłożyć ruch pomiędzy każdą z nich. Serwisy posiadają zintegrowany load-balancer, który dystrybuuje ruch na wszystkie Pody w Deployment wystawionym na zewnątrz. Serwis prowadzi ciągły monitoring Podów poprzez ich punkty dostępowe (endpoints), aby zapewnić, że ruch kierowany jest tylko do tych Podów, które są faktycznie dostępne.
+
+
+
+
+
Skalowanie polega na zmianie liczby replik w ramach Deploymentu.
+
+
+
+
+
+
+
+
+
Kiedy aplikacja ma uruchomioną więcej niż jedną instancję, można prowadzić ciągłe aktualizacje (Rolling updates) bez przerw w działaniu aplikacji. O tym będzie mowa w następnym module. Na razie przejdźmy do terminala online, aby przeprowadzić skalowanie aplikacji.
Przeprowadzić płynną aktualizację przy użyciu kubectl.
+
+
+
+
+
Aktualizowanie aplikacji
+
+
Użytkownicy oczekują, że aplikacje są dostępne non-stop, a deweloperzy chcieliby móc wprowadzać nowe wersje nawet kilka razy dziennie. W Kubernetes jest to możliwe dzięki mechanizmowi płynnych aktualizacji (rolling updates). Rolling updates pozwala prowadzić aktualizację w ramach Deploymentu bez przerw w jego działaniu dzięki krokowemu aktualizowaniu kolejnych Podów. Nowe Pody uruchamiane są na Węzłach, które posiadają wystarczające zasoby.
+
+
W poprzednim module wyskalowaliśmy aplikację aby była uruchomiona na wielu instancjach. To niezbędny wymóg, aby móc prowadzić aktualizacje bez wpływu na dostępność aplikacji. Domyślnie, maksymalna liczba Podów, które mogą być niedostępne w trakcie aktualizacji oraz Podów, które mogą być tworzone, wynosi jeden. Obydwie opcje mogą być zdefiniowane w wartościach bezwzględnych lub procentowych (ogólnej liczby Podów).
+ W Kubernetes, każdy aktualizacja ma nadany numer wersji i każdy Deployment może być wycofany do wersji poprzedniej (stabilnej).
+
+
+
+
+
Podsumowanie:
+
+
Aktualizacja aplikacji
+
+
+
+
Rolling updates to metoda na aktualizację Deploymentów bez przerwy w ich dostępności poprzez stopniową zamianę kolejnych Podów na ich nowe wersje.
Podobnie, jak w przypadku skalowania aplikacji, jeśli Deployment jest udostępniony publicznie, Serwis będzie kierował ruch tylko do Podów, które są dostępne w trakcie aktualizacji. Dostępny Pod to taki, którego instancja jest dostępna dla użytkowników aplikacji.
+
+
Płynne aktualizacje pozwalają na:
+
+
Promocję aplikacji z jednego środowiska do innego (poprzez aktualizację obrazu kontenera)
+
Wycofywanie się do poprzedniej wersji
+
Continuous Integration oraz Continuous Delivery aplikacji bez przerw w jej działaniu
+
+
+
+
+
+
+
Jeśli Deployment jest udostępniony publicznie, Serwis będzie kierował ruch w trakcie aktualizacji tylko do Podów, które są aktualnie dostępne.
+
+
+
+
+
+
+
+
+
W ramach tego interaktywnego samouczka zaktualizujemy aplikację do nowej wersji oraz wycofamy tę aktualizację.