دوره کامل CKA 2024: روز 9/40 فضای نام Kubernetes توضیح داده شد
Summarize this content to 400 words in Persian Lang
توجه به خواننده
در این پست، من در حال آزمایش یک قالب مختصرتر هستم. تکمیل پستهای بسیار دقیق 2 تا 3 روز طول میکشد، بنابراین در این پست، قبل از اینکه مستقیماً به تمرینها برسم، روی توصیف فضاهای نام Kubernetes و اجزای آنها تمرکز خواهم کرد.
فضاهای نام Kubernetes
فضاهای نام راهی برای تقسیم منابع خوشه بین چندین کاربر یا برنامه است. آنها به سازماندهی اشیاء در Kubernetes و مدیریت دسترسی، اغلب در سناریوهایی که محیطهای مختلف (مثلاً توسعه، مرحلهبندی، و تولید) در یک خوشه همزیستی دارند، کمک میکنند. با فضاهای نام، میتوانیم منابع را جدا کنیم و در عین حال اطمینان حاصل کنیم که تیمها یا برنامههای مختلف میتوانند زیرساخت یکسانی را به اشتراک بگذارند.
فضاهای نام زمانی ایده آل هستند که به جداسازی منطقی نیاز دارید اما می خواهید از پیچیدگی خوشه های متعدد اجتناب کنید.
دو فضای نام ایجاد کنید و نام آنها را ns1 و ns2 بگذارید
kubectl create namespace ns1
kubectl create namespace ns2
یک استقرار با یک ماکت در هر یک از این فضاهای نام با تصویر به ترتیب nginx و نامهای deploy-ns1 و deploy-ns2 ایجاد کنید.
استقرار برای ns1 – این پیکربندی را به عنوان ذخیره کنید ns1-deployment.yml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-ns1
namespace: ns1
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: deploy-ns1
template:
metadata:
labels:
app: deploy-ns1
spec:
containers:
– name: nginx
image: nginx:1.23.4-alpine
ports:
– containerPort: 80
استقرار برای ns2 – این پیکربندی را به عنوان ذخیره کنید ns2-deployment.yml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-ns2
namespace: ns2
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: deploy-ns2
template:
metadata:
labels:
app: deploy-ns2
spec:
containers:
– name: nginx
image: nginx:1.23.4-alpine
ports:
– containerPort: 80
هر پیکربندی YAML را برای ایجاد استقرارها اعمال کنید
kubectl apply -f ns1-deployment.yml
kubectl apply -f ns2-deployment.yml
آدرس IP هر یک از پادها را دریافت کنید
فضای نام ns1
kubectl get pods -o wide -n ns1
خروجی نمونه:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
deploy-ns1-68b96c55c4-db4b9 1/1 Running 0 13m 10.244.2.8 cka-cluster-worker <none> <none>
فضای نام ns2
kubectl get pods -o wide -n ns2
خروجی نمونه:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
deploy-ns2-7c6646cf97-76xcz 1/1 Running 0 14m 10.244.1.10 cka-cluster-worker2 <none> <none>
Exec به غلاف deploy-ns1 و سعی کنید آدرس IP پاد در حال اجرا را بچرخانید deploy-ns2
kubectl exec -it deploy-ns1-68b96c55c4-db4b9 -n ns1 — curl 10.244.1.10
پس از اجرای موفقیت آمیز، باید یک پاسخ HTML مانند زیر را مشاهده کنید:
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p>
<p>For online documentation and support, please refer to <a href=”http://nginx.org/”>nginx.org</a>.<br/>
Commercial support is available at <a href=”http://nginx.com/”>nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
این تایید می کند که deploy-ns1 غلاف می تواند به deploy-ns2 pod، و سرور nginx آماده و در حال اجرا است.
هر دو استقرار را از 1 به 3 تکرار کنید
توجه: برای اهداف کنترل منبع، مقیاس فایل YAML را انتخاب کردم.
را به روز کنید replicas فیلد در هر فایل YAML استقرار:
ns1-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-ns1
namespace: ns1
labels:
app: nginx
spec:
replicas: 3 # Updated to 3 replicas
selector:
matchLabels:
app: deploy-ns1
template:
metadata:
labels:
app: deploy-ns1
spec:
containers:
– name: nginx
image: nginx:1.23.4-alpine
ports:
– containerPort: 80
ns2-deployment.yml
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-ns2
namespace: ns2
labels:
app: nginx
spec:
replicas: 3 # Updated to 3 replicas
selector:
matchLabels:
app: deploy-ns2
template:
metadata:
labels:
app: deploy-ns2
spec:
containers:
– name: nginx
image: nginx:1.23.4-alpine
ports:
– containerPort: 80
پیکربندی های به روز شده را برای مقیاس بندی استقرارها اعمال کنید
kubectl apply -f ns1-deployment.yml
kubectl apply -f ns2-deployment.yml
این هر دو را مقیاس خواهد کرد deploy-ns1 و deploy-ns2 به 3 کپی از هر کدام، با استفاده از فایل های به روز شده YAML برای نگه داشتن تغییرات تحت کنترل نسخه.
مرحله 2: ایجاد سرویس برای svc-ns1
apiVersion: v1
kind: Service
metadata:
name: svc-ns1
namespace: ns1
spec:
selector:
app: deploy-ns1
ports:
– protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
مرحله 3: ایجاد سرویس برای svc-ns2
apiVersion: v1
kind: Service
metadata:
name: svc-ns2
namespace: ns2
spec:
selector:
app: deploy-ns2
ports:
– protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
مرحله 4: تعاریف سرویس را اعمال کنید
هنگامی که هر دو فایل YAML را ایجاد کردید (مثلاً svc-ns1.yml و svc-ns2.yml، می توانید با استفاده از دستورات زیر آنها را اعمال کنید:
kubectl apply -f svc-ns1.yml
kubectl apply -f svc-ns2.yml
مرحله 5: بررسی خدمات
پس از درخواست، میتوانید با اجرای زیر تأیید کنید که سرویسهای شما آماده و در حال اجرا هستند:
kubectl get services -n ns1
kubectl get services -n ns2
این باید به شما نشان دهد svc-ns1 و svc-ns2 خدمات، همراه با IP های خوشه ای و پورت های آنها.
دو سرویس ایجاد کنید تا هر دو استقرار خود را در معرض دید قرار دهید و آنها را نام ببرید svc-ns1 و svc-ns2
ns1-service.yml
apiVersion: v1
kind: Service
metadata:
name: svc-ns1
namespace: ns1
spec:
selector:
app: deploy-ns1
ports:
– protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
ns2-service.yml
apiVersion: v1
kind: Service
metadata:
name: svc-ns2
namespace: ns2
spec:
selector:
app: deploy-ns2
ports:
– protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
Exec در هر پاد و سعی کنید آدرس IP سرویس در حال اجرا در فضای نام دیگر را بچرخانید.
kubectl exec -it <pod-name> -n ns1 — curl <ip-address>
این حلقه باید کار کند (این کار را انجام داد).
اکنون به جای IP نام سرویس را فرفری کنید. متوجه خواهید شد که در حال دریافت خطا هستید و نمی توانید هاست را حل کنید.
kubectl exec -it deploy-ns1-68b96c55c4-db4b9
-n ns1 — حلقه کردن
اکنون به جای IP نام سرویس را فرفری کنید
متوجه خواهید شد که در حال دریافت خطا هستید و نمی توانید هاست را حل کنید.
kubectl exec -it deploy-ns1-68b96c55c4-db4b9 -n ns1 — curl svc-ns2
حالا از FQDN سرویس استفاده کنید و دوباره سعی کنید حلقه بزنید
این باید کار کند:
kubectl exec -it deploy-ns1-68b96c55c4-db4b9 -n ns1 — curl svc-ns2.ns2
در پایان هر دو فضای نام را حذف کنید
این باید خدمات و استقرارهای زیر آنها را حذف کند:
kubectl delete namespace ns1
kubectl delete namespace ns2
خلاصه ای از یادگیری در مورد فضاهای نام و خدمات Kubernetes
در این پست وبلاگ، مفهوم فضاهای نام Kubernetes و نقش آنها در سازماندهی منابع خوشه ای را بررسی کردیم. ما یک سری تمرینها را برای تقویت درک خود از فضاهای نام، استقرار و سرویسها انجام دادیم. در اینجا خلاصه ای از آنچه را پوشش دادیم آورده شده است:
درک فضای نام Kubernetes
تعریف: فضاهای نام مکانیزمی را برای تقسیم منابع خوشه بین چندین کاربر یا برنامه ارائه می کنند که امکان جداسازی منطقی را بدون پیچیدگی مدیریت چند خوشه فراهم می کند.
موارد استفاده: آنها به ویژه در سناریوهایی مفید هستند که در آن محیطهای مختلف (توسعه، مرحلهبندی، و تولید) در یک خوشه همزیستی دارند و تیمها را قادر میسازد تا زیرساختها را به اشتراک بگذارند و منابع را جدا کنند.
ایجاد فضای نام
ما دو فضای نام ایجاد کردیم، ns1 و ns2، با استفاده از دستورات زیر:
kubectl create namespace ns1
kubectl create namespace ns2
استقرار در فضاهای نام
ما یک کپی از Nginx را در هر فضای نام مستقر کردیم:
استقرار در ns1: پیکربندی به عنوان ذخیره شده است ns1-deployment.yml.
استقرار در ns2: پیکربندی به عنوان ذخیره شده است ns2-deployment.yml.
ما استفاده کردیم kubectl apply دستور ایجاد این استقرارها.
گسترش مقیاس
ما هر دو استقرار را از 1 به 3 کپی با استفاده از فایلهای پیکربندی YAML برای کنترل منبع تغییر دادیم و اطمینان حاصل کردیم که تغییرات ما ردیابی شده است.
افشای استقرارها با خدمات
ما دو سرویس برای افشای استقرار خود ایجاد کردیم:
خدمات برای ns1: پیکربندی به عنوان ذخیره شده است ns1-service.yml.
خدمات برای ns2: پیکربندی به عنوان ذخیره شده است ns2-service.yml.
این مرحله دسترسی خارجی به استقرارهای Nginx ما را فعال کرد.
ارتباط Pod-to-Pod
ما دستوراتی را اجرا کردیم تا آدرسهای IP سرویسها را از داخل پادها بچرخانیم:
kubectl exec -it <pod-name> -n ns1 — curl <ip-address>
سپس ما سعی کردیم نام سرویس را مستقیماً بچرخانیم که منجر به خطای وضوح شد و اهمیت DNS را در Kubernetes نشان داد.
استفاده از نام دامنه کاملاً واجد شرایط (FQDN).
با استفاده از FQDN سرویس، ما با موفقیت به خدمات در فضای نام دسترسی پیدا کردیم:
kubectl exec -it deploy-ns1-68b96c55c4-db4b9 -n ns1 — curl svc-ns2.ns2
پاکسازی
برای حفظ یک فضای کاری مرتب، هر دو فضای نام را حذف کردیم که سرویسها و توسعههای مرتبط را نیز حذف کردیم:
kubectl delete namespace ns1
kubectl delete namespace ns2
خوراکی های کلیدی
فضاهای نام برای سازماندهی منابع و مدیریت دسترسی در یک خوشه Kubernetes ضروری هستند.
استقرار و خدمات دست در دست هم برای ارائه برنامه های کاربردی مقیاس پذیر و در معرض دید قرار دادن آنها برای دسترسی خارجی کار کنید.
FQDN برای ارتباط بین فضای نامی بسیار مهم است و بر اهمیت DNS در Kubernetes تاکید می کند.
حفظ پاکیزگی در خوشه ما با حذف فضاهای نام و منابع غیر ضروری برای مدیریت کارآمد بسیار مهم است.
این کاوش جامع نه تنها درک ما از فضاهای نام، استقرار و سرویسهای Kubernetes را تقویت کرد، بلکه تجربه عملی را با دستورات و پیکربندیهای مربوط به مدیریت یک خوشه Kubernetes ارائه کرد.
توجه به خواننده
در این پست، من در حال آزمایش یک قالب مختصرتر هستم. تکمیل پستهای بسیار دقیق 2 تا 3 روز طول میکشد، بنابراین در این پست، قبل از اینکه مستقیماً به تمرینها برسم، روی توصیف فضاهای نام Kubernetes و اجزای آنها تمرکز خواهم کرد.
فضاهای نام Kubernetes
فضاهای نام راهی برای تقسیم منابع خوشه بین چندین کاربر یا برنامه است. آنها به سازماندهی اشیاء در Kubernetes و مدیریت دسترسی، اغلب در سناریوهایی که محیطهای مختلف (مثلاً توسعه، مرحلهبندی، و تولید) در یک خوشه همزیستی دارند، کمک میکنند. با فضاهای نام، میتوانیم منابع را جدا کنیم و در عین حال اطمینان حاصل کنیم که تیمها یا برنامههای مختلف میتوانند زیرساخت یکسانی را به اشتراک بگذارند.
فضاهای نام زمانی ایده آل هستند که به جداسازی منطقی نیاز دارید اما می خواهید از پیچیدگی خوشه های متعدد اجتناب کنید.
دو فضای نام ایجاد کنید و نام آنها را ns1 و ns2 بگذارید
kubectl create namespace ns1
kubectl create namespace ns2
یک استقرار با یک ماکت در هر یک از این فضاهای نام با تصویر به ترتیب nginx و نامهای deploy-ns1 و deploy-ns2 ایجاد کنید.
استقرار برای ns1
– این پیکربندی را به عنوان ذخیره کنید ns1-deployment.yml
:
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-ns1
namespace: ns1
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: deploy-ns1
template:
metadata:
labels:
app: deploy-ns1
spec:
containers:
- name: nginx
image: nginx:1.23.4-alpine
ports:
- containerPort: 80
استقرار برای ns2
– این پیکربندی را به عنوان ذخیره کنید ns2-deployment.yml
:
apiVersion: apps/v1
kind: Deployment
metadata:
name: deploy-ns2
namespace: ns2
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: deploy-ns2
template:
metadata:
labels:
app: deploy-ns2
spec:
containers:
- name: nginx
image: nginx:1.23.4-alpine
ports:
- containerPort: 80
هر پیکربندی YAML را برای ایجاد استقرارها اعمال کنید
kubectl apply -f ns1-deployment.yml
kubectl apply -f ns2-deployment.yml
آدرس IP هر یک از پادها را دریافت کنید
-
فضای نام
ns1
kubectl get pods -o wide -n ns1
خروجی نمونه:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
deploy-ns1-68b96c55c4-db4b9 1/1 Running 0 13m 10.244.2.8 cka-cluster-worker <none> <none>
-
فضای نام
ns2
kubectl get pods -o wide -n ns2
خروجی نمونه:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
deploy-ns2-7c6646cf97-76xcz 1/1 Running 0 14m 10.244.1.10 cka-cluster-worker2 <none> <none>
Exec به غلاف deploy-ns1
و سعی کنید آدرس IP پاد در حال اجرا را بچرخانید deploy-ns2
kubectl exec -it deploy-ns1-68b96c55c4-db4b9 -n ns1 -- curl 10.244.1.10
پس از اجرای موفقیت آمیز، باید یک پاسخ HTML مانند زیر را مشاهده کنید:
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p>
<p>For online documentation and support, please refer to <a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
این تایید می کند که deploy-ns1
غلاف می تواند به deploy-ns2
pod، و سرور nginx آماده و در حال اجرا است.
هر دو استقرار را از 1 به 3 تکرار کنید
توجه: برای اهداف کنترل منبع، مقیاس فایل YAML را انتخاب کردم.
را به روز کنید replicas
فیلد در هر فایل YAML استقرار:
-
ns1-deployment.yml
apiVersion: apps/v1 kind: Deployment metadata: name: deploy-ns1 namespace: ns1 labels: app: nginx spec: replicas: 3 # Updated to 3 replicas selector: matchLabels: app: deploy-ns1 template: metadata: labels: app: deploy-ns1 spec: containers: - name: nginx image: nginx:1.23.4-alpine ports: - containerPort: 80
-
ns2-deployment.yml
apiVersion: apps/v1 kind: Deployment metadata: name: deploy-ns2 namespace: ns2 labels: app: nginx spec: replicas: 3 # Updated to 3 replicas selector: matchLabels: app: deploy-ns2 template: metadata: labels: app: deploy-ns2 spec: containers: - name: nginx image: nginx:1.23.4-alpine ports: - containerPort: 80
پیکربندی های به روز شده را برای مقیاس بندی استقرارها اعمال کنید
kubectl apply -f ns1-deployment.yml
kubectl apply -f ns2-deployment.yml
این هر دو را مقیاس خواهد کرد deploy-ns1
و deploy-ns2
به 3 کپی از هر کدام، با استفاده از فایل های به روز شده YAML برای نگه داشتن تغییرات تحت کنترل نسخه.
مرحله 2: ایجاد سرویس برای svc-ns1
apiVersion: v1
kind: Service
metadata:
name: svc-ns1
namespace: ns1
spec:
selector:
app: deploy-ns1
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
مرحله 3: ایجاد سرویس برای svc-ns2
apiVersion: v1
kind: Service
metadata:
name: svc-ns2
namespace: ns2
spec:
selector:
app: deploy-ns2
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
مرحله 4: تعاریف سرویس را اعمال کنید
هنگامی که هر دو فایل YAML را ایجاد کردید (مثلاً svc-ns1.yml
و svc-ns2.yml
، می توانید با استفاده از دستورات زیر آنها را اعمال کنید:
kubectl apply -f svc-ns1.yml
kubectl apply -f svc-ns2.yml
مرحله 5: بررسی خدمات
پس از درخواست، میتوانید با اجرای زیر تأیید کنید که سرویسهای شما آماده و در حال اجرا هستند:
kubectl get services -n ns1
kubectl get services -n ns2
این باید به شما نشان دهد svc-ns1
و svc-ns2
خدمات، همراه با IP های خوشه ای و پورت های آنها.
دو سرویس ایجاد کنید تا هر دو استقرار خود را در معرض دید قرار دهید و آنها را نام ببرید svc-ns1
و svc-ns2
ns1-service.yml
apiVersion: v1
kind: Service
metadata:
name: svc-ns1
namespace: ns1
spec:
selector:
app: deploy-ns1
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
ns2-service.yml
apiVersion: v1
kind: Service
metadata:
name: svc-ns2
namespace: ns2
spec:
selector:
app: deploy-ns2
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
Exec در هر پاد و سعی کنید آدرس IP سرویس در حال اجرا در فضای نام دیگر را بچرخانید.
kubectl exec -it <pod-name> -n ns1 -- curl <ip-address>
این حلقه باید کار کند (این کار را انجام داد).
اکنون به جای IP نام سرویس را فرفری کنید. متوجه خواهید شد که در حال دریافت خطا هستید و نمی توانید هاست را حل کنید.
kubectl exec -it deploy-ns1-68b96c55c4-db4b9
-n ns1 — حلقه کردن
اکنون به جای IP نام سرویس را فرفری کنید
متوجه خواهید شد که در حال دریافت خطا هستید و نمی توانید هاست را حل کنید.
kubectl exec -it deploy-ns1-68b96c55c4-db4b9 -n ns1 -- curl svc-ns2
حالا از FQDN سرویس استفاده کنید و دوباره سعی کنید حلقه بزنید
این باید کار کند:
kubectl exec -it deploy-ns1-68b96c55c4-db4b9 -n ns1 -- curl svc-ns2.ns2
در پایان هر دو فضای نام را حذف کنید
این باید خدمات و استقرارهای زیر آنها را حذف کند:
kubectl delete namespace ns1
kubectl delete namespace ns2
خلاصه ای از یادگیری در مورد فضاهای نام و خدمات Kubernetes
در این پست وبلاگ، مفهوم فضاهای نام Kubernetes و نقش آنها در سازماندهی منابع خوشه ای را بررسی کردیم. ما یک سری تمرینها را برای تقویت درک خود از فضاهای نام، استقرار و سرویسها انجام دادیم. در اینجا خلاصه ای از آنچه را پوشش دادیم آورده شده است:
درک فضای نام Kubernetes
- تعریف: فضاهای نام مکانیزمی را برای تقسیم منابع خوشه بین چندین کاربر یا برنامه ارائه می کنند که امکان جداسازی منطقی را بدون پیچیدگی مدیریت چند خوشه فراهم می کند.
- موارد استفاده: آنها به ویژه در سناریوهایی مفید هستند که در آن محیطهای مختلف (توسعه، مرحلهبندی، و تولید) در یک خوشه همزیستی دارند و تیمها را قادر میسازد تا زیرساختها را به اشتراک بگذارند و منابع را جدا کنند.
ایجاد فضای نام
- ما دو فضای نام ایجاد کردیم،
ns1
وns2
، با استفاده از دستورات زیر:
kubectl create namespace ns1
kubectl create namespace ns2
استقرار در فضاهای نام
- ما یک کپی از Nginx را در هر فضای نام مستقر کردیم:
-
استقرار در
ns1
: پیکربندی به عنوان ذخیره شده استns1-deployment.yml
. -
استقرار در
ns2
: پیکربندی به عنوان ذخیره شده استns2-deployment.yml
.
-
استقرار در
ما استفاده کردیم kubectl apply
دستور ایجاد این استقرارها.
گسترش مقیاس
- ما هر دو استقرار را از 1 به 3 کپی با استفاده از فایلهای پیکربندی YAML برای کنترل منبع تغییر دادیم و اطمینان حاصل کردیم که تغییرات ما ردیابی شده است.
افشای استقرارها با خدمات
- ما دو سرویس برای افشای استقرار خود ایجاد کردیم:
-
خدمات برای
ns1
: پیکربندی به عنوان ذخیره شده استns1-service.yml
. -
خدمات برای
ns2
: پیکربندی به عنوان ذخیره شده استns2-service.yml
.
-
خدمات برای
این مرحله دسترسی خارجی به استقرارهای Nginx ما را فعال کرد.
ارتباط Pod-to-Pod
- ما دستوراتی را اجرا کردیم تا آدرسهای IP سرویسها را از داخل پادها بچرخانیم:
kubectl exec -it <pod-name> -n ns1 -- curl <ip-address>
- سپس ما سعی کردیم نام سرویس را مستقیماً بچرخانیم که منجر به خطای وضوح شد و اهمیت DNS را در Kubernetes نشان داد.
استفاده از نام دامنه کاملاً واجد شرایط (FQDN).
- با استفاده از FQDN سرویس، ما با موفقیت به خدمات در فضای نام دسترسی پیدا کردیم:
kubectl exec -it deploy-ns1-68b96c55c4-db4b9 -n ns1 -- curl svc-ns2.ns2
پاکسازی
- برای حفظ یک فضای کاری مرتب، هر دو فضای نام را حذف کردیم که سرویسها و توسعههای مرتبط را نیز حذف کردیم:
kubectl delete namespace ns1
kubectl delete namespace ns2
خوراکی های کلیدی
- فضاهای نام برای سازماندهی منابع و مدیریت دسترسی در یک خوشه Kubernetes ضروری هستند.
- استقرار و خدمات دست در دست هم برای ارائه برنامه های کاربردی مقیاس پذیر و در معرض دید قرار دادن آنها برای دسترسی خارجی کار کنید.
- FQDN برای ارتباط بین فضای نامی بسیار مهم است و بر اهمیت DNS در Kubernetes تاکید می کند.
- حفظ پاکیزگی در خوشه ما با حذف فضاهای نام و منابع غیر ضروری برای مدیریت کارآمد بسیار مهم است.
این کاوش جامع نه تنها درک ما از فضاهای نام، استقرار و سرویسهای Kubernetes را تقویت کرد، بلکه تجربه عملی را با دستورات و پیکربندیهای مربوط به مدیریت یک خوشه Kubernetes ارائه کرد.