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

শুরু করার আগে

আপনাকে অবশ্যই একটি kubectl সংস্করণ ব্যবহার করতে হবে যা আপনার ক্লাস্টারের একটি ছোট সংস্করণের পার্থক্যের মধ্যে রয়েছে। উদাহরণস্বরূপ, একটি v1.30 ক্লায়েন্ট v1.29, v1.30, এবং v1.31 এর কন্ট্রোল প্লেনের সাথে যোগাযোগ করতে পারে। 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

এর পরের কি

সর্বশেষ পরিবর্তিত May 11, 2024 at 8:51 PM PST: Use skew shortcode instead of deprecated param shortcode (e12802ecf9)