زیرساخت Kubernetes را با RKE آماده کنید

RKE، موتور Rancher Kubernetes جنبه، CNCF این یک زیرساخت معتبر Kubernetes است. مخصوصا دامدار کوبرنتیس می توان آن را ترجیح داد زیرا می تواند با سیستم های مدیریتی یکپارچه کار کند.
راه اندازی Kubectl
Kubectl یک ابزار cli است که برای اتصال و مدیریت محیط Kubernetes شما لازم است. نصب بسیار ساده است و به شرح زیر است.
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" -k
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
با این دستورات اکنون می توانید از دستور kubectl استفاده کنید. شما به راحتی می توانید این ابزار را در یک محیط غیر کوبرنتس نصب کنید و kubeconfig را برای اتصال و مدیریت یک محیط کوبرنت از راه دور پیکربندی کنید.
برای بررسی نصب دستور زیر را اجرا کنید:
kubectl version --client --output=json
خروجی این دستور شامل عباراتی مانند زیر است.
{
"clientVersion": {
"major": "1",
"minor": "27",
"gitVersion": "v1.27.1",
"gitCommit": "4c9411232e10168d7b050c49a1b59f6df9d7ea4b",
"gitTreeState": "clean",
"buildDate": "2023-04-14T13:21:19Z",
"goVersion": "go1.20.3",
"compiler": "gc",
"platform": "linux/amd64"
},
"kustomizeVersion": "v5.0.1"
}
نصب RKE (نه پیکربندی)
همانطور که در عنوان اشاره کردیم، RKE بسته ای است که محیط “Rancher Kubernetes Engine” را آماده می کند. در مقاله بعدی، یک خوشه kubernetes با استفاده از یک فایل پیکربندی نمونه در این موضوع راه اندازی و اجرا می شود.
برای نصب بسته RKE مربوطه می توان از دستورات زیر استفاده کرد.
curl -fsSL -o rke_linux-amd64 -k https://github.com/rancher/rke/releases/download/v1.4.3/rke_linux-amd64
chmod +x rke_linux-amd64
sudo mv rke_linux-amd64 /usr/local/bin/rke
با این دستور خط فرمان rke اکنون در دسترس خواهد بود. برای یادگیری اطلاعات نسخه می توان از دستور زیر استفاده کرد.
rke --version
خروجی دستور مربوطه به صورت زیر است.
rke version v1.4.3
نصب پکیج منیجر Helm
Helm پر استفاده ترین مدیر بسته برای محیط های Kubernetes است. آپلودها را می توان با Helm Charts انجام داد. برای نصب می توان از دستور زیر به تنهایی استفاده کرد. این دستور یک اسکریپت را دانلود کرده و این اسکریپت را اجرا می کند.
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 -k
chmod 700 get_helm.sh
sudo bash get_helm.sh
همچنین اگر می توان اسکریپت را به جای دانلود به صورت دستی انجام داد. اگر دستور بالا انجام شود، دیگر نیازی به انجام نیست.
wget https://get.helm.sh/helm-v3.11.2-linux-amd64.tar.gz --no-check-certificate
tar xvf helm-v3.11.2-linux-amd64.tar.gz
cd linux-amd64/
sudo mv helm /usr/local/bin/
sudo chmod +x /usr/local/bin/helm
بعد از این دو گزینه اپلیکیشن helm cli نصب می شود. برای کنترل نسخه می توان از دستور زیر استفاده کرد:
helm version
خروجی این دستور به صورت زیر است.
version.BuildInfo{Version:"v3.11.3", GitCommit:"323249351482b3bbfc9f5004f65d400aa70f9ae7", GitTreeState:"clean", GoVersion:"go1.20.3"}
نصب داکر
اگر می خواهید از Docker در زیرساخت Kubernetes استفاده کنید، می توانید به صورت زیر راه اندازی کنید.
curl https://releases.rancher.com/install-docker/20.10.sh -k | sudo bash -
sudo systemctl enable --now docker
دستور زیر نیز می تواند برای کنترل نسخه پس از نصب استفاده شود:
sudo docker version --format '{{.Server.Version}}'
خروجی آن به شرح زیر است:
20.10.23
به ویژه، گره های RKE باید کاربران RKE باشند تا بتوانند با یکدیگر صحبت کنند. برای ایجاد این کاربر می توان از دستوراتی مانند زیر استفاده کرد.
sudo useradd -m rke
sudo passwd rke
sudo usermod -s /bin/bash rke
sudo echo "rke ALL=(ALL:ALL) ALL" > /etc/sudoers.d/rke
sudo usermod -aG docker rke
با این دستورات یوزر و رمز عبور rke مشخص می شود و هنگام ورود محیط bash باز می شود. علاوه بر این، ساخت کاربر rke با اقتدار sudo می تواند در موقعیت های مختلف مفید باشد.
اول از همه، دستور زیر را می توان برای باز کردن گزینه های مختلف modprobe استفاده کرد.
for module in br_netfilter ip6_udp_tunnel ip_set ip_set_hash_ip ip_set_hash_net iptable_filter iptable_nat iptable_mangle iptable_raw nf_conntrack_netlink nf_conntrack nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat nf_nat_ipv4 nf_nat_masquerade_ipv4 nfnetlink udp_tunnel veth vxlan x_tables xt_addrtype xt_conntrack xt_comment xt_mark xt_multiport xt_nat xt_recent xt_set xt_statistic xt_tcpudp; do if ! lsmod | grep -q $module; then echo "module $module is not present"; sudo modprobe $module; fi; done
توصیه می شود پس از انجام این تنظیمات، SWAP را خاموش کنید. برای این کار، توصیه می شود با قرار دادن هش “#” در ابتدا، خط را با swap در فایل /etc/fstab ببندید.
#/swap.img none swap sw 0 0
پس از این مرحله، خاموش کردن swap با دستور زیر کارآمد خواهد بود.
sudo swapoff -a
جدا از این موارد، درست است که 3 خط زیر را در فایل /etc/sysctl.d/99-kubernetes.conf مربوط به تنظیمات شبکه ذخیره کنید.
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
پس از ایجاد این فایل، دستور زیر اجرا می شود.
sudo sysctl --system
با این مراحل، زیرساختی آماده می شود تا سیستم عامل بتواند به عنوان یک گره در یک خوشه Kubernetes عمل کند. راه اندازی مجدد دستگاه می تواند به خصوص برای کاربر rke خوب باشد تا با ساختار ظرف ادغام شود. اما می تواند همانطور که هست کار کند. در مقاله بعدی، خوشه با تنظیمات پیکربندی راه اندازی و اجرا می شود.