আপনি যে কুবারনেটিস ভার্সনের জন্য ডকুমেন্টেশন দেখছেন : v1.32

Kubernetes v1.32 ডকুমেন্টেশন আর সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হয় না। আপনি বর্তমানে যে ভার্সনটি দেখছেন সেটি একটি স্ট্যাটিক স্ন্যাপশট। আপ-টু-ডেট ডকুমেন্টেশনের জন্য, দেখুন সর্বশেষ ভার্সন

ইন্টারেক্টিভ টিউটোরিয়ালের শাটডাউন

এই ওয়েবসাইটের ইন্টারেক্টিভ টিউটোরিয়াল বন্ধ করা হচ্ছে। কুবারনেটিস প্রজেক্ট দীর্ঘমেয়াদে একই ধরনের ইন্টারেক্টিভ লার্নিং অপশন পুনঃস্থাপন করার আশা করছে।

শাটডাউনটি O'Reilly Media এর 2019 সালে Katacoda এর অধিগ্রহণের পরে শাটডাউন করা হলো ।

কুবারনেটিস O'Reilly এবং Katacoda-এর কাছে কৃতজ্ঞ, অনেক বছর ধরে মানুষকে কুবারনেটিস শেখানোর জন্য তাদের প্রথম পদক্ষেপ নিতে সাহায্য করার জন্য।

টিউটোরিয়ালগুলি ৩১শে মার্চ, ২০২৩ এর পরে কাজ করা বন্ধ করে দেবে। আরও তথ্যের জন্য, "Free Katacoda Kubernetes Tutorials Are Shutting Down" দেখুন।

হ্যালো মিনিকুব (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 

এর পরের কি

সর্বশেষ পরিবর্তিত May 18, 2024 at 7:13 AM PST: [bn] Ready Hello, Minikube page for vanilla Docsy (acb7cf63b3)