Node এবং Pod Affinity/Anti-Affinity

OpenShift এবং Performance Optimization - ওপেনশিফট (OpenShift) - Latest Technologies

315

Node Affinity এবং Pod Affinity/Anti-Affinity হল Kubernetes এবং OpenShift-এ Pods এবং Nodes এর মধ্যে সম্পর্কের নিয়ন্ত্রণের জন্য ব্যবহৃত কৌশল। এই কৌশলগুলি Pods কে বিভিন্ন Nodes-এ স্থাপন করার সময় সিদ্ধান্ত নিতে সহায়তা করে, যা ক্লাস্টারের কার্যক্ষমতা এবং স্থায়িত্ব উন্নত করে। নিচে এই ধারণাগুলির ব্যাখ্যা, বৈশিষ্ট্য এবং উদাহরণ আলোচনা করা হলো।

Node Affinity

সংজ্ঞা

Node Affinity হল একটি নির্দিষ্ট নীতি যা Pods কে নির্দিষ্ট Nodes-এ চালানোর অনুমতি দেয় বা বাধা দেয়। এটি কিভাবে Pods Nodes এর সাথে সম্পর্ক স্থাপন করবে তা নিয়ন্ত্রণ করে।

প্রকারভেদ

  1. Required During Scheduling (Hard Affinity): যদি একটি Pod নির্দিষ্ট Node-এ না চলে, তবে এটি কখনও সিডিউল হবে না।
  2. Preferred During Scheduling (Soft Affinity): এটি একটি প্রেফারেন্স দেয়, কিন্তু এটি কঠোর নয়। Pod নির্দিষ্ট Node-এ চলে গেলে এটি সিডিউল হবে, নাহলে অন্য Node-এ চলতে পারে।

উদাহরণ YAML কনফিগারেশন

apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
          - matchExpressions:
              - key: disktype
                operator: In
                values:
                  - ssd
  containers:
    - name: example-container
      image: nginx

Pod Affinity

সংজ্ঞা

Pod Affinity হল একটি কৌশল যা Pods কে নির্দিষ্ট Pods এর সাথে একই Node বা নিকটবর্তী Nodes-এ চালানোর অনুমতি দেয়। এটি নিশ্চিত করে যে নির্দিষ্ট Pods একত্রে স্থাপন করা হয়।

প্রকারভেদ

  1. Hard Affinity: Pods কে নির্দিষ্ট Pods এর সাথে সিডিউল করার জন্য বাধ্য করে।
  2. Soft Affinity: Pods কে নির্দিষ্ট Pods এর সাথে সিডিউল করার জন্য একটি প্রেফারেন্স দেয়, কিন্তু বাধ্যতামূলক নয়।

উদাহরণ YAML কনফিগারেশন

apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  affinity:
    podAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        labelSelector:
          matchExpressions:
            - key: app
              operator: In
              values:
                - frontend
        topologyKey: "kubernetes.io/hostname"
  containers:
    - name: example-container
      image: nginx

Pod Anti-Affinity

সংজ্ঞা

Pod Anti-Affinity হল একটি কৌশল যা Pods কে নির্দিষ্ট Pods এর সাথে একই Node-এ চালানোর অনুমতি দেয় না। এটি নিশ্চিত করে যে নির্দিষ্ট Pods একত্রে স্থাপন করা হবে না।

উদাহরণ YAML কনফিগারেশন

apiVersion: v1
kind: Pod
metadata:
  name: example-pod
spec:
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        labelSelector:
          matchExpressions:
            - key: app
              operator: In
              values:
                - backend
        topologyKey: "kubernetes.io/hostname"
  containers:
    - name: example-container
      image: nginx

সারসংক্ষেপ

Node Affinity এবং Pod Affinity/Anti-Affinity হল Kubernetes এবং OpenShift-এ Pods এবং Nodes এর মধ্যে সম্পর্ক নিয়ন্ত্রণের জন্য গুরুত্বপূর্ণ কৌশল।

  • Node Affinity: Pods কে নির্দিষ্ট Nodes-এ চালানোর অনুমতি দেয় বা বাধা দেয়।
  • Pod Affinity: Pods কে নির্দিষ্ট Pods এর সাথে একই Node বা নিকটবর্তী Nodes-এ চালানোর জন্য অনুমতি দেয়।
  • Pod Anti-Affinity: Pods কে নির্দিষ্ট Pods এর সাথে একই Node-এ চলতে নিষেধ করে।

এই কৌশলগুলি ব্যবহার করে আপনি ক্লাস্টারের কার্যক্ষমতা এবং স্থায়িত্ব উন্নত করতে পারেন, বিশেষ করে বৃহৎ এবং জটিল অ্যাপ্লিকেশন পরিবেশে।

Content added By
Promotion

Are you sure to start over?

Loading...