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

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

শাটডাউনটি 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

এর পরের কি

সর্বশেষ পরিবর্তিত October 15, 2024 at 3:18 AM PST: Merge pull request #48346 from windsonsea/metricy (50a9341)