بعد از آموزش های مربوط به نصب kubernetes و راه اندازی master و نودهای آن که در اینجا میتوانید مشاهده کنید. نوبت به اموزش روش تست کردن clusterی که الان در اختیار داریم میرسد.
برای این منظور ما میخواهیم یک container به اسم nginx را از مخازن docker بگیریم و آن را در دو نقطه بصورت replication بالا بیاوریم . به همین دلیل دستور زیر را اجرا میکنیم .
kubectl run my-nginx –image=nginx –replicas=2 –port=80
نکته: دستور بالا به kubernetes میگویدکه با استفاده از ایمیج nginx که در مخازن داکر وجود دارد در دو replication ( که در اینجا همان دو نودی که توسط مستر کنترل میشوند ) با اسم my-nginx بر روی پورت ۸۰ بالا بیاورد.
بعد از اینکهدستور بالا با موفقیت اجرا شد برای دیدن نتیجه کار میتوانیم بصورت زیر عمل کنیم.
kubectl get deployments
بعد از اجرای دستور بالا خروجی مانند زیر خواهیم دید.
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
my-nginx ۲ ۲ ۲ ۲ ۱m
که به شما نشان میدهد که یک deployment به نام my-nginx با ویزگی های زیر وجود دارد:
- در دو نقطه
- هردو هم آپدیت میباشند
- زمان اجرای آنها ۱ دقیقه میباشد
شما میتوانید برای دیدن جزییات بیشتر از container های در حال اجرا دستور زیر را اجرا کنید
kubectl get pods
که خروجی مانند زیر را به شما نمایش خواهد داد
NAME READY STATUS RESTARTS AGE
my-nginx-2494149703-2xovs ۱/۱ Running ۰ ۱m
my-nginx-2494149703-hbesv ۱/۱ Running ۰ ۱m
در این خروجی هم اطلاعات جالبی نظیر اینکه container شما چند بار restart شدهاست را نشان میدهد.
شما میتوانید با استفاده از دستور زیر مذ اجرای deployment خود که اسمش my-nginx بود را بصورت Load Balancer تغییر دهید.
kubectl expose deployment my-nginx –type=”LoadBalancer”
برای دیدن سرویس هایی که در حال حاضر بر روی kubernetes ما بالا هستند میتوانید از دستور زیر استفاده کنید
kubectl get services
خروجی مانند زیر مشاهده خواهیدکرد.
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ۱۹۲٫۱۶۸٫۰٫۱ <none> ۴۴۳/TCP ۵۳m
my-nginx ۱۹۲٫۱۶۸٫۱۷۶٫۱۸۶ <pending> ۸۰/TCP ۱۲s
حالا برای اینکه تست کنیم ببینیم آیا کلاستر my-nginx درست بالا آمده و درست کار میکند بصورت زیر عمل میکتیم.
curl -I 192.168.176.186
و اگر خروجی مانند زیر دیدیم کارهای انجام شده درست میباشد.
HTTP/1.1 200 OK
Server: nginx/1.11.1
Date: Sat, 06 Aug 2016 20:01:49 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 31 May 2016 14:40:22 GMT
Connection: keep-alive
ETag: “574da256-264”
Accept-Ranges: bytes