Elastic File Client (EFC)
EFC, Alibaba Cloud Linux 3 veya 5.10.134-17.2 ya da üzeri çekirdek sürümüne sahip ContainerOS çalıştıran düğümler gerektirir. Bu gereksinimleri karşılamayan düğümler, bağlama işlemi için otomatik olarak NFS protokolüne geri döner. Devam etmeden önce düğüm uyumluluğunu doğrulayın.
EFC'nin çalışma prensibi
EFC, FUSE (Filesystem in Userspace) üzerine inşa edilmiş, kullanıcı alanında çalışan ve POSIX uyumlu bir istemcidir. Çekirdek modundaki NFS istemcilerinin yerine geçer ve aşağıdaki temel yetenekleri sağlar:
Çoklu bağlantı erişimi
Meta veri ve veri önbellekleme
Managed Service for Prometheus üzerinden entegre izleme
Çekirdek modundaki NFS istemcileriyle karşılaştırıldığında:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ön koşullar
Başlamadan önce şunlara sahip olduğunuzdan emin olun:
Kümenizde
cnfs-nas-daemoneklentisinin yüklü olması ve csi-plugin'in FeatureGate özelliğindeAlinasMountProxy=truebayrağının ayarlanmış olması. Ayrıntılar için bkz. cnfs-nas-daemon yönetimi.Alibaba Cloud Linux 3 veya 5.10.134-17.2 ya da üzeri çekirdek sürümüne sahip ContainerOS çalıştıran düğümler.
EFC istemcisini kullanmak için CNFS yapılandırma
Adım 1: CNFS kaynağı oluşturma
Bu bölümde, mevcut bir NAS dosya sisteminin EFC istemcisini kullanacak şekilde nasıl yapılandırılacağı gösterilmektedir. EFC ile CNFS üzerinden yeni bir NAS dosya sistemi oluşturmak için ContainerNetworkFileSystem kaynağını oluştururken parameters bölümüne useClient: EFCClient ekleyin. Ayrıntılar için bkz. NAS dosya sistemlerini yönetmek için CNFS kullanma (önerilen).
-
Aşağıdaki YAML kodunu
cnfs-efc.yamlolarak kaydedin.
Parametre
Açıklamadescription
Dosya sistemi için bir açıklama.type
Birim türü. NAS dosya sistemleri içinnasolarak ayarlayın.reclaimPolicy
YalnızcaRetaindesteklenir. CNFS kaynağının silinmesi altta yatan NAS dosya sistemini silmez.server
Bağlama hedefi adresi. Bağlama hedefi, pod'larınızla aynı VPC içinde olmalı ve durumu Ready olmalıdır. En iyi performans için hem bağlama hedefi hem de pod'lar için aynı vSwitch'i kullanın. Mevcut bağlama hedeflerinden hiçbiri bu gereksinimleri karşılamıyorsa yeni bir tane oluşturun.useClient
EFC istemcisini etkinleştirmek içinEFCClientolarak ayarlayın.apiVersion: storage.alibabacloud.com/v1beta1 kind: ContainerNetworkFileSystem metadata: name: cnfs-efc-test spec: description: "cnfs" type: nas reclaimPolicy: Retain parameters: server: 17f7e4****-h****.cn-beijing.nas.aliyuncs.com useClient: EFCClient -
CNFS kaynağını oluşturun:
kubectl create -f cnfs-efc.yaml
Adım 2: PersistentVolume ve PersistentVolumeClaim oluşturma
Aşağıdaki YAML kodunu cnfs-pv-pvc.yaml olarak kaydedin.
apiVersion: v1
kind: PersistentVolume
metadata:
name: efc-pv
spec:
accessModes:
- ReadWriteMany
capacity:
storage: 50Gi
claimRef:
name: efc-pvc
namespace: default
csi:
driver: nasplugin.csi.alibabacloud.com
volumeAttributes:
containerNetworkFileSystem: cnfs-efc-test
path: /
volumeHandle: efc-pv
volumeMode: Filesystem
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: efc-pvc
namespace: default
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 50Gi
storageClassName: ""
volumeMode: Filesystem
volumeName: efc-pv
Yapılandırmayı uygulayın:
kubectl create -f cnfs-pv-pvc.yaml
NAS'ı bir iş yüküne bağlama
Adım 1: Deployment oluşturma
Aşağıdaki YAML kodunu cnfs-deployment.yaml olarak kaydedin.
apiVersion: apps/v1
kind: Deployment
metadata:
name: efc-test
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: efc-test
template:
metadata:
labels:
app: efc-test
spec:
containers:
- command:
- sh
- -c
- |
sleep infinity
image: alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/alinux3:latest
name: test
volumeMounts:
- mountPath: /mnt
name: pvc
volumes:
- name: pvc
persistentVolumeClaim:
claimName: efc-pvc
Yapılandırmayı uygulayın:
kubectl create -f cnfs-deployment.yaml
Adım 2: EFC bağlamasını doğrulama
-
Pod'un çalıştığını kontrol edin:
kubectl get pod -l app=efc-testBeklenen çıktı:
NAME READY STATUS RESTARTS AGE efc-test-f545b86d6-spr7p 1/1 Running 0 29m -
Pod Running durumuna ulaştığında, pod içindeki EFC bağlama noktasını onaylayın:
kubectl exec <pod-name> -- mount -t fuse.aliyun-alinas-efcBeklenen çıktı:
bindroot-3889a-8TzEY5mc:3d2804****-w****.cn-shanghai.nas.aliyuncs.com:/ on /mnt type fuse.aliyun-alinas-efc (rw,relatime,user_id=0,group_id=0,default_permissions,allow_other,max_read=1048576)Bağlama türünün
fuse.aliyun-alinas-efcolması EFC'nin etkin olduğunu doğrular. Bunun yerine çıktınfsgösteriyorsa, düğüm işletim sistemi veya çekirdek gereksinimlerini karşılamıyordur ve NFS protokolüne geri dönmüştür. Düğümün işletim sistemi sürümünü ve çekirdek sürümünü ön koşullara göre kontrol edin.
Sonraki adımlar
NAS dosya sistemlerini yönetmek için CNFS kullanma — Yeni dosya sistemleri için dinamik sağlama dahil olmak üzere NAS dosya sistemlerini CNFS aracılığıyla yönetin.
cnfs-nas-daemon yönetimi —
cnfs-nas-daemoneklentisini veAlinasMountProxyözellik kapısını yükleyip yapılandırın.