Использовать данные из локальной системы в моем kubernetes Pod
Я хочу использовать данные из файлов, присутствующих в моей локальной системе в моем модуле в k8s. Как в этом используется PersistentLocalVolumes и безопасно ли использовать PersistentLocalVolumes, поскольку это альфа-функция.
Спасибо
2 ответа
Для кластера, созданного с помощью kubeadm.
/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
Добавьте строку для KUBE_FEATURE_GATES.
Environment="KUBE_FEATURE_GATES=--feature-gates PersistentLocalVolumes=true,VolumeScheduling=true,MountPropagation=true"
Добавьте $KUBE_FEATURE_GATES в строку ExecStart.
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CGROUP_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_EXTRA_ARGS $KUBE_FEATURE_GATES
манифест
$ cat local_pvc.yaml
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: example-local-pv
annotations:
"volume.alpha.kubernetes.io/node-affinity": '{
"requiredDuringSchedulingIgnoredDuringExecution": {
"nodeSelectorTerms": [
{ "matchExpressions": [
{ "key": "kubernetes.io/hostname",
"operator": "In",
"values": ["my-node"] <--- change the node name to yours
}
]}
]}
}'
spec:
capacity:
storage: 5Gi <----- change the size to your need
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: local-storage
local:
path: /mnt/disks/vol1 <----- change the path to yours
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: example-local-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi <----- change the size to your need
storageClassName: local-storage
----
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
выполнение
- Перезагрузите кластер.
- Создайте pv & pvc (kubectl create -f local_pvc.yaml).
- Используйте ПВХ в стручке.
Рекомендации
- doc: пример обновления с использованием постоянного хранилища локального хоста Kubernetes
- Особые ворота
Kubelet (см. Параметр Gate Feature, такой как PersistentLocalVolumes = true)
Вы можете использовать том hostPath, который позволит вам смонтировать каталог из файловой системы хоста на POD.