Changes

Kubernetes

989 bytes added, 21:03, 23 May 2019
Pod szintű volume
==Pod szintű volume==
A legegyszerűbb volume definíció a pod szinten definiált volume. Ezeket a pod/replicaSet/Deployment yaml fájlokban kell megadni a konténer definíciójában. Ekkor a volume életciklusa meg fog egyezni a pod életciklusával, mikor a pod megszűnik, a volume is meg fog szűnni (a mappa tartalma, ami fel volt csatolva a konténerbe nem feltétlen fog törlődni a volume megszűnésekor, ez a volume típusától függ)
A pod szintű volume definíciónak két része van. A POD '''.spec.volumes''' szekciójában kell definiálni a volume forrását (pl hostPath típus esetén a hostVM-en a source mappa/fájl/socket helyét), és a POD '''.spec.containers[].volumeMounts''' szekciójában kell megadni a konténer számára a mount pontot.
A volume-ok pod szinten kell definiálni, és a definíciónak két része van. A POD '''.spec.volumes szekciójában kell definiálni ''' szekcióban a POD-ban futó összes konténer számára pod-globálisan definiálhatunk volume forrását (pl hostPath típus esetén a hostVM-en a source mappa/fájl/socket helyét)okat, és a POD majd minden egyes konténer '''.spec.containers[].volumeMounts ''' szekciójában kell megadni felcsatolhatjuk a pod szinten definiált volume-ot egy konkrét konténerbe. Mivel általában egy pod-ban csak egy konténer számára van, ezért ezzel a mount pontotkét szintű definícióval nem sokra megyünk.A Kubernetes számtalan volume típust támogat, többek között:
* hostPath: a node VM-eről mount-ol egy fájlt vagy mappát
* secret
* nfs
* awsElasticBlockStore
* azureDisk / azureFile
* gitRepo: egy git repositor-t klónoz le
* emptyDir: egy átmeneti tároló a pod számára. Ha egy pod bármi ok miatt újraindul, akkor az emptyDir tartalma megmarad. Ha viszont töröljük a pod-ot, akkor az emptyDir is törlésre kerül.
stb
 
 
 
 
'''Forrás definíciója:''' <br>
A volumes listában fel kell sorolni minden egyes volume-ont. A volume definíciója a névvel kezdődik (ezzel fogunk rá hivatkozni a mount pont megadásánál). Ezt követi a típus megadása.
<pre>
{{note|Swarm-os megállapítás .... }} A pod szinten definiálható volume definiálása valamelyest eltér a docker swarm megközelítéstőltípusok száma limitált, bár a volume https://kubernetes... . Docker stack fájlban is két részre osztható a io/docs/concepts/storage/volumes/#types-of-volumes linken felsorolt volume definíciójatípusok közül nem mindegyik használható pod szintű definícióiban. A stack fájlban globálisan definiálhatjuk a Pl az nfs volume típusát és forrását, majd a swarm service definícióban adhatjuk meg a mount pontont, pont mint Kubernetes-benhot csak PersistentVolume definícióval tudjuk használni. }} 
source types:* File* FileOrCreate* Directory* DirectoryOrCreate* Socket* CharDevice* BlockDevice{{warning|A pod szintű volume definíció erősen ellenjavallott, és podukciós környezetben sosem használják. Éles helyzetben mindig a '''StorageClass'''-t vagy a '''PersistentVolumes'''-ot használjuk}}
===hostPath===
 
<source lang="C++">
apiVersion: v1
kind: Pod
metadata:
name: netpod2
labels:
run: netpod2
spec:
containers:
- args: ["sh", "-c", "while true; do echo hello; sleep 10;done"]
image: amouat/network-utils
name: netpod2
volumeMounts:
- mountPath: /home
name: my-file-mount
volumes:
- name: my-file-mount
hostPath:
path: /home
type: Directory
</source>
 
<pre>
# kubectl create -f pod-network-util.yaml
</pre>
 
 
 
<pre>
# kubectl exec -it netpod2 cat /home/demo.txt
This is the message!
</pre>
 
 
 
<br>
===emptyDir===
<br>
 
==Persistent volumes==