15+ دستورات Crictl با خروجی | اشکال زدایی گره های Kubernetes

انگیزه: چرا باید Crictl را یاد بگیریم؟
- زمان اجرا کانتینر بومی Kubernetes است
containerd
بشر -
Crictl
(رابط کاربری خط فرمان خطوط خطی کانتینر) یک ابزار CLI برای تعامل با کانتینر زمان در خوشه های Kubernetes است. - برای اشکال زدایی ، برای حل مشکل ، برای بازرسی از غلاف ها ، ظروف موجود در گره K8S Worker ، یادگیری مفید است:
کانتین
کانتین یک کانتینر با سطح استاندارد و استاندارد صنعت است که چرخه حیات ظروف را مدیریت می کند. این یک پروژه منبع باز تحت بنیاد محاسبات بومی Cloud (CNCF) است و عملکردهای اساسی مورد نیاز برای سیستم های ارکستراسیون کانتینر را ارائه می دهد ، از جمله:
- مدیریت تصویر (کشیدن و فشار تصاویر کانتینر).
- اجرای کانتینر (شروع ، توقف و مدیریت ظروف در حال اجرا).
- ذخیره سازی (رسیدگی به سیستم های فایل کانتینر).
- شبکه سازی (ارائه پشتیبانی شبکه برای ظروف).
چگونه می توان روی گره Kubernetes اجرا کرد؟
user@k8s:$ crictl
# to check before installs, it can be installed before
user@k8s:$ VERSION="v1.31.1"
# desired version
user@k8s:$ wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz
user@k8s:$ sudo tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin
user@k8s:$ rm -f crictl-$VERSION-linux-amd64.tar.gz
user@k8s:$ containerd
# to check whether containerd runs
user@k8s:$ sudo nano /etc/crictl.yaml
# on K8s node
# copy followings in it:
runtime-endpoint: unix:///var/run/containerd/containerd.sock
image-endpoint: unix:///var/run/containerd/containerd.sock
timeout: 10
debug: true
دستورات کرچل
دستورات مهم به شرح زیر ذکر شده است:
اطلاعات کریکل
- اطلاعات زمان اجرا را بررسی می کند.
user@k8s:$ crictl info
{
"status": {
....
}
crictl ps
- این لیست ظروف در حال اجرا است.
user@k8s:$ crictl ps
user@k8s:$ crictl ps -a
# shows all containers, including stopped ones
CONTAINER IMAGE CREATE STATE NAME ATTEMPT POD ID POD
603c2 c736ea 2mins ago Running kube-proxy 2 5237 kube-proxy-6d
user@k8s:$ crictl ps --name
# filters by container name
user@k8s:$ crictl ps --pod
# filters containers by pod
غلافهای کریکت
user@k8s:$ crictl pods
user@k8s:$ crictl pods -a
# shows all pods, including exited ones
user@k8s:$ crictl pods --name
# filters pods by name
user@k8s:$ crictl pods --state
# filters pods by state (e.g., `READY`, `NOTREADY`)
تصاویر کرچل
- تصاویر موجود را لیست می کند
user@k8s:$ crictl images
IMAGE TAG IMAGE ID SIZE
docker.io/calico/cni v3.29.1 9dee260ef7f59 93.4MB
docker.io/calico/node v3.29.1 8065b798a4d67 86.6MB
docker.io/library/busybox latest 517b897a6a831 2.17MB
user@k8s:$ crictl images -q
# shows only image IDs
sha256:9dee260ef7f591241
sha256:8065b798a4d67147
crictl بازرسی
- این یک ظرف خاص را بازرسی می کند.
user@k8s:$ crictl inspect
user@k8s:$ crictl inspect --output json
user@k8s:$ crictl inspect --output json 84a
# outputs in JSON format
Crictl بازرسی
- این یک غلاف خاص را بازرسی می کند.
user@k8s:$ crictl inspectp
user@k8s:$ crictl inspectp --output json
# outputs in JSON format
بازرسی کریکل
user@k8s:$ crictl inspecti
# outputs in JSON format
crictl ایجاد
- ابتدا فایل پیکربندی POD را برای ایجاد ماسهبازی POD ایجاد کنید.
user@k8s:$ cat sandbox-config.json
{
"metadata": {
"name": "nginx-sandbox",
"namespace": "default",
"attempt": 1,
"uid": "hdiabcd83djaidwnduwk28bcs"
},
"linux": {
}
}
- سپس ، ماسه ماسه ای POD ایجاد کنید.
user@k8s:$ crictl runp sandbox-config.json
9dd36b72d2fa3d4af8ba98d5f7812577fc175a37b10dc82
user@k8s:$ crictl pods
PODSANDBOXID CREATED STATE NAME NAMESPACE ATTEMPT
9dd36b 1min ago READY nginx-sandbox default 1
user@k8s:$ crictl inspectp 9dd3
# displays information about the pod and the pod sandbox pause container.
- سوم ، برای ایجاد کانتینر فایل پیکربندی کانتینر را ایجاد کنید
user@k8s:$ cat container-config.json
{
"metadata": {
"name": "busybox"
},
"image":{
"image": "busybox"
},
"command": [
"top"
],
"linux": {
}
}
- سپس یک ظرف را در یک غلاف ایجاد کنید
user@k8s:$ crictl create 9dd3 container-config.json sandbox-config.json
6a3850bb7ed37f2acaaeaee07d2ba143ee4cea7e3
user@k8s:$ crictl ps -a
CONTAINERID IMAGE CREATED STATE NAME ATTEMPT
6a385 busybox 2 mins ago CREATED busybox 0
شروع کریتل
user@k8s:$ crictl start 6a3850bb7ed37f2acaaeaee07d2ba143ee4cea7e3
user@k8s:$ crictl ps
CONTAINERID IMAGE CREATED STATE NAME ATTEMPT
0a2c7613 busybox 1 min ago RUNNING busybox 0
user@k8s:$ crictl inspect 6a385
# show detailed information about the container
توقف کریکل
user@k8s:$ crictl stop
user@k8s:$ crictl stop --timeout 30
# stops container with a timeout in seconds
user@k8s:$ crictl stop 6a3
DEBU[0000] get runtime connection
6a3
crictl rm
user@k8s:$ crictl rm
# container removed
user@k8s:$ crictl rm 6a3
DEBU[0000] get runtime connection
6a3
کشش کریک
- تصویری را از یک رجیستری بیرون می کشد
user@k8s:$ crictl pull
user@k8s:$ crictl pull :
# pulls a specific tag of an image
user@k8s:$ crictl pull busybox
Image is up to date for sha256:517b897a6a8312ce202a85c
crictl rmi
user@k8s:$ crictl rmi
user@k8s:$ crictl rmi
# removes image by name instead of ID
user@k8s:$ crictl rmi 517
DEBU[0000] get image connection
DEBU[0000] User specified image to be removed: 517
Deleted: docker.io/library/busybox:latest
توقف کریکل
- یک غلاف و ظروف آن را متوقف می کند
user@k8s:$ crictl stopp
user@k8s:$ crictl stopp 9d7
DEBU[0000] get runtime connection
Stopped sandbox 9d7
crictl rmp
user@k8s:$ crictl rmp
user@k8s:$ Removed sandbox b00
DEBU[0000] get runtime connection
Removed sandbox b00
سیاهههای سیاه
user@k8s:$ crictl logs
user@k8s:$ crictl logs -f
# follows logs in real-time
user@k8s:$ crictl logs --tail 10
# shows last 10 log lines
آمار کریکت
- آمار کانتینر را نشان می دهد
user@k8s:$ crictl stats
CONTAINER CPU % MEM DISK INODES
0a2c761303163f 0.00 983kB 16.38kB 6
user@k8s:$ crictl stats
# shows stats for a specific container
کریکل اعدام
- این فرمان را در داخل یک ظرف اجرا می کند
user@k8s:$ crictl exec <command>
user@k8s:$ crictl exec -it <command>
# interactive mode with a TTY
user@k8s:$ crictl exec -i -t 0a2c ls
bin dev etc home proc root sys tmp usr var
پایان
دستورات Crictl CLI در حالی که اشکال زدایی در گره های K8S قابل توجه است. Mastering Commands کنترل بیشتری بر عملیات و عیب یابی فراهم می کند.
اگر این آموزش را جالب دیدید ، دوست دارم نظرات شما را در نظرات پست وبلاگ بشنوم. احساس راحتی کنید که واکنش های خود را به اشتراک بگذارید یا نظر خود را ترک کنید. من واقعاً برای ورودی و درگیری شما ارزش قائل هستم
برای پست های دیگر 👉 https://dev.to/omerberatsezer
برای نکات ، آموزش ها ، آزمایشگاه های دستی برای AWS ، Kubernetes ، Docker ، Linux ، DevOps ، Ansible ، Learning Machine ، AI تولیدی دنبال کنید.
https://github.com/omerbsezer/
https://www.linkedin.com/in/omerberatsezer/