{ "cells": [ { "cell_type": "markdown", "id": "3c047009", "metadata": {}, "source": [ "# Kubernetes\n", "\n", "" ] }, { "cell_type": "markdown", "id": "8b27f9bb", "metadata": {}, "source": [ "Kubernets (aka. K8s) - system służący do automatyzacji:\n", " - deployemntu\n", " - skalowania\n", " - zarządzania \n", " skonteneryzowanymi aplikacjami" ] }, { "cell_type": "markdown", "id": "ce90b7e7", "metadata": {}, "source": [ "## Motywacja\n", "- Kubernetes jest środowiskiem, w którym działa Kubeflow - system stworzony z myślą o rozwoju i deploymencie modeli ML" ] }, { "cell_type": "markdown", "id": "251b4267", "metadata": {}, "source": [ "## Instalacja\n", "- Instalacja do nauki i eksperymentów (nieprodukcyjna): https://minikube.sigs.k8s.io/docs/start/" ] }, { "cell_type": "markdown", "id": "5bad769c", "metadata": {}, "source": [ "## Hello Minikube - interaktywny samouczek\n", "1. Otwórz stronę: https://kubernetes.io/pl/docs/tutorials/hello-minikube/\n", "2. Kliknij na \"Launch Terminal\" i wykonuj polecenia w otwartym terminalu (możesz klikać na fragmentach kodu a same przekopiują się do terminala i uruchomią)\n", "\n", "Większość interaktywnych samouczków z kubernetes.io przestała działać z końcem marca (https://kubernetes.io/blog/2023/02/14/kubernetes-katacoda-tutorials-stop-from-2023-03-31/), ale ten powyżej (i czasami niektóre inne, jeśli macie szczęście) wciąż działa" ] }, { "cell_type": "markdown", "id": "1f3bc2f7", "metadata": {}, "source": [ "## Terminologia\n", "- Pod - (z angielskiego \"strąk\", np. strąk groszku, ale też grupa wielorybów <\"pod of whales\">)\n", " grupa jednego lub więcej kontenerów wraz z przynależnymi wolumenami (volumes), adresem IP i informacją jak mogą być uruchomione\n", "\n", "- Node (węzeł) - pody (jeden lub więcej) są uruchamiane na węzłach - maszynach (fizycznych lub wirtualnych). Na każdym węźle jest uruchomiony proces \"kublet\", służący do komunikacji z \"control plane\", czyli serwerem kontrolującym klaster\n", "- Cluster - grupa węzłów\n", "- Service - abstrakcja zapewniająca stabilny dostęp do Podów. Ponieważ Pod-y są efemeryczne, mogą być uruchamiane automatczynie np. w wyniki awarii węzła. Service definiuje jakie Pod-y (np. z jaką etykietą) są dostępne pod danym portem (więcej informacji: https://kubernetes.io/docs/concepts/services-networking/service/)\n", "\n", "- Schemat klastra: https://kubernetes.io/docs/concepts/overview/components/" ] }, { "cell_type": "markdown", "id": "803a1108", "metadata": {}, "source": [ "## Materiały\n", "Zapoznaj się z następującymi materiałami:\n", "1. https://kubernetes.io/pl/docs/tutorials/kubernetes-basics/create-cluster/cluster-intro/\n", "1. https://kubernetes.io/pl/docs/tutorials/kubernetes-basics/explore/explore-intro/\n", "2. https://kubernetes.io/pl/docs/tutorials/kubernetes-basics/expose/expose-intro/" ] }, { "cell_type": "markdown", "id": "c21daf1a", "metadata": {}, "source": [ "## Zadanie\n", "Brak ;)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.16" } }, "nbformat": 4, "nbformat_minor": 5 }