برنامه نویسی

40 Days Of Kubernetes (22/40)

Summarize this content to 400 words in Persian Lang

روز 22/40

لینک ویدیو@piyushsachdeva مخزن گیتمن Git Repo

ما نگاه می کنیم authorization، kubeconfig و برخی مفاهیم دیگردر واقع وقتی فرمان را اجرا می کنید kubectl get pods، قبل از اینکه به نتیجه برسید، احراز هویت می شوید و بررسی می کنید که آیا مجاز هستید و اجازه اجرای این دستور را در یک kubernetes خوشه.

از آنجایی که در پس‌زمینه، برخی از داده‌ها به خوشه ارسال می‌شوند، شما مجاز به اجرای دستورات در یک خوشه هستید یا نیستید.ما این گزینه ها را با یک فایل کانفیگ به نام ارسال می کنیم kubeconfig.

دستور واقعی به این صورت است:

root@localhost:~# kubectl get nodes –kubeconfig .kube/config
NAME STATUS ROLES AGE VERSION
lucky-luke-control-plane Ready control-plane 22d v1.30.0
lucky-luke-worker Ready 22d v1.30.0
lucky-luke-worker2 Ready 22d v1.30.0

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جزئیات در kubeconfig فایل شامل:

گواهی-مرجع-داده
سرور
زمینه ها
کلاینت-کلید-داده و غیره. را context چیزی نیست جز ترکیبی از user و cluster.

(عکس از ویدیو)


contexts:
– context:
cluster: kind-lucky-luke
user: kind-lucky-luke
name: kind-lucky-luke

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

احراز هویت چیست و مجوز چیست

(عکس از ویدیو)

ABAC، کنترل دسترسی مبتنی بر ویژگی، یک پارادایم کنترل دسترسی را تعریف می کند که به موجب آن حقوق دسترسی از طریق استفاده از سیاست هایی که ویژگی ها را با هم ترکیب می کنند به کاربران اعطا می شود.

RBAC، کنترل دسترسی مبتنی بر نقش، روشی برای تنظیم دسترسی به رایانه یا منابع شبکه بر اساس نقش تک تک کاربران در سازمان شما است. منبع

گره مجوز یک حالت مجوز با هدف ویژه است که به طور خاص درخواست های API ارائه شده توسط kubelets.source را مجاز می کند.

آ وب هوک یک پاسخ تماس HTTP است: یک HTTP POST که زمانی اتفاق می افتد که اتفاقی می افتد. یک اعلان رویداد ساده از طریق HTTP POST. یک برنامه وب که WebHooks را پیاده‌سازی می‌کند، هنگامی که موارد خاصی اتفاق می‌افتد، پیامی را به URL ارسال می‌کند.وقتی مشخص شد، حالت Webhook باعث می شود که Kubernetes در هنگام تعیین user privileges.source از یک سرویس REST خارج پرس و جو کند

همانطور که ما از a استفاده می کنیم kind خوشه، ما نمی توانیم به گره خود ssh کنیم، زیرا یک ظرف داکر است. بنابراین ما می توانیم آن را اداره کنیم exec فرمان

root@localhost:~# docker ps | grep control-plane
f791fa85c269 kindest/node:v1.30.0 “/usr/local/bin/entr…” 3 weeks ago Up 11 hours 0.0.0.0:30001->30001/tcp, 127.0.0.1:39283->6443/tcp lucky-luke-control-plane
root@localhost:~# docker exec -it lucky-luke-control-plane bash
root@lucky-luke-control-plane:/# cd /etc/kubernetes/manifests/
root@lucky-luke-control-plane:/etc/kubernetes/manifests# ls -l
total 16
-rw——- 1 root root 2418 Jul 23 06:26 etcd.yaml
-rw——- 1 root root 3896 Jul 23 06:26 kube-apiserver.yaml
-rw——- 1 root root 3434 Jul 23 06:26 kube-controller-manager.yaml
-rw——- 1 root root 1463 Jul 23 06:26 kube-scheduler.yaml

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اگر ببینیم kube-apiserver.yaml فایل، می‌توانیم گزینه‌های زیادی را ببینیم که برای شروع فرمان سرویس عبور کرده‌اند، مانند:


spec:
containers:
– command:
– kube-apiserver
– –advertise-address=172.19.0.4
– –allow-privileged=true
– –authorization-mode=Node,RBAC

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

را authorization-mode است Node و RBAC.توجه داشته باشید پیش فرض به AlwaysAllow اگر –authorization-config استفاده نمی شود. در اینجا برای اطلاعات بیشتر در مورد گزینه های دیگر.

دایرکتوری پیش فرض همه گواهی که توسط kube-apiserver است:

root@lucky-luke-control-plane:~# ls -l /etc/kubernetes/pki/
total 60
-rw-r–r– 1 root root 1123 Jul 1 16:16 apiserver-etcd-client.crt
-rw——- 1 root root 1675 Jul 1 16:16 apiserver-etcd-client.key
-rw-r–r– 1 root root 1176 Jul 1 16:16 apiserver-kubelet-client.crt
-rw——- 1 root root 1679 Jul 1 16:16 apiserver-kubelet-client.key
-rw-r–r– 1 root root 1334 Jul 23 06:26 apiserver.crt
-rw——- 1 root root 1675 Jul 23 06:26 apiserver.key
-rw-r–r– 1 root root 1107 Jul 1 16:16 ca.crt
-rw——- 1 root root 1675 Jul 1 16:16 ca.key
drwxr-xr-x 2 root root 4096 Jul 1 16:16 etcd
-rw-r–r– 1 root root 1123 Jul 1 16:16 front-proxy-ca.crt
-rw——- 1 root root 1679 Jul 1 16:16 front-proxy-ca.key
-rw-r–r– 1 root root 1119 Jul 1 16:16 front-proxy-client.crt
-rw——- 1 root root 1675 Jul 1 16:16 front-proxy-client.key
-rw——- 1 root root 1679 Jul 1 16:16 sa.key
-rw——- 1 root root 451 Jul 1 16:16 sa.pub

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

چندین جفت گواهی و کلید برای وجود دارد apiserver، زیرا گاهی به عنوان یک سرور و گاهی مانند یک کلاینت عمل می کند.

روز 22/40

لینک ویدیو
@piyushsachdeva
مخزن گیت
من Git Repo

ما نگاه می کنیم authorization، kubeconfig و برخی مفاهیم دیگر
در واقع وقتی فرمان را اجرا می کنید kubectl get pods، قبل از اینکه به نتیجه برسید، احراز هویت می شوید و بررسی می کنید که آیا مجاز هستید و اجازه اجرای این دستور را در یک kubernetes خوشه.

از آنجایی که در پس‌زمینه، برخی از داده‌ها به خوشه ارسال می‌شوند، شما مجاز به اجرای دستورات در یک خوشه هستید یا نیستید.
ما این گزینه ها را با یک فایل کانفیگ به نام ارسال می کنیم kubeconfig.

دستور واقعی به این صورت است:

root@localhost:~# kubectl get nodes --kubeconfig .kube/config
NAME                       STATUS   ROLES           AGE   VERSION
lucky-luke-control-plane   Ready    control-plane   22d   v1.30.0
lucky-luke-worker          Ready              22d   v1.30.0
lucky-luke-worker2         Ready              22d   v1.30.0
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

جزئیات در kubeconfig فایل شامل:

  • گواهی-مرجع-داده
  • سرور
  • زمینه ها
  • کلاینت-کلید-داده و غیره. را context چیزی نیست جز ترکیبی از user و cluster.
    توضیحات تصویر
    (عکس از ویدیو)
...
contexts:
- context:
    cluster: kind-lucky-luke
    user: kind-lucky-luke
  name: kind-lucky-luke
...
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

احراز هویت چیست و مجوز چیست

توضیحات تصویر
(عکس از ویدیو)

ABAC، کنترل دسترسی مبتنی بر ویژگی، یک پارادایم کنترل دسترسی را تعریف می کند که به موجب آن حقوق دسترسی از طریق استفاده از سیاست هایی که ویژگی ها را با هم ترکیب می کنند به کاربران اعطا می شود.

RBAC، کنترل دسترسی مبتنی بر نقش، روشی برای تنظیم دسترسی به رایانه یا منابع شبکه بر اساس نقش تک تک کاربران در سازمان شما است. منبع

گره مجوز یک حالت مجوز با هدف ویژه است که به طور خاص درخواست های API ارائه شده توسط kubelets.source را مجاز می کند.

آ وب هوک یک پاسخ تماس HTTP است: یک HTTP POST که زمانی اتفاق می افتد که اتفاقی می افتد. یک اعلان رویداد ساده از طریق HTTP POST. یک برنامه وب که WebHooks را پیاده‌سازی می‌کند، هنگامی که موارد خاصی اتفاق می‌افتد، پیامی را به URL ارسال می‌کند.
وقتی مشخص شد، حالت Webhook باعث می شود که Kubernetes در هنگام تعیین user privileges.source از یک سرویس REST خارج پرس و جو کند


همانطور که ما از a استفاده می کنیم kind خوشه، ما نمی توانیم به گره خود ssh کنیم، زیرا یک ظرف داکر است. بنابراین ما می توانیم آن را اداره کنیم exec فرمان

root@localhost:~# docker ps | grep control-plane
f791fa85c269   kindest/node:v1.30.0   "/usr/local/bin/entr…"   3 weeks ago    Up 11 hours   0.0.0.0:30001->30001/tcp, 127.0.0.1:39283->6443/tcp                                            lucky-luke-control-plane
root@localhost:~# docker exec -it lucky-luke-control-plane bash
root@lucky-luke-control-plane:/# cd /etc/kubernetes/manifests/
root@lucky-luke-control-plane:/etc/kubernetes/manifests# ls -l
total 16
-rw------- 1 root root 2418 Jul 23 06:26 etcd.yaml
-rw------- 1 root root 3896 Jul 23 06:26 kube-apiserver.yaml
-rw------- 1 root root 3434 Jul 23 06:26 kube-controller-manager.yaml
-rw------- 1 root root 1463 Jul 23 06:26 kube-scheduler.yaml
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اگر ببینیم kube-apiserver.yaml فایل، می‌توانیم گزینه‌های زیادی را ببینیم که برای شروع فرمان سرویس عبور کرده‌اند، مانند:

...
spec:
  containers:
  - command:
    - kube-apiserver
    - --advertise-address=172.19.0.4
    - --allow-privileged=true
    - --authorization-mode=Node,RBAC
...
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

را authorization-mode است Node و RBAC.
توجه داشته باشید پیش فرض به AlwaysAllow اگر --authorization-config استفاده نمی شود.
در اینجا برای اطلاعات بیشتر در مورد گزینه های دیگر.


دایرکتوری پیش فرض همه گواهی که توسط kube-apiserver است:

root@lucky-luke-control-plane:~# ls -l /etc/kubernetes/pki/
total 60
-rw-r--r-- 1 root root 1123 Jul  1 16:16 apiserver-etcd-client.crt
-rw------- 1 root root 1675 Jul  1 16:16 apiserver-etcd-client.key
-rw-r--r-- 1 root root 1176 Jul  1 16:16 apiserver-kubelet-client.crt
-rw------- 1 root root 1679 Jul  1 16:16 apiserver-kubelet-client.key
-rw-r--r-- 1 root root 1334 Jul 23 06:26 apiserver.crt
-rw------- 1 root root 1675 Jul 23 06:26 apiserver.key
-rw-r--r-- 1 root root 1107 Jul  1 16:16 ca.crt
-rw------- 1 root root 1675 Jul  1 16:16 ca.key
drwxr-xr-x 2 root root 4096 Jul  1 16:16 etcd
-rw-r--r-- 1 root root 1123 Jul  1 16:16 front-proxy-ca.crt
-rw------- 1 root root 1679 Jul  1 16:16 front-proxy-ca.key
-rw-r--r-- 1 root root 1119 Jul  1 16:16 front-proxy-client.crt
-rw------- 1 root root 1675 Jul  1 16:16 front-proxy-client.key
-rw------- 1 root root 1679 Jul  1 16:16 sa.key
-rw------- 1 root root  451 Jul  1 16:16 sa.pub
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

چندین جفت گواهی و کلید برای وجود دارد apiserver، زیرا گاهی به عنوان یک سرور و گاهی مانند یک کلاینت عمل می کند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا