Azure Kubernetes Service için Azure NetApp Files NFS birimleri sağlama
Azure Kubernetes Service için Azure NetApp Files'ı yapılandırdıktan sonra, Azure Kubernetes Service için Azure NetApp Files birimleri sağlayabilirsiniz.
Azure NetApp Files, NFS (NFSv3 veya NFSv4.1), SMB veya çift protokollü (NFSv3 ve SMB ya da NFSv4.1 ve SMB) kullanan birimleri destekler.
- Bu makalede, NFS birimlerini statik veya dinamik olarak sağlama ayrıntıları açıklanmaktadır.
- SMB birimlerini statik veya dinamik olarak sağlama hakkında bilgi için bkz . Azure Kubernetes Service için Azure NetApp Files SMB birimleri sağlama.
- Çift protokollü birimleri statik olarak sağlama hakkında bilgi için bkz . Azure Kubernetes Service için Azure NetApp Files çift protokollü birimleri sağlama
NFS birimleri kullanan uygulamalar için statik olarak yapılandırma
Bu bölümde, Azure NetApp Files'da NFS birimi oluşturma ve birimi statik olarak Kubernetes'te kullanıma sunma açıklanmaktadır. Ayrıca kapsayıcılı bir uygulamayla birimin nasıl kullanılacağını da açıklar.
NFS birimi oluşturma
Daha sonraki kullanımlar için değişkenleri tanımlayın. myresourcegroup, mylocation, myaccountname, mypool1, premium, myfilepath, myvolsize, myvolname, vnetid ve anfSubnetID değerlerini hesabınızdan ve ortamınızdan uygun bir değerle değiştirin. Dosya yolu tüm ANF hesaplarında benzersiz olmalıdır.
RESOURCE_GROUP="myresourcegroup" LOCATION="mylocation" ANF_ACCOUNT_NAME="myaccountname" POOL_NAME="mypool1" SERVICE_LEVEL="premium" # Valid values are Standard, Premium, and Ultra UNIQUE_FILE_PATH="myfilepath" VOLUME_SIZE_GIB="myvolsize" VOLUME_NAME="myvolname" VNET_ID="vnetId" SUBNET_ID="anfSubnetId"
komutunu kullanarak
az netappfiles volume create
bir birim oluşturun. Daha fazla bilgi için bkz . Azure NetApp Files için NFS birimi oluşturma.az netappfiles volume create \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --account-name $ANF_ACCOUNT_NAME \ --pool-name $POOL_NAME \ --name "$VOLUME_NAME" \ --service-level $SERVICE_LEVEL \ --vnet $VNET_ID \ --subnet $SUBNET_ID \ --usage-threshold $VOLUME_SIZE_GIB \ --file-path $UNIQUE_FILE_PATH \ --protocol-types NFSv3
Kalıcı birimi oluşturma
komutunu kullanarak biriminizin ayrıntılarını listeleyin
az netappfiles volume show
. Önceki bir adımda tanımlanmamışsa değişkenleri Azure NetApp Files hesabınızdan ve ortamınızdan uygun değerlerle değiştirin.az netappfiles volume show \ --resource-group $RESOURCE_GROUP \ --account-name $ANF_ACCOUNT_NAME \ --pool-name $POOL_NAME \ --volume-name "$VOLUME_NAME -o JSON
Aşağıdaki çıkış, gerçek değerlerle yürütülen yukarıdaki komutun bir örneğidir.
{ ... "creationToken": "myfilepath2", ... "mountTargets": [ { ... "ipAddress": "10.0.0.4", ... } ], ... }
adlı
pv-nfs.yaml
bir dosya oluşturun ve aşağıdaki YAML'de kopyalayın. Sunucunun 1. Adımdaki çıkış IP adresiyle eşleştiğinden ve yolun yukarıdaki çıkışla eşleştiğindencreationToken
emin olun. Kapasitenin yukarıdaki adımdaki birim boyutuyla da eşleşmesi gerekir.apiVersion: v1 kind: PersistentVolume metadata: name: pv-nfs spec: capacity: storage: 100Gi accessModes: - ReadWriteMany mountOptions: - vers=3 nfs: server: 10.0.0.4 path: /myfilepath2
komutunu kullanarak
kubectl apply
kalıcı birimi oluşturun:kubectl apply -f pv-nfs.yaml
Komutunu kullanarak
kubectl describe
kalıcı birimin durumunun Kullanılabilir olduğunu doğrulayın:kubectl describe pv pv-nfs
Kalıcı birim talebi oluşturma
adlı
pvc-nfs.yaml
bir dosya oluşturun ve aşağıdaki YAML'de kopyalayın. Bu bildirim, oluşturduğunuz PV ile eşleşen 100Gi depolama veReadWriteMany
erişim modu için adlıpvc-nfs
bir PVC oluşturur.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-nfs spec: accessModes: - ReadWriteMany storageClassName: "" resources: requests: storage: 100Gi
komutunu kullanarak
kubectl apply
kalıcı birim talebi oluşturun:kubectl apply -f pvc-nfs.yaml
Komutunu kullanarak kalıcı birim talebi durumunun
kubectl describe
Bağlı olduğunu doğrulayın:kubectl describe pvc pvc-nfs
Pod ile bağlama
adlı
nginx-nfs.yaml
bir dosya oluşturun ve aşağıdaki YAML'de kopyalayın. Bu bildirim, kalıcı birim talebi kullanan birnginx
pod tanımlar.kind: Pod apiVersion: v1 metadata: name: nginx-nfs spec: containers: - image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine name: nginx-nfs command: - "/bin/sh" - "-c" - while true; do echo $(date) >> /mnt/azure/outfile; sleep 1; done volumeMounts: - name: disk01 mountPath: /mnt/azure volumes: - name: disk01 persistentVolumeClaim: claimName: pvc-nfs
Komutunu kullanarak pod oluşturun
kubectl apply
:kubectl apply -f nginx-nfs.yaml
komutunu kullanarak pod'un
kubectl describe
Çalışıyor olduğunu doğrulayın:kubectl describe pod nginx-nfs
Pod'a bağlanmak için komutunu kullanarak
kubectl exec
biriminizin poda bağlandığını doğrulayın ve ardından birimin takılı olup olmadığını denetlemek için kullanındf -h
.kubectl exec -it nginx-nfs -- sh
/ # df -h Filesystem Size Used Avail Use% Mounted on ... 10.0.0.4:/myfilepath2 100T 384K 100T 1% /mnt/azure ...
NFS birimleri kullanan uygulamalar için dinamik olarak yapılandırma
Astra Trident, Azure NetApp Files'da NFS veya SMB dosyalarını dinamik olarak sağlamak için kullanılabilir. Dinamik olarak sağlanan SMB birimleri yalnızca Windows çalışan düğümleriyle desteklenir.
Bu bölümde, Azure NetApp Files'da dinamik olarak NFS birimi oluşturmak ve bunu kapsayıcılı bir uygulamaya otomatik olarak bağlamak için Astra Trident'in nasıl kullanılacağı açıklanmaktadır.
Astra Trident'i yükleme
NFS birimlerini dinamik olarak sağlamak için Astra Trident'i yüklemeniz gerekir. Astra Trident, NetApp'in Kubernetes için özel olarak oluşturulmuş dinamik depolama sağlama hizmetidir. Astra Trident'in endüstri standardı Kapsayıcı Depolama Arabirimi (CSI) sürücüsünü kullanarak Kubernetes uygulamaları için depolama tüketimini basitleştirin. Astra Trident, Kubernetes kümelerine pod olarak dağıtır ve Kubernetes iş yükleriniz için dinamik depolama düzenleme hizmetleri sağlar.
Trident, Trident işleci (el ile veya Helm kullanılarak) veya tridentctl
kullanılarak yüklenebilir. Bu yükleme yöntemleri ve bunların nasıl çalıştığı hakkında daha fazla bilgi edinmek için Astra Trident Yükleme Kılavuzu'na bakın.
Helm kullanarak Astra Trident'i yükleme
Bu yöntemi kullanarak Astra Trident'i yüklemek için iş istasyonunuza Helm yüklenmelidir. Astra Trident'i yüklemenin diğer yöntemleri için bkz . Astra Trident Yükleme Kılavuzu.
Astra Trident'i yalnızca Linux çalışan düğümlerine sahip bir küme için Helm kullanarak yüklemek için aşağıdaki komutları çalıştırın:
helm repo add netapp-trident https://netapp.github.io/trident-helm-chart helm install trident netapp-trident/trident-operator --version 23.04.0 --create-namespace --namespace trident
Komutun çıkışı aşağıdaki örneğe benzer:
NAME: trident LAST DEPLOYED: Fri May 5 13:55:36 2023 NAMESPACE: trident STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Thank you for installing trident-operator, which will deploy and manage NetApp's Trident CSI storage provisioner for Kubernetes. Your release is named 'trident' and is installed into the 'trident' namespace. Please note that there must be only one instance of Trident (and trident-operator) in a Kubernetes cluster. To configure Trident to manage storage resources, you will need a copy of tridentctl, which is available in pre-packaged Trident releases. You may find all Trident releases and source code online at https://github.com/NetApp/trident. To learn more about the release, try: $ helm status trident $ helm get all trident
Astra Trident'in başarıyla yüklendiğini onaylamak için aşağıdaki
kubectl describe
komutu çalıştırın:kubectl describe torc trident
Komutun çıkışı aşağıdaki örneğe benzer:
Name: trident Namespace: Labels: app.kubernetes.io/managed-by=Helm Annotations: meta.helm.sh/release-name: trident meta.helm.sh/release-namespace: trident API Version: trident.netapp.io/v1 Kind: TridentOrchestrator Metadata: ... Spec: IPv6: false Autosupport Image: docker.io/netapp/trident-autosupport:23.04 Autosupport Proxy: <nil> Disable Audit Log: true Enable Force Detach: false Http Request Timeout: 90s Image Pull Policy: IfNotPresent k8sTimeout: 0 Kubelet Dir: <nil> Log Format: text Log Layers: <nil> Log Workflows: <nil> Namespace: trident Probe Port: 17546 Silence Autosupport: false Trident Image: docker.io/netapp/trident:23.04.0 Windows: false Status: Current Installation Params: IPv6: false Autosupport Hostname: Autosupport Image: docker.io/netapp/trident-autosupport:23.04 Autosupport Proxy: Autosupport Serial Number: Debug: false Disable Audit Log: true Enable Force Detach: false Http Request Timeout: 90s Image Pull Policy: IfNotPresent Image Pull Secrets: Image Registry: k8sTimeout: 30 Kubelet Dir: /var/lib/kubelet Log Format: text Log Layers: Log Level: info Log Workflows: Probe Port: 17546 Silence Autosupport: false Trident Image: docker.io/netapp/trident:23.04.0 Message: Trident installed Namespace: trident Status: Installed Version: v23.04.0 Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Installing 2m59s trident-operator.netapp.io Installing Trident Normal Installed 2m31s trident-operator.netapp.io Trident installed
Arka uç oluşturma
Astra Trident'e Azure NetApp Files aboneliği ve birimleri oluşturması gereken yer hakkında bilgi vermek için bir arka uç oluşturulur. Bu adım, önceki adımda oluşturulan hesap hakkında ayrıntılar gerektirir.
adlı
backend-secret.yaml
bir dosya oluşturun ve aşağıdaki YAML'de kopyalayın. veclientSecret
değeriniClient ID
ortamınız için doğru değerlerle değiştirin.apiVersion: v1 kind: Secret metadata: name: backend-tbc-anf-secret type: Opaque stringData: clientID: 00001111-aaaa-2222-bbbb-3333cccc4444 clientSecret: rR0rUmWXfNioN1KhtHisiSAnoTherboGuskey6pU
adlı
backend-anf.yaml
bir dosya oluşturun ve aşağıdaki YAML'de kopyalayın.subscriptionID
, ,tenantID
location
veserviceLevel
değerlerini ortamınız için doğru değerlerle değiştirin. Azure NetApp Files'ın etkinleştirildiği Azure aboneliği için öğesinisubscriptionID
kullanın.tenantID
Azure NetApp Files hizmeti için yeterli izinlere sahip Microsoft Entra ID'deki bir uygulama kaydından ,clientID
veclientSecret
alın. Uygulama kaydı, Azure tarafından önceden tanımlanmış Sahip veya Katkıda Bulunan rolünü içerir. Konum, önceki adımda oluşturulan en az bir temsilci alt ağı içeren bir Azure konumu olmalıdır. ,serviceLevel
AKS iş yükleriserviceLevel
için Azure NetApp Files'ı yapılandırma başlığındaki kapasite havuzu için yapılandırılan ile eşleşmelidir.apiVersion: trident.netapp.io/v1 kind: TridentBackendConfig metadata: name: backend-tbc-anf spec: version: 1 storageDriverName: azure-netapp-files subscriptionID: aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e tenantID: aaaabbbb-0000-cccc-1111-dddd2222eeee location: eastus serviceLevel: Premium credentials: name: backend-tbc-anf-secret
Arka uçlar hakkında daha fazla bilgi için bkz . Azure NetApp Files arka uç yapılandırma seçenekleri ve örnekleri.
komutunu kullanarak
kubectl apply
gizli diziyi ve arka ucu uygulayın. İlk olarak gizli diziyi uygulayın:kubectl apply -f backend-secret.yaml -n trident
Komutun çıkışı aşağıdaki örneğe benzer:
secret/backend-tbc-anf-secret created
Arka ucu uygulayın:
kubectl apply -f backend-anf.yaml -n trident
Komutun çıkışı aşağıdaki örneğe benzer:
tridentbackendconfig.trident.netapp.io/backend-tbc-anf created
Komutunu kullanarak arka ucun oluşturulduğunu
kubectl get
onaylayın:kubectl get tridentbackends -n trident
Komutun çıkışı aşağıdaki örneğe benzer:
NAME BACKEND BACKEND UUID tbe-kfrdh backend-tbc-anf 8da4e926-9dd4-4a40-8d6a-375aab28c566
Depolama sınıfı oluşturma
Depolama sınıfı, bir depolama biriminin kalıcı bir birimle dinamik olarak nasıl oluşturulduğunu tanımlamak için kullanılır. Azure NetApp Files birimlerini kullanmak için bir depolama sınıfı oluşturulmalıdır.
Adlı
anf-storageclass.yaml
bir dosya oluşturun ve aşağıdaki YAML'de kopyalayın:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: azure-netapp-files provisioner: csi.trident.netapp.io parameters: backendType: "azure-netapp-files" fsType: "nfs"
komutunu kullanarak depolama sınıfını
kubectl apply
oluşturun:kubectl apply -f anf-storageclass.yaml
Komutun çıkışı aşağıdaki örneğe benzer:
storageclass/azure-netapp-files created
kubectl get
Depolama sınıfının durumunu görüntülemek için komutunu çalıştırın:kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE azure-netapp-files csi.trident.netapp.io Delete Immediate false
PVC oluşturma
Kalıcı birim talebi (PVC), bir kullanıcı tarafından depolama isteğidir. Kalıcı bir birim talebi oluşturuldukten sonra Astra Trident otomatik olarak bir Azure NetApp Files birimi oluşturur ve Kubernetes iş yüklerinin kullanılabilmesini sağlar.
adlı
anf-pvc.yaml
bir dosya oluşturun ve aşağıdaki YAML'de kopyalayın. Bu örnekte ReadWriteMany erişimiyle 1-TiB birim gereklidir.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: anf-pvc spec: accessModes: - ReadWriteMany resources: requests: storage: 1Ti storageClassName: azure-netapp-files
komutuyla
kubectl apply
kalıcı birim talebi oluşturun:kubectl apply -f anf-pvc.yaml
Komutun çıkışı aşağıdaki örneğe benzer:
persistentvolumeclaim/anf-pvc created
Kalıcı birim talebi hakkındaki bilgileri görüntülemek için komutunu
kubectl get
çalıştırın:kubectl get pvc
Komutun çıkışı aşağıdaki örneğe benzer:
kubectl get pvc -n trident NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE anf-pvc Bound pvc-bffa315d-3f44-4770-86eb-c922f567a075 1Ti RWO azure-netapp-files 62s
Kalıcı birimi kullanma
PVC oluşturulduktan sonra Astra Trident kalıcı birimi oluşturur. Bir pod, Azure NetApp Files birimine bağlanmak ve bu birime erişmek için kullanılabilir.
Aşağıdaki bildirim, önceki adımda oluşturulan Azure NetApp Files birimini takan bir NGINX podunu tanımlamak için kullanılabilir. Bu örnekte, birim konumuna /mnt/data
bağlanır.
Adlı
anf-nginx-pod.yaml
bir dosya oluşturun ve aşağıdaki YAML'de kopyalayın:kind: Pod apiVersion: v1 metadata: name: nginx-pod spec: containers: - name: nginx image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - mountPath: "/mnt/data" name: volume volumes: - name: volume persistentVolumeClaim: claimName: anf-pvc
Komutunu kullanarak pod oluşturun
kubectl apply
:kubectl apply -f anf-nginx-pod.yaml
Komutun çıkışı aşağıdaki örneğe benzer:
pod/nginx-pod created
Kubernetes, birimin bağlandığı ve kapsayıcı içinde
nginx
erişilebilir olduğu bir pod oluşturmuştur/mnt/data
. Komutunu kullanarakkubectl describe
pod için olay günlüklerini denetleyerek onaylayabilirsiniz:kubectl describe pod nginx-pod
Komutun çıkışı aşağıdaki örneğe benzer:
[...] Volumes: volume: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: anf-pvc ReadOnly: false default-token-k7952: Type: Secret (a volume populated by a Secret) SecretName: default-token-k7952 Optional: false [...] Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 15s default-scheduler Successfully assigned trident/nginx-pod to brameshb-non-root-test Normal SuccessfulAttachVolume 15s attachdetach-controller AttachVolume.Attach succeeded for volume "pvc-bffa315d-3f44-4770-86eb-c922f567a075" Normal Pulled 12s kubelet Container image "mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine" already present on machine Normal Created 11s kubelet Created container nginx Normal Started 10s kubelet Started container nginx
Sonraki adımlar
Astra Trident, Azure NetApp Files ile birçok özelliği destekler. Daha fazla bilgi için bkz.
Azure Kubernetes Service