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

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

টাস্ক

কুবারনেটিস ডকুমেন্টেশনের এই বিভাগে এমন পৃষ্ঠা রয়েছে যা দেখায় কিভাবে পৃথক টাস্ক করতে হয়। সাধারণত পদক্ষেপের একটি সংক্ষিপ্ত ক্রম দিয়ে একটি টাস্ক পেজ দেখায় কিভাবে একটি একক জিনিস করতে হয়।

আপনি যদি একটি টাস্ক পৃষ্ঠা লিখতে চান, দেখুন কীভাবে একটি ডকুমেন্টেশন পুল রিকোয়েস্ট তৈরি করা যায়।

1 - টুল ইনস্টল করুন

আপনার কম্পিউটারে কুবারনেটিস টুল সেট আপ করুন।

kubectl

কুবারনেটিস কমান্ড-লাইন টুল, kubectl আপনাকে কুবারনেটিস ক্লাস্টারগুলির বিরুদ্ধে কমান্ড চালাতে অনুমতি দেয় । আপনি অ্যাপ্লিকেশন স্থাপন করতে, ক্লাস্টার সংস্থান পরিদর্শন ও পরিচালনা করতে এবং লগ দেখতে kubectl ব্যবহার করতে পারেন। আরও তথ্যের জন্য kubectl অপারেশনগুলির একটি সম্পূর্ণ তালিকা সহ দেখুন kubectl রেফারেন্স ডকুমেন্টেশন

kubectl বিভিন্ন লিনাক্স প্ল্যাটফর্ম, macOS এবং Windows এ ইনস্টলযোগ্য। নীচে আপনার পছন্দের অপারেটিং সিস্টেম খুঁজুন।

kind

kind আপনাকে কুবারনেটিস চালাতে দেয় আপনার স্থানীয় কম্পিউটারে। আপনি ডকার অথবা পডম্যান ইনস্টল এবং কনফিগার করুন।

এই ধরনের কুইক শুরু পৃষ্ঠা আপনাকে কী করতে হবে তা দেখায়।

বিভিন্ন ধরনের কুইক স্টার্ট গাইড দেখুন

minikube

kind এর মতো, minikube একটি টুল যা আপনাকে স্থানীয়ভাবে কুবারনেটিস চালাতে দেয় । minikube আপনার ব্যক্তিগত কম্পিউটারের (উইন্ডোজ, ম্যাকোস এবং লিনাক্স পিসি সহ) উপর একটি একক-নোড কুবারনেটিস ক্লাস্টার চালায় যাতে আপনি চেষ্টা করে দেখতে পারেন কুবারনেটিস, বা দৈনন্দিন উন্নয়ন কাজের জন্য।

আপনি অফিসিয়াল নির্দেশিকা শুরু করুন! অনুসরণ করতে পারেন যদি আপনার ফোকাস হয় টুল ইনস্টল করার উপর।

minikube শুরু করুন! গাইডটি দেখুন

একবার আপনার minikube কাজ করলে, আপনি এটি একটি নমুনা অ্যাপ্লিকেশন চালাতে ব্যবহার করতে পারেন ।

kubeadm

আপনি কুবারনেটিস ক্লাস্টার তৈরি এবং পরিচালনা করতে kubeadm টুল ব্যবহার করতে পারেন। এটি একটি ন্যূনতম কার্যকর, নিরাপদ ক্লাস্টার আপ এবং ব্যবহারকারী বান্ধব উপায়ে চালানোর জন্য প্রয়োজনীয় ক্রিয়া সম্পাদন করে।

kubeadm ইনস্টল করা আপনাকে দেখায় কিভাবে kubeadm ইনস্টল করতে হয়। একবার ইনস্টল হয়ে গেলে আপনি এটিকে একটি ক্লাস্টার তৈরি করতে ব্যবহার করতে পারেন।

kubeadm ইনস্টল গাইড দেখুন

1.1 - macOS এ kubectl ইনস্টল এবং সেট আপ করুন

শুরু করার আগে

আপনাকে অবশ্যই একটি kubectl সংস্করণ ব্যবহার করতে হবে যা আপনার ক্লাস্টারের একটি ছোট সংস্করণের পার্থক্যের মধ্যে রয়েছে। উদাহরণস্বরূপ, একটি v1.31 ক্লায়েন্ট v1.30, v1.31, এবং v1.32 নিয়ন্ত্রণ প্লেন এর সাথে যোগাযোগ করতে পারে। kubectl এর সর্বশেষ সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করা অপ্রত্যাশিত সমস্যাগুলি এড়াতে সাহায্য করে৷

macOS এ kubectl ইনস্টল করুন

macOS এ kubectl ইনস্টল করার জন্য নিম্নলিখিত পদ্ধতি রয়েছেঃ

macOS-এ কার্ল সহ kubectl বাইনারি ইনস্টল করুন

১. সর্বশেষ রিলিজ ডাউনলোড করুন:


   curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"
   


   curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"
   

২. বাইনারি যাচাই করুন (ঐচ্ছিক)

kubectl checksum ফাইল ডাউনলোড করুন:


   curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl.sha256"
   


   curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl.sha256"
   

চেকসাম ফাইলের বিপরীতে kubectl বাইনারি যাচাই করুন:

echo "$(cat kubectl.sha256)  kubectl" | shasum -a 256 --check

বৈধ হলে, আউটপুট হল:

kubectl: OK

চেক ব্যর্থ হলে, shasum অশূন্য স্থিতি সহ প্রস্থান করে এবং অনুরূপ আউটপুট প্রিন্ট করে:

kubectl: FAILED
shasum: WARNING: 1 computed checksum did NOT match

৩. kubectl বাইনারি এক্সিকিউটেবল করুন।

chmod +x ./kubectl

৪. আপনার সিস্টেম PATH-এ একটি ফাইল অবস্থানে kubectl বাইনারি সরান।

sudo mv ./kubectl /usr/local/bin/kubectl
sudo chown root: /usr/local/bin/kubectl

৫. আপনার ইনস্টল করা সংস্করণ আপ-টু-ডেট কিনা তা নিশ্চিত করতে পরীক্ষা করুন:

kubectl version --client

অথবা সংস্করণের বিস্তারিত দেখার জন্য এটি ব্যবহার করুন:

kubectl version --client --output=yaml

৬. প্লাগইন ইনস্টল করার পরে, ইনস্টলেশন ফাইলগুলি পরিষ্কার করুন:

rm kubectl kubectl.sha256

MacOS এ Homebrew দিয়ে ইনস্টল করুন

আপনি যদি macOS-এ থাকেন এবং Homebrew প্যাকেজ ম্যানেজার ব্যবহার করেন, তাহলে আপনি Homebrew-এর সাথে kubectl ইনস্টল করতে পারেন।

১. ইনস্টলেশন কমান্ড চালান:

brew install kubectl

অথবা,

brew install kubernetes-cli

২. আপনার ইনস্টল করা সংস্করণ আপ-টু-ডেট কিনা তা নিশ্চিত করতে পরীক্ষা করুন:

kubectl version --client

MacOS এ Macports দিয়ে ইনস্টল করুন

আপনি যদি macOS এ থাকেন এবং Macports প্যাকেজ ম্যানেজার ব্যবহার করেন, তাহলে আপনি ম্যাকপোর্টের সাথে kubectl ইনস্টল করতে পারেন।

১. ইনস্টলেশন কমান্ড চালান:

sudo port selfupdate
sudo port install kubectl

২. আপনার ইনস্টল করা সংস্করণ আপ-টু-ডেট কিনা তা নিশ্চিত করতে পরীক্ষা করুন:

kubectl version --client

kubectl কনফিগারেশন যাচাই করুন

kubectl-এর জন্য একটি কুবারনেটিস ক্লাস্টার খুঁজে পেতে এবং অ্যাক্সেস পেতে, যার জন্য প্রয়োজন kubeconfig ফাইল, যা স্বয়ংক্রিয়ভাবে তৈরি হয় যখন আপনি একটি ক্লাস্টার তৈরি করেন kube-up.sh ব্যবহার করে অথবা সফলভাবে একটি Minikube ক্লাস্টার স্থাপন করুন। ডিফল্টরূপে, kubectl কনফিগারেশন ~/.kube/config এ অবস্থিত।

ক্লাস্টার অবস্থা পেয়ে kubectl সঠিকভাবে কনফিগার করা হয়েছে তা পরীক্ষা করুন:

kubectl cluster-info

আপনি যদি একটি URL দেখতে পান, তাহলে আপনার ক্লাস্টার অ্যাক্সেস করার জন্য kubectl সঠিকভাবে কনফিগার করা হয়েছে।

আপনি যদি নিম্নলিখিতগুলোর মতো একটি বার্তা দেখতে পান, তাহলে বুঝবেন যে kubectl সঠিকভাবে কনফিগার করা হয়নি অথবা একটি Kubernetes ক্লাস্টারের সাথে সংযোগ করতে সক্ষম নয়।

সার্ভারের সাথে সংযোগ <server-name:port> প্রত্যাখ্যান করা হয়েছিল - আপনি কি সঠিক হোস্ট বা পোর্ট উল্লেখ করেছেন?

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

যদি kubectl ক্লাস্টার-তথ্য url প্রতিক্রিয়া প্রদান করে কিন্তু আপনি আপনার ক্লাস্টার অ্যাক্সেস করতে না পারেন, এটি সঠিকভাবে কনফিগার করা হয়েছে কিনা তা পরীক্ষা করতে, ব্যবহার করুন:

kubectl cluster-info dump

'No Auth Provider Found' ত্রুটি বার্তার সমস্যা সমাধান

কুবারনেটিস 1.26-এ, kubectl নিম্নলিখিত ক্লাউড প্রদানকারীদের পরিচালিত কুবারনেটিস অফারগুলোর জন্য অন্তর্নির্মিত অথেনটিকেশন সরিয়ে দিয়েছে। এই প্রদানকারীরা ক্লাউডের-নির্দিষ্ট অথেনটিকেশন প্রদানের জন্য kubectl প্লাগইন প্রকাশ করেছে। নির্দেশাবলীর জন্য, নিম্নলিখিত প্রদানকারী ডকুমেন্টেশন পড়ুন:

(একই ত্রুটির বার্তা দেখার অন্যান্য কারণও থাকতে পারে, এই পরিবর্তনের সাথে সম্পর্কিত নয়।)

ঐচ্ছিক kubectl কনফিগারেশন এবং প্লাগইন

শেল অটোকমপ্লিট সক্ষম করুন

kubectl Bash, Zsh, Fish এবং PowerShell-এর জন্য অটোকমপ্লিট সমর্থন প্রদান করে যা আপনাকে অনেক টাইপিং বাঁচাতে পারে।

নীচে Bash, Fish, এবং Zsh-এর জন্য স্বয়ংসম্পূর্ণতা সেট আপ করার পদ্ধতিগুলি রয়েছে৷

ভূমিকা

Bash-এর জন্য kubectl কমপ্লিশন স্ক্রিপ্ট kubectl completion bash দিয়ে তৈরি করা যেতে পারে। আপনার শেলে এই স্ক্রিপ্টটি সোর্স করা kubectl সম্পূর্ণতা সক্ষম করে।

কিন্তু, kubectl কমপ্লিসন স্ক্রিপ্ট নির্ভর করে bash-completion যা আপনাকে আগে ইনস্টল করতে হবে।

Bash আপগ্রেড করুন

এখানে নির্দেশাবলী অনুমান করে আপনি ব্যাশ 4.1+ ব্যবহার করছেন। আপনি রান করে আপনার ব্যাশের সংস্করণটি পরীক্ষা করতে পারেন:

echo $BASH_VERSION

যদি এটি খুব পুরানো হয়, আপনি Homebrew ব্যবহার করে এটি ইনস্টল/আপগ্রেড করতে পারেন:

brew install bash

আপনার শেল পুনরায় লোড করুন এবং যাচাই করুন যে পছন্দসই সংস্করণটি ব্যবহার করা হচ্ছে:

echo $BASH_VERSION $SHELL

Homebrew সাধারণত /usr/local/bin/bash এ ইনস্টল হয়।

ব্যাশ-কমপ্লিসন ইনস্টল করুন

আপনি পরীক্ষা করতে পারেন যদি আপনার bash-completion v2 ইতিমধ্যেই type _init_completion দিয়ে ইনস্টল করা আছে। যদি না হয়, আপনি homebrew দিয়ে এটি ইনস্টল করতে পারেন:

brew install bash-completion@2

এই কমান্ডের আউটপুটে যেমন বলা হয়েছে, আপনার ~/.bash_profile ফাইলে নিম্নলিখিত যোগ করুন:

brew_etc="$(brew --prefix)/etc" && [[ -r "${brew_etc}/profile.d/bash_completion.sh" ]] && . "${brew_etc}/profile.d/bash_completion.sh"

আপনার শেল পুনরায় লোড করুন এবং যাচাই করুন যে bash-completion v2 সঠিকভাবে type _init_completion দিয়ে ইনস্টল করা আছে।

kubectl অটোকমপ্লিসন চালু করুন

আপনাকে এখন নিশ্চিত করতে হবে যে আপনার সমস্ত শেল সেশনে kubectl কমপ্লিসনের স্ক্রিপ্টটি পাওয়া যায়। এটি অর্জন করার একাধিক উপায় রয়েছে:

  • আপনার ~/.bash_profile ফাইলে কমপ্লিসনের স্ক্রিপ্ট উৎস করুন:

    echo 'source <(kubectl completion bash)' >>~/.bash_profile
    
  • /usr/local/etc/bash_completion.d ডিরেক্টরিতে কমপ্লিসনের স্ক্রিপ্ট যোগ করুন:

    kubectl completion bash >/usr/local/etc/bash_completion.d/kubectl
    
  • আপনার যদি kubectl এর জন্য একটি উপনাম থাকে তবে আপনি সেই উপনামের সাথে কাজ করার জন্য শেল কমপ্লিসন বাড়াতে পারেন:

    echo 'alias k=kubectl' >>~/.bash_profile
    echo 'complete -o default -F __start_kubectl k' >>~/.bash_profile
    
  • আপনি যদি হোমব্রু দিয়ে kubectl ইনস্টল করেন (যেমন এখানে ব্যাখ্যা করা হয়েছে), তাহলে kubectl কমপ্লিসনের স্ক্রিপ্ট ইতিমধ্যেই /-এ থাকা উচিত usr/local/etc/bash_completion.d/kubectl। সেক্ষেত্রে আপনার কিছু করার দরকার নেই।

যে কোনো ক্ষেত্রে, আপনার শেল পুনরায় লোড করার পরে, kubectl সমাপ্তি কাজ করা উচিত।

fish এর জন্য kubectl সমাপ্তি স্ক্রিপ্ট kubectl completion fish কমান্ড দিয়ে তৈরি করা যেতে পারে। আপনার শেলের মধ্যে সমাপ্তি স্ক্রিপ্ট সোর্স করা kubectl স্বয়ংক্রিয় সমাপ্তি চালু করে।

আপনার সমস্ত শেল সেশনে এটি করতে, আপনার ~/.config/fish/config.fish ফাইলে নিম্নলিখিত লাইন যুক্ত করুন:

kubectl completion fish | source

আপনার শেল পুনরায় লোড করার পরে, kubectl স্বয়ংক্রিয় সমাপ্তি কাজ করা উচিত।

Zsh-এর জন্য kubectl কমপ্লিশন স্ক্রিপ্ট kubectl completion zsh কমান্ড দিয়ে তৈরি করা যেতে পারে। আপনার শেলে সমাপ্তি স্ক্রিপ্ট সোর্স করা kubectl স্বয়ংসম্পূর্ণতা সক্ষম করে। 12

আপনার সমস্ত শেল সেশনে এটি করতে, আপনার ~/.zshrc ফাইলে নিম্নলিখিত যোগ করুন:

source <(kubectl completion zsh)

আপনার যদি kubectl-এর একটি উপনাম থাকে, kubectl স্বয়ংসম্পূর্ণতা স্বয়ংক্রিয়ভাবে এটির সাথে কাজ করবে।

আপনার শেল পুনরায় লোড করার পরে, kubectl স্বয়ংসম্পূর্ণতা কাজ করা উচিত।

যদি আপনি একটি ত্রুটি পান যেমন 2: command not found: compdef, তাহলে আপনার ~/.zshrc ফাইলের শুরুতে নিম্নলিখিত যোগ করুন:

autoload -Uz compinit
compinit

kubectl convert প্লাগইন ইনস্টল করুন

কুবারনেটিস কমান্ড-লাইন টুল kubectl এর জন্য একটি প্লাগইন, যা আপনাকে বিভিন্ন আপিআই সংস্করণ এর মধ্যে রূপান্তর করতে দেয়। এটি নতুন কুবারনেটিস রিলিজের সাথে একটি অ-বঞ্চিত আপিআই সংস্করণে স্থানান্তর করতে বিশেষভাবে সহায়ক হতে পারে। আরও তথ্যের জন্য, অপ্রচলিত apis-এ মাইগ্রেট করুন

১. কমান্ড সহ সর্বশেষ রিলিজ ডাউনলোড করুন:


   curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl-convert"
   


   curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl-convert"
   

২. বাইনারি যাচাই করুন (ঐচ্ছিক)

kubectl-convert checksum ফাইলটি ডাউনলোড করুন:


   curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl-convert.sha256"
   


   curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl-convert.sha256"
   

চেকসাম ফাইলের বিপরীতে kubectl-রূপান্তর বাইনারি যাচাই করুন:

echo "$(cat kubectl-convert.sha256)  kubectl-convert" | shasum -a 256 --check

বৈধ হলে, আউটপুট হল:

kubectl-convert: OK

চেক ব্যর্থ হলে, shasum অশূন্য স্থিতি সহ প্রস্থান করে এবং অনুরূপ আউটপুট প্রিন্ট করে:

kubectl-convert: FAILED
shasum: WARNING: 1 computed checksum did NOT match

৩. kubectl-রূপান্তর বাইনারি এক্সিকিউটেবল করুন

chmod +x ./kubectl-convert

৪. আপনার সিস্টেম PATH-এ একটি ফাইল অবস্থানে kubectl-রূপান্তর বাইনারি সরান।

sudo mv ./kubectl-convert /usr/local/bin/kubectl-convert
sudo chown root: /usr/local/bin/kubectl-convert

৫. প্লাগইন সফলভাবে ইনস্টল করা হয়েছে যাচাই করুন

kubectl convert --help

আপনি যদি একটি ত্রুটি দেখতে না পান, এর মানে হল প্লাগইনটি সফলভাবে ইনস্টল করা হয়েছে।

৬. প্লাগইন ইনস্টল করার পরে, ইনস্টলেশন ফাইলগুলি পরিষ্কার করুন:

rm kubectl-convert kubectl-convert.sha256

এর পরের কি

1.2 - উইন্ডোজে kubectl ইনস্টল এবং সেট আপ করুন

শুরু করার আগে

আপনাকে অবশ্যই একটি kubectl সংস্করণ ব্যবহার করতে হবে যা আপনার ক্লাস্টারের একটি ছোট সংস্করণের পার্থক্যের মধ্যে রয়েছে। উদাহরণ স্বরূপ, একটি v1.31 ক্লায়েন্ট v1.30, v1.31, and v1.32 কন্ট্রল প্লেনের সাথে যোগাযোগ করতে পারবে। kubectl এর সর্বশেষ সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করা অপ্রত্যাশিত সমস্যাগুলি এড়াতে সাহায্য করে৷

উইন্ডোজে kubectl ইনস্টল করুন

উইন্ডোজে kubectl ইনস্টল করার জন্য নিম্নলিখিত পদ্ধতিগুলো অনুসরণ করতে পারেন:

উইন্ডোজে কার্ল ব্যাবহার kubectl বাইনারি ইনস্টল করুন

  1. সর্বশেষ 1.31 প্যাচ রিলিজ ডাউনলোড করুন: kubectl 1.31.0

    অথবা যদি আপনার curl ইনস্টল থাকে, এই কমান্ডটি ব্যবহার করুন:

    curl.exe -LO "https://dl.k8s.io/release/v1.31.0/bin/windows/amd64/kubectl.exe"
    
  2. বাইনারি যাচাই করুন (অপশনাল)

    kubectl চেকসাম ফাইলটি ডাউনলোড করুন:

    curl.exe -LO "https://dl.k8s.io/v1.31.0/bin/windows/amd64/kubectl.exe.sha256"
    

    চেকসাম ফাইলের বিপরীতে kubectl বাইনারি যাচাই করুন:

    • ডাউনলোড করা চেকসাম ফাইলের সাথে ম্যানুয়ালি CertUtil এর আউটপুট তুলনা করতে কমান্ড প্রম্পট ব্যবহার করে:

      CertUtil -hashfile kubectl.exe SHA256
      type kubectl.exe.sha256
      
    • একটি True বা False ফলাফল পেতে -eq অপারেটর ব্যবহার করে যাচাইকরণ স্বয়ংক্রিয় করতে PowerShell ব্যবহার করে:

       $(Get-FileHash -Algorithm SHA256 .\kubectl.exe).Hash -eq $(Get-Content .\kubectl.exe.sha256)
      
  3. আপনার PATH এনভায়রনমেন্ট ভেরিয়েবলে kubectl বাইনারি ফোল্ডারটি অ্যাপেন্ড বা প্রিপেন্ড করুন।

  4. kubectl-এর সংস্করণ ডাউনলোড করা একই রকম তা নিশ্চিত করতে পরীক্ষা করুন

    kubectl version --client
    

    অথবা সংস্করণের বিস্তারিত দেখার জন্য এটি ব্যবহার করুন:

    kubectl version --client --output=yaml
    
  5. প্লাগইন ইনস্টল করার পরে, ইনস্টলেশন ফাইলগুলি পরিষ্কার করুন:

    del kubectl.exe kubectl.exe.sha256
    

Chocolatey, Scoop, বা winget ব্যবহার করে Windows এ ইনস্টল করুন

  1. উইন্ডোজে kubectl ইনস্টল করতে আপনি উভয় Chocolatey প্যাকেজ ম্যানেজার, Scoop কমান্ড-লাইন ইনস্টলার, অথবা winget প্যাকেজ ম্যানেজার ব্যবহার করতে পারেন।

    choco install kubernetes-cli
    

    scoop install kubectl
    

    winget install -e --id Kubernetes.kubectl
    
  2. আপনার ইনস্টল করা সংস্করণ আপ-টু-ডেট কিনা তা নিশ্চিত করতে পরীক্ষা করুন:

    kubectl version --client
    
  3. আপনার হোম ডিরেক্টরিতে নেভিগেট করুন:

    # If you're using cmd.exe, run: cd %USERPROFILE%
    cd ~
    
  4. .kube ডিরেক্টরি তৈরি করুন:

    mkdir .kube
    
  5. আপনার তৈরি করা .kube ডিরেক্টরিতে ঢুকে পড়ুন:

    cd .kube
    
  6. একটি দূরবর্তী Kubernetes ক্লাস্টার ব্যবহার করতে kubectl কনফিগার করুরু

    New-Item config -type file
    

kubectl কনফিগারেশন যাচাই করুন

kubectl-এর জন্য একটি কুবারনেটিস ক্লাস্টার খুঁজে পেতে এবং অ্যাক্সেস পেতে, যার জন্য প্রয়োজন kubeconfig ফাইল, যা স্বয়ংক্রিয়ভাবে তৈরি হয় যখন আপনি একটি ক্লাস্টার তৈরি করেন kube-up.sh ব্যবহার করে অথবা সফলভাবে একটি Minikube ক্লাস্টার স্থাপন করুন। ডিফল্টরূপে, kubectl কনফিগারেশন ~/.kube/config এ অবস্থিত।

ক্লাস্টার অবস্থা পেয়ে kubectl সঠিকভাবে কনফিগার করা হয়েছে তা পরীক্ষা করুন:

kubectl cluster-info

আপনি যদি একটি URL দেখতে পান, তাহলে আপনার ক্লাস্টার অ্যাক্সেস করার জন্য kubectl সঠিকভাবে কনফিগার করা হয়েছে।

আপনি যদি নিম্নলিখিতগুলোর মতো একটি বার্তা দেখতে পান, তাহলে বুঝবেন যে kubectl সঠিকভাবে কনফিগার করা হয়নি অথবা একটি Kubernetes ক্লাস্টারের সাথে সংযোগ করতে সক্ষম নয়।

সার্ভারের সাথে সংযোগ <server-name:port> প্রত্যাখ্যান করা হয়েছিল - আপনি কি সঠিক হোস্ট বা পোর্ট উল্লেখ করেছেন?

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

যদি kubectl ক্লাস্টার-তথ্য url প্রতিক্রিয়া প্রদান করে কিন্তু আপনি আপনার ক্লাস্টার অ্যাক্সেস করতে না পারেন, এটি সঠিকভাবে কনফিগার করা হয়েছে কিনা তা পরীক্ষা করতে, ব্যবহার করুন:

kubectl cluster-info dump

'No Auth Provider Found' ত্রুটি বার্তার সমস্যা সমাধান

কুবারনেটিস 1.26-এ, kubectl নিম্নলিখিত ক্লাউড প্রদানকারীদের পরিচালিত কুবারনেটিস অফারগুলোর জন্য অন্তর্নির্মিত অথেনটিকেশন সরিয়ে দিয়েছে। এই প্রদানকারীরা ক্লাউডের-নির্দিষ্ট অথেনটিকেশন প্রদানের জন্য kubectl প্লাগইন প্রকাশ করেছে। নির্দেশাবলীর জন্য, নিম্নলিখিত প্রদানকারী ডকুমেন্টেশন পড়ুন:

(একই ত্রুটির বার্তা দেখার অন্যান্য কারণও থাকতে পারে, এই পরিবর্তনের সাথে সম্পর্কিত নয়।)

অপশনাল kubectl কনফিগারেশন এবং প্লাগইন

শেল ওটোকমপ্লিট চালু করুন

kubectl Bash, Zsh, Fish এবং PowerShell-এর জন্য ওটোকম্পিট সমর্থন প্রদান করে, যা আপনাকে অনেক টাইপিং করা থেকে রক্ষা করতে পারে।

পাওয়ারশেলের জন্য ওটোকম্পিট সেট আপ করার পদ্ধতিগুলি নীচে দেওয়া হল।

PowerShell-এর জন্য kubectl সমাপ্তি স্ক্রিপ্ট kubectl completion powershell কমান্ড দিয়ে তৈরি করা যেতে পারে।

আপনার সমস্ত শেল সেশনে এটি করতে, আপনার $PROFILE ফাইলে নিম্নলিখিত লাইন যোগ করুন:

kubectl completion powershell | Out-String | Invoke-Expression

এই কমান্ডটি প্রতিটি PowerShell স্টার্ট আপে স্বয়ংক্রিয় সমাপ্তি স্ক্রিপ্ট পুনরায় তৈরি করবে। আপনি চাইলে জেনারেট করা স্ক্রিপ্টটি সরাসরি আপনার $PROFILE ফাইলে যোগ করতে পারেন।

আপনার $PROFILE ফাইলে জেনারেট করা স্ক্রিপ্ট যোগ করতে, আপনার পাওয়ারশেল প্রম্পটে নিম্নলিখিত লাইনটি চালান:

kubectl completion powershell >> $PROFILE

আপনার শেল পুনরায় লোড করার পরে, kubectl স্বয়ংক্রিয় সমাপ্তি কাজ করা উচিত।

kubectl convert প্লাগইন ইনস্টল করুন

কুবারনেটিস কমান্ড-লাইন টুল kubectl এর জন্য একটি প্লাগইন, যা আপনাকে বিভিন্ন আপিআই সংস্করণ এর মধ্যে রূপান্তর করতে দেয়। এটি নতুন কুবারনেটিস রিলিজের সাথে একটি অ-বঞ্চিত আপিআই সংস্করণে স্থানান্তর করতে বিশেষভাবে সহায়ক হতে পারে। আরও তথ্যের জন্য, অপ্রচলিত apis-এ মাইগ্রেট করুন

  1. কমান্ড সহ সর্বশেষ রিলিজ ডাউনলোড করুন:

    curl.exe -LO "https://dl.k8s.io/release/v1.31.0/bin/windows/amd64/kubectl-convert.exe"
    
  2. বাইনারি যাচাই করুন (অপশনাল)।

    kubectl-convert চেকসাম ফাইলটি ডাউনলোড কর্সনা

    curl.exe -LO "https://dl.k8s.io/v1.31.0/bin/windows/amd64/kubectl-convert.exe.sha256"
    

    চেকসাম ফাইলের বিপরীতে kubectl-convert বাইনারি যাচাই করুন:

    • ডাউনলোড করা চেকসাম ফাইলের সাথে ম্যানুয়ালি CertUtil এর আউটপুট তুলনা করতে কমান্ড প্রম্পট ব্যবহার করে:

      CertUtil -hashfile kubectl-convert.exe SHA256
      type kubectl-convert.exe.sha256
      
    • একটি True বা False ফলাফল পেতে -eq অপারেটর ব্যবহার করে যাচাইকরণ স্বয়ংক্রিয় করতে PowerShell ব্যবহার করে:

      $($(CertUtil -hashfile .\kubectl-convert.exe SHA256)[1] -replace " ", "") -eq $(type .\kubectl-convert.exe.sha256)
      
  3. আপনার PATH এনভায়রনমেন্ট ভেরিয়েবলের সাথে kubectl-convert বাইনারি ফোল্ডারটি অ্যাপেন্ড বা প্রিপেন্ড করুন।

  4. প্লাগইন সফলভাবে ইনস্টল করা হয়েছে যাচাই করুন।

    kubectl convert --help
    

    আপনি যদি একটি ত্রুটি দেখতে না পান, এর মানে হল প্লাগইনটি সফলভাবে ইনস্টল করা হয়েছে।

  5. প্লাগইন ইনস্টল করার পরে, ইনস্টলেশন ফাইলগুলি পরিষ্কার করুন:

    del kubectl-convert.exe kubectl-convert.exe.sha256
    

এর পরের কি

1.3 - লিনাক্সে kubectl ইনস্টল এবং সেট আপ করুন

শুরু করার আগে

আপনাকে অবশ্যই একটি kubectl সংস্করণ ব্যবহার করতে হবে যা আপনার ক্লাস্টারের একটি ছোট সংস্করণের পার্থক্যের মধ্যে রয়েছে। উদাহরণস্বরূপ, একটি v1.31 ক্লায়েন্ট v1.30, v1.31, এবং v1.32 এর কন্ট্রোল প্লেনের সাথে যোগাযোগ করতে পারে। kubectl এর সর্বশেষ সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করা অপ্রত্যাশিত সমস্যাগুলি এড়াতে সাহায্য করে৷

লিনাক্সে kubectl ইনস্টল করুন

লিনাক্সে kubectl ইনস্টল করার জন্য নিম্নলিখিত পদ্ধতি বিদ্যমানঃ

লিনাক্সে কার্ল সহ kubectl বাইনারি ইনস্টল করুন

১. কমান্ড সহ সর্বশেষ রিলিজ ডাউনলোড করুন:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

২. বাইনারি যাচাই করুন (ঐচ্ছিক)

kubectl চেকসাম ফাইল ডাউনলোড করুন:

curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"

চেকসাম ফাইলের বিপরীতে kubectl বাইনারি যাচাই করুন:

echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check

বৈধ হলে, আউটপুট হবে:

kubectl: OK

চেক ব্যর্থ হলে, sha256 অশূন্য স্থিতি সহ প্রস্থান করে এবং অনুরূপ আউটপুট প্রিন্ট করে:

kubectl: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match

৩. kubectl ইনস্টল করুন

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

৪. আপনার ইনস্টল করা সংস্করণ আপ-টু-ডেট কিনা তা নিশ্চিত করতে পরীক্ষা করুন:

kubectl version --client

অথবা সংস্করণের বিস্তারিত দেখার জন্য এটি ব্যবহার করুনঃ

kubectl version --client --output=yaml    

নেটিভ প্যাকেজ ম্যানেজমেন্ট ব্যবহার করে ইনস্টল করুন

১. apt প্যাকেজ ইনডেক্স আপডেট করুন এবং Kubernetes apt রিপোযিটোরী ব্যবহার করার জন্য প্রয়োজনীয় প্যাকেজ ইনস্টল করুন:

sudo apt-get update
sudo apt-get install -y ca-certificates curl

আপনি যদি ডেবিয়ান ৯ (স্ট্রেচ) বা তার আগে ব্যবহার করেন তবে আপনাকে apt-transport-https ইনস্টল করতে হবে:

sudo apt-get install -y apt-transport-https

২. গুগল ক্লাউড পাবলিক সাইনিং কী ডাউনলোড করুন:

sudo curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

৩. কুবারনেটিস apt রিপোযিটোরী যোগ করুন:

echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

৪. নতুন রিপোযিটোরীর সাথে apt প্যাকেজ ইনডেক্স আপডেট করুন এবং kubectl ইনস্টল করুন:

sudo apt-get update
sudo apt-get install -y kubectl

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
sudo yum install -y kubectl

অন্যান্য প্যাকেজ ব্যবস্থাপনা ব্যবহার করে ইনস্টল করুন

আপনি যদি উবুন্টু বা অন্য একটি লিনাক্স ডিস্ট্রিবিউশনে থাকেন যা স্ন্যাপ প্যাকেজ ম্যানেজার সমর্থন করে, তাহলে kubectl একটি স্ন্যাপ অ্যাপ্লিকেশান হিসেবে পাওয়া যাবে।

snap install kubectl --classic
kubectl version --client

আপনি যদি লিনাক্সে থাকেন এবং হোম্ব্রু প্যাকেজ ম্যানেজার ব্যবহার করেন, তাহলে kubectl ইনস্টলেশন এর জন্য পাওয়া যাবে।

brew install kubectl
kubectl version --client

kubectl কনফিগারেশন যাচাই করুন

kubectl-এর জন্য একটি কুবারনেটিস ক্লাস্টার খুঁজে পেতে এবং অ্যাক্সেস পেতে, যার জন্য প্রয়োজন kubeconfig ফাইল, যা স্বয়ংক্রিয়ভাবে তৈরি হয় যখন আপনি একটি ক্লাস্টার তৈরি করেন kube-up.sh ব্যবহার করে অথবা সফলভাবে একটি Minikube ক্লাস্টার স্থাপন করুন। ডিফল্টরূপে, kubectl কনফিগারেশন ~/.kube/config এ অবস্থিত।

ক্লাস্টার অবস্থা পেয়ে kubectl সঠিকভাবে কনফিগার করা হয়েছে তা পরীক্ষা করুন:

kubectl cluster-info

আপনি যদি একটি URL দেখতে পান, তাহলে আপনার ক্লাস্টার অ্যাক্সেস করার জন্য kubectl সঠিকভাবে কনফিগার করা হয়েছে।

আপনি যদি নিম্নলিখিতগুলোর মতো একটি বার্তা দেখতে পান, তাহলে বুঝবেন যে kubectl সঠিকভাবে কনফিগার করা হয়নি অথবা একটি Kubernetes ক্লাস্টারের সাথে সংযোগ করতে সক্ষম নয়।

সার্ভারের সাথে সংযোগ <server-name:port> প্রত্যাখ্যান করা হয়েছিল - আপনি কি সঠিক হোস্ট বা পোর্ট উল্লেখ করেছেন?

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

যদি kubectl ক্লাস্টার-তথ্য url প্রতিক্রিয়া প্রদান করে কিন্তু আপনি আপনার ক্লাস্টার অ্যাক্সেস করতে না পারেন, এটি সঠিকভাবে কনফিগার করা হয়েছে কিনা তা পরীক্ষা করতে, ব্যবহার করুন:

kubectl cluster-info dump

'No Auth Provider Found' ত্রুটি বার্তার সমস্যা সমাধান

কুবারনেটিস 1.26-এ, kubectl নিম্নলিখিত ক্লাউড প্রদানকারীদের পরিচালিত কুবারনেটিস অফারগুলোর জন্য অন্তর্নির্মিত অথেনটিকেশন সরিয়ে দিয়েছে। এই প্রদানকারীরা ক্লাউডের-নির্দিষ্ট অথেনটিকেশন প্রদানের জন্য kubectl প্লাগইন প্রকাশ করেছে। নির্দেশাবলীর জন্য, নিম্নলিখিত প্রদানকারী ডকুমেন্টেশন পড়ুন:

(একই ত্রুটির বার্তা দেখার অন্যান্য কারণও থাকতে পারে, এই পরিবর্তনের সাথে সম্পর্কিত নয়।)

ঐচ্ছিক kubectl কনফিগারেশন এবং প্লাগই

শেল অটোকম্পিসন চালু করুন

kubectl Bash, Zsh, Fish এবং PowerShell-এর জন্য অটোকম্পিসন সমর্থন প্রদান করে, যা আপনাকে অনেক টাইপিং বাঁচাতে পারে।

নীচে Bash, Fish, এবং Zsh-এর জন্য স্বয়ংসম্পূর্ণতা সেট আপ করার পদ্ধতিগুলি রয়েছে৷

ভূমিকা

ব্যাশ-এর জন্য kubectl কমপ্লিশন স্ক্রিপ্ট kubectl completion bash কমান্ড দিয়ে তৈরি করা যেতে পারে। আপনার শেলে সমাপ্তি স্ক্রিপ্ট সোর্স করা kubectl অটোকমপ্লিসন সক্ষম করে।

যাইহোক, কমপ্লিসন স্ক্রিপ্ট ব্যাশ-কমপ্লিসন এর উপর নির্ভর করে, তার মানে হচ্ছে আপনাকে প্রথমে এই সফ্টওয়্যারটি ইনস্টল করতে হবে (আপনার ব্যাশ-কমপ্লিসন ইতিমধ্যেই ইনস্টল করা আছে কিনা তা type _init_completion চালিয়ে পরীক্ষা করতে পারেন)।

ব্যাশ-কমপ্লিসন ইনস্টল করুন

ব্যাশ-কমপ্লিসন অনেক প্যাকেজ ম্যানেজার দ্বারা প্রদান করা হয় (এখানে দেখুন)। আপনি এটিকে apt-get install bash-completion অথবা yum install bash-completion, ইত্যাদি দিয়ে ইনস্টল করতে পারেন।

উপরের কমান্ডগুলি /usr/share/bash-completion/bash_completion তৈরি করে, যা ব্যাশ-কমপ্লিসন এর প্রধান স্ক্রিপ্ট। আপনার প্যাকেজ ম্যানেজারের উপর নির্ভর করে, আপনাকে ম্যানুয়ালি এই ফাইলটি আপনার ~/.bashrc ফাইলে সোর্স করতে হবে। জানতে চাইলে, আপনার শেল পুনরায় লোড করুন এবং type_init_completion চালান। কমান্ডটি সফল হলে, আপনি ইতিমধ্যেই সেট করেছেন, অন্যথায় আপনার ~/.bashrc ফাইলে নিম্নলিখিত যোগ করুন:

source /usr/share/bash-completion/bash_completion

আপনার শেল পুনরায় লোড করুন এবং type _init_completion লিখে ব্যাশ-কমপ্লিসন সঠিকভাবে ইনস্টল করা হয়েছে কিনা তা যাচাই করুন।

kubectl অটোকমপ্লিসন চালু করুন

ব্যাশ

আপনাকে এখন নিশ্চিত করতে হবে যে kubectl সমাপ্তি স্ক্রিপ্টটি আপনার সমস্ত শেল সেশনে পাওয়া যায়। আপনি এটি করতে পারেন যা দুটি উপায় আছেঃ


echo 'source <(kubectl completion bash)' >>~/.bashrc


kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null

আপনার যদি kubectl এর জন্য একটি অ্যালিঅ্যাস থাকে তবে আপনি সেই অ্যালিঅ্যাসের সাথে কাজ করার জন্য শেল কমপ্লিসন বাড়াতে পারেনঃ

echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -o default -F __start_kubectl k' >>~/.bashrc

উভয় পন্থা সমতুল্য। আপনার শেল পুনরায় লোড করার পরে, kubectl অটোকমপ্লিসন কাজ করা উচিত। শেলের বর্তমান সেশনে ব্যাশ অটোকমপ্লিসন সক্ষম করতে, ~/.bashrc ফাইলটি উৎস করুনঃ

source ~/.bashrc

fish এর জন্য kubectl সমাপ্তি স্ক্রিপ্ট kubectl completion fish কমান্ড দিয়ে তৈরি করা যেতে পারে। আপনার শেলের মধ্যে সমাপ্তি স্ক্রিপ্ট সোর্স করা kubectl স্বয়ংক্রিয় সমাপ্তি চালু করে।

আপনার সমস্ত শেল সেশনে এটি করতে, আপনার ~/.config/fish/config.fish ফাইলে নিম্নলিখিত লাইন যুক্ত করুন:

kubectl completion fish | source

আপনার শেল পুনরায় লোড করার পরে, kubectl স্বয়ংক্রিয় সমাপ্তি কাজ করা উচিত।

Zsh-এর জন্য kubectl কমপ্লিশন স্ক্রিপ্ট kubectl completion zsh কমান্ড দিয়ে তৈরি করা যেতে পারে। আপনার শেলে সমাপ্তি স্ক্রিপ্ট সোর্স করা kubectl স্বয়ংসম্পূর্ণতা সক্ষম করে। 12

আপনার সমস্ত শেল সেশনে এটি করতে, আপনার ~/.zshrc ফাইলে নিম্নলিখিত যোগ করুন:

source <(kubectl completion zsh)

আপনার যদি kubectl-এর একটি উপনাম থাকে, kubectl স্বয়ংসম্পূর্ণতা স্বয়ংক্রিয়ভাবে এটির সাথে কাজ করবে।

আপনার শেল পুনরায় লোড করার পরে, kubectl স্বয়ংসম্পূর্ণতা কাজ করা উচিত।

যদি আপনি একটি ত্রুটি পান যেমন 2: command not found: compdef, তাহলে আপনার ~/.zshrc ফাইলের শুরুতে নিম্নলিখিত যোগ করুন:

autoload -Uz compinit
compinit

kubectl convert প্লাগইন ইনস্টল করুন

কুবারনেটিস কমান্ড-লাইন টুল kubectl এর জন্য একটি প্লাগইন, যা আপনাকে বিভিন্ন আপিআই সংস্করণ এর মধ্যে রূপান্তর করতে দেয়। এটি নতুন কুবারনেটিস রিলিজের সাথে একটি অ-বঞ্চিত আপিআই সংস্করণে স্থানান্তর করতে বিশেষভাবে সহায়ক হতে পারে। আরও তথ্যের জন্য, অপ্রচলিত apis-এ মাইগ্রেট করুন

১. কমান্ড সহ সর্বশেষ রিলিজ ডাউনলোড করুন:

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert"

২. বাইনারি যাচাই করুন (ঐচ্ছিক)

kubectl-convert চেকসাম ফাইলটি ডাউনলোড করুন:

curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl-convert.sha256"

চেকসাম ফাইলের বিপরীতে kubectl-রূপান্তর বাইনারি যাচাই করুন:

echo "$(cat kubectl-convert.sha256) kubectl-convert" | sha256sum --check

বৈধ হলে, আউটপুট হল:

kubectl-convert: OK

চেক ব্যর্থ হলে, sha256 অশূন্য স্থিতি সহ প্রস্থান করে এবং অনুরূপ আউটপুট প্রিন্ট করে:

kubectl-convert: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match

৩. kubectl-convert ইনস্টল করুন

sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert

৪. প্লাগইন সফলভাবে ইনস্টল করা হয়েছে যাচাই করুন

kubectl convert --help

আপনি যদি একটি ত্রুটি দেখতে না পান, এর মানে হল প্লাগইনটি সফলভাবে ইনস্টল করা হয়েছে।

৫. প্লাগইন ইনস্টল করার পরে, ইনস্টলেশন ফাইলগুলি পরিষ্কার করুন:

rm kubectl-convert kubectl-convert.sha256

এর পরের কি

2 - ক্লাস্টার পরিচালনা করুন

একটি ক্লাস্টার পরিচালনার সাধারণ কাজগুলি শিখুন।

2.1 - সার্টিফিকেট ম্যানুয়ালি তৈরি করুন

ক্লায়েন্ট সার্টিফিকেট অথেনটিকেশন ব্যবহার করার সময়, আপনি easyrsa, openssl বা cfssl এর মাধ্যমে ম্যানুয়ালি সার্টিফিকেট তৈরি করতে পারেন।

easyrsa

easyrsa আপনার ক্লাস্টারের জন্য ম্যানুয়ালি সার্টিফিকেট তৈরি করতে পারে।

  1. প্যাচ করা ভার্সন easyrsa3 ডাউনলোড, আনপ্যাক এবং ইনিশিয়ালাইজ করুন।

    curl -LO https://dl.k8s.io/easy-rsa/easy-rsa.tar.gz
    tar xzf easy-rsa.tar.gz
    cd easy-rsa-master/easyrsa3
    ./easyrsa init-pki
    
  2. একটি নতুন সার্টিফিকেট অথরিটি (CA) তৈরি করুন। --batch স্বয়ংক্রিয় মোড সেট করে; --req-cn CA এর নতুন রুট সার্টিফিকেটের জন্য কমন নেম (CN) নির্দিষ্ট করে।

    ./easyrsa --batch "--req-cn=${MASTER_IP}@`date +%s`" build-ca nopass
    
  3. সার্ভার সার্টিফিকেট এবং key তৈরি করুন।

    আর্গুমেন্ট --subject-alt-name সম্ভাব্য IP এবং DNS নাম সেট করে যা দিয়ে API সার্ভার অ্যাক্সেস করা হবে। MASTER_CLUSTER_IP সাধারণত প্রথম IP যা সার্ভিস CIDR থেকে নির্দিষ্ট করা হয় --service-cluster-ip-range আর্গুমেন্ট API সার্ভার এবং কন্ট্রোলার ম্যানেজার কম্পোনেন্টের জন্য। আর্গুমেন্ট --days ব্যবহার করা হয় কত দিন পরে সার্টিফিকেটের মেয়াদ শেষ হবে তা সেট করতে। নীচের উদাহরণটি এটি নিশ্চিত করে যে আপনি ডিফল্ট DNS ডোমেইন নাম হিসাবে cluster.local ব্যবহার করছেন।

    ./easyrsa --subject-alt-name="IP:${MASTER_IP},"\
    "IP:${MASTER_CLUSTER_IP},"\
    "DNS:kubernetes,"\
    "DNS:kubernetes.default,"\
    "DNS:kubernetes.default.svc,"\
    "DNS:kubernetes.default.svc.cluster,"\
    "DNS:kubernetes.default.svc.cluster.local" \
    --days=10000 \
    build-server-full server nopass
    
  4. pki/ca.crt, pki/issued/server.crt, এবং pki/private/server.key আপনার ডিরেক্টরিতে কপি করুন।

  5. API সার্ভার শুরু করার প্যারামিটারগুলিতে নিম্নলিখিত প্যারামিটারগুলি পূরণ করুন এবং যোগ করুন:

    --client-ca-file=/yourdirectory/ca.crt
    --tls-cert-file=/yourdirectory/server.crt
    --tls-private-key-file=/yourdirectory/server.key
    

openssl

openssl আপনার ক্লাস্টারের জন্য ম্যানুয়ালি সার্টিফিকেট তৈরি করতে পারে।

  1. 2048bit সহ একটি ca.key তৈরি করুন:

    openssl genrsa -out ca.key 2048
    
  2. ca.key অনুযায়ী একটি ca.crt তৈরি করুন (সার্টিফিকেট কার্যকরী সময় সেট করতে -days ব্যবহার করুন):

    openssl req -x509 -new -nodes -key ca.key -subj "/CN=${MASTER_IP}" -days 10000 -out ca.crt
    
  3. 2048bit সহ একটি server.key তৈরি করুন:

    openssl genrsa -out server.key 2048
    
  4. একটি কনফিগারেশন ফাইল তৈরি করুন সার্টিফিকেট সাইনিং রিকোয়েস্ট (CSR) তৈরি করার জন্য।

    অবশ্যই অ্যাঙ্গেল ব্রাকেটস দ্বারা চিহ্নিত মানগুলি (যেমন <MASTER_IP>) বাস্তব মানগুলির সাথে প্রতিস্থাপন করুন একটি ফাইলে সংরক্ষণ করার আগে (যেমন csr.conf)। মনে রাখবেন যে MASTER_CLUSTER_IP এর মান হল API সার্ভারের জন্য সার্ভিস ক্লাস্টার IP যা পূর্ববর্তী সাবসেকশণে বর্ণিত। নীচের উদাহরণটি এটি নিশ্চিত করে যে আপনি ডিফল্ট DNS ডোমেইন নাম হিসাবে cluster.local ব্যবহার করছেন।

    [ req ]
    default_bits = 2048
    prompt = no
    default_md = sha256
    req_extensions = req_ext
    distinguished_name = dn
    
    [ dn ]
    C = <country>
    ST = <state>
    L = <city>
    O = <organization>
    OU = <organization unit>
    CN = <MASTER_IP>
    
    [ req_ext ]
    subjectAltName = @alt_names
    
    [ alt_names ]
    DNS.1 = kubernetes
    DNS.2 = kubernetes.default
    DNS.3 = kubernetes.default.svc
    DNS.4 = kubernetes.default.svc.cluster
    DNS.5 = kubernetes.default.svc.cluster.local
    IP.1 = <MASTER_IP>
    IP.2 = <MASTER_CLUSTER_IP>
    
    [ v3_ext ]
    authorityKeyIdentifier=keyid,issuer:always
    basicConstraints=CA:FALSE
    keyUsage=keyEncipherment,dataEncipherment
    extendedKeyUsage=serverAuth,clientAuth
    subjectAltName=@alt_names
    
  5. কনফিগারেশন ফাইলের ভিত্তিতে সার্টিফিকেট সাইনিং রিকোয়েস্ট তৈরি করুন:

    openssl req -new -key server.key -out server.csr -config csr.conf
    
  6. ca.key, ca.crt এবং server.csr ব্যবহার করে সার্ভার সার্টিফিকেট তৈরি করুন:

    openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key \
        -CAcreateserial -out server.crt -days 10000 \
        -extensions v3_ext -extfile csr.conf -sha256
    
  7. সার্টিফিকেট সাইনিং রিকোয়েস্ট দেখুন:

    openssl req  -noout -text -in ./server.csr
    
  8. সার্টিফিকেট দেখুন:

    openssl x509  -noout -text -in ./server.crt
    

অবশেষে, API সার্ভার শুরু করার প্যারামিটারগুলিতে একই প্যারামিটারগুলি যোগ করুন।

cfssl

cfssl সার্টিফিকেট উত্পাদনের জন্য আরেকটি টুল।

  1. নীচের মতো কমান্ড লাইন টুলগুলি ডাউনলোড, আনপ্যাক এবং প্রস্তুত করুন।

    মনে রাখবেন যে আপনার হার্ডওয়্যার আর্কিটেকচার এবং আপনি যে cfssl ভার্সনটি ব্যবহার করছেন তার উপর ভিত্তি করে নমুনা কমান্ডগুলি এডাপ্ট করতে হতে পারে।

    curl -L https://github.com/cloudflare/cfssl/releases/download/v1.5.0/cfssl_1.5.0_linux_amd64 -o cfssl
    chmod +x cfssl
    curl -L https://github.com/cloudflare/cfssl/releases/download/v1.5.0/cfssljson_1.5.0_linux_amd64 -o cfssljson
    chmod +x cfssljson
    curl -L https://github.com/cloudflare/cfssl/releases/download/v1.5.0/cfssl-certinfo_1.5.0_linux_amd64 -o cfssl-certinfo
    chmod +x cfssl-certinfo
    
  2. আর্টিফ্যাক্টগুলি ধারণ করার জন্য একটি ডিরেক্টরি তৈরি করুন এবং cfssl ইনিশিয়ালাইজ করুন:

    mkdir cert
    cd cert
    ../cfssl print-defaults config > config.json
    ../cfssl print-defaults csr > csr.json
    
  3. CA ফাইল তৈরি করার জন্য একটি JSON কনফিগ ফাইল তৈরি করুন, উদাহরণস্বরূপ, ca-config.json:

    {
      "signing": {
        "default": {
          "expiry": "8760h"
        },
        "profiles": {
          "kubernetes": {
            "usages": [
              "signing",
              "key encipherment",
              "server auth",
              "client auth"
            ],
            "expiry": "8760h"
          }
        }
      }
    }
    
  4. CA সার্টিফিকেট সাইনিং রিকোয়েস্ট (CSR) এর জন্য একটি JSON কনফিগ ফাইল তৈরি করুন, উদাহরণস্বরূপ, ca-csr.json। অবশ্যই অ্যাঙ্গেল ব্রাকেটস দ্বারা চিহ্নিত মানগুলি বাস্তব মানগুলির সাথে প্রতিস্থাপন করুন।

    {
      "CN": "kubernetes",
      "key": {
        "algo": "rsa",
        "size": 2048
      },
      "names":[{
        "C": "<country>",
        "ST": "<state>",
        "L": "<city>",
        "O": "<organization>",
        "OU": "<organization unit>"
      }]
    }
    
  5. CA key (ca-key.pem) এবং সার্টিফিকেট (`ca.pem) তৈরি করুন:

    ../cfssl gencert -initca ca-csr.json | ../cfssljson -bare ca
    
  6. API সার্ভারের জন্য key এবং সার্টিফিকেট তৈরি করার জন্য একটি JSON কনফিগ ফাইল তৈরি করুন, উদাহরণস্বরূপ, server-csr.json। অবশ্যই অ্যাঙ্গেল ব্রাকেটসের মানগুলি বাস্তব মানগুলির সাথে রিপ্লেস করুন। <MASTER_CLUSTER_IP> হল সার্ভিস ক্লাস্টার পূর্ববর্তী সাবসেকশনে বর্ণিত হিসাবে API সার্ভারের জন্য IP। নীচের উদাহরণটি এটি নিশ্চিত করে যে আপনি ডিফল্ট DNS ডোমেইন নাম হিসাবে cluster.local ব্যবহার করছেন।

    {
      "CN": "kubernetes",
      "hosts": [
        "127.0.0.1",
        "<MASTER_IP>",
        "<MASTER_CLUSTER_IP>",
        "kubernetes",
        "kubernetes.default",
        "kubernetes.default.svc",
        "kubernetes.default.svc.cluster",
        "kubernetes.default.svc.cluster.local"
      ],
      "key": {
        "algo": "rsa",
        "size": 2048
      },
      "names": [{
        "C": "<country>",
        "ST": "<state>",
        "L": "<city>",
        "O": "<organization>",
        "OU": "<organization unit>"
      }]
    }
    
  7. API সার্ভারের জন্য key এবং সার্টিফিকেট তৈরি করুন, যা ডিফল্টভাবে server-key.pem এবং server.pem ফাইলে যথাক্রমে সংরক্ষিত হয়:

    ../cfssl gencert -ca=ca.pem -ca-key=ca-key.pem \
         --config=ca-config.json -profile=kubernetes \
         server-csr.json | ../cfssljson -bare server
    

স্ব-স্বাক্ষরিত CA সার্টিফিকেট বিতরণ

একটি ক্লায়েন্ট নোড একটি স্ব-স্বাক্ষরিত CA সার্টিফিকেটকে বৈধ হিসাবে স্বীকার করতে অস্বীকার করতে পারে। একটি নন-প্রোডাকশন ডিপ্লয়মেন্ট, অথবা একটি ডিপ্লয়মেন্ট যা একটি কোম্পানি ফায়ারওয়ালের পিছনে চলে, আপনি সমস্ত ক্লায়েন্টের কাছে একটি স্ব-স্বাক্ষরিত CA সার্টিফিকেট বিতরণ এবং বৈধ সার্টিফিকেটের জন্য স্থানীয় তালিকা রিফ্রেশ করতে পারেন।

প্রতিটি ক্লায়েন্টে, নিম্নলিখিত অপারেশনগুলি সম্পাদন করুন:

sudo cp ca.crt /usr/local/share/ca-certificates/kubernetes.crt
sudo update-ca-certificates
Updating certificates in /etc/ssl/certs...
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....
done.

সার্টিফিকেট API

আপনি certificates.k8s.io API ব্যবহার করে x509 সার্টিফিকেট প্রদান করতে পারেন অথেন্টিকেশনের জন্য যেমন নথিভুক্ত একটি ক্লাস্টারে TLS পরিচালনা করা টাস্কের পৃষ্ঠায়।