spinny:~/writing $ less introduction-to-kubernetes.md
12Ha a szoftverfejlesztes vilagban dolgozol, biztosan hallottal mar a Kubernetesrol. De pontosan mi is ez, es miert valt a konténerizalt alkalmazasok kezelesenek de facto szabvanyava? Ez az utmutato az alapoktol a fundamentalis koncepcikig vezet el, gyakorlati peldakkal es diagramokkal.34## Kubernetes elott: Egy kis tortenelem561. **Hagyomanyos telepites**: Kezdetben az alkalmazasok fizikai szervereken futottak. Ez a megkozelites draga, nehezen skalazhato es eroforras-utkozesekre hajlamos volt.72. **Virtualizalt telepites**: Aztan jottek a virtualis gepek (VM-ek). A VM-ek lehetove tettek tobb izolalt alkalmazas futtatast ugyanazon a hardveren.83. **Kontenrizalt telepites**: A kontenerek (mint a Docker) a kovetkezo fejlodes. Megosztatjak ugyanazt a gazdagep operacios rendszert, de izolalt folyamatokat futtatnak.910A kontenerek megoldottak a hordozhatosag problemajat, de ujat teremtettek: hogyan kezeljunk szazaval (vagy ezrevel) kontenert produkcios kornyezetben?1112Itt lep be a **Kubernetes**.1314## Mi az a Kubernetes?1516A Kubernetes (gyakran **K8s**-nek roviditve) egy nyilt forraskodu platform kontener-orchestraciohoz. Egyszeruen fogalmazva automatizalja a kontenrizalt alkalmazasok telepiteset, skalazasat es kezeleset.1718## Egy Kubernetes cluster architekturaja1920```mermaid21graph TD22 subgraph "Control Plane (Master)"23 A["API Server"]24 B["etcd"]25 C["Scheduler"]26 D["Controller Manager"]27 end2829 subgraph "Worker Node 1"30 E["Kubelet"] --- F["Container Runtime"]31 G["Kube-proxy"]32 F --- H["Pod"]33 F --- I["Pod"]34 end3536 subgraph "Worker Node 2"37 J["Kubelet"] --- K["Container Runtime"]38 L["Kube-proxy"]39 K --- M["Pod"]40 end4142 A -- "Communicates with" --> E43 A -- "Communicates with" --> J44 User -- "kubectl" --> A45 C -- "Assigns Pods to Nodes" --> E46 D -- "Maintains state" --> A47 A -- "Saves/Reads state" --> B48```4950### Control Plane5152A Control Plane a cluster "agya". Fo komponensei:5354- **API Server (`kube-apiserver`)**: A cluster kapuja.55- **etcd**: Konzisztens es magasan elerheto kulcs-ertek adatbazis.56- **Scheduler (`kube-scheduler`)**: Az ujonnan letrehozott Pod-okat elerheto Worker Node-okhoz rendeli.57- **Controller Manager (`kube-controller-manager`)**: Vezerloket futtat, amelyek fenntartjak a kivant allapotot.5859### Worker Node6061A Worker Node-ok azok a gepek, ahol az alkalmazasok tenylegesen futnak. Minden node tartalmazza:6263- **Kubelet**: Minden node-on futo agens.64- **Kube-proxy**: Halozati proxy, amely kezeli a halozati szabalyokat.65- **Container Runtime**: A kontenerek futtatasaert felelos szoftver.6667## Alapveto Kubernetes objektumok6869### Pod7071A **Pod** a legkisebb vegrehajtasi egyseg a Kubernetesben.7273### Deployment7475```yaml76# nginx-deployment.yaml77apiVersion: apps/v178kind: Deployment79metadata:80 name: nginx-deployment81spec:82 replicas: 383 selector:84 matchLabels:85 app: nginx86 template:87 metadata:88 labels:89 app: nginx90 spec:91 containers:92 - name: nginx93 image: nginx:1.14.294 ports:95 - containerPort: 8096```9798### Service99100```mermaid101graph TD102 subgraph "Service (nginx-service)"103 A["ClusterIP: 10.96.0.10"]104 end105106 subgraph "Pods"107 B("Pod 1 - IP: 192.168.1.2")108 C("Pod 2 - IP: 192.168.1.3")109 D("Pod 3 - IP: 192.168.1.4")110 end111112 A -- "Selector: app=nginx" --> B113 A -- "Selector: app=nginx" --> C114 A -- "Selector: app=nginx" --> D115116 Client -- "Request to nginx-service" --> A117```118119```yaml120# nginx-service.yaml121apiVersion: v1122kind: Service123metadata:124 name: nginx-service125spec:126 selector:127 app: nginx128 ports:129 - protocol: TCP130 port: 80131 targetPort: 80132 type: ClusterIP133```134135Service tipusok: `ClusterIP`, `NodePort`, `LoadBalancer`.136137### Ingress138139```mermaid140graph LR141 User -- "mysite.com/api" --> Ingress142 User -- "mysite.com/ui" --> Ingress143144 subgraph "Cluster"145 Ingress -- "/api" --> ServiceA("api-service")146 Ingress -- "/ui" --> ServiceB("ui-service")147148 ServiceA --> PodA1("API Pod 1")149 ServiceA --> PodA2("API Pod 2")150151 ServiceB --> PodB1("UI Pod 1")152 ServiceB --> PodB2("UI Pod 2")153 end154```155156### Egyeb hasznos objektumok157158- **Namespace**: Lehetove teszi "virtualis clusterek" letrehozasat egy fizikai clusteren belul.159- **ConfigMap es Secret**: Konfiguracios adatok es titkok kezelesehez.160- **StatefulSet**: Hasonlo a Deploymenthez, de allapotmegorzо alkalmazasokhoz.161- **PersistentVolume (PV) es PersistentVolumeClaim (PVC)**: Allo tarolas kezelesehez.162163## Osszefoglalas164165A Kubernetes hihetetlenul hatalmas eszkoz. Mit tegyel most?166- **Kiserletezz lokalisan**: Telepitsd a [Minikube](https://minikube.sigs.k8s.io/docs/start/)-ot vagy a [Kind](https://kind.sigs.k8s.io/docs/user/quick-start/)-ot.167- **Hasznald a `kubectl`-t**: Ismerkedj meg a `kubectl` paranccsal.168- **Fedezd fel a hivatalos oktatoanyagokat**: A [Kubernetes dokumentacio](https://kubernetes.io/docs/tutorials/) fantasztikus eroforras.169170A kontener-orchestracio alapveto kepesseg a cloud-native vilagban, es a Kubernetes elsajatitasa lehetosegek vilagat nyitja meg elotted. Jo szorakozast!171
:Bevezetes a Kubernetesbe: A kontener-orchestratorlines 1-171 (END) — press q to close