{ "cells": [ { "cell_type": "markdown", "id": "afe2a257", "metadata": {}, "source": [ "## Inżynieria uczenia maszynowego\n", "### 12 czerwca 2024\n", "# 14. Kubernetes" ] }, { "cell_type": "markdown", "id": "31ca02ad", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "id": "9a21632b", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "Kubernetes (aka. K8s) - system służący do automatyzacji:\n", " - deploymentu\n", " - skalowania\n", " - zarządzania\n", " \n", " skonteneryzowanymi aplikacjami" ] }, { "cell_type": "markdown", "id": "7bb1198e", "metadata": { "slideshow": { "slide_type": "slide" } }, "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": "abe1d606", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Instalacja\n", "- Instalacja do nauki i eksperymentów (nieprodukcyjna): https://minikube.sigs.k8s.io/docs/start/" ] }, { "cell_type": "markdown", "id": "4ed97706", "metadata": { "slideshow": { "slide_type": "slide" } }, "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": "eded46b6", "metadata": { "slideshow": { "slide_type": "slide" } }, "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" ] }, { "cell_type": "markdown", "id": "9d5b11fe", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "- 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": "70932230", "metadata": { "slideshow": { "slide_type": "slide" } }, "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/" ] } ], "metadata": { "celltoolbar": "Slideshow", "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 }