<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های smahi4033</title><link>https://virgool.ir/feed/@smahi4033</link><description></description><language>fa</language><pubDate>2026-11-11 08:16:27</pubDate><image><url>https://virgool.ir/images/default-avatar.jpg</url><title>smahi4033</title><link>https://virgool.ir/@smahi4033</link></image><item><title>چگونه به Ubuntu 20.04 Focal Fossa ارتقا دهید</title><link>https://virgool.ir/@smahi4033/چگونه-به-ubuntu-2004-focal-fossa-ارتقا-دهید-ayur1avq4yxz</link><description>آخرین نسخه پشتیبانی بلند مدت سیستم عامل اوبونتو ، Ubuntu 20.04 Focal Fossa در 23 آوریل 2020 منتشر شد. در این راهنما نحوه به روزرسانی سیستم اوبونتو با نسخه 18.04 یا بعد از آن به اوبونتو 20.04 توضیح داده خواهد شد.هشدار: مانند هرگونه به روزرسانی دیگر بین نسخه های اصلی یک سیستم عامل ، این فرایند با خطر ذاتی شکست ، از دست رفتن داده ها یا پیکربندی ناقص نرم افزارها را به همراه دارد. پشتیبان گیری جامع و آزمایش گسترده به شدت توصیه می شود.برای جلوگیری از این مشکلات ، توصیه می کنیم به جای به روزرسانی در محل ، به یک سرور مجازی تازه اوبونتو 20.04 منتقل شوید. ممکن است شما هنوز هم نیاز به بررسی تفاوت در پیکربندی نرم افزار هنگام به روزرسانی داشته باشید ، اما به احتمال زیاد سیستم اصلی دارای ثبات بیشتری خواهد بود. برای یادگیری نحوه جابه جایی بین سرور مجازی ها می توانید مجموعه مقالات ما را دنبال کنید.پیش نیازهااین راهنما فرض می کند که شما یک سیستم اوبونتو 18.04 یا بالاتر دارید که با یک کاربر غیر ریشه sudo فعال شده است.مشکلات احتمالیاگرچه بسیاری از سیستم ها بدون بروز حادثه قابل نصب هستند ، اما انتقال به نسخه جدید با نصب توزیع از ابتدا ، پیکربندی سرویس ها با آزمایش دقیق در طول مسیر ، و جابه جایی برنامه یا داده های کاربر به عنوان یک مرحله جداگانه ، ایمن تر و قابل پیش بینی تر است.شما هرگز نباید یک سیستم تولید را بدون آزمایش کردن تمام نرم افزارها و خدمات مستقر شده خود در برابر به روزرسانی در یک محیط مرحله بندی ، ارتقا دهید. به خاطر داشته باشید که کتابخانه ها ، زبان ها و سرویس های سیستم ممکن است تغییر قابل ملاحظه ای داشته باشند. قبل از بروزرسانی ، مطالب انتشار Focal Fossa را بخوانید.مرحله 1 – تهیه نسخه پشتیبان از سیستم خودقبل از تلاش برای بروزرسانی اساسی در هر سیستمی ، باید اطمینان حاصل کنید که اگر این نسخه به روزرسانی نادرست باشد ، اطلاعات شما از دست نخواهد رفت. بهترین راه برای دستیابی به این امر تهیه نسخه پشتیبان از کل سیستم فایل شما است. در صورت عدم امکان این کار ، از دایرکتوری هوم کاربرو ، هر فایل پیکربندی سفارشی و داده های ذخیره شده توسط سرویس هایی مانند پایگاه داده های رابطه ای کپی تهیه کنید.برای مشاهده روش های بکاپ گیری که روی بیشتر سیستم های اوبونتو کار خواهند کرد ، به نحوه انتخاب رویکرد بکاپ گیری موثر برای VPS خود مراجعه کنید.مرحله 2 – به روزرسانی بسته های نصب شده فعلیقبل از شروع به روزرسانی نسخه ، ایمن ترین کار به روز رسانی به جدیدترین نسخه های کلیه بسته ها برای نسخه فعلی است. با به روزرسانی لیست بسته شروع کنید:⦁ $ sudo apt update⦁سپس ، بسته های نصب شده را به آخرین نسخه های موجود خود ارتقا دهید:⦁ $ sudo apt upgrade⦁لیستی از به روزرسانی ها به شما نشان داده می شود و از شما خواسته می شود ادامه دهید. با yes پاسخ دهید و Enter را فشار دهید.این روند ممکن است مدتی طول بکشد. پس از اتمام کار ، از دستور dist-upgrade با apt-get استفاده کنید ، که هر گونه به روزرسانی دیگر که شامل تغییر متعلقات است ،یا اضافه کردن و حذف بسته های جدید در صورت لزوم را انجام میدهد. مجموعه ای از به روز رسانی ها را شامل می شود که ممکن است با مرحله apt upgrade قبلی به عقب برگشته باشد:⦁ $ sudo apt dist-upgrade⦁در صورت درخواست ادامه ، دوباره با y پاسخ دهید و منتظر بمانید که به روزرسانی به پایان برسد.اکنون که نصب به روز رسانی اوبونتو را دارید ، می توانید برای ارتقاء به نسخه 20.04 از do-release-upgrade استفاده کنید.مرحله 3 – به روزرسانی با ابزار do-release-upgrade اوبونتوبه طور معمول ، نسخه های اوبونتو با تغییر در /etc/apt/sources.list Apt – که مشخص کننده مخازن بسته است – و با استفاده از apt-get dist-upgrade که خود به روزرسانی را انجام میدهد، قابل ارتقا هستند. اگرچه هنوز هم ممکن است این روند همچنان کار کند ، اوبونتو ابزاری به نام do-release-upgrade را فراهم می کند تا این ارتقا ایمن تر و آسان تر شود.do-release-upgrade وجود نسخه جدید ، به روزرسانی لیست منابع و سایر کارها را بررسی می کند ، و مسیر ارتقاء رسمی توصیه شده برای به روزرسانی سرور مجازی است که باید از طریق یک اتصال از راه دور انجام شود.با اجرای o-release-upgrade بدون هیچ آپشنی شروع کنید:⦁ $ sudo do-release-upgrade⦁اگر نسخه جدید اوبونتو به طور رسمی منتشر نشده است ، ممکن است خروجی زیر را دریافت کنید:OutputChecking for a new Ubuntu releaseNo new release foundتوجه داشته باشید که در سرور مجازی اوبونتو ، نسخه جدید LTS تا انتشر نسخه اول خود ، در این مورد 20.04.1 برای do-release-upgrade در دسترس نیست. معمولاً چند ماه پس از تاریخ انتشار اولیه بیرون می آید.اگر نسخه موجود را نمی بینید ، گزینه -d را برای ارتقا به نسخه توسعه اضافه کنید:⦁ $ sudo do-release-upgrade -d⦁اگر از طریق SSH به سیستم خود متصل هستید ، از شما سؤال می شود که آیا می خواهید ادامه دهید. در مورد ماشینهای مجازی یا سرور مجازی های مدیریت شده باید به خاطر داشته باشید که از دست دادن اتصال SSH یک خطر محسوب می شود ، به خصوص اگر وسیله دیگری برای اتصال از راه دور به کنسول سیستم ندارید (مثلاً یک ویژگی کنسول مبتنی بر وب).در مورد سایر سیستمهای تحت کنترل خود ، به یاد داشته باشید که ایمن ترین کار این است که اجرای به روزرسانی های اصلی سیستم عامل را تنها زمانی انجام دهید که دسترسی فیزیکی مستقیم به دستگاه دارید.در اعلان ظاهر شده، y را تایپ کرده و Enter را فشار دهید تا ادامه یابد:OutputReading cacheChecking package managerContinue running under SSH?This session appears to be running under ssh. It is not recommendedto perform a upgrade over ssh currently because in case of failure itis harder to recover.If you continue, an additional ssh daemon will be started at port‘1022’.Do you want to continue?Continue [yN]در مرحله بعد ، به شما اطلاع داده می شود که do-release-upgrade ، نمونه جدیدی از sshd را در پورت 1022 شروع می کند:OutputStarting additional sshdTo make recovery in case of failure easier, an additional sshd willbe started on port ‘1022’. If anything goes wrong with the runningssh you can still connect to the additional one.If you run a firewall, you may need to temporarily open this port. Asthis is potentially dangerous it’s not done automatically. You canopen the port with e.g.:‘iptables -I INPUT -p tcp –dport 1022 -j ACCEPT’To continue please press [ENTER]Enter را فشار دهید. در مرحله بعد ، ممکن است هشدار داده شود که ورودی آینه پیدا نشده است. Y را وارد کنید:OutputUpdating repository informationNo valid mirror foundWhile scanning your repository information no mirror entry for theupgrade was found. This can happen if you run an internal mirror orif the mirror information is out of date.Do you want to rewrite your ‘sources.list’ file anyway? If you choose‘Yes’ here it will update all ‘bionic’ to ‘focal’ entries.If you select ‘No’ the upgrade will cancel.Continue [yN]پس از دانلود لیستهای بسته جدید و محاسبه تغییرات ، از شما سؤال می شود که آیا می خواهید به روزرسانی را شروع کنید. دوباره ، y را وارد کنید تا ادامه دهید:OutputDo you want to start the upgrade?18 installed packages are no longer supported by Canonical. You canstill get support from the community.3 packages are going to be removed. 142 new packages are going to beinstalled. 452 packages are going to be upgraded.You have to download a total of 338 M. This download will take about42 minutes with a 1Mbit DSL connection and about 13 hours with a 56kmodem.Fetching and installing the upgrade can take several hours. Once thedownload has finished, the process cannot be canceled.Continue [yN] Details [d]بسته های جدید اکنون بازیابی ، باز و نصب می شوند. حتی اگر سیستم شما در حال اتصال سریع باشد ، این کار مدتی طول می کشد.در حین نصب ، ممکن است سؤالات مختلف در قالب گفتگوی تعاملی ارائه شود. به عنوان مثال ، ممکن است از شما سؤال شود که آیا می خواهید در صورت لزوم به طور خودکار سرویس ها را مجدداً راه اندازی کنید:در این حالت ، بهتر است بله را پاسخ دهید. در موارد دیگر ، ممکن است از شما سؤال شود که آیا می خواهید یک فایل پیکربندی را که تغییر داده اید جایگزین کنید. این اغلب یک فراخوان داوری است و به احتمال زیاد به دانش در مورد نرم افزار خاصی نیاز دارد که خارج از محدوده این آموزش است.پس از پایان نصب بسته های جدید ، از شما سؤال می شود که آیا حاضر هستید بسته های منسوخ را حذف کنید. در سیستم استوک بدون پیکربندی سفارشی ، وارد کردن y در اینجا باید ایمن تر باشد. در سیستمی که به شدت اصلاح کرده اید ، بهتر است d را وارد کنید و لیست بسته های حذف شده را بررسی کنید ، شاید شامل مواردی باشد که لازم است بعدا مجدد نصب کنید.OutputRemove obsolete packages?53 packages are going to be removed.Continue [yN] Details [d]سرانجام ، با فرض اینکه همه چیز خوب پیش رفته است ، مطلع خواهید شد که به روزرسانی کامل شده است و باید ریستارت کنید. y را وارد کنید تا ادامه یابد:OutputSystem upgrade is complete.Restart requiredTo finish the upgrade, a restart is required.If you select ‘y’ the system will be restarted.Continue [yN]در یک بخش SSH ، احتمالاً چیزی شبیه به موارد زیر را مشاهده خواهید کرد:OutputConnection to 203.0.113.241 closed by remote host.Connection to 203.0.113.241 closed.ممکن است لازم باشد برای خروج از اعلان محلی خود ، یک کلید را در اینجا فشار دهید ، زیرا بخش SSH شما در انتهای سرور مجازی خاتمه یافته است.لحظه ای صبر کنید تا سرور مجازی شما دوباره راه اندازی شود ، سپس دوباره وصل شوید. هنگام ورود به سیستم ، باید با پیامی که تأیید می کند اکنون در Focal Fossa هستید ، مورد استقبال قرار بگیرید:OutputWelcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-29-generic x86_64)نتیجهاکنون باید نصب Ubuntu 20.04 کار کند. از اینجا ، به احتمال زیاد باید تغییرات پیکربندی لازم برای سرویس ها و برنامه های مستقر را بررسی کنید.می توانید آموزش و سؤالات بیشتر در مورد 20.04 را در صفحه آموزش Ubuntu 20.04 ما بیابید.برچسب‌ها:Focal Fossa</description><category>smahi4033</category><author>smahi4033</author><pubDate>Mon, 01 Jun 2020 14:25:05 +0430</pubDate></item><item><title>نحوه توسعه برنامه ها در Kubernetes با Okteto</title><link>https://virgool.ir/@smahi4033/نحوه-توسعه-برنامه-ها-در-kubernetes-با-okteto-yzlczbre6qxl</link><description>Okteto CLI یک پروژه منبع باز است که تجربه توسعه محلی را برای برنامه های در حال اجرا در Kubernetes فراهم می کند. با استفاده از آن می توانید کد خود را بر روی IDE محلی خود بنویسید و به محض ذخیره یک فایل ، تغییرات را می توان به خوشه Kubernetes خود وارد کرد و برنامه شما فوراً بروزرسانی خواهد شد. کل این فرآیند بدون نیاز به ساخت تصاویر Docker یا اعمال مانیفست های Kubernetes اتفاق می افتد ، که می تواند زمان قابل توجهی طول بکشد.در این آموزش ، شما از Okteto برای بهبود بهره وری در هنگام تهیه یک برنامه بومی Kubernetes استفاده خواهید کرد. ابتدا ، یک خوشه Kubernetes ایجاد می کنید و از آن برای اجرای یک برنامه استاندارد “Hello World” استفاده می کنید. سپس از Okteto برای توسعه و به روز کردن خودکار برنامه خود بدون نیاز به نصب محلی استفاده خواهید کرد.پیش نیازهاقبل از شروع این آموزش ، موارد زیر را نیاز خواهید داشت:⦁ خوشه Kubernetes 1.12+ . در این آموزش ، از یک خوشه vpsgol Kubernetes با سه گره استفاده می شود ، اما شما می توانید با استفاده از یک روش دیگر ، خوشه ایجاد کنید.⦁ kubectl و doctl برای برقراری ارتباط با خوشه شما نصب و تنظیم شده باشند.⦁ یک حساب کاربری Docker Hub⦁ Docker در حال اجرا بر روی دستگاه محلی شما.مرحله 1 – ایجاد برنامه Hello Worldبرنامه “hello world” یک سنت قدیمی در توسعه وب است. در این حالت ، یک سرویس وب ساده است که به هر درخواست با ” hello world” پاسخ می دهد. اکنون که خوشه Kubernetes خود را ایجاد کرده اید ، اجازه دهید یک برنامه “Hello World” را در Golang و مانیفیستی که برای استقرار آن در Kubernetes استفاده خواهید کرد ، ایجاد کنیم.اولین به دایرکتوری هوم خود سوییچ کنید:⦁ $ cd ~⦁اکنون یک دایرکتوری جدید به نام hello_world تهیه کرده و به داخل آن بروید:⦁ $ mkdir hello_world⦁⦁ $ cd hello_worldبا IDE یا ویرایشگر متن مورد علاقه خود ، فایل جدیدی را با نام main.go ایجاد و باز کنید:⦁ $ nano main.go⦁main.go یک وب سرور مجازی Golang خواهد بود که پیام hello world را به شما باز می گرداند !. بنابراین ، اجازه دهید از کد زیر استفاده کنیم:main.gopackage mainimport (“fmt”“net/http”)func main() {fmt.Println(“Starting hello-world server…”)http.HandleFunc(“/”, helloServer)if err := http.ListenAndServe(“:8080”, nil); err != nil {panic(err)}}func helloServer(w http.ResponseWriter, r *http.Request) {fmt.Fprint(w, “Hello world!”)}کد main.go موارد زیر را انجام می دهد:⦁ اولین عبارت در یک فایل منبع Go باید نام بسته باشد. دستورات اجرایی همیشه باید از package main استفاده کنند.⦁ بخش ورودی نشان می دهد کد بسته به چه مواردی بستگی دارد. در این حالت از fmt برای دستکاری رشته و net / http برای سرور مجازی HTTP استفاده می کند.⦁ تابع main نقطه ورود به باینری شماست. از روش http.HandleFunc برای پیکربندی سرور مجازی جهت فراخوانی helloServer در هنگام دریافت درخواست به مسیر / استفاده می شود. http.ListenAndServe یک سرور مجازی HTTP را شروع می کند که در تمام رابط های شبکه به پورت 8080 گوش می دهد.⦁ عملکرد helloServer شامل منطق کنترل کننده درخواست شما است. در این حالت ، hello world! را به عنوان پاسخ به درخواست خواهد نوشت.شما باید یک تصویر Docker ایجاد کرده و آن را به سمت رجیستری Docker خود هدایت کنید تا Kubernetes بتواند آن را دریافت و سپس برنامه را اجرا کند.یک فایل جدید با نام Dockerfile را با IDE یا ویرایشگر متن مورد علاقه خود باز کنید:⦁ $ nano Dockerfile⦁Dockerfile شامل دستورات لازم برای ساخت کانتینر Docker برنامه شما می باشد. اجازه دهید از کد زیر استفاده کنیم:DockerfileFROM golang:alpine as builderRUN apk –update –no-cache add bashWORKDIR /appADD . .RUN go build -o appFROM alpine as prodWORKDIR /appCOPY –from=builder /app/app /app/appEXPOSE 8080CMD [“./app”]CopyDockerfile شامل دو مرحله است builder و  prod:• مرحله builder  شامل ابزارهای ساخت Go است. که مسئول کپی کردن فایل ها و ساخت باینری Go است.• مرحله prod تصویر نهایی است. فقط شامل یک سیستم تهی و باینری برنامه خواهد بود.این یک تمرین خوب میباشد. کانتینر تولید شما را کوچکتر و ایمن تر می کند زیرا تنها شامل برنامه شما و دقیقاً آنچه برای اجرای آن لازم است می باشد.تصویر کانتینر را بسازید (نام_DockerHub_usus را با نام کاربری داکر هاب خود جایگزین کنید):⦁ $ docker build -t your_DockerHub_username/hello-world:latest⦁اکنون آن را به Docker Hub وارد کنید:⦁ $ docker push your_DockerHub_username/hello-world:latest⦁سپس ، یک پوشه جدید برای مانیفست Kubernetes ایجاد کنید:⦁ $ mkdir k8s⦁وقتی از مانیفست Kubernetes استفاده می کنید ، به Kubernetes می گویید که چگونه برنامه شما اجرا می شود. این بار ، یک شیء استقرار ایجاد می کنید. بنابراین ، یک فایل جدید deployment.yaml را با IDE یا ویرایشگر متن مورد علاقه خود ایجاد کنید:⦁ $ nano k8s/deployment.yaml⦁مطالب زیر یک شیء استقرار Kubernetes را شرح می دهد که تصویر داکر okteto/hello-world:latest را اجرا میکند. این محتوا را به فایل جدید خود اضافه کنید ، اما در مورد شما okteto ذکر شده بعد از برچسب image را با your_DockerHub_username جایگزین کنید:~/hello_world/k8s/deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata:name: hello-worldspec:selector:matchLabels:app: hello-worldreplicas: 1template:metadata:labels:app: hello-worldspec:containers:– name: hello-worldimage: your_DockerHub_username/hello-world:latestports:– containerPort: 8080مانیفست استقرار دارای سه بخش اصلی است:⦁ metadata  نام استقرار شما را مشخص می کند.⦁ replicas  مشخص می کند که چند نسخه از آن را می خواهید اجرا کنید.⦁ template  به Kubernetes می گوید که چه چیزی را مستقر کند و چه برچسب هایی را اضافه نماید. در این حالت ، یک کانتینر واحد ، با تصویر okteto/hello-world:latest ، که به پورت 8080 گوش میدهد، و با برچسب app: hello-world همراه است. توجه داشته باشید که این برچسب همان مورد استفاده در بخش selector  است.اکنون به راهی برای دسترسی به برنامه خود نیاز دارید. می توانید با ایجاد یک شیء سرویس ، برنامه ای را در Kubernetes قرار دهید. بیایید با استفاده از مانیفست این کار را انجام دهیم. با IDE یا ویرایشگر متن مورد علاقه خود فایل جدیدی به نام service.yaml ایجاد کنید:⦁ nano k8s/service.yaml⦁محتوای زیر سرویس هایی را نشان می دهد که شیء استقرار hello world را در معرض دید شما قرار می دهد:k8s/service.yamlapiVersion: v1kind: Servicemetadata:name: hello-worldspec:type: LoadBalancerports:– protocol: TCPport: 80targetPort: 8080name: httpselector:app: hello-worldمانیفست سرویس چهار بخش اصلی دارد:⦁ metadata  به Kubernetes می گوید كه چگونه سرویس خود را نامگذاری كنند.⦁ type  به Kubernetes می گوید چگونه می خواهید سرویس خود را در معرض دید قرار دهید.⦁ برچسب ports  به Kubernetes می گوید كه كدام پورت را می خواهید در معرض دید قرار دهید ، و چگونه می توانید آنها را برای استقرار خود نگاشت كنید. در این حالت ، پورت 80 را به صورت خارجی در معرض دید قرار می دهید و آن را به پورت 8080 در محل استقرار خود هدایت می کنید.⦁ selector  به Kubernetes می گوید که چگونه ترافیک را هدایت کند. در این حالت ، هر پوسته با برچسب app: hello-world ترافیک دریافت می کند.اکنون شما همه چیز را برای استقرار برنامه “hello world” خود در Kubernetes دارید. در ادامه کار استقرار را انجام خواهیم داد.مرحله 2 – استفاده از برنامه Hello World شمادر این مرحله برنامه “Hello World” خود را در Kubernetes مستقر می کنید ، سپس تأیید می کنید که درست کار می کند.با استقرار برنامه خود در Kubernetes کار را شروع کنید:⦁ $ kubectl apply -f k8s⦁خروجی زیر را مشاهده خواهید کرد:Outputdeployment.apps “hello-world” createdservice “hello-world” createdبعد از گذشت حدود یک دقیقه یا بیشتر ، می توانید IP برنامه خود را بازیابی کنید. برای بررسی سرویس خود از این دستور kubectl استفاده کنید:⦁ $ kubectl get service hello-world⦁خروجی مانند این را مشاهده خواهید کرد که اشیاء سرویس Kubernetes را لیست میکند. به IP برنامه خود در ستون EXTERNAL-IP توجه کنید:OutputNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEhello-world ClusterIP your_cluster_ip your_external_ip 8080/TCP 37sمرورگر خود را باز کنید و به برنامه your_external_ip که برای برنامه “Hello World” ذکر شده است بروید. قبل از ادامه مرحله بعدی تأیید کنید که برنامه شما در حال اجرا است.تا این لحظه ، شما یک مسیر نسبتاً سنتی را برای توسعه برنامه ها با Kubernetes دنبال کرده اید. در ادامه ، هر زمان که می خواهید کد را در برنامه خود تغییر دهید ، باید یک تصویر جدید Docker بسازید و وارد کنید و سپس آن تصویر را از Kubernetes بیرون بکشید. این روند می تواند مدتی طول بکشد. Okteto برای ساده تر ساختن این حلقه درونی طراحی شده است. بیایید به Okteto CLI نگاهی بیندازیم و ببینیم چگونه می تواند کمک کند.مرحله 3 – نصب Okteto CLIاکنون با نصب Okteto CLI ، بهره وری توسعه Kubernetes را بهبود می بخشید. رابط خط فرمان Okteto یک پروژه منبع باز است که به شما امکان می دهد تغییرات کد برنامه را با برنامه های Kubernetes همزمان کنید. شما می توانید با استفاده از IDE ، اشکال زداگر یا کامپایلرهای مورد علاقه خود استفاده کنید بدون اینکه برای تست برنامه خود مجبور به تعهد ، ساخت ، ارائه یا استقرار مجدد کانتینرها باشید – همانطور که در مراحل قبلی انجام دادید.برای نصب Okteto CLI در دستگاه macOS یا Linux ، دستور زیر را اجرا کنید:⦁ $ curl https://get.okteto.com -sSfL | sh⦁بیایید نگاهی دقیق تر به این دستور بیاندازیم:⦁ از دستور curl برای انتقال داده به سرور مجازی استفاده می شود.⦁ پرچم -s هر خروجی را سرکوب می کند.⦁ پرچم -S خطاها را نشان می دهد.⦁ پرچم -f باعث عدم موفقیت درخواست در HTTP می شود.⦁ پرچم -L باعث می شود درخواست از تغییر مسیر پیروی کند.⦁ عملگر | این خروجی را به دستور sh پایپ می کند ، که آخرین باینری okteto را در دستگاه محلی شما دانلود و نصب می کند.اگر ویندوز را اجرا می کنید ، می توانید فایل را بطور متناوب از طریق مرورگر وب خود دانلود کرده و به صورت دستی آن را به PATH $ خود اضافه کنید.پس از نصب Okteto CLI ، آماده هستید تا برنامه “hello world” را در حالت توسعه قرار دهید.مرحله 4 – قرار دادن برنامه Hello world در حالت توسعهOkteto CLI به منظور جابجایی برنامه در حال اجرا بر روی خوشه Kubernetes با کد موجود در دستگاه شما طراحی شده است. برای این کار ، Okteto از اطلاعات ارائه شده از یک فایل مانیفست Okteto استفاده می کند. این فایل شیء استقرار Kubernetes را که با کد محلی شما تعویض می شود ، اعلام می کند.با IDE یا ویرایشگر متن مورد علاقه خود فایل جدیدی به نام okteto.yaml ایجاد کنید:⦁ $ nano okteto.yaml⦁بیایید یک مانیفست پایه بنویسیم که در آن می توانید نام شیء استقرار ، تصویر پایه Docker برای استفاده و یک پوسته را تعریف کنید. بعداً به این اطلاعات برمی گردیم. از فایل محتوای نمونه زیر استفاده کنید:okteto.yamlname: hello-worldimage: okteto/golang:1workdir: /appcommand: [“bash”]با اجرای دستور زیر آماده شوید تا برنامه خود را در حالت توسعه قرار دهید:⦁ $ okteto up⦁Output✓ Development environment activated✓ Files synchronizedNamespace: defaultName: hello-worldWelcome to your development environment. Happy coding!default:hello-world /app&gt;دستور okteto up برنامه “hello world” را در یک محیط توسعه عوض می کند ، این بدان معنی است که:⦁ کانتینر برنامه Hello World با تصویرداکر okteto/golang:1 به روز می شود. این تصویر شامل ابزارهای لازم برای ساخت ، آزمایش ، اشکال زدایی و اجرای برنامه “Hello World” است.⦁ یک سرویس همگام سازی فایل ایجاد شده است تا تغییرات شما بین سیستم فایل محلی و غلاف برنامه تان را به روز نگه دارد.⦁ یک پوسته از راه دور در محیط توسعه شما شروع می شود. اکنون می توانید برنامه خود را بگونه ای که در دستگاه محلی خود هستید ، بسازید ، آزمایش و اجرا کنید.⦁ هر پردازشی که در پوسته از راه دور اجرا می کنید ، همان ترافیک ورودی ، همان متغیرهای محیط ، والیوم یا رمزها را به عنوان غلافهای اصلی برنامه “Hello World” دریافت خواهد کرد. این به نوبه خود ، یک محیط توسعه کاملاً واقع بینانه و شبیه تولید را به شما می دهد.در همان کنسول ، اکنون برنامه را طبق معمول اجرا کنید (بدون ساختن و ارائه تصویر Docker) ، مانند این:⦁ Okteto&gt; go run main.go⦁OutputStarting hello-world server…اولین باری که برنامه را اجرا می کنید ، Go متعلقات شما را دانلود و برنامه را کامپایل می کند. صبر کنید تا این فرآیند کامل شود و با باز کردن مرورگر و ریفرش صفحه برنامه خود ، دقیقاً مانند گذشته ، برنامه خود را تست کنید.اکنون آماده هستید تا توسعه را مستقیماً روی Kubernetes شروع کنید.مرحله 5 – توسعه مستقیم روی Kubernetesبیایید شروع به ایجاد تغییراتی در برنامه “hello world” کنیم و سپس ببینیم که چگونه در Kubernetes بازتاب می یابند.فایل main.go را با IDE یا ویرایشگر متن مورد علاقه خود باز کنید. به عنوان مثال ، یک کنسول جداگانه باز کنید و دستور زیر را اجرا کنید:⦁ $ nano main.go⦁سپس ، پیام پاسخ خود را به Hello world from vpsgol! تغییر دهید!:main.gopackage mainimport (“fmt”“net/http”)func main() {fmt.Println(“Starting hello-world server…”)http.HandleFunc(“/”, helloServer)if err := http.ListenAndServe(“:8080”, nil); err != nil {panic(err)}}func helloServer(w http.ResponseWriter, r *http.Request) {fmt.Fprint(w, “Hello world from vpsgol!”)}اینجاست که گردش کار شما تغییر می کند. Okteto به جای ساختن تصاویر و استفاده مجدد از کانتینر برای به روزرسانی برنامه “hello world” ، تغییرات شما را در محیط توسعه خود در Kubernetes همگام سازی می کند.از کنسولی که فرمان okteto up را اجرا کردید ، با فشار دادن CTRL + C، اجرای go run main.go را لغو کنید. اکنون برنامه را دوباره اجرا کنید:⦁ Okteto&gt; default:hello-world /app&gt; go run main.go⦁OutputStarting hello-world server…به مرورگر برگردید و صفحه برنامه “Hello World” خود را مجدد لود کنید.تغییرات کد شما بلافاصله و همه بدون نیاز به تعهد ، ایجاد یا ارائه در Kubernetes اعمال شد .نتیجهOkteto با کلیک روی یک دکمه ، خوشه Kubernetes را به یک پلت فرم توسعه کاملاً برجسته تبدیل می کند. در این آموزش شما Okteto CLI را نصب و پیکربندی کرده اید تا کدهای خود را مستقیماً بر روی Kubernetes تغییر دهید تا بتوانید کد را سریعاً تایپ کنید. اکنون می توانید به مخزن نمونه Okteto بروید تا نحوه استفاده از Okteto با زبان های مختلف برنامه نویسی و اشکال زدایی را ببینید.همچنین ، اگر یک خوشه Kubernetes را با تیم خود به اشتراک می گذارید ، میتوانید به هر یک از اعضا یک فضای نام Kubernetes ارائه دهید که به گونه ای پیکربندی شده که از سایر توسعه دهندگان که بر روی همان خوشه کار میکنند، جدا باشد. این قابلیت عالی توسط اپلیکیشن Okteto در بازار Kubernetes vpsgol نیز ارائه شده است.برچسب‌ها:Golang, Kubernetes, Okteto CLI</description><category>smahi4033</category><author>smahi4033</author><pubDate>Mon, 01 Jun 2020 14:18:48 +0430</pubDate></item></channel></rss>