|
1 | 1 | ---
|
2 |
| -title: "Przegląd" |
3 | 2 | weight: 20
|
4 |
| -description: Ogólny zarys Kubernetesa i komponentów, z których jest zbudowany. |
5 |
| -sitemap: |
6 |
| - priority: 0.9 |
| 3 | +description: > |
| 4 | + Kubernetes to przenośna, rozszerzalna platforma oprogramowania *open-source* służąca do zarządzania zadaniami i serwisami uruchamianymi w kontenerach. Umożliwia ich deklaratywną konfigurację i automatyzację. Kubernetes posiada duży i dynamicznie rozwijający się ekosystem. Szeroko dostępne są usługi, wsparcie i dodatkowe narzędzia. |
| 5 | +content_type: concept |
| 6 | +weight: 20 |
| 7 | +card: |
| 8 | + name: concepts |
| 9 | + weight: 10 |
| 10 | +no_list: true |
7 | 11 | ---
|
| 12 | + |
| 13 | +<!-- overview --> |
| 14 | +Na tej stronie znajdziesz ogólne informacje o Kubernetesie. |
| 15 | + |
| 16 | + |
| 17 | +<!-- body --> |
| 18 | + |
| 19 | +Kubernetes to przenośna, rozszerzalna platforma oprogramowania *open-source* służąca do zarządzania zadaniami i serwisami uruchamianymi w kontenerach, |
| 20 | +która umożliwia deklaratywną konfigurację i automatyzację. Ekosystem Kubernetesa jest duży i dynamicznie się rozwija. |
| 21 | +Usługi dla Kubernetesa, wsparcie i narzędzia są szeroko dostępne. |
| 22 | + |
| 23 | +Nazwa Kubernetes pochodzi z języka greckiego i oznacza sternika albo pilota. |
| 24 | +Skrót K8s powstał poprzez zastąpienie ośmiu liter pomiędzy "K" i "s". |
| 25 | +Google otworzyło projekt Kubernetes publicznie w 2014. Kubernetes korzysta z |
| 26 | +[piętnastoletniego doświadczenia Google w uruchamianiu wielkoskalowych serwisów](/blog/2015/04/borg-predecessor-to-kubernetes/) |
| 27 | +i łączy je z najlepszymi pomysłami i praktykami wypracowanymi przez społeczność. |
| 28 | + |
| 29 | +## Trochę historii |
| 30 | + |
| 31 | +Aby zrozumieć, dlaczego Kubernetes stał się taki przydatny, cofnijmy sie trochę w czasie. |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | +**Era wdrożeń tradycyjnych:** |
| 36 | +Na początku aplikacje uruchamiane były na fizycznych serwerach. Nie było możliwości separowania zasobów poszczególnych aplikacji, |
| 37 | +co prowadziło do problemów z alokacją zasobów. |
| 38 | +Przykładowo, kiedy wiele aplikacji jest uruchomionych na jednym fizycznym serwerze, |
| 39 | +część tych aplikacji może zużyć większość dostępnych zasobów, powodując spowolnienie działania innych. |
| 40 | +Rozwiązaniem tego problemu mogło być uruchamianie każdej aplikacji na osobnej maszynie. |
| 41 | +Niestety, takie podejście ograniczało skalowanie, ponieważ większość zasobów nie była w pełni wykorzystywana, |
| 42 | +a utrzymanie wielu fizycznych maszyn było kosztowne. |
| 43 | + |
| 44 | +**Era wdrożeń w środowiskach wirtualnych:** Jako rozwiązanie zaproponowano wirtualizację, która umożliwia |
| 45 | +uruchamianie wielu maszyn wirtualnych (VM) na jednym procesorze fizycznego serwera. Wirtualizacja pozwala |
| 46 | +izolować aplikacje pomiędzy maszynami wirtualnymi, zwiększając w ten sposób bezpieczeństwo, jako że informacje |
| 47 | +związane z jedną aplikacją nie są w łatwy sposób dostępne dla pozostałych. |
| 48 | + |
| 49 | +Wirtualizacja pozwala lepiej wykorzystywać zasoby fizycznego serwera i lepiej skalować, |
| 50 | +ponieważ aplikacje mogą być łatwo dodawane oraz aktualizowane, pozwala ograniczyć koszty sprzętu |
| 51 | +oraz ma wiele innych zalet. |
| 52 | +Za pomocą wirtualizacji można udostępnić wybrane zasoby fizyczne jako klaster maszyn wirtualnych "wielokrotnego użytku". |
| 53 | + |
| 54 | +Każda maszyna wirtualna jest pełną maszyną zawierającą własny system operacyjny |
| 55 | +pracujący na zwirtualizowanej warstwie sprzętowej. |
| 56 | + |
| 57 | +**Era wdrożeń w kontenerach:** Kontenery działają w sposób zbliżony do maszyn wirtualnych, |
| 58 | +ale mają mniejszy stopnień wzajemnej izolacji, współdzieląc ten sam system operacyjny. |
| 59 | +Kontenery określane są mianem "lekkich". Podobnie, jak maszyna wirtualna, |
| 60 | +kontener posiada własny system plików, udział w zasobach procesora, pamięć, przestrzeń procesów itd. |
| 61 | +Ponieważ kontenery są definiowane rozłącznie od leżących poniżej warstw infrastruktury, |
| 62 | +mogą być łatwiej przenoszone pomiędzy chmurami i różnymi dystrybucjami systemu operacyjnego. |
| 63 | + |
| 64 | +Kontenery zyskały popularność ze względu na swoje zalety, takie jak: |
| 65 | + |
| 66 | +* Szybkość i elastyczność w tworzeniu i instalacji aplikacji: |
| 67 | +obraz kontenera buduje się łatwiej niż obraz VM. |
| 68 | +* Ułatwienie ciągłego rozwoju, integracji oraz wdrażania aplikacji (*Continuous development, integration, and deployment*): |
| 69 | +obrazy kontenerów mogą być budowane w sposób wiarygodny i częsty. |
| 70 | +W razie potrzeby, przywrócenie poprzedniej wersji aplikacji jest stosunkowo łatwie (ponieważ obrazy są niezmienne). |
| 71 | +* Rozdzielenie zadań *Dev* i *Ops*: obrazy kontenerów powstają w fazie *build/release*, |
| 72 | +a nie w trakcie procesu instalacji, |
| 73 | +oddzielając w ten sposób aplikacje od infrastruktury. |
| 74 | +* Obserwowalność obejmuje nie tylko informacje i metryki z poziomu systemu operacyjnego, |
| 75 | +ale także poprawność działania samej aplikacji i inne sygnały. |
| 76 | +* Spójność środowiska na etapach rozwoju oprogramowania, testowania i działania w trybie produkcyjnym: |
| 77 | +działa w ten sam sposób na laptopie i w chmurze. |
| 78 | +* Możliwość przenoszenia pomiędzy systemami operacyjnymi i platformami chmurowymi: Ubuntu, RHEL, CoreOS, |
| 79 | +prywatnymi centrami danych, największymi dostawcami usług chmurowych czy gdziekolwiek indziej. |
| 80 | +* Zarządzanie, które w centrum uwagi ma aplikacje: Poziom abstrakcji przeniesiony jest z warstwy systemu operacyjnego |
| 81 | +działającego na maszynie wirtualnej na poziom działania aplikacji, która działa na systemie operacyjnym używając zasobów logicznych. |
| 82 | +* Luźno powiązane, rozproszone i elastyczne "swobodne" mikro serwisy: Aplikacje podzielone są na mniejsze, niezależne komponenty, |
| 83 | +które mogą być dynamicznie uruchamiane i zarządzane - |
| 84 | +nie jest to monolityczny system działający na jednej, dużej maszynie dedykowanej na wyłączność. |
| 85 | +* Izolacja zasobów: wydajność aplikacji możliwa do przewidzenia |
| 86 | +* Wykorzystanie zasobów: wysoka wydajność i upakowanie. |
| 87 | + |
| 88 | +## Do czego potrzebujesz Kubernetesa i jakie są jego możliwości {#why-you-need-kubernetes-and-what-can-it-do} |
| 89 | + |
| 90 | +Kontenery są dobrą metodą na opakowywanie i uruchamianie aplikacji. |
| 91 | +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. |
| 92 | +Przykładowo, kiedy jeden z kontenerów przestaje działać, musi zostać wymieniony. |
| 93 | +Nie byłoby prościej, aby takimi działaniami zajmował się jakiś system? |
| 94 | + |
| 95 | +I tu właśnie przychodzi z pomocą Kubernetes! |
| 96 | +Kubernetes zapewnia środowisko do uruchamiania systemów rozproszonych o wysokiej niezawodności. |
| 97 | +Kubernetes obsługuje skalowanie aplikacji, przełączanie w sytuacjach awaryjnych, różne scenariusze wdrożeń itp. |
| 98 | +Przykładowo, Kubernetes w łatwy sposób może zarządzać wdrożeniem nowej wersji oprogramowania zgodnie z metodyką *canary deployments*. |
| 99 | + |
| 100 | +Kubernetes zapewnia: |
| 101 | + |
| 102 | +* **Detekcję nowych serwisów i balansowanie ruchu** |
| 103 | +Kubernetes może udostępnić kontener używając nazwy DNS lub swojego własnego adresu IP. |
| 104 | +Jeśli ruch przychodzący do kontenera jest duży, Kubernetes może balansować obciążenie i przekierować ruch sieciowy, |
| 105 | +aby zapewnić stabilność całej instalacji. |
| 106 | +* **Zarządzanie obsługą składowania danych** |
| 107 | +Kubernetes umożliwia automatyczne montowanie systemów składowania danych dowolnego typu — |
| 108 | +lokalnych, od dostawców chmurowych i innych. |
| 109 | +* **Automatyczne wdrożenia i wycofywanie zmian** |
| 110 | +Możesz opisać oczekiwany stan instalacji za pomocą Kubernetesa, |
| 111 | +który zajmie się doprowadzeniem w sposób kontrolowany stanu faktycznego do stanu oczekiwanego. |
| 112 | +Przykładowo, przy pomocy Kubernetesa możesz zautomatyzować proces tworzenia nowych kontenerów |
| 113 | +na potrzeby swojego wdrożenia, usuwania istniejących i przejęcia zasobów przez nowe kontenery. |
| 114 | +* **Automatyczne zarządzanie dostępnymi zasobami** |
| 115 | +Twoim zadaniem jest dostarczenie klastra maszyn, które Kubernetes może wykorzystać do uruchamiania zadań w kontenerach. |
| 116 | +Określasz zapotrzebowanie na moc procesora i pamięć RAM dla każdego z kontenerów. |
| 117 | +Kubernetes rozmieszcza kontenery na maszynach w taki sposób, aby jak najlepiej wykorzystać dostarczone zasoby. |
| 118 | +* **Samoczynne naprawianie** |
| 119 | +Kubernetes restartuje kontenery, które przestały działać, wymienia je na nowe, wymusza wyłączenie kontenerów, |
| 120 | +które nie odpowiadają na określone zapytania o stan |
| 121 | +i nie rozgłasza powiadomień o ich dostępności tak długo, dopóki nie są gotowe do działania. |
| 122 | +* **Zarządzanie informacjami poufnymi i konfiguracją** |
| 123 | +Kubernetes pozwala składować i zarządzać informacjami poufnymi, takimi jak hasła, tokeny OAuth czy klucze SSH. |
| 124 | +Informacje poufne i zawierające konfigurację aplikacji mogą być dostarczane i zmieniane bez konieczności ponownego budowania obrazu kontenerów |
| 125 | +i bez ujawniania poufnych danych w ogólnej konfiguracji oprogramowania. |
| 126 | + |
| 127 | +## Czym Kubernetes nie jest |
| 128 | + |
| 129 | +Kubernetes nie jest tradycyjnym, zawierającym wszystko systemem PaaS *(Platform as a Service)*. |
| 130 | +Ponieważ Kubernetes działa w warstwie kontenerów, a nie sprzętu, posiada różne funkcjonalności ogólnego zastosowania, |
| 131 | +wspólne dla innych rozwiązań PaaS, takie jak: instalacje *(deployments)*, skalowanie i balansowanie ruchu, |
| 132 | +umożliwiając użytkownikom integrację rozwiązań służących do logowania, monitoringu i ostrzegania. |
| 133 | +Co ważne, Kubernetes nie jest monolitem i domyślnie dostępne rozwiązania są opcjonalne i działają jako wtyczki. |
| 134 | +Kubernetes dostarcza elementy, z których może być zbudowana platforma deweloperska, |
| 135 | +ale pozostawia użytkownikowi wybór i elastyczność tam, gdzie jest to ważne. |
| 136 | + |
| 137 | +Kubernetes: |
| 138 | + |
| 139 | +* Nie ogranicza typów aplikacji, które są obsługiwane. Celem Kubernetesa jest możliwość obsługi bardzo różnorodnego typu zadań, |
| 140 | +włączając w to aplikacje bezstanowe (*stateless*), aplikacje ze stanem (*stateful*) i ogólne przetwarzanie danych. |
| 141 | +Jeśli jakaś aplikacja może działać w kontenerze, będzie doskonale sobie radzić w środowisku Kubernetesa. |
| 142 | +* Nie oferuje wdrażania aplikacji wprost z kodu źródłowego i nie buduje aplikacji. |
| 143 | +Procesy Continuous Integration, Delivery, and Deployment (CI/CD) są zależne od kultury pracy organizacji, |
| 144 | +jej preferencji oraz wymagań technicznych. |
| 145 | +* Nie dostarcza serwisów z warstwy aplikacyjnej, takich jak warstwy pośrednie *middleware* (np. broker wiadomości), |
| 146 | +środowiska analizy danych (np. Spark), bazy danych (np. MySQL), |
| 147 | +cache ani klastrowych systemów składowania danych (np. Ceph) jako usług wbudowanych. |
| 148 | +Te składniki mogą być uruchamiane na klastrze Kubernetes i udostępniane innym aplikacjom przez przenośne rozwiązania, |
| 149 | +takie jak [Open Service Broker](https://openservicebrokerapi.org/). |
| 150 | +* Nie wymusza użycia konkretnych systemów zbierania logów, monitorowania ani ostrzegania. |
| 151 | +Niektóre z tych rozwiązań są udostępnione jako przykłady. Dostępne są też mechanizmy do gromadzenia i eksportowania różnych metryk. |
| 152 | +* Nie dostarcza, ani nie wymusza języka/systemu używanego do konfiguracji (np. Jsonnet). |
| 153 | +Udostępnia API typu deklaratywnego, z którego można korzystać za pomocą różnych metod wykorzystujących deklaratywne specyfikacje. |
| 154 | +* Nie zapewnia, ani nie wykorzystuje żadnego ogólnego systemu do zarządzania konfiguracją, |
| 155 | +utrzymaniem i samo-naprawianiem maszyn. |
| 156 | +* Co więcej, nie jest zwykłym systemem planowania *(orchestration)*. W rzeczywistości, eliminuje konieczność orkiestracji. |
| 157 | +Zgodnie z definicją techniczną, orkiestracja to wykonywanie określonego ciągu zadań: najpierw A, potem B i następnie C. Dla kontrastu, |
| 158 | +Kubernetes składa się z wielu niezależnych, możliwych do złożenia procesów sterujących, |
| 159 | +których zadaniem jest doprowadzenie stanu faktycznego do stanu oczekiwanego. Nie ma znaczenia, w jaki sposób przechodzi się od A do C. |
| 160 | +Nie ma konieczności scentralizowanego zarządzania. Dzięki temu otrzymujemy system, który jest potężniejszy, |
| 161 | +bardziej odporny i niezawodny i dający więcej możliwości rozbudowy. |
| 162 | + |
| 163 | +## {{% heading "whatsnext" %}} |
| 164 | + |
| 165 | +* Poczytaj o [komponentach Kubernetesa](/pl/docs/concepts/overview/components/) |
| 166 | +* Poczytaj o [API Kubernetesa](/docs/concepts/overview/kubernetes-api/) |
| 167 | +* Poczytaj o [architekturze klastra](/docs/concepts/architecture/) |
| 168 | +* Jesteś gotowy [zacząć pracę](/pl/docs/setup/)? |
0 commit comments