এটি এই বিভাগটির বহু পৃষ্ঠার মুদ্রণযোগ্য দর্শন। মুদ্রণ করতে এখানে ক্লিক করুন.

এই পৃষ্ঠার নিয়মিত দৃশ্যে ফিরে আসুন.

টিউটোরিয়াল

কুবারনেটিস ডকুমেন্টেশনের এই বিভাগে টিউটোরিয়াল রয়েছে। একটি টিউটোরিয়াল দেখায় কিভাবে একটি লক্ষ্য অর্জন করতে হয় যা একটি একক থেকে বড় টাস্ক। সাধারণত একটি টিউটোরিয়ালের বেশ কয়েকটি বিভাগ থাকে যার প্রতিটিরই ধাপের ক্রম রয়েছে। প্রতিটি টিউটোরিয়ালের মাধ্যমে হাঁটার আগে, আপনি প্রমিত শব্দকোষ পৃষ্ঠা বুকমার্ক করতে চাইতে পারেন পরবর্তী রেফারেন্সের জন্য ।

বেসিক

কনফিগারেশন

স্টেটলেস অ্যাপ্লিকেশন

স্টেটফুল অ্যাপ্লিকেশন

সেবা

নিরাপত্তা

এর পরের কি

আপনি যদি একটি টিউটোরিয়াল লিখতে চান, সামগ্রী পৃষ্ঠার ধরন দেখুন টিউটোরিয়াল পৃষ্ঠার ধরন সম্পর্কে তথ্যের জন্য।

1 - হ্যালো মিনিকুব (Hello Minikube)

এই টিউটোরিয়ালটি আপনাকে দেখায় কিভাবে মিনিকুব ব্যবহার করে কুবারনেটিস এ একটি নমুনা অ্যাপ চালাতে হয়। টিউটোরিয়ালটি একটি কন্টেইনার চিত্র প্রদান করে যা NGINX ব্যবহার করে সমস্ত অনুরোধগুলোকে প্রতিধ্বনিত করে ৷

উদ্দেশ্য

  • মিনিকিউবে একটি সরল অ্যাপ্লিকেশন স্থাপন করুন।
  • অ্যাপ্লিকেশনটিকে চালান।
  • অ্যাপ্লিকেশন লগ (log) দেখুন।

শুরু করার আগে

এই টিউটোরিয়ালটি একটি কন্টেইনার ইমেজ প্রদান করে যা NGINX ব্যবহার করে সমস্ত অনুরোধে সাড়া দেয়।

একটি মিনিকিউব ক্লাস্টার তৈরি করা।

  1. ক্লিক করুন Launch Terminal

  1. একটি ব্রাউজারে কুবারনেটিস ড্যাশবোর্ড খুলুন:

    minikube dashboard
    
  2. Katacoda পরিবেশ (Katacoda Environment): টার্মিনাল প্যানেলের শীর্ষে প্লাস ক্লিক করুন, তারপরে ক্লিক করুন Select port to view on Host 1

  3. Katacoda পরিবেশ (Katacoda Environment): 30000 লিখুন এবং Display Port এ ক্লিক করুন।

URL ব্যবহার করে ড্যাশবোর্ড খুলুন

আপনি যদি ওয়েব ব্রাউজারটি স্বয়ংক্রিয়ভাবে খুলতে না চান তবে আপনি --url ফ্ল্যাগ দিয়ে নিম্নলিখিত কমান্ডটি কার্যকর করে ড্যাশবোর্ড অ্যাক্সেস URL মুদ্রণ করতে পারেন :

minikube dashboard --url

ডিপ্লয়মেন্ট (Deployment) তৈরি করুন

কুবারনেটিস পডস নেটওয়ার্কিং উদ্দেশ্যে এক বা একাধিক পাত্রের একটি গ্রুপ একসাথে গোষ্ঠীবদ্ধ করে। এই টিউটোরিয়ালের পডটিতে (pod) শুধুমাত্র একটি পাত্র রয়েছে। কুবারনেটিস Deployment হলো পডের একটি স্বাস্থ্য পরীক্ষা করে এবং পডের ধারকটি বন্ধ হয়ে গেলে পুনরায় চালু করে। পড তৈরি এবং স্কেলিং পরিচালনা করার উপায় হিসাবে স্থাপনের সুপারিশ করা হয়।

  1. পড পরিচালনা ও ডিপ্লয়মেন্ট তৈরি করতে kubectl create কমান্ডটি চালান। এই পডগুলি প্রদত্ত Docker ইমেজ এর উপর ভিত্তি করে কন্টেইনার চালায়।

    kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4
    
  2. ডিপ্লয়মেন্টটি দেখুন:

    kubectl get deployments
    

    অনুরূপ আউটপুট দেখবেন:

    NAME         READY   UP-TO-DATE   AVAILABLE   AGE
    hello-node   1/1     1            1           1m
    
  3. পডটি দেখুন:

    kubectl get pods
    

    অনুরূপ আউটপুট দেখবেন:

    NAME                          READY     STATUS    RESTARTS   AGE
    hello-node-5f76cf6ccf-br9b5   1/1       Running   0          1m
    
  4. ক্লাস্টার ইভেন্ট দেখুন:

    kubectl get events
    
  5. kubectl এর কনফিগারেশন দেখুন:

    kubectl config view
    

সার্ভিস (Service) তৈরি করুন

সাধারণত, পড শুধুমাত্র কুবারনেটিস ক্লাস্টারের অভ্যন্তরীণ আইপি (Internal IP) ঠিকানা দ্বারা অ্যাক্সেসযোগ্য। কুবারনেটিস ভার্চুয়াল নেটওয়ার্কের বাইরে থেকে 'hello-node' কন্টেইনারকে অ্যাক্সেসযোগ্য করতে, আপনাকে কুবারনেটিস সার্ভিস হিসাবে পডটিকে প্রকাশ করতে হবে।

  1. সর্বজনীন ইন্টারনেটে (Public Internet) পডটি প্রকাশ করুন kubectl expose কমান্ড ব্যবহার করে:

    kubectl expose deployment hello-node --type=LoadBalancer --port=8080
    

    --type=LoadBalancer ফ্ল্যগটি নির্দেশ করে যে আপনি ক্লাস্টারের বাইরে আপনার পরিষেবা প্রকাশ করতে চান। k8s.gcr.io/echoserver কনটেইনারের ভিতরের অ্যাপ্লিকেশন কোড শুধুমাত্র TCP port 8080 থেকেই শোনা হয়। আপনি যদি একটি ভিন্ন পোর্ট প্রকাশ করতে kubectl expose ব্যবহার করেন, তাহলে ক্লায়েন্টরা সেই অন্য পোর্টের সাথে সংযোগ করতে পারবে না।

  2. তৈরি করা সার্ভিসটি দেখুন:

    kubectl get services
    

    অনুরূপ আউটপুট দেখবেন:

    NAME         TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    hello-node   LoadBalancer   10.108.144.78   <pending>     8080:30369/TCP   21s
    kubernetes   ClusterIP      10.96.0.1       <none>        443/TCP          23m
    

    ক্লাউড প্রদানকারীরা (Cloud Providers) যারা লোড ব্যালেন্সার (Load Balancer) সমর্থন করে, তাতে একটি External IP Address ব্যবস্থা করা হয়, সার্ভিসটি অ্যাক্সেস করার জন্য। মিনিকিউব-এ, LoadBalancer প্রকারটি minikube service কমান্ডের মাধ্যমে পরিষেবাটিকে অ্যাক্সেসযোগ্য করে তোলে।

  3. নিম্নলিখিত কমান্ড চালান:

    minikube service hello-node
    
  4. Katacoda পরিবেশ (Katacoda Environment): টার্মিনাল প্যানেলের শীর্ষে প্লাস ক্লিক করুন, তারপরে ক্লিক করুন Select port to view on Host 1

  5. শুধুমাত্র Katacoda পরিবেশ (Katacoda Environment): সার্ভিস আউটপুটে 8080 এর বিপরীতে প্রদর্শিত ৫-সংখ্যার পোর্ট নম্বরটি নোট করুন। এই পোর্ট নম্বরটি এলোমেলোভাবে তৈরি করা হয়েছে এবং এটি আপনার জন্য আলাদা হতে পারে। পোর্ট নম্বর টেক্সট বক্সে আপনার নম্বর টাইপ করুন, তারপর ডিসপ্ল পোর্টে (default port) ক্লিক করুন। আগের উদাহরণটি ব্যবহার করে, আপনি 30369 টাইপ করবেন।

    এটি একটি ব্রাউজার উইন্ডো খোলে যা আপনার অ্যাপটি পরিবেশন করে এবং অ্যাপের প্রতিক্রিয়া দেখায়।

অ্যাডন সক্রিয় করুন (Addons)

মিনিকিউব টুলটিতে অন্তর্নির্মিত অ্যাডনগুলির (Internal addons) একটি সেট রয়েছে যা স্থানীয় কুবারনেটিস পরিবেশে এনেবেল (enable), ডিজেবল (disable) এবং ওপেন (open) করা যেতে পারে।

  1. বর্তমানে সমর্থিত অ্যাডনগুলির তালিকা:

    minikube addons list
    

    অনুরূপ আউটপুট দেখবেন:

    addon-manager: enabled
    dashboard: enabled
    default-storageclass: enabled
    efk: disabled
    freshpod: disabled
    gvisor: disabled
    helm-tiller: disabled
    ingress: disabled
    ingress-dns: disabled
    logviewer: disabled
    metrics-server: disabled
    nvidia-driver-installer: disabled
    nvidia-gpu-device-plugin: disabled
    registry: disabled
    registry-creds: disabled
    storage-provisioner: enabled
    storage-provisioner-gluster: disabled
    
  2. একটি অ্যাডন এনেবেল (enable) করুন, উদাহরণস্বরূপ metrics-server:

    minikube addons enable metrics-server
    

    অনুরূপ আউটপুট দেখবেন:

    The 'metrics-server' addon is enabled
    
  3. আপনার তৈরি করা পড এবং সার্ভিস দেখুন:

    kubectl get pod,svc -n kube-system
    

    অনুরূপ আউটপুট দেখবেন:

    NAME                                        READY     STATUS    RESTARTS   AGE
    pod/coredns-5644d7b6d9-mh9ll                1/1       Running   0          34m
    pod/coredns-5644d7b6d9-pqd2t                1/1       Running   0          34m
    pod/metrics-server-67fb648c5                1/1       Running   0          26s
    pod/etcd-minikube                           1/1       Running   0          34m
    pod/influxdb-grafana-b29w8                  2/2       Running   0          26s
    pod/kube-addon-manager-minikube             1/1       Running   0          34m
    pod/kube-apiserver-minikube                 1/1       Running   0          34m
    pod/kube-controller-manager-minikube        1/1       Running   0          34m
    pod/kube-proxy-rnlps                        1/1       Running   0          34m
    pod/kube-scheduler-minikube                 1/1       Running   0          34m
    pod/storage-provisioner                     1/1       Running   0          34m
    
    NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
    service/metrics-server         ClusterIP   10.96.241.45    <none>        80/TCP              26s
    service/kube-dns               ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP       34m
    service/monitoring-grafana     NodePort    10.99.24.54     <none>        80:30002/TCP        26s
    service/monitoring-influxdb    ClusterIP   10.111.169.94   <none>        8083/TCP,8086/TCP   26s
    
  4. ডিজেবল (disable) করুন metrics-server:

    minikube addons disable metrics-server
    

    অনুরূপ আউটপুট দেখবেন:

    metrics-server was successfully disabled
    

পরিষ্কার করুন (Clean up)

এখন আপনি আপনার ক্লাস্টারে তৈরি রিসোর্সগুলি পরিষ্কার করতে পারেন:

kubectl delete service hello-node
kubectl delete deployment hello-node

ঐচ্ছিকভাবে, মিনিকিউব ভার্চুয়াল মেশিন (Minikube Virtual Machine) বন্ধ করুন:

minikube stop

ঐচ্ছিকভাবে, মিনিকিউব ভার্চুয়াল মেশিন (Minikube Virtual Machine) মুছুন ফেলুন:

minikube delete

এর পরের কি

2 - কুবারনেটিসের বেসিক শিখুন

কুবারনেটিস বেসিক

এই টিউটোরিয়ালটি কুবারনেটিস ক্লাস্টার অর্কেস্ট্রেশন সিস্টেমের মূল বিষয়গুলির একটি ধারণা প্রদান করে। প্রতিটি মডিউলে কুবারনেটিসের প্রধান বৈশিষ্ট্য এবং ধারণাগুলির কিছু পটভূমি তথ্য রয়েছে এবং একটি ইন্টারেক্টিভ অনলাইন টিউটোরিয়াল অন্তর্ভুক্ত রয়েছে। এই ইন্টারেক্টিভ টিউটোরিয়ালগুলি আপনাকে নিজের জন্য একটি সাধারণ ক্লাস্টার এবং এর ধারকযুক্ত অ্যাপ্লিকেশনগুলি পরিচালনা করতে দেয় ৷

ইন্টারেক্টিভ টিউটোরিয়াল ব্যবহার করে, আপনি এগুলো শিখতে পারেনঃ

  • একটি ক্লাস্টারে একটি কন্টেইনারাইজড অ্যাপ্লিকেশন স্থাপন করুন।
  • ডিপ্লয়মেন্ট স্কেল করুন।
  • একটি নতুন সফ্টওয়্যার সংস্করণ দিয়ে কন্টেইনারাইজড অ্যাপ্লিকেশন আপডেট করুন।
  • কন্টেইনারাইজড অ্যাপ্লিকেশন ডিবাগ করুন।

টিউটোরিয়ালগুলি আপনার ওয়েব ব্রাউজারে একটি ভার্চুয়াল টার্মিনাল চালানোর জন্য Katacoda ব্যবহার করে যা Minikube চালায়, কুবারনেটের একটি ছোট আকারের স্থানীয় ডিপ্লয়মেন্ট যা যেকোনো জায়গায় চলতে পারে। কোন সফ্টওয়্যার ইনস্টল বা কিছু কনফিগার করার কোন প্রয়োজন নেই; প্রতিটি ইন্টারেক্টিভ টিউটোরিয়াল সরাসরি আপনার ওয়েব ব্রাউজার থেকে চলে।


কুবারনেটিস আপনার জন্য কী করতে পারে?

আধুনিক ওয়েব পরিষেবাগুলির সাথে, ব্যবহারকারীরা আশা করে যে অ্যাপ্লিকেশনগুলি ২৪/৭ উপলব্ধ থাকবে এবং বিকাশকারীরা সেই অ্যাপ্লিকেশনগুলির নতুন সংস্করণগুলি দিনে কয়েকবার স্থাপন করার আশা করে৷ কনটেইনারাইজেশন প্যাকেজ সফ্টওয়্যারকে এই লক্ষ্যগুলি পূরণ করতে সহায়তা করে, অ্যাপ্লিকেশনগুলিকে মুক্তি এবং ডাউনটাইম ছাড়াই আপডেট করতে সক্ষম করে। কুবারনেটিস আপনাকে নিশ্চিত করতে সাহায্য করে যে সেই কন্টেইনারাইজড অ্যাপ্লিকেশানগুলি আপনি যেখানে এবং যখন চান চালান, এবং তাদের কাজ করার জন্য প্রয়োজনীয় সংস্থান এবং সরঞ্জামগুলি খুঁজে পেতে সহায়তা করে৷ কুবারনেটিস হল একটি উৎপাদন-প্রস্তুত, ওপেন সোর্স প্ল্যাটফর্ম যা কনটেইনার অর্কেস্ট্রেশনে গুগল-এর সঞ্চিত অভিজ্ঞতার সাহায্যে ডিজাইন করা হয়েছে, যা সম্প্রদায়ের সেরা জাত ধারণাগুলির সাথে মিলিত হয়েছে


2.1 - ক্লাস্টার তৈরি করুন

কুবারনেটিস সম্পর্কে জানুন ক্লাস্টার এবং মিনিকিউব দিয়ে সহজ ক্লাস্টার তৈরি করুন।

2.1.1 - একটি ক্লাস্টার তৈরি করতে Minikube ব্যবহার করো

Objectives

  • Kubernetes ক্লাস্টার কি তা জানুন.
  • Minikube কি তা জানুন.
  • একটি অনলাইন টার্মিনাল ব্যবহার করে একটি Kubernetes ক্লাস্টার শুরু করুন।

Kubernetes Clusters

কুবারনেটিস কম্পিউটারের একটি অত্যন্ত উপলব্ধ ক্লাস্টার সমন্বয় করে যা একটি একক হিসাবে কাজ করার জন্য সংযুক্ত। Kubernetes-এর বিমূর্ততা আপনাকে বিশেষভাবে পৃথক মেশিনে না বেঁধে একটি ক্লাস্টারে কন্টেইনারাইজড অ্যাপ্লিকেশন স্থাপন করতে দেয়। ডিপ্লয়মেন্টের এই নতুন মডেলটি ব্যবহার করার জন্য, অ্যাপ্লিকেশনগুলিকে এমনভাবে প্যাকেজ করা দরকার যাতে সেগুলিকে পৃথক হোস্ট থেকে আলাদা করা যায়: তাদের কন্টেইনারাইজ করা দরকার। কন্টেইনারাইজড অ্যাপ্লিকেশনগুলি অতীতের ডিপ্লয়মেন্টের মডেলগুলির তুলনায় আরও নমনীয় এবং উপলব্ধ, যেখানে অ্যাপ্লিকেশনগুলি সরাসরি হোস্টের সাথে গভীরভাবে একত্রিত প্যাকেজ হিসাবে নির্দিষ্ট মেশিনে ইনস্টল করা হয়েছিল। Kubernetes একটি ক্লাস্টার জুড়ে অ্যাপ্লিকেশন কন্টেইনারগুলির বিতরণ এবং সময়সূচীকে আরও দক্ষ উপায়ে স্বয়ংক্রিয় করে। Kubernetes একটি ওপেন সোর্স প্ল্যাটফর্ম এবং এটি উৎপাদনের জন্য প্রস্তুত।

>একটি কুবারনেটিস ক্লাস্টার দুটি ধরণের সংস্থান নিয়ে গঠিত:

  • The নিয়ন্ত্রণ প্যানেল (Control Plane) ক্লাস্টার (cluster) সমন্বয় করে
  • নোড (Nodes) হল কর্মীরা যারা অ্যাপ্লিকেশনটি (applications) চালায়

সারসংক্ষেপ:

  • কুবারনেটিস ক্লাস্টার (Kubernetes cluster)
  • মিনিকুব (Minikube)

কুবারনেটিস হল একটি প্রোডাকশন-গ্রেড, ওপেন-সোর্স প্ল্যাটফর্ম যা কম্পিউটার ক্লাস্টারের মধ্যে এবং জুড়ে অ্যাপ্লিকেশন কন্টেইনারগুলির প্লেসমেন্ট (শিডিউলিং) এবং এক্সিকিউশনকে অর্কেস্ট্রেট করে।


ক্লাস্টার ডায়াগ্রাম (Cluster Diagram)


কন্ট্রোল প্লেন ক্লাস্টার পরিচালনার জন্য দায়ী.কন্ট্রোল প্লেন আপনার ক্লাস্টারে সমস্ত ক্রিয়াকলাপ সমন্বয় করে, যেমন অ্যাপ্লিকেশনের সময় নির্ধারণ, অ্যাপ্লিকেশনগুলির পছন্দসই অবস্থা বজায় রাখা, অ্যাপ্লিকেশনগুলিকে স্কেলিং করা এবং নতুন আপডেটগুলি রোল আউট করা.

একটি নোড হল একটি VM বা একটি শারীরিক কম্পিউটার যা একটি কুবারনেটিস ক্লাস্টারে কর্মী মেশিন হিসাবে কাজ করে। প্রতিটি নোডের একটি কুবেলেট থাকে, যা নোড পরিচালনা এবং কুবারনেটিস কন্ট্রোল প্লেনের সাথে যোগাযোগের জন্য একটি এজেন্ট। নোডের কনটেইনার ক্রিয়াকলাপ পরিচালনা করার জন্য সরঞ্জাম থাকা উচিত, যেমন কন্টেইনার বা ডকার। একটি Kubernetes ক্লাস্টার যা উৎপাদন ট্র্যাফিক পরিচালনা করে তার ন্যূনতম তিনটি নোড থাকা উচিত কারণ যদি একটি নোড নিচে চলে যায়, তাহলে একটি etcd সদস্য এবং একটি কন্ট্রোল প্লেন ইনস্ট্যান্স উভয়ই হারিয়ে যায় এবং রিডানডেন্সি আপস করা হয়। আপনি আরো কন্ট্রোল প্লেন নোড যোগ করে এই ঝুঁকি কমাতে পারেন।

কন্ট্রোল প্লেনগুলি (Control Planes) চলমান অ্যাপ্লিকেশনগুলি হোস্ট করতে ব্যবহৃত ক্লাস্টার এবং নোডগুলি পরিচালনা করে।

আপনি যখন কুবারনেটিসএ অ্যাপ্লিকেশনগুলি স্থাপন করেন, তখন আপনি কন্ট্রোল প্লেনকে অ্যাপ্লিকেশন কন্টেইনারগুলি শুরু করতে বলেন৷ কন্ট্রোল প্লেন ক্লাস্টারের নোডগুলিতে চালানোর জন্য কন্টেইনারগুলি নির্ধারণ করে। নোডগুলি কুবারনেটিস API ব্যবহার করে কন্ট্রোল প্লেনের সাথে যোগাযোগ করে, যা কন্ট্রোল প্লেন প্রকাশ করে৷ শেষ ব্যবহারকারীরাও ক্লাস্টারের সাথে ইন্টারঅ্যাক্ট করতে সরাসরি কুবারনেটিস API ব্যবহার করতে পারেন।

একটি কুবারনেটিস ক্লাস্টার শারীরিক বা ভার্চুয়াল মেশিনে স্থাপন করা যেতে পারে। কুবারনেটিসের বিকাশ শুরু করতে সাথে, আপনি মিনিকুব ব্যবহার করতে পারেন। মিনিকুব হল একটি হালকা ওজনের কুবারনেটিস বাস্তবায়ন যা আপনার স্থানীয় মেশিনে একটি VM তৈরি করে এবং শুধুমাত্র একটি নোড ধারণকারী একটি সাধারণ ক্লাস্টার স্থাপন করে। মিনিকুব লিনাক্স (Minikube Linux), macOS এবং Windows সিস্টেমের জন্য উপলব্ধ। মিনিকুব CLI আপনার ক্লাস্টারের সাথে কাজ করার জন্য প্রাথমিক বুটস্ট্র্যাপিং ক্রিয়াকলাপগুলি প্রদান করে, যার মধ্যে শুরু, থামানো, স্থিতি এবং মুছে ফেলা হয়। এই টিউটোরিয়ালের জন্য, তবে, আপনি মিনিকুবের আগে থেকে ইনস্টল করা একটি প্রদত্ত অনলাইন টার্মিনাল ব্যবহার করবেন৷

এখন যেহেতু আপনি জানেন কুবারনেটিস কী, আসুন অনলাইন টিউটোরিয়ালটিতে যাই এবং আমাদের প্রথম ক্লাস্টার শুরু করি!


2.1.2 - ইন্টারেক্টিভ টিউটোরিয়াল - একটি ক্লাস্টার তৈরি করা

2.2 - একটি অ্যাপ স্থাপন করা

2.2.1 - kubectl ব্যবহার করে একটি ডিপ্লয়মেন্ট তৈরি করা

উদ্দেশ্য

  • অ্যাপ্লিকেশন ডিপ্লয়মেন্ট সম্পর্কে জানুন ।
  • kubectl দিয়ে কুবারনেটিসে আপনার প্রথম অ্যাপ স্থাপন করুন।

কুবারনেটিস ডিপ্লয়মেন্ট

একবার আপনার চলমান কুবারনেটস ক্লাস্টার হয়ে গেলে, আপনি এটির উপরে আপনার কন্টেইনারাইজড অ্যাপ্লিকেশনগুলি ডিপ্লোয় করতে পারেন। এটি করার জন্য, আপনি একটি কুবারনেটিসে ডিপ্লয়মেন্ট কনফিগারেশন তৈরি করুন। ডিপ্লয়মেন্ট কুবারনেটসকে নির্দেশ দেয় কিভাবে আপনার আবেদনের দৃষ্টান্ত তৈরি এবং আপডেট করতে হয়। একবার আপনি একটি ডিপ্লোয় তৈরি করে ফেললে, কুবারনেটস কন্ট্রোল প্লেন ক্লাস্টারের পৃথক নোডগুলিতে চালানোর জন্য সেই ডিপ্লয়মেন্ট অন্তর্ভুক্ত অ্যাপ্লিকেশন উদাহরণগুলি নির্ধারণ করে।

একবার অ্যাপ্লিকেশন দৃষ্টান্ত তৈরি হয়ে গেলে, একটি কুবারনেটস ডিপ্লয়মেন্ট কন্ট্রোলার ক্রমাগত সেই দৃষ্টান্তগুলি পর্যবেক্ষণ করে। যদি কোনো দৃষ্টান্ত (instance) হোস্টিং নোড নিচে চলে যায় বা মুছে ফেলা হয়, তাহলে ডিপ্লয়মেন্ট কন্ট্রোলার ক্লাস্টারের অন্য নোডের দৃষ্টান্তের (instance) সাথে প্রতিস্থাপন করে। এটি মেশিনের ব্যর্থতা বা রক্ষণাবেক্ষণের জন্য একটি স্ব-নিরাময় প্রক্রিয়া সরবরাহ করে।

একটি প্রাক-অর্কেস্ট্রেশন (pre-orchestration) বিশ্বে, ইনস্টলেশন স্ক্রিপ্টগুলি প্রায়শই অ্যাপ্লিকেশন শুরু করার জন্য ব্যবহার করা হত, কিন্তু তারা মেশিনের ব্যর্থতা থেকে পুনরুদ্ধারের অনুমতি দেয়নি। আপনার অ্যাপ্লিকেশন দৃষ্টান্ত তৈরি করে এবং সেগুলিকে নোড জুড়ে চালিয়ে রেখে, কুবারনেটস ডিপ্লয়মেন্টগুলি অ্যাপ্লিকেশন পরিচালনার জন্য একটি মৌলিকভাবে ভিন্ন পদ্ধতি প্রদান করে।

সারসংক্ষেপ :

  • ডিপ্লয়মেন্ট
  • Kubectl

আপনার আবেদনের দৃষ্টান্ত তৈরি এবং আপডেট করার জন্য একটি ডিপ্লয়মেন্ট দায়ী |


কুবারনেটিসে আপনার প্রথম অ্যাপ ডিপ্লোয় করুন


আপনি কুবারনেটিস কমান্ড লাইন ইন্টারফেস,
Kubectl
ব্যবহার করে একটি ডিপ্লোয় তৈরি এবং পরিচালনা করতে পারেন। Kubectl ক্লাস্টারের সাথে ইন্টারঅ্যাক্ট করতে কুবারনেটিস এপিআই (API) ব্যবহার করে। এই মডিউলে, আপনি কুবারনেটস ক্লাস্টারে আপনার অ্যাপ্লিকেশনগুলি চালানোর জন্য ডিপ্লয়মেন্ট তৈরি করার জন্য প্রয়োজনীয় সবচেয়ে সাধারণ Kubectl কমান্ডগুলি শিখবেন ।

আপনি যখন একটি ডিপ্লয়মেন্ট তৈরি করেন, আপনাকে আপনার অ্যাপ্লিকেশনের জন্য কন্টেইনার চিত্র এবং আপনি যে প্রতিলিপিগুলি চালাতে চান তার সংখ্যা নির্দিষ্ট করতে হবে ৷ আপনি পরে আপনার ডিপ্লয়মেন্ট আপডেট করে সেই তথ্য পরিবর্তন করতে পারেন; বুটক্যাম্পের মডিউল 5 এবং 6 আলোচনা করে যে আপনি কীভাবে আপনার ডিপ্লয়মেন্টের স্কেল এবং আপডেট করতে পারেন।

কুবারনেটিসে মোতায়েন করার জন্য অ্যাপ্লিকেশনগুলিকে সমর্থিত কন্টেইনার পদ্ধতি প্যাকেজ করা দরকার

আপনার প্রথম ডিপ্লয়মেন্টর জন্য, আপনি একটি ডকার কন্টেনারে প্যাকেজ করা একটি হ্যালো-নোড অ্যাপ্লিকেশন ব্যবহার করবেন যা সমস্ত অনুরোধগুলিকে প্রতিধ্বনিত করতে NGINX ব্যবহার করে। (যদি আপনি ইতিমধ্যে একটি হ্যালো-নোড অ্যাপ্লিকেশন তৈরি করার এবং একটি কন্টেইনার ব্যবহার করে এটি স্থাপন করার চেষ্টা না করে থাকেন তবে আপনি হ্যালো মিনিকুব টিউটোরিয়াল (Hello Minikube tutorial) থেকে নির্দেশাবলী অনুসরণ করে প্রথমে এটি করতে পারেন)।

এখন যেহেতু আপনি জানেন যে ডিপ্লয়মেন্টগুলি কী, আসুন অনলাইন টিউটোরিয়ালটিতে যাই এবং আমাদের প্রথম অ্যাপটি স্থাপন করি!


2.2.2 - ইন্টারেক্টিভ টিউটোরিয়াল - একটি অ্যাপ ডিপ্লোয় করা

একটি পড হল একটি কুবারনেটিসে অ্যাপ্লিকেশনের মৌলিক এক্সিকিউশন ইউনিট। প্রতিটি পড আপনার ক্লাস্টারে চলমান কাজের চাপের একটি অংশ উপস্থাপন করে। পড সম্পর্কে আরও জানুন.


2.3 - আপনার অ্যাপ্লিকেশানকে অন্বেষণ করুন

2.3.1 - পড এবং নোড দেখা

উদ্দেশ্য

  • কুবারনেটিসে পডস সম্পর্কে জানুন।
  • কুবারনেটিসে নোডস সম্পর্কে জানুন।
  • ডিপ্লোয় করা অ্যাপ্লিকেশনের সমস্যা সমাধান(Troubleshoot) করুন।

কুবারনেটিসে পডস

আপনি যখন মডিউল 2 -এ একটি ডিপ্লোয়মেন্ট তৈরি করেন, তখন কুবারনেটস আপনার অ্যাপ্লিকেশন দৃষ্টান্ত হোস্ট করার জন্য একটি পড তৈরি করে। একটি পড হল একটি কুবারনেটস প্রত্যাহরণ যা এক বা একাধিক অ্যাপ্লিকেশন কন্টেইনারগুলির একটি গ্রুপকে প্রতিনিধিত্ব করে (যেমন ডকার), এবং সেই পাত্রগুলির জন্য কিছু শেয়ার করা সংস্থান। এই সম্পদ অন্তর্ভুক্ত:

  • ভাগ করা স্টোরেজ, পরিমাণ হিসাবে
  • নেটওয়ার্কিং, একটি অনন্য ক্লাস্টার আইপি ঠিকানা হিসাবে
  • প্রতিটি কন্টেইনার কিভাবে চালাতে হয় সে সম্পর্কে তথ্য, যেমন কন্টেইনার ইমেজ সংস্করণ বা নির্দিষ্ট পোর্ট ব্যবহার করতে হবে

একটি পড একটি অ্যাপ্লিকেশন-নির্দিষ্ট "লজিক্যাল হোস্ট" মডেল করে এবং এতে বিভিন্ন অ্যাপ্লিকেশন পাত্র থাকতে পারে যা তুলনামূলকভাবে শক্তভাবে সংযুক্ত থাকে। উদাহরণ স্বরূপ, একটি পড আপনার Node.js অ্যাপের পাশাপাশি একটি ভিন্ন ধারক যা Node.js ওয়েব সার্ভার দ্বারা প্রকাশিত ডেটা ফিড করে উভয় ধারক অন্তর্ভুক্ত করতে পারে। একটি পডের কন্টেইনারগুলি একটি আইপি ঠিকানা এবং পোর্ট স্পেস ভাগ করে, সর্বদা সহ-অবস্থিত এবং সহ-নির্ধারিত, এবং একই নোডে একটি ভাগ করা প্রসঙ্গে চালিত হয়।

কুবারনেটস প্ল্যাটফর্মের পারমাণবিক একক হল পড | যখন আমরা কুবারনেটিসে একটি ডিপ্লোয়মেন্ট করি, সেই ডিপ্লোয়মেন্টটি তাদের ভিতরে কন্টেইনার সহ পড তৈরি করে (সরাসরি কন্টেইনার তৈরির বিপরীতে)। প্রতিটি পড নোডের সাথে আবদ্ধ থাকে যেখানে এটি নির্ধারিত হয়, এবং সমাপ্তি (পুনঃসূচনা নীতি অনুসারে) বা মুছে ফেলা পর্যন্ত সেখানে থাকে। নোড ব্যর্থতার ক্ষেত্রে, ক্লাস্টারের অন্যান্য উপলব্ধ নোডগুলিতে অভিন্ন পডগুলি নির্ধারিত হয়।

সারসংক্ষেপ:

  • পডস
  • নোডস
  • Kubectl প্রধান কমান্ড

একটি পড হল এক বা একাধিক অ্যাপ্লিকেশন কন্টেইনারের একটি গোষ্ঠী (যেমন ডকার) এবং এতে ভাগ করা স্টোরেজ (ভলিউম), আইপি ঠিকানা এবং সেগুলি চালানোর বিষয়ে তথ্য অন্তর্ভুক্ত থাকে।


পডসের পরিদর্শন


নোডস

একটি পড সর্বদা একটি নোডে চলে | একটি নোড হল কুবারনেটিসে একটি কর্মী মেশিন এবং ক্লাস্টারের উপর নির্ভর করে একটি ভার্চুয়াল বা ফিজিক্যাল মেশিন হতে পারে। প্রতিটি নোড নিয়ন্ত্রণ সমতল দ্বারা পরিচালিত হয়। একটি নোডে একাধিক পড থাকতে পারে এবং কুবারনেটস কন্ট্রোল প্লেন স্বয়ংক্রিয়ভাবে ক্লাস্টারের নোড জুড়ে পডগুলির সময়সূচী পরিচালনা করে। কন্ট্রোল প্লেনের স্বয়ংক্রিয় সময়সূচী প্রতিটি নোডে উপলব্ধ সংস্থানগুলিকে বিবেচনা করে।

প্রতিটি কুবারনেটস নোড কমপক্ষে রান করে:

  • কুবেলেট, কুবারনেটিস কন্ট্রোল প্লেন এবং নোডের মধ্যে যোগাযোগের জন্য দায়ী একটি প্রক্রিয়া; এটি একটি মেশিনে চলমান পড এবং পাত্রগুলি পরিচালনা করে।
  • একটি কন্টেইনার রানটাইম (ডকারের মতো) একটি রেজিস্ট্রি থেকে কন্টেইনার ইমেজ টেনে আনা, কন্টেইনার আনপ্যাক করা এবং অ্যাপ্লিকেশন চালানোর জন্য দায়ী।

কন্টেইনারগুলি শুধুমাত্র একটি একক পডে একসাথে নির্ধারিত হওয়া উচিত যদি সেগুলি শক্তভাবে সংযুক্ত থাকে এবং ডিস্কের মতো সংস্থানগুলি ভাগ করতে হয়৷


নোড পরিদর্শন


kubectl এর সাথে সমস্যা সমাধান(Troubleshooting)

মডিউল 2 - এ, আপনি Kubectl কমান্ড-লাইন ইন্টারফেস ব্যবহার করেছেন। আপনি ডিপ্লোয় করা অ্যাপ্লিকেশন এবং তাদের পরিবেশ সম্পর্কে তথ্য পেতে মডিউল 3 এ এটি ব্যবহার করা চালিয়ে যাবেন। সবচেয়ে সাধারণ ক্রিয়াকলাপগুলি নিম্নলিখিত kubectl কমান্ড দিয়ে করা যেতে পারে:

  • kubectl get - সম্পদ(resource) তালিকা
  • kubectl describe - একটি সম্পদ সম্পর্কে বিস্তারিত তথ্য দেখান
  • kubectl logs - একটি পডে কন্টেইনার থেকে লগ দেখানো
  • kubectl exec - একটি পডের একটি কন্টেইনার একটি কমান্ড চালান

অ্যাপ্লিকেশনগুলি কখন ডিপ্লোয় করা হয়েছিল, তাদের বর্তমান অবস্থা কী, তারা কোথায় চলছে এবং তাদের কনফিগারেশনগুলি কী তা দেখতে আপনি এই কমান্ডগুলি ব্যবহার করতে পারেন।

এখন যেহেতু আমরা আমাদের ক্লাস্টার উপাদান এবং কমান্ড লাইন সম্পর্কে আরও জানি, আসুন আমাদের অ্যাপ্লিকেশনটি অন্বেষণ করি।

একটি নোড হল কুবারনেটিসে একটি কর্মী মেশিন এবং ক্লাস্টারের উপর নির্ভর করে একটি ভার্চুয়াল বা শারীরিক মেশিন হতে পারে। একাধিক পড এক নোডে চলতে পারে।


2.3.2 - ইন্টারেক্টিভ প্রশিক্ষণ - আপনার অ্যাপ্লিকেশানকে অন্বেষণ করুন

2.4 - আপনার অ্যাপ পরিসর করুন

2.4.1 - আপনার অ্যাপের একাধিক উদাহরণ (instance) চালান

উদ্দেশ্য

  • kubectl ব্যবহার করে একটি অ্যাপ স্কেল করুন।

একটি অ্যাপ্লিকেশন স্কেলিং

পূর্ববর্তী মডিউলগুলিতে আমরা তৈরি করেছি একটি ডিপ্লয়মেন্ট এবং তারপর সর্বজনীনভাবে এটি প্রকাশ করে একটি পরিষেবার মাধ্যমে ৷ ডিপ্লয়মেন্টটি আমাদের অ্যাপ্লিকেশন চালানোর জন্য শুধুমাত্র একটি পড তৈরি করেছে। যখন ট্র্যাফিক বাড়বে, তখন ব্যবহারকারীর চাহিদার সাথে তাল মিলিয়ে চলতে আমাদের অ্যাপ্লিকেশন স্কেল করতে হবে।

স্কেলিং একটি ডিপ্লয়মেন্টের প্রতিলিপি সংখ্যা পরিবর্তন করে সম্পন্ন করা হয়

সারসংক্ষেপ:

  • একটি ডিপ্লয়মেন্টের স্কেলিং

আপনি শুরু থেকে kubectl create deployment কমান্ডের --replicas প্যারামিটার ব্যবহার করে একাধিক উদাহরণ সহ একটি ডিপ্লয়মেন্ট তৈরি করতে পারেন


স্কেলিং এর ধারণা


একটি ডিপ্লয়মেন্টের স্কেল করা নিশ্চিত করবে যে নতুন পড তৈরি করা হয়েছে এবং উপলব্ধ সংস্থান সহ নোডগুলিতে নির্ধারিত হয়েছে। স্কেলিং নতুন পছন্দসই অবস্থায় পডের সংখ্যা বৃদ্ধি করবে। কুবারনেটস পডের অটোস্কেলিং সমর্থন করে, কিন্তু এটি এই টিউটোরিয়ালের সুযোগের বাইরে। শূন্যে স্কেলিং করাও সম্ভব, এবং এটি নির্দিষ্ট ডিপ্লয়মেন্টের সমস্ত পড বন্ধ করবে।

একটি অ্যাপ্লিকেশনের একাধিক দৃষ্টান্ত চালানোর জন্য তাদের সকলে ট্রাফিক বিতরণ করার একটি উপায় প্রয়োজন। পরিষেবাগুলিতে একটি সমন্বিত লোড-ব্যালেন্সার রয়েছে যা একটি উন্মুক্ত ডিপ্লয়মেন্টের সমস্ত পডগুলিতে নেটওয়ার্ক ট্র্যাফিক বিতরণ করবে। পরিষেবাগুলি কেবলমাত্র উপলভ্য পডগুলিতে ট্র্যাফিক পাঠানো হয়েছে তা নিশ্চিত করার জন্য এন্ডপয়েন্টগুলি ব্যবহার করে ক্রমাগত চলমান পডগুলি পর্যবেক্ষণ করবে।

একটি ডিপ্লয়মেন্টেয় প্রতিলিপির সংখ্যা পরিবর্তন করে স্কেলিং সম্পন্ন করা হয়।


একবার আপনার কাছে একটি অ্যাপ্লিকেশন চালানোর একাধিক উদাহরণ হয়ে গেলে, আপনি ডাউনটাইম ছাড়াই রোলিং আপডেট করতে সক্ষম হবেন। আমরা পরবর্তী মডিউলে এটি কভার করব। এখন, আসুন অনলাইন টার্মিনালে যাই এবং আমাদের আবেদন স্কেল করি।


2.4.2 - ইন্টারেক্টিভ টিউটোরিয়াল - আপনার অ্যাপ পরিসর করুন

2.5 - আপনার অ্যাপ্লিকেশন আপডেট করুন

2.5.1 - একটি রোলিং আপডেট সম্পাদন করা

উদ্দেশ্য

  • kubectl ব্যবহার করে একটি রোলিং আপডেট সম্পাদন করুন।

একটি অ্যাপ্লিকেশন আপডেট করা হচ্ছে

ব্যবহারকারীরা আশা করে যে অ্যাপ্লিকেশনগুলি সর্বদা উপলব্ধ থাকবে এবং ডেভেলপাররা দিনে কয়েকবার তাদের নতুন সংস্করণ স্থাপন করবে বলে আশা করা হচ্ছে। কুবারনেটিসে এটি রোলিং আপডেটের সাথে করা হয়। ঘূর্ণায়মান আপডেটগুলি নতুনগুলির সাথে পড দৃষ্টান্তগুলিকে ক্রমবর্ধমানভাবে আপডেট করে শূন্য ডাউনটাইম সহ ডিপ্লয়মেন্টের আপডেটগুলি ঘটতে দেয়৷ নতুন পডগুলি উপলব্ধ সংস্থান সহ নোডগুলিতে নির্ধারিত হবে৷

আগের মডিউলে আমরা একাধিক দৃষ্টান্ত চালানোর জন্য আমাদের অ্যাপ্লিকেশনটিকে স্কেল করেছি। এটি অ্যাপ্লিকেশন প্রাপ্যতা প্রভাবিত না করে আপডেট সম্পাদন করার জন্য একটি প্রয়োজনীয়তা। ডিফল্টভাবে, আপডেটের সময় সর্বাধিক সংখ্যক পড অনুপলব্ধ হতে পারে এবং সর্বাধিক নতুন পড তৈরি করা যেতে পারে, একটি। উভয় বিকল্পই সংখ্যা বা শতাংশে (পডের) কনফিগার করা যেতে পারে। কুবারনেটিসে, আপডেটগুলি ভার্সন করা হয় এবং যেকোনো ডিপ্লয়মেন্ট আপডেটকে পূর্ববর্তী (স্থিতিশীল) সংস্করণে ফিরিয়ে আনা যায়।

সারাংশঃ

  • একটি অ্যাপ আপডেট করা হচ্ছে

রোলিং আপডেটগুলি নতুনগুলির সাথে পডস দৃষ্টান্তগুলিকে ক্রমবর্ধমানভাবে আপডেট করার মাধ্যমে শূন্য ডাউনটাইম সহ ডিপ্লয়মেন্টের আপডেটগুলি ঘটতে দেয়৷


রোলিং আপডেট ওভারভিউ


অ্যাপ্লিকেশন স্কেলিং-এর অনুরূপ, যদি একটি ডিপ্লয়মেন্ট সর্বজনীনভাবে প্রকাশ করা হয়, পরিষেবাটি আপডেটের সময় শুধুমাত্র উপলব্ধ পডগুলিতে ট্র্যাফিক লোড-ব্যালেন্স করবে। একটি উপলব্ধ পড একটি উদাহরণ যা অ্যাপ্লিকেশন ব্যবহারকারীদের জন্য উপলব্ধ৷

রোলিং আপডেটগুলি নিম্নলিখিত ক্রিয়াগুলিকে অনুমতি দেয়ঃ

  • একটি পরিবেশ থেকে অন্য পরিবেশে একটি অ্যাপ্লিকেশন প্রচার করুন (কন্টেইনার ইমেজ আপডেটের মাধ্যমে)
  • পূর্ববর্তী সংস্করণে রোলব্যাক করুন
  • ক্রমাগত একীকরণ এবং শূন্য ডাউনটাইম সহ অ্যাপ্লিকেশনগুলির ক্রমাগত বিতরণ

যদি একটি ডিপ্লয়মেন্ট পাবলিকলি প্রকাশ করা হয়, পরিষেবাটি আপডেটের সময় শুধুমাত্র উপলব্ধ পডগুলিতে ট্র্যাফিক লোড-ব্যালেন্স করবে।


নিম্নলিখিত ইন্টারেক্টিভ টিউটোরিয়ালে, আমরা আমাদের অ্যাপ্লিকেশনটিকে একটি নতুন সংস্করণে আপডেট করব এবং একটি রোলব্যাকও করব৷


2.5.2 - মিথস্ক্রিয় প্রশিক্ষণ - অ্যাপটিকে আধুনিক রূপ দেওয়া

2.6 - আপনার অ্যাপটি প্রকাশ্যে প্রকাশ করুন

2.6.1 - আপনার অ্যাপ প্রকাশ করতে একটি পরিষেবা ব্যবহার করা

উদ্দেশ্য

  • কুবারনের্টিস-এ একটি পরিষেবা সম্পর্কে জানুন
  • label এবং labelSelector বস্তু একটি পরিষেবার সাথে কিভাবে সম্পর্কিত তা বুঝুন
  • একটি পরিষেবা ব্যবহার করে কুবারনেটিস ক্লাস্টারের বাইরে একটি অ্যাপ্লিকেশন প্রকাশ করুন

কুবারনেটিস পরিষেবার ওভারভিউ

কুবারনেটিস পডগুলো মরণশীল। পডগুলোর একটি জীবনচক্র আছে। যখন একজন কর্মী নোড মারা যায়, তখন নোডে চলমান পডগুলিও হারিয়ে যায়। একটি ReplicaSet আপনার অ্যাপ্লিকেশন চালু রাখতে নতুন পড তৈরির মাধ্যমে গতিশীলভাবে ক্লাস্টারটিকে পছন্দসই অবস্থায় ফিরিয়ে আনতে পারে৷ আরেকটি উদাহরণ হিসাবে, ৩টি প্রতিলিপি সহ একটি চিত্র-প্রসেসিং ব্যাকএন্ড বিবেচনা করুন। সেই প্রতিলিপিগুলি বিনিময়যোগ্য; ফ্রন্ট-এন্ড সিস্টেমের ব্যাকএন্ড প্রতিলিপি বা পড হারিয়ে গেলেও আবার তৈরি করা উচিত নয়। তাতে বলা হয়েছে, কুবারনেটিস ক্লাস্টারের প্রতিটি পডের একটি অনন্য আইপি ঠিকানা রয়েছে, এমনকি একই নোডে থাকা পডস, তাই পডগুলির মধ্যে স্বয়ংক্রিয়ভাবে পরিবর্তনগুলি সমন্বয় করার একটি উপায় থাকা দরকার যাতে আপনার অ্যাপ্লিকেশনগুলি কাজ করতে থাকে ৷

কুবারনেটিস-এ একটি পরিষেবা হল একটি বিমূর্ততা যা পডগুলির একটি যৌক্তিক সেট এবং একটি নীতি যার দ্বারা সেগুলি অ্যাক্সেস করা যায় তা সংজ্ঞায়িত করে৷ পরিষেবাগুলি নির্ভরশীল পডগুলির মধ্যে একটি আলগা সংযোগ সক্ষম করে৷ একটি পরিষেবা YAML (পছন্দের) বা JSON ব্যবহার করে সংজ্ঞায়িত করা হয়, যেমন সমস্ত কুবারনেটিস অবজেক্ট। একটি পরিষেবা দ্বারা লক্ষ্য করা পডের সেট সাধারণত একটি লেবেলনির্বাচক দ্বারা নির্ধারিত হয় (বিশেষে একটি নির্বাচক অন্তর্ভুক্ত না করে কেন আপনি একটি পরিষেবা পেতে পারেন তা নীচে দেখুন)।

যদিও প্রতিটি পডের একটি অনন্য আইপি ঠিকানা রয়েছে, তবে সেই আইপিগুলি পরিষেবা ছাড়া ক্লাস্টারের বাইরে প্রকাশ করা হয় না। পরিষেবাগুলি আপনার অ্যাপ্লিকেশনগুলিকে ট্রাফিক পেতে অনুমতি দেয়৷ ServiceSpec-এ টাইপ উল্লেখ করে পরিষেবাগুলিকে বিভিন্ন উপায়ে প্রকাশ করা যেতে পারে:

  • ClusterIP (ডিফল্ট) - ক্লাস্টারে একটি অভ্যন্তরীণ আইপিতে পরিষেবাটি প্রকাশ করে৷ এই ধরনের পরিষেবা শুধুমাত্র ক্লাস্টারের মধ্যে থেকে পৌঁছানো যায়।
  • NodePort - NAT ব্যবহার করে ক্লাস্টারে প্রতিটি নির্বাচিত নোডের একই পোর্টে পরিষেবাটি প্রকাশ করে। <NodeIP>:<NodePort> ব্যবহার করে ক্লাস্টারের বাইরে থেকে একটি পরিষেবা অ্যাক্সেসযোগ্য করে তোলে। ClusterIP এর সুপারসেট।
  • লোডব্যালেন্সার - বর্তমান ক্লাউডে একটি বাহ্যিক লোড ব্যালেন্সার তৈরি করে (যদি সমর্থিত হয়) এবং পরিষেবাতে একটি নির্দিষ্ট, বাহ্যিক আইপি বরাদ্দ করে৷ নোডপোর্টের সুপারসেট।
  • ExternalName - পরিষেবাটিকে externalName ক্ষেত্রের বিষয়বস্তুতে (যেমন foo.bar.example.com) ম্যাপ করে, একটি CNAME এর মান সহ রেকর্ড করুন। কোন ধরনের প্রক্সি সেট আপ করা হয় না. এই ধরনের v1.7 বা উচ্চতর kube-dns, অথবা CoreDNS সংস্করণ 0.0.8 বা উচ্চতর প্রয়োজন।

বিভিন্ন ধরনের পরিষেবা সম্পর্কে আরও তথ্য উৎস আইপি ব্যবহার করা টিউটোরিয়ালে পাওয়া যাবে। এছাড়াও পরিষেবার সাথে অ্যাপ্লিকেশন সংযোগ করা দেখুন৷

অতিরিক্ত, নোট করুন যে পরিষেবাগুলির সাথে কিছু ব্যবহারের ক্ষেত্রে রয়েছে যেগুলির মধ্যে একটি নির্বাচক সংজ্ঞায়িত করা নেই৷ নির্বাচক ছাড়া তৈরি করা একটি পরিষেবা সংশ্লিষ্ট এন্ডপয়েন্ট অবজেক্ট তৈরি করবে না। এটি ব্যবহারকারীদের ম্যানুয়ালি নির্দিষ্ট শেষ পয়েন্টে একটি পরিষেবা ম্যাপ করতে দেয়। কোন নির্বাচক না থাকার আরেকটি সম্ভাবনা হল আপনি কঠোরভাবে type: ExternalName ব্যবহার করছেন।

সারাংশ

  • বাহ্যিক ট্র্যাফিকের কাছে পডগুলিকে প্রকাশ করা
  • একাধিক পড জুড়ে ভারসাম্যপূর্ণ ট্রাফিক লোড করুন
  • লেবেল ব্যবহার করা

একটি কুবারনেটিস পরিষেবা হল একটি বিমূর্ত স্তর যা পডগুলির একটি যৌক্তিক সেটকে সংজ্ঞায়িত করে এবং সেই পডগুলির জন্য বহিরাগত ট্রাফিক এক্সপোজার, লোড ব্যালেন্সিং এবং পরিষেবা আবিষ্কার সক্ষম করে৷


পরিষেবা এবং লেবেল

একটি পরিষেবা পডের একটি সেট জুড়ে ট্রাফিককে রুট করে। পরিষেবাগুলি হল বিমূর্ততা যা আপনার আবেদনকে প্রভাবিত না করেই কুবারনেটে পডগুলিকে মরতে এবং প্রতিলিপি তৈরি করতে দেয়৷ নির্ভরশীল পডগুলির মধ্যে আবিষ্কার এবং রাউটিং (যেমন একটি অ্যাপ্লিকেশনে ফ্রন্টএন্ড এবং ব্যাকএন্ড উপাদান) Kubernetes পরিষেবা দ্বারা পরিচালিত হয়৷

পরিষেবাগুলি লেবেল এবং নির্বাচকদের ব্যবহার করে পডের একটি সেটের সাথে মেলে, একটি আদিম গ্রুপিং যা কুবারনেটসের বস্তুতে লজিক্যাল অপারেশনের অনুমতি দেয় . লেবেল হল কী/মান জোড়া বস্তুর সাথে সংযুক্ত এবং যেকোনো উপায়ে ব্যবহার করা যেতে পারে:

  • উন্নয়ন, পরীক্ষা এবং উৎপাদনের জন্য মনোনীত বস্তু
  • এম্বেড সংস্করণ ট্যাগ
  • ট্যাগ ব্যবহার করে একটি বস্তুকে শ্রেণীবদ্ধ করুন


লেবেলগুলি তৈরির সময় বা পরে বস্তুর সাথে সংযুক্ত করা যেতে পারে। এগুলি যে কোনও সময় পরিবর্তন করা যেতে পারে। আসুন এখন একটি পরিষেবা ব্যবহার করে আমাদের অ্যাপ্লিকেশনটি প্রকাশ করি এবং কিছু লেবেল প্রয়োগ করি৷


2.6.2 - ইন্টারেক্টিভ টিউটোরিয়াল - আপনার অ্যাপ প্রকাশ করা

3 - কনফিগারেশন

3.1 - উদাহরণ: একটি জাভা মাইক্রোসার্ভিস কনফিগার করা

4 - নিরাপত্তা

কুবারনেটিস ক্লাস্টার পরিচালনাকারী বেশিরভাগ সংস্থা এবং লোকেদের জন্য নিরাপত্তা একটি গুরুত্বপূর্ণ উদ্বেগ। আপনি একটি মৌলিক নিরাপত্তা চেকলিস্ট খুঁজে পেতে পারেন কুবারনেটিস ডকুমেন্টেশনের অন্যত্র ।

কুবারনেটিসের নিরাপত্তার দিকগুএও কীভাবে স্থাপন এবং পরিচালনা করতে হয় তা শিখতে, আপনি এই বিভাগে টিউটোরিয়ালগুলো অনুসরণ করতে পারেন।

5 - স্টেটলেস অ্যাপ্লিকেশন

6 - স্টেটফুল অ্যাপ্লিকেশন

7 - সেবা