🤖 AI-Optimized View

نصب لانگ‌ هورن در کوبرنتیز

نحوه نصب لانگ‌ هورن روی کوبرنتیز یاد بگیرید که Longhorn را روی Kubernetes نصب کنید تا فضای ذخیره‌سازی بلوکی مقیاس‌پذیر و با دسترسی بالا به همراه مدیریت رابط…

✍️ نگار نوین📅 2025-11-05🔄 2026-06-05🌐 نگارنوین

📌 خلاصه (TL;DR)

نحوه نصب لانگ‌ هورن روی کوبرنتیز یاد بگیرید که Longhorn را روی Kubernetes نصب کنید تا فضای ذخیره‌سازی بلوکی مقیاس‌پذیر و با دسترسی بالا به همراه مدیریت رابط کاربری و ویژگی‌های پشتیبان‌گیری داشته باشید.   مقدمه لانگ‌هورن یک سیستم ذخیره‌سازی بلوکی توزیع‌شده‌ی سبک و متن‌باز…

📄 محتوای کامل



نحوه نصب لانگ‌ هورن روی کوبرنتیز
یاد بگیرید که Longhorn را روی Kubernetes نصب کنید تا فضای ذخیره‌سازی بلوکی مقیاس‌پذیر و با دسترسی بالا به همراه مدیریت رابط کاربری و ویژگی‌های پشتیبان‌گیری داشته باشید.


 




مقدمه


لانگ‌هورن یک سیستم ذخیره‌سازی بلوکی توزیع‌شده‌ی سبک و متن‌باز برای کوبرنتیز است که ذخیره‌سازی پایدار را برای برنامه‌های دارای وضعیت در یک خوشه فراهم می‌کند. ولوم‌های لانگ‌هورن، ذخیره‌سازی بلوکی مقیاس‌پذیر و با دسترسی بالا را که به گره‌های کارگر شما متصل است، با پشتیبانی از حالت‌های دسترسی چندگانه در خوشه کوبرنتیز شما ارائه می‌دهند.


در یک خوشه کوبرنتیز، لانگ‌هورن با اجزای اصلی زیر اجرا می‌شود:



  • Longhorn UI: یک رابط وب گرافیکی که می‌توانید برای مشاهده، ایجاد، مدیریت و پشتیبان‌گیری از ولوم‌های Longhorn در یک کلاستر Kubernetes از آن استفاده کنید.

  • Longhorn Instance Manager: روی هر گره در خوشه Kubernetes اجرا می‌شود و عملکردهایی مانند تکثیر، اسنپ‌شات، مدیریت نمونه، تشخیص خرابی گره و زمان‌بندی را فعال می‌کند.

  • Longhorn Engine: جزء صفحه داده که داده‌ها را در کنترلر ذخیره‌سازی اختصاصی روی هر دستگاه بلوکی می‌خواند و می‌نویسد. هر دستگاه Longhorn دارای یک نمونه موتور مربوطه است که داده‌ها را تکثیر می‌کند و پشتیبان‌گیری یا اسنپ‌شات‌هایی را روی چندین گره ایجاد می‌کند.

  • Longhorn CSI (Container Storage Interface) Driver: Longhorn را به عنوان یک ارائه دهنده فضای ذخیره‌سازی در یک کلاستر Kubernetes فعال می‌کند و عملیات مربوط به حجم را به اقدامات Longhorn ترجمه می‌کند. از مقدار driver.longhorn.io  که توسط منابعی مانند StorageClasses ارجاع داده می‌شود، برای مدیریت درخواست‌های حجم استفاده می‌کند.


این مقاله نحوه استقرار Longhorn روی Kubernetes و ایجاد یک سیستم ذخیره‌سازی توزیع‌شده که در دسترس منابع متعدد مانند Pods در کلاستر شما باشد را توضیح می‌دهد. همچنین از Volumeهای Longhorn در Negarnovin Object Storage پشتیبان‌گیری خواهید کرد تا بازیابی داده‌ها را فعال کنید یا Volumeهای جدید بازیابی فاجعه ایجاد کنید.


پیش نیاز ها


قبل از اینکه شروع کنید:



  • یک کلاستر Negarnovin Kubernetes Engine با حداقل  3 گره و  4 vCPUs در هر گره مستقر کنید.

  • Negarnovin Object Storage را مستقر کنید و یک bucket  longhorn جدید برای ذخیره پشتیبان‌های volume خود ایجاد کنید.

  • یک سرور مجازی با سیستم عامل دبیان ایجاد کنید تا به عنوان ایستگاه کاری مدیریت خوشه استفاده شود.

  • با استفاده از SSH و به عنوان یک کاربر غیر ریشه با امتیازات sudo به سرور دسترسی پیدا کنید.

  • Kubectl را با پیکربندی VKE خود نصب و پیکربندی کنید تا به کلاستر روی سرور خود دسترسی داشته باشید.


نصب لانگ‌هورن روی کوبرنتیز


شما می‌توانید Longhorn را با استفاده از مدیر بسته Helm یا Kubectl روی کلاستر Kubernetes خود نصب کنید. برای نصب آخرین نسخه سازگار با اکثر نسخه‌های کلاستر Kubernetes، از Kubectl برای مشخص کردن شماره نسخه هدف و تغییر هرگونه اطلاعات پیکربندی در کلاستر خود استفاده کنید. مراحل زیر را برای نصب آخرین نسخه Longhorn با استفاده از Kubectl دنبال کنید و تمام منابع کلاستر موجود را تأیید کنید.



  1. آخرین فایل انتشار Longhorn را با استفاده از  wgetدانلود کنید.

    consoleCopy


    $ wget https://github.com/longhorn/longhorn/releases/download/v1.6.1/longhorn.yaml



    دستور بالا نسخه  1.6.1,لانگ‌هورن را دانلود می‌کند، برای تأیید آخرین نسخه جهت استقرار در کلاستر کوبرنتس خود، به مخزن رسمی گیت‌هاب پروژه مراجعه کنید.


  2. فایل‌ها را فهرست کنید و تأیید کنید که یک فایل longhorn.yaml جدید در دایرکتوری کاری شما موجود است.

    consoleCopy


    $ ls



    خروجی:


    longhorn.yaml

  3. با استفاده از آخرین فایل  longhorn.yaml ، Longhorn را در کلاستر Kubernetes خود مستقر کنید.

    consoleCopy


    $ kubectl apply -f longhorn.yaml



    وقتی نصب موفقیت‌آمیز باشد، خروجی شما باید مانند تصویر زیر باشد.


    customresourcedefinition.apiextensions.k8s.io/systemrestores.longhorn.io created
    customresourcedefinition.apiextensions.k8s.io/volumes.longhorn.io created
    customresourcedefinition.apiextensions.k8s.io/volumeattachments.longhorn.io created
    clusterrole.rbac.authorization.k8s.io/longhorn-role created
    clusterrolebinding.rbac.authorization.k8s.io/longhorn-bind created
    clusterrolebinding.rbac.authorization.k8s.io/longhorn-support-bundle created
    service/longhorn-backend created
    service/longhorn-frontend created
    service/longhorn-conversion-webhook created
    service/longhorn-admission-webhook created
    service/longhorn-recovery-backend created
    service/longhorn-engine-manager created
    service/longhorn-replica-manager created
    daemonset.apps/longhorn-manager created
    deployment.apps/longhorn-driver-deployer created
    deployment.apps/longhorn-ui created

  4. تمام منابع Longhorn مستقر در فضای نام جدید  longhorn-system  را مشاهده کنید و تأیید کنید که آنها به درستی در خوشه شما اجرا می‌شوند.

    consoleCopy


    $ kubectl get all -n longhorn-system



    خروجی:


    NAME READY STATUS RESTARTS AGE
    pod/csi-attacher-57689cc84b-tlzpb 1/1 Running 0 73s
    pod/longhorn-csi-plugin-lp562 3/3 Running 1 (15s ago) 73s
    pod/longhorn-ui-655b65f7f9-lgllp 1/1 Running 0 98s

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    service/longhorn-admission-webhook ClusterIP 10.100.203.235 <none> 9502/TCP 103s
    service/longhorn-backend ClusterIP 10.110.4.220 <none> 9500/TCP 104s

    NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
    daemonset.apps/engine-image-ei-5cefaf2b 3 3 3 3 3 <none> 84s
    daemonset.apps/longhorn-csi-plugin 3 3 3 3 3 <none> 74s
    daemonset.apps/longhorn-manager 3 3 3 3 3 <none> 100s

    NAME READY UP-TO-DATE AVAILABLE AGE
    deployment.apps/csi-attacher 3/3 3 3 74s
    deployment.apps/csi-provisioner 3/3 3 3 74s
    deployment.apps/csi-resizer 3/3 3 3 74s

    NAME DESIRED CURRENT READY AGE
    replicaset.apps/csi-attacher-57689cc84b 3 3 3 74s
    replicaset.apps/csi-provisioner-6c78dcb664 3 3 3 74s
    replicaset.apps/csi-resizer-7466f7b45f 3 3 3 74s

  5. آخرین بسته Longhorn NFS را نصب کنید تا ایجاد Volumeهای ReadWriteMany (RWX) در کلاستر شما امکان‌پذیر شود.

    consoleCopy


    $ kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.6.1/deploy/prerequisite/longhorn-nfs-installation.yaml




  6. تأیید کنید که غلاف‌های Longhorn NFS در کلاستر شما ایجاد و اجرا می‌شوند.

    consoleCopy


    $ kubectl get pods | grep longhorn-nfs-installation



    خروجی:


    longhorn-nfs-installation-2kd6d 1/1 Running 0 43s
    longhorn-nfs-installation-52kgg 1/1 Running 0 43s
    longhorn-nfs-installation-qsst9 1/1 Running 0 43s


ایجاد یک کلاس ذخیره‌ سازی Longhorn


Longhorn از کلاس ذخیره‌سازی پیش‌فرض  longhorn برای استقرار ولوم‌ها در کلاستر Kubernetes شما استفاده می‌کند. بسته به حجم کاری کلاستر خود، یک کلاس ذخیره‌سازی جدید ایجاد کنید تا هنگام اعمال PVCهای جدید برای ارتباط با درایور Longhorn CSI و استقرار ولوم‌های جدید با استفاده از Longhorn manager از آن استفاده کنید. در بخش‌های بعدی، کلاس‌های ذخیره‌سازی جداگانه‌ای ایجاد کنید تا هنگام اتصال حالت‌های دسترسی مختلف به PVCها در کلاستر خود از آنها استفاده کنید.


کلاس ذخیره‌سازی فقط خواندنی و نوشتنی (RWO)


ادعاهای حجم پایدار (PVC) از حالت دسترسی ReadWriteOnly (RWO) برای نصب یک حجم با امتیازات خواندن و نوشتن روی یک پاد در یک زمان استفاده می‌کنند. RWO از اشتراک‌گذاری حجم پشتیبانی نمی‌کند و همه امتیازات خواندن و نوشتن را به یک پاد در یک زمان محدود می‌کند. این برای برنامه‌هایی که نیاز به سازگاری داده‌ها دارند، مانند پایگاه‌های داده‌ای که به طور مداوم داده‌ها را روی حجم‌های مشترک می‌نویسند، مناسب است. برای ایجاد یک RWO StorageClass جدید برای استفاده در خوشه خود، مراحل زیر را دنبال کنید.



  1. با استفاده از یک ویرایشگر متن مانند Nano، یک فایل StorageClass جدید به نام  rwo-storageclass.yaml  ایجاد کنید.

    consoleCopy


    $ nano rwo-storageclass.yaml




  2. تنظیمات زیر را به فایل اضافه کنید.

    yamlCopy


    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
    name: longhorn-prod
    provisioner: driver.longhorn.io
    allowVolumeExpansion: true
    parameters:
    numberOfReplicas: "3"
    staleReplicaTimeout: "2880" # 48 hours in minutes
    fromBackup: ""
    fsType: "ext4"
    reclaimPolicy: Retain



    فایل را ذخیره کنید و ببندید.


    پیکربندی فوق یک StorageClass  longhorn-prod  قابل توسعه جدید با سیاست حفظ (retain policy) ایجاد می‌کند که یک فضای ذخیره‌سازی را حتی در صورت حذف PVC مرتبط، فعال نگه می‌دارد. در پیکربندی:



    • provisioner: درایور تأمین‌کننده‌ی فضای ذخیره‌سازی پایدار (PV) را تنظیم می‌کند. مقدار driver.longhorn.io  از موتور مورد نیاز Longhorn برای استقرار و مدیریت فضاها استفاده می‌کند در حالی که مقداری مانند  block.csi.negarnovin.com  فضاهای ذخیره‌سازی پایدار (PV) را با Negarnovin Block Storage مستقر می‌کند که با Longhorn manager سازگار نیستند.

    • allowVolumeExpansion: امکان تغییر ظرفیت درایوهای Longhorn را در یک کلاستر فراهم می‌کند. برای مثال، یک درایو  10 GB می‌تواند بسته به نیاز شما تا  20 GB  یا بیشتر افزایش یابد.

    • numberOfReplicas: تعداد کپی‌های درایو Longhorn را برای استقرار و اتصال به گره‌های کلاستر شما تنظیم می‌کند.

    • staleReplicaTimeout: یک مقدار time-out ایجاد می‌کند تا وقتی زمان فعالیت مشخص شده منقضی شد، یک درایو Longhorn را به عنوان غیرفعال علامت‌گذاری کند.

    • staleReplicaTimeout:  یک درایو Longhorn را از منبع پشتیبان شما مانند Negarnovin Object Storage بازیابی می‌کند.

    • fsType:  فرمت سیستم فایل ولوم Longhorn را تنظیم می‌کند.

    • reclaimPolicy: اقدام مربوط به ولوم Longhorn را برای اعمال در هنگام حذف PVC یا PV مرتبط با کلاس مشخص می‌کند. ولوم‌های Longhorn از سیاست‌های حذف و حفظ پشتیبانی می‌کنند.



  3. کلاس StorageClass را روی کلاستر خود اعمال کنید.

    consoleCopy


    $ kubectl apply -f rwo-storageclass.yaml




  4. تمام StorageClasses را در کلاستر خود مشاهده کنید و تأیید کنید که کلاس RWO جدید شما در دسترس است.

    consoleCopy


    $ kubectl get storageclass



    خروجی:


    NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
    longhorn (default) driver.longhorn.io Delete Immediate true 35m
    longhorn-prod driver.longhorn.io Retain Immediate true 4s
    negarnovin-block-storage block.csi.negarnovin.com Delete Immediate true 46m


کلاس ذخیره‌ سازی ReadWriteMany (RWX)


ReadWriteMany (RWX) به چندین Pod اجازه می‌دهد تا به طور همزمان یک Volume را با امتیازات خواندن و نوشتن در کلاستر Kubernetes شما Mount کنند. این ابزار از اشتراک‌گذاری Volume پشتیبانی می‌کند و به Podها امکان دسترسی به داده‌های مشترک را می‌دهد که آن را برای اکثر برنامه‌های موجود در کلاستر شما مناسب می‌کند. مراحل زیر را برای ایجاد یک StorageClass جدید که می‌توانید با PVCهای ReadWriteMany (RWX) در کلاستر خود استفاده کنید، دنبال کنید.



  1. یک فایل جدید StorageClass به نام rwx-storageclass.yaml ایجاد کنید.

    consoleCopy


    $ nano rwx-storageclass.yaml




  2. تنظیمات زیر را به فایل اضافه کنید.

    yamlCopy


    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
    name: longhorn-rwx
    provisioner: driver.longhorn.io
    allowVolumeExpansion: true
    reclaimPolicy: Delete
    volumeBindingMode: Immediate
    parameters:
    numberOfReplicas: "3"
    staleReplicaTimeout: "2880"
    fromBackup: ""
    fsType: "ext4"
    nfsOptions: "vers=4.2,noresvport,softerr,timeo=600,retrans=5,rw,hard"
    reclaimPolicy: Retain



    فایل را ذخیره کنید و ببندید.


    پیکربندی فوق یک کلاس ذخیره‌سازی جدید ReadWriteMany (RWX)  longhorn-rwx  ایجاد می‌کند که از Longhorn NFS برای نصب پادهای مدیریت اشتراکی و فعال کردن امتیازات خواندن و نوشتن همزمان برای چندین پاد در کلاستر شما استفاده می‌کند.  nfsOptions تفاوت اصلی مشخصات است که گزینه‌های اضافی Longhorn NFS را هنگام ایجاد والیوم‌های ReadWriteMany (RWX) فعال می‌کند.


  3. پیکربندی StorageClass را روی کلاستر Kubernetes خود اعمال کنید.

    consoleCopy


    $ kubectl apply -f rwx-storageclass.yaml




  4. کلاس StorageClasses را مشاهده کنید و تأیید کنید که کلاس RWX جدید در دسترس است.

    consoleCopy


    $ kubectl get storageclass



    خروجی:


    NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
    longhorn (default) driver.longhorn.io Delete Immediate true 36m
    longhorn-prod driver.longhorn.io Retain Immediate true 46s
    longhorn-rwx driver.longhorn.io Retain Immediate true 9s
    negarnovin-block-storage block.csi.negarnovin.com Delete Immediate true 47m


ایجاد درخواست‌های حجمی مداوم (PVC)


مدیر Longhorn به صورت پویا، هر زمان که درخواست‌های جدید برای حجم‌های پایدار (PVC) به StorageClass شما ارجاع دهند، حجم‌های جدید Longhorn را به عنوان حجم‌های پایدار (PV) ایجاد می‌کند. برای ایجاد PVCهای جدید با حالت دسترسی Read Write Once (RWO) یا Read Write Many (RWX) برای نصب به عنوان حجم‌های ذخیره‌سازی برای Podها در کلاستر خود، بخش‌های زیر را دنبال کنید.


پی وی سی خواندنی و نوشتنی (RWO)



  1. یک فایل پیکربندی منبع PVC جدید به نام  rwo-pvc.yaml ایجاد کنید.

    consoleCopy


    $ nano rwo-pvc.yaml




  2. تنظیمات زیر را به فایل اضافه کنید.

    yamlCopy


    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
    name: test-rwo
    spec:
    accessModes:
    - ReadWriteOnce
    storageClassName: longhorn-prod
    resources:
    requests:
    storage: 10Gi



    فایل را ذخیره کنید و ببندید.


    پیکربندی فوق یک PVC test-rwo  جدید ایجاد می‌کند که به  longhorn-prod StorageClass ارجاع می‌دهد تا یک Volume  10 GB  گیگابایتی Longhorn ایجاد کند، زمانی که PVC توسط یک Pod در کلاستر نصب شده باشد.


  3. PVC را روی خوشه خود بمالید.

    consoleCopy


    $ kubectl apply -f rwo-pvc.yaml




  4. تمام PVC های خوشه را مشاهده کنید و تأیید کنید که منبع جدید با وضعیت  Bound در دسترس است.

    consoleCopy


    $ kubectl get pvc



    خروجی:


    NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
    test-rwo Bound pvc-4026f8d2-873c-429b-8068-208b26a75692 10Gi RWO longhorn-prod <unset> 4s

    بر اساس خروجی بالا، وضعیت  Bound  به این معنی است که درخواست ذخیره‌سازی PVC موفقیت‌آمیز بوده و یک پارتیشن Longhorn با نام  pvc-4026f8d2-873c-429b-8068-208b26a75692  با موفقیت ایجاد شده است. ستون CAPACITY شامل ظرفیت پارتیشن Longhorn است در حالی که ACCESS MODES شامل حالت دسترسی پشتیبانی شده توسط پارتیشن است.


  5. تمام PV های موجود در کلاستر خود را مشاهده کنید و تأیید کنید که یک Volume جدید Longhorn در دسترس است.

    consoleCopy


    $ kubectl get pv



    خروجی:


    NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE
    pvc-4026f8d2-873c-429b-8068-208b26a75692 10Gi RWO Retain Bound default/test-rwo longhorn-prod <unset> 8s

    بر اساس خروجی فوق، یک ولوم جدید Longhorn با ظرفیت 10Gi و دسترسی RWO  pvc-4026f8d2-873c-429b-8068-208b26a75692  در دسترس است.


    شما یک PVC از نوع ReadWriteOnce در کلاستر خود ایجاد کرده و یک ولوم جدید Longhorn را آماده کرده‌اید. بر اساس پیکربندی، Podها در کلاستر شما می‌توانند PVC را به عنوان یک ولوم ذخیره‌سازی نصب کنند، اما فقط یک Pod می‌تواند همزمان داده‌ها را روی ولوم Longhorn نصب، خوانده و بنویسد.



خواندن، نوشتن و تعداد زیاد (RWX) PVC



  1. یک فایل منبع RWX PVC جدید به نام  rwx-pvc.yaml ایجاد کنید.

    consoleCopy


    $ nano rwx-pvc.yaml




  2. تنظیمات زیر را به فایل اضافه کنید.

    yamlCopy


    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
    name: rwx-pvc
    spec:
    accessModes:
    - ReadWriteMany
    storageClassName: longhorn-rwx
    resources:
    requests:
    storage: 20Gi



    فایل را ذخیره کنید و ببندید.


    پیکربندی فوق یک ReadWriteMany (RWX) PVC rwx-pvc  ایجاد می‌کند که به  longhorn-rwx  StorageClass ارجاع می‌دهد تا یک ولوم جدید  20 GB  Longhorn را هنگام نصب PVC به عنوان ولوم ذخیره‌سازی توسط یک Pod فراهم کند.


  3. منبع را به کلاستر خود اعمال کنید.

    consoleCopy


    $ kubectl apply -f rwx-pvc.yaml




  4. تمام PVC های موجود در کلاستر خود را مشاهده کنید و تأیید کنید که PVC جدید RWX با وضعیت  Boundدر دسترس است.

    consoleCopy


    $ kubectl get pvc



    خروجی:


    NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE
    rwx-pvc Bound pvc-509f254e-255d-4aee-bdc1-8c10c6cc49f5 20Gi RWX longhorn-rwx <unset> 7s
    test-rwo Bound pvc-4026f8d2-873c-429b-8068-208b26a75692 10Gi RWO longhorn-prod <unset> 3m10s

  5. تمام PV های موجود در کلاستر خود را مشاهده کنید و تأیید کنید که یک Volume جدید Longhorn در دسترس است.

    consoleCopy


    $ kubectl get pv



    خروجی:


    NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS VOLUMEATTRIBUTESCLASS REASON AGE
    pvc-4026f8d2-873c-429b-8068-208b26a75692 10Gi RWO Retain Bound default/test-rwo longhorn-prod <unset> 3m31s
    pvc-509f254e-255d-4aee-bdc1-8c10c6cc49f5 20Gi RWX Retain Bound default/rwx-pvc longhorn-rwx <unset> 28s

    شما یک PVC از نوع ReadWriteMany (RWX) در کلاستر خود ایجاد کرده‌اید. تمام Podهایی که PVC را به عنوان Storage Volume نصب می‌کنند، می‌توانند همزمان داده‌ها را در Longhorn Volume در کلاستر Kubernetes شما بخوانند و بنویسند.



ادعاهای حجم پایدار (PVC) را آزمایش کنید


برای آزمایش حالت‌های دسترسی ReadWriteOnce (RWO) و ReadWriteMany (RWX) خود، با نصب PVC های مربوطه به عنوان حجم‌های ذخیره‌سازی، Pod های نمونه برنامه را در خوشه خود مستقر کنید. بخش‌های زیر را دنبال کنید تا Pod های جدیدی ایجاد کنید که به PVC های شما ارجاع می‌دهند و تأیید کنید که حجم‌های جدید Longhorn در خوشه شما ایجاد می‌شوند.


یک بار خواندن و نوشتن (RWO)


برای ایجاد یک Nginx Pod جدید که فایل‌های برنامه وب را با استفاده از دایرکتوری /usr/nginx/  و با استفاده از ReadWriteOnce PVC شما به عنوان درایو ذخیره‌سازی می‌خواند و می‌نویسد، مراحل زیر را دنبال کنید.



  1. یک فایل منبع Pod جدید  nginx-rwo-pod.yaml ایجاد کنید.

    consoleCopy


    $ nano nginx-rwo-pod.yaml




  2. تنظیمات زیر را به فایل اضافه کنید.

    yamlCopy


    apiVersion: v1
    kind: Pod
    metadata:
    name: nginx-webserver
    spec:
    containers:
    - name: rwo-container
    image: nginx:latest
    volumeMounts:
    - name: rwo-volume
    mountPath: /data
    volumes:
    - name: rwo-volume
    persistentVolumeClaim:
    claimName: test-rwo



    فایل را ذخیره کرده و ببندید.


    پیکربندی فوق یک Pod جدید  nginx-webserver  ایجاد می‌کند که محتوا را از PVC یک‌بار خواندنی-نوشتنی که در دایرکتوری  /usr/share/nginx/html درون کانتینر برنامه قرار دارد، ارائه می‌دهد.


  3. منبع را در کلاستر Kubernetes خود اعمال کنید.

    consoleCopy


    $ kubectl apply -f nginx-rwo-pod.yaml




  4. تمام Pod های موجود در کلاستر خود را مشاهده کنید و تأیید کنید که یک Pod جدید  nginx-webserver  در حال اجرا است.

    consoleCopy


    $ kubectl get pods



    خروجی:


    NAME READY STATUS RESTARTS AGE
    nginx-webserver 1/1 Running 0 41s

  5. با استفاده از Kubectl به محیط غلاف Nginx دسترسی پیدا کنید.

    consoleCopy


    $ kubectl exec -it nginx-webserver -- /bin/bash



    دستور  -- /bin/bash پوسته Bash را در محیط pod با پشتیبانی از دستورات و ابزارهای رایج لینوکس فعال می‌کند. هنگامی که دستور فوق با موفقیت اجرا شود، محیط ترمینال شما باید به پوسته زیر تغییر کند..



    consoleCopy


    root@nginx-webserver:/#




  6. یک پیکربندی HTML جدید بنویسید تا با استفاده از ابزار echo، محتوای پیش‌فرض فایل /usr/share/nginx/html/index.html را جایگزین کند.

    consoleCopy


    $ echo "<html><body><h1> Hello World! Nginx Writes to the RWO Longhorn Volume </h1></body></html>" > /usr/share/nginx/html/index.html




  7. دسترسی به آدرس IP  127.0.0.1  در Nginx localhost را با استفاده از Curl آزمایش کنید.

    consoleCopy


    $ curl 127.0.0.1



    تأیید کنید که محتوای صفحه وب  Hello World سلام دنیا شما در خروجی مشابه تصویر زیر نمایش داده می‌شود.



    htmlCopy


    <html><body><h1> Hello World! Nginx Writes to the RWO Longhorn Volume </h1></body></html>



    بر اساس خروجی بالا، پاد  nginx-webserver  دسترسی خواندن و نوشتن به والیوم ReadWriteOnce Longhorn که با دایرکتوری  /usr/share/nginx/html  مانت شده است را دارد. با این حال، فقط یک پاد می‌تواند همزمان حافظه را بخواند یا بنویسد.


    بر اساس پیکربندی حافظه، پادهای دیگر ممکن است بتوانند PVC را با امتیازات فقط خواندنی مانت کنند، اما نمی‌توانند همزمان با برنامه  nginx-webserver  فایل‌ها را بنویسند.


  8. از محیط Nginx Pod خارج شوید.

    consoleCopy


    # exit





خواندن، نوشتن و تعداد زیاد (RWX)


حالت دسترسی Read Write Many (RWX) برای برنامه‌های خوشه‌ای با رابط‌های ارتباطی front-end و back-end مناسب است. مراحل زیر را برای ایجاد Podهای جدید برنامه که همزمان داده‌ها را در یک volume ذخیره‌سازی PVC نصب شده ReadWriteMany می‌خوانند و می‌نویسند، دنبال کنید.



  1. یک فایل پیکربندی Pod جدید به نام log-backend.yaml  ایجاد کنید که داده‌ها را در یک دایرکتوری ذخیره‌سازی mount شده بنویسد.

    consoleCopy


    $ nano log-backend.yaml




  2. تنظیمات زیر را به فایل اضافه کنید.

    yamlCopy


    apiVersion: v1
    kind: Pod
    metadata:
    name: log-writer
    spec:
    containers:
    - name: log-writer-container
    image: busybox:latest
    command: ["/bin/sh", "-c", "while true; do echo $(date) >> /var/log/app.log; sleep 1; done"]
    volumeMounts:
    - name: shared-storage
    mountPath: /var/log
    volumes:
    - name: shared-storage
    persistentVolumeClaim:
    claimName: rwx-pvc



    فایل را ذخیره کنید و ببندید.


    پیکربندی فوق یک  log-writer  جدید برای Application pod ایجاد می‌کند که به طور مداوم تاریخ و زمان کلاستر Kubernetes را در یک فایل لاگ  longhorn-date.log  در دایرکتوری مشترک /var/log/ می‌نویسد. Volume پی‌وی‌سی ReadWriteMany به عنوان یک Volume  shared-storage  با استفاده از دایرکتوری مشترک /var/log به عنوان مسیر mount قابل دسترسی برای تمام منابع متصل، Mount می‌شود.


  3. یک فایل پیکربندی Pod دیگر به نام  log-frontend.yaml  ایجاد کنید تا داده‌ها را از دایرکتوری ذخیره‌سازی نصب‌شده بخواند.

    consoleCopy


    $ nano log-frontend.yaml




  4. تنظیمات زیر را به فایل اضافه کنید.

    yamlCopy


    apiVersion: v1
    kind: Pod
    metadata:
    name: log-viewer
    spec:
    containers:
    - name: log-reader-container
    image: busybox:latest
    command: ["/bin/sh", "-c", "tail -f /var/log/app.log"]
    volumeMounts:
    - name: shared-storage
    mountPath: /var/log
    volumes:
    - name: shared-storage
    persistentVolumeClaim:
    claimName: rwx-pvc



    فایل را ذخیره کنید و ببندید.


    پیکربندی فوق یک  log-viewer  Pod جدید ایجاد می‌کند که داده‌ها را از فایل app.log  ایجاد شده توسط  logs-writer  backend Pod در دایرکتوری مشترک /var/log/می‌خواند.


  5. یک فایل پیکربندی Pod جدید در backend به نام  updatelog-backend  ایجاد کنید که به طور مداوم داده‌ها را در فایل مشترک می‌نویسد.

    consoleCopy


    $ nano updatelog-backend.yaml




  6. تنظیمات زیر را به فایل اضافه کنید.

    yamlCopy


    apiVersion: v1
    kind: Pod
    metadata:
    name: updatelog
    spec:
    containers:
    - name: log-writer-container
    image: busybox:latest
    command: ["/bin/sh", "-c", "while true; do echo Update from backend pod $(date) >> /var/log/app.log; sleep 1; done"]
    volumeMounts:
    - name: shared-storage
    mountPath: /var/log
    volumes:
    - name: shared-storage
    persistentVolumeClaim:
    claimName: rwx-pvc



    فایل را ذخیره کنید و ببندید.


    پیکربندی فوق یک Pod  updatelog جدید ایجاد می‌کند که به‌روزرسانی‌ها را در فایل مشترک app.log در دایرکتوری  /var/log/  می‌نویسد. Pod یک پیام جدید Update from backend pod و تاریخ کلاستر را به فایل لاگ اضافه می‌کند.


  7. تنظیمات پاد را روی کلاستر خود اعمال کنید.

    consoleCopy


    $ kubectl apply -f log-backend.yaml

    $ kubectl apply -f log-frontend.yaml

    $ kubectl apply -f updatelog-backend.yaml




  8. تمام پادهای (Pods) موجود در کلاستر خود را مشاهده کنید و تأیید کنید که پادهای آزمایشی جدید در حال اجرا هستند.

    consoleCopy


    $ kubectl get pods



    خروجی:


    NAME READY STATUS RESTARTS AGE
    log-viewer 1/1 Running 1 (37s ago) 59s
    log-writer 1/1 Running 0 64s
    updatelog 1/1 Running 0 51s

  9. لاگ‌های پادِ  log-viewer  را مشاهده کنید و تأیید کنید که هر دو پادِ بک‌اند به طور فعال در حال نوشتن داده‌ها در فایل مشترک /var/log/app.log هستند.

    consoleCopy


    $ kubectl logs log-viewer



    خروجی:


    Update from backend pod Tue Apr 30 18:48:19 UTC 2024
    Tue Apr 30 18:48:20 UTC 2024
    Update from backend pod Tue Apr 30 18:48:20 UTC 2024
    Tue Apr 30 18:48:21 UTC 2024
    Update from backend pod Tue Apr 30 18:48:21 UTC 2024
    Tue Apr 30 18:48:22 UTC 2024
    Update from backend pod Tue Apr 30 18:48:22 UTC 2024
    Tue Apr 30 18:48:23 UTC 2024
    Update from backend pod Tue Apr 30 18:48:23 UTC 2024
    Tue Apr 30 18:48:24 UTC 2024
    Update from backend pod Tue Apr 30 18:48:24 UTC 2024
    Tue Apr 30 18:48:25 UTC 2024
    Update from backend pod Tue Apr 30 18:48:25 UTC 2024
    Tue Apr 30 18:48:26 UTC 2024
    Update from backend pod Tue Apr 30 18:48:26 UTC 2024
    Tue Apr 30 18:48:27 UTC 2024
    Update from backend pod Tue Apr 30 18:48:27 UTC 2024
    Tue Apr 30 18:48:28 UTC 2024
    Update from backend pod Tue Apr 30 18:48:28 UTC 2024

    بر اساس خروجی فوق، Podهای backend log-write  و  updatelogبه طور همزمان داده‌ها را در فایل مشترک  app.log  می‌نویسند در حالی که  log-view به طور فعال داده‌ها را از فایل می‌خواند. در نتیجه، روش دسترسی ReadWriteMany به چندین Pod این امکان را می‌دهد که داده‌ها را به اشتراک بگذارند، فایل‌ها را بخوانند و همزمان در یک فضای ذخیره‌سازی بنویسند.



پیکربندی Longhorn برای دسترسی خارجی


رابط کاربری (UI) لانگ‌هورن یک برنامه وب گرافیکی است که به شما امکان می‌دهد وضعیت ولوم‌های لانگ‌هورن و تمام PVCهای نصب‌شده را رصد کنید. مراحل زیر را برای نصب یک کنترلر Ingress و دسترسی ایمن به رابط کاربری لانگ‌هورن در کلاستر Kubernetes خود با ارسال درخواست‌های خارجی به پورت رابط کاربری لانگ‌هورن دنبال کنید.



  1. آخرین نسخه Nginx Ingress Controller را با استفاده از Kubectl روی کلاستر Kubernetes خود نصب کنید.

    consoleCopy


    $ kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.10.1/deploy/static/provider/cloud/deploy.yaml



    خروجی:


    namespace/ingress-nginx created
    serviceaccount/ingress-nginx created
    serviceaccount/ingress-nginx-admission created
    role.rbac.authorization.k8s.io/ingress-nginx created
    role.rbac.authorization.k8s.io/ingress-nginx-admission created
    clusterrole.rbac.authorization.k8s.io/ingress-nginx created
    clusterrole.rbac.authorization.k8s.io/ingress-nginx-admission created
    rolebinding.rbac.authorization.k8s.io/ingress-nginx created
    rolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created
    clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx created
    clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created
    configmap/ingress-nginx-controller created
    service/ingress-nginx-controller created
    service/ingress-nginx-controller-admission created
    deployment.apps/ingress-nginx-controller created
    job.batch/ingress-nginx-admission-create created
    job.batch/ingress-nginx-admission-patch created
    ingressclass.networking.k8s.io/nginx created
    validatingwebhookconfiguration.admissionregistration.k8s.io/ingress-nginx-admission created

  2. تمام Pod های  ingress-nginx  Controller ایجاد شده را مشاهده کنید و تأیید کنید که Pod ingress-nginx به طور فعال در حال اجرا است.

    consoleCopy


    $ kubectl get pods --all-namespaces -l app.kubernetes.io/name=ingress-nginx



    خروجی:


    NAMESPACE NAME READY STATUS RESTARTS AGE
    ingress-nginx ingress-nginx-admission-create-n2gvf 0/1 Completed 0 98s
    ingress-nginx ingress-nginx-admission-patch-vqfhn 0/1 Completed 0 98s
    ingress-nginx ingress-nginx-controller-57b7568757-ctk5z 1/1 Running 0 99s

  3. حداقل  3 دقیقه صبر کنید تا  ingress-nginx  Controller یک Load Balancer را مستقر کند. سپس، تمام سرویس‌های موجود در فضای نام ingress-nginx را مشاهده کنید تا آدرس IP عمومی خارجی اختصاص داده شده به سرویس  LoadBalancer خود را تأیید کنید.

    consoleCopy


    $ kubectl get services ingress-nginx-controller --namespace=ingress-nginx



    خروجی:


    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    ingress-nginx-controller LoadBalancer 10.106.252.171 203.0.113.5 80:30886/TCP,443:32107/TCP 4m25s

    بر اساس خروجی بالا، IP متعادل‌کننده بار خارجی شما  203.0.113.5است. به ثبت‌کننده دامنه خود دسترسی پیدا کنید و یک رکورد DNS A جدید تنظیم کنید که به آدرس IP خارجی اشاره کند تا همه درخواست‌ها را به خوشه Kubernetes شما ارسال کند.


  4. یک فایل منبع جدید Ingress به نام longhorn-ingress.yaml ایجاد کنید.

    consoleCopy


    $ nano longhorn-ingress.yaml




  5. تنظیمات زیر را به فایل اضافه کنید.  longhorn.example.com  را با نام دامنه واقعی خود جایگزین کنید.

    yamlCopy


    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
    name: longhorn-production44
    namespace: longhorn-system
    spec:
    ingressClassName: nginx
    rules:
    - host: negarnovin.ddns.net
    http:
    paths:
    - pathType: Prefix
    path: "/"
    backend:
    service:
    name: longhorn-frontend
    port:
    number: 80



    فایل را ذخیره کنید و ببندید.


    پیکربندی فوق یک منبع جدید Ingress به نام  longhorn-production  ایجاد می‌کند که رابط کاربری Longhorn را با استفاده از نام دامنه شما  longhorn.example.com  در معرض نمایش قرار می‌دهد و تمام درخواست‌های خارجی HTTP را به برنامه داخلی longhorn-frontend  روی پورت 80ارسال می‌کند.


  6. پیکربندی Ingress را روی کلاستر خود اعمال کنید.

    consoleCopy


    $ kubectl apply -f longhorn-ingress




  7. تمام منابع Ingress را در فضای نام  longhorn-system  مشاهده کنید و تأیید کنید که پیکربندی Longhorn Ingress شما در دسترس است.

    consoleCopy


    $ kubectl get ingress



    خروجی:


    NAME CLASS HOSTS ADDRESS PORTS AGE
    longhorn-production nginx longhorn.example.com 203.0.113.5 80 2m20s

    شما Nginx Ingress Controller را نصب کرده‌اید و یک پیکربندی جدید Longhorn Ingress ایجاد کرده‌اید که تمام درخواست‌های خارجی را به برنامه داخلی  longhorn-frontendارسال می‌کند. در نتیجه، می‌توانید با استفاده از نام دامنه خود، به طور ایمن به رابط کاربری Longhorn دسترسی داشته باشید تا بتوانید Volumeها را در کلاستر Kubernetes خود ایجاد و مدیریت کنید.



دسترسی به رابط کاربری Longhorn



  1. با استفاده از یک مرورگر وب مانند فایرفاکس به نام دامنه Longhorn خود دسترسی پیدا کنید.
    http://longhorn.example.com

  2. حجم‌ها، گره‌ها و خلاصه فضای ذخیره‌سازی کلاستر Kubernetes خود را در داشبورد Longhorn تأیید کنید. علاوه بر این، ناحیه حجم‌ها شامل اطلاعاتی در مورد وضعیت تمام حجم‌های Longhorn موجود در کلاستر شما است.

    نصب لانگ‌ هورن در کوبرنتیز






  3. برای دسترسی به Volume های Longhorn موجود در کلاستر Kubernetes خود، روی Volume در منوی ناوبری بالا کلیک کنید.

  4. تأیید کنید که والیوم‌های ReadWriteOnce (RWO) و ReadWriteMany (RWX) شما در وضعیت سالمی در دسترس هستند.

    نصب لانگ‌ هورن در کوبرنتیز






  5. برای مشاهده اطلاعات بیشتر مانند تعداد کپی‌ها، جزئیات ولوم، اسنپ‌شات‌ها و پشتیبان‌ها، روی هر یک از ولوم‌های لانگ‌هورن کلیک کنید.

  6. به لیست پارتیشن‌های Longhorn برگردید و روی Create Volume کلیک کنید تا یک پارتیشن Longhorn جدید با استفاده از رابط کاربری Longhorn ایجاد شود.

  7. اطلاعات مربوط به ولوم مورد نظر خود را وارد کنید و روی منوی کشوییAccess Mode  کلیک کنید تا روش دسترسی به ولوم ReadWriteOnce یا ReadWriteMany را انتخاب کنید.

    نصب لانگ‌ هورن در کوبرنتیز





  8. برای اعمال ولوم جدید و تأیید اینکه در فهرست ولوم‌های Longhorn شما موجود است، روی OK کلیک کنید.

  9. ولوم را انتخاب کنید و روی Attach کلیک کنید تا ولوم جدید Longhorn به هر یک از گره‌های کلاستر شما که فضای ذخیره‌سازی کافی دارد، اختصاص داده شود.

    نصب لانگ‌ هورن در کوبرنتیز






  10. روی منوی کشویی Node کلیک کنید، گره کارگر هدف خود را انتخاب کنید و برای آماده‌سازی ولوم جدید با استفاده از فضای ذخیره‌سازی گره خود، روی Attach کلیک کنید.

  11. تأیید کنید که وضعیت ولوم جدید Longhorn سالم است و فیلد Attached To شامل گره کلاستر انتخابی شما می‌شود.

    نصب لانگ‌ هورن در کوبرنتیز





    شما یک درایو Longhorn جدید در رابط کاربری Longhorn ایجاد کرده‌اید. می‌توانید یک PVC جدید ایجاد کنید که به نام درایو Longhorn جدید اشاره دارد تا درایو جدید را بسته به روش دسترسی آن، در کلاستر خود mount کنید.



پشتیبان‌گیری از Volumeهای Longhorn در NegarNovin Object Storage


پشتیبان‌گیری‌های Longhorn با ذخیره‌سازی S3 مانند Negarnovin Object Storage برای بازیابی و ایجاد Disaster Recovery Volumes (DR volume) در صورت خرابی گره‌ها در کلاستر شما سازگار است. مراحل زیر را برای اعمال پیکربندی‌های جدید Negarnovin Object Storage در کلاستر خود دنبال کنید و Longhorn را برای پشتیبان‌گیری از Volumeها در باکت مقصد خود تنظیم کنید.



  • به نمونه Negarnovin Object Storage خود دسترسی پیدا کنید و HostnameSecret Key و Access Key را برای استفاده در خوشه خود کپی کنید.



  1. یک فایل منبع مخفی جدید  negarobj-secret.yaml ایجاد کنید تا اعتبارنامه‌های NegarNovin Object Storage خود را در آن ذخیره کنید.

    consoleCopy


    $ nano negarnovinobj-secret.yaml




  2. پیکربندی‌های زیر را به فایل اضافه کنید. examplekey, examplesecret و ewr1.negarnovin.com را با اعتبارنامه‌های واقعی Negarnovin Object Storage خود جایگزین کنید.

    yamlCopy


    apiVersion: v1
    kind: Secret
    metadata:
    name: longhorn-negarnovin-backups
    namespace: longhorn-system
    type: Opaque
    stringData:
    AWS_ACCESS_KEY_ID: examplekey
    AWS_ENDPOINTS: https://ewr1.negarnovin.com
    AWS_SECRET_ACCESS_KEY: examplesecret



    فایل را ذخیره کنید و ببندید.


    پیکربندی فوق یک فایل جدید به نام  longhorn-negar-backups  با نام Secret ایجاد می‌کند که شامل اطلاعات دسترسی Negarnovin Object Storage شما در فضای نام  longhorn-system  است. Longhorn هنگام ایجاد پشتیبان‌گیری، بسته به باکت هدف در پیکربندی شما، به این فایل مخفی ارجاع می‌دهد.


  3. پیکربندی را روی کلاستر Kubernetes خود اعمال کنید.

    consoleCopy


    $ kubectl apply -f negarobj-secret.yaml




  4. تمام اسرار موجود در فضای نام  longhorn-system  را مشاهده کنید و تأیید کنید که منبع جدید Negarnovin Object Storage شما در دسترس است.

    consoleCopy


    $ kubectl get secrets -n longhorn-system



    خروجی:


    NAME TYPE DATA AGE
    longhorn-negarnovin-backups Opaque 3 35s

  5. در مرورگر وب خود به رابط کاربری Longhorn دسترسی پیدا کنید.

  6. روی منوی کشویی تنظیمات (Setting ) در منوی ناوبری اصلی کلیک کنید و از لیست گزینه‌ها، عمومی (General ) را انتخاب کنید.

  7. به بخش  Back Up بروید Backup Target و با استفاده از آدرس اینترنتی s3:// ، نام مخزن و آدرس اینترنتی مخزن NegarNovin Object Storage، محل پشتیبان‌گیری را روی مخزن NegarNovin Object Storage خود تنظیم کنید.
    s3://example-bucket@ewr1.negarnovin.com.com/

  8. نام منبع NegarNovin Object Storage Secret خود را  longhorn-negarnovin-backups در فیلدBackup Target Credential Secret  وارد کنید.

    نصب لانگ‌ هورن در کوبرنتیزنصب لانگ‌ هورن در کوبرنتیز



  9. برای ذخیره تغییرات و اعمال پیکربندی جدید پشتیبان‌گیری Longhorn،  Enter را فشار دهید.

  10. برای دسترسی به ولوم‌های Longhorn خود، در منوی ناوبری اصلی روی Volume کلیک کنید.

  11. یک حجم هدف برای پشتیبان‌گیری انتخاب کنید. برای مثال،  test-volume.

  12. برای وارد کردن جزئیات پشتیبان جدید، روی Create Backup در منوی ناوبری بالا کلیک کنید.

    نصب لانگ‌ هورن در کوبرنتیز






  13. روی Add Labels for Backup کلیک کنید و جزئیات برچسب پشتیبان مورد نظر خود را وارد کنید. به عنوان مثال، longhorn-backup  و latest-backup  به ترتیب به عنوان کلید و مقدار برچسب.

  14. بسته به حجم درایو خود، منتظر بمانید تا فرآیند پشتیبان‌گیری کامل شود و برای دسترسی به تمام Backup موجود، در منوی اصلی روی پشتیبان‌گیری کلیک کنید.

  15. تأیید کنید که نسخه پشتیبان جدید Longhorn شما در لیست موجود است.

    نصب لانگ‌ هورن در کوبرنتیز






  16. به مخزن ذخیره‌سازی negarnovin خود دسترسی پیدا کنید و تأیید کنید که یک دایرکتوری  backupstore جدید توسط Longhorn با اشیاء پشتیبان‌گیری حجمی شما ایجاد شده است.

    نصب لانگ‌ هورن در کوبرنتیز





    شما از پارتیشن Longhorn خود در Negarnovin Object Storage نسخه پشتیبان تهیه کرده‌اید، می‌توانید یک پارتیشن بازیابی فاجعه جدید ایجاد کنید یا از داده‌های بازیابی برای بازگرداندن هرگونه تغییر خوشه‌ای استفاده کنید. برای خودکارسازی پشتیبان‌گیری از پارتیشن Longhorn خود یا ایجاد پشتیبان‌گیری دستی برای پشتیبان‌گیری مداوم از داده‌های پارتیشن در باکت مقصد، به Recurring Job در منوی ناوبری اصلی رابط کاربری Longhorn بروید.



نتیجه گیری


شما Longhorn را با استفاده از یک کلاستر Negarnovin Kubernetes Engine (VKE) روی Kubernetes مستقر کرده‌اید. شما Volume Longhorn را ایجاد کرده‌اید و چندین PVC را با حالت‌های دسترسی ReadWriteOnce و ReadWriteMany برای استفاده با برنامه‌های کلاستر خود که PVCها را به عنوان Volumeهای ذخیره‌سازی Mount می‌کنند، تنظیم کرده‌اید. علاوه بر این، شما با استفاده از رابط کاربری Longhorn، پشتیبان‌های Longhorn را برای ذخیره خارجی داده‌های Volume جهت بازیابی در صورت خرابی کلاستر ایجاد کرده‌اید. برای اطلاعات بیشتر و گزینه‌های پیکربندی، به مستندات Longhorn مراجعه کنید.




🖼️ تصاویر صفحه (9)

نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز
نصب لانگ‌ هورن در کوبرنتیز

🗂️ ساختار داده‌ها (Schema.org)

📰 Article
عنوان: نصب لانگ‌ هورن در کوبرنتیز
توضیحات: نحوه نصب لانگ‌ هورن روی کوبرنتیز یاد بگیرید که Longhorn را روی Kubernetes نصب کنید تا فضای ذخیره‌سازی بلوکی مقیاس‌پذیر و با دسترسی بالا به همراه مدیر
نویسنده: نگار نوین
انتشار: 2025-11-05
به‌روزرسانی: 2026-06-05
URL: https://negarnovin.com/docs/how-to-install-longhorn-on-kubernetes/
🏢 Organization
نام: نگارنوین
URL: https://negarnovin.com