Giriş
Açıklaması şöyle. emptyDir volume Java'da temporary dosya, dizin yaratmak için idealdir.
This kind of Volume is created when a Pod is scheduled on a node. This volume is for the lifetime of the pod only. It gets deleted as soon as pod is terminated. All containers within the Pod share this volume. The use case for such a volume can be to use as a temporary space for applications internal work or use as a cache for improving the performance of applications.
1. Pod içindeki tüm container'lar bu volume'a erişebilir.
2. Pod başlarken bu dizin boştur
3. Pod silinince bu dizin de silinir
4. Eğer container çökerse bu dizin ve içindekiler kaybolmaz. Açıklaması şöyle
A container crashing does not remove a Pod from a node. The data in an emptyDir volume is safe across container crashes.
medium Alanı
Açıklaması şöyle
What type of storage medium should back this directory. The default is "" which means to use the node's default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
sizeLimit Alanı
Açıklaması şöyle
Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
Kullanım
1. volumes bölümünde -name ile bir volume ismi belirtilir.
2. Bu volume için emptyDir belirtilir
3. İstenirse emptyDir bellekte te olabilir
Örnek - memory
Şöyle yaparız
apiVersion: v1kind: Podmetadata:name: my-serverspec:containers:- image: nginxname: my-servervolumeMounts:- mountPath: /testcachename: cache-volumevolumes:- name: cache-volumeemptyDir:medium: Memory
Örnek - TMP
Açıklaması şöyle
If you need to write temporary/cache files, fine, but since you are going to lose everything when that container dies, you shouldn't be writing anything of import within a container. Since you are only going to write temporary files, you really don't need your container to have a writable layer. Just mount a volume at /tmp and run your container with a read-only root file system.
Şöyle yaparız. Burada tmp isimli emptyDir volume /tmp dizini olarak kullanılıyor. Ayrıca Linux'taki TMP ortam değişkeni de /tmp dizinine yönlendiriliyor.
apiVersion: apps/v1 kind: Deployment metadata: name: app spec: selector: matchLabels: app.kubernetes.io/name: app template: metadata: labels: app.kubernetes.io/name: app name: app spec: containers: - env: - name: TMPDIR value: /tmp image: my/app:1.0.0 name: app securityContext: readOnlyRootFilesystem: true volumeMounts: - mountPath: /tmp name: tmp volumes: - emptyDir: {} name: tmp
Örnek
Şöyle yaparız. Burada "grafana-storage" isimli volumeMounts bir emptyDir Volume'a atıfta bulunuyor.
grafana-datasources isimli volumeMounts ile bir ConfigMap'e atıfta bulunuyorapiVersion: apps/v1 kind: Deployment metadata: name: grafana namespace: monitoring spec: ... template: ... spec: containers: - name: grafana ... resources: ... volumeMounts: - mountPath: /var/lib/grafana name: grafana-storage - mountPath: /etc/grafana/provisioning/datasources name: grafana-datasources readOnly: false volumes: - name: grafana-storage emptyDir: {} - name: grafana-datasources configMap: defaultMode: 420 name: grafana-datasources
Hiç yorum yok:
Yorum Gönder