diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES index 87b35bfe9a5d6..1b27159859883 100644 --- a/OWNERS_ALIASES +++ b/OWNERS_ALIASES @@ -219,6 +219,16 @@ aliases: - Arhell - idvoretskyi - MaxymVlasov + sig-docs-fa-owners: # Admins for Persian content + - behiuu + - mamrezb + - moh0ps + - xirehat + sig-docs-fa-reviews: # PR reviews for Persian content + - behiuu + - mamrezb + - moh0ps + - xirehat # authoritative source: git.k8s.io/community/OWNERS_ALIASES committee-steering: # provide PR approvals for announcements - aojea diff --git a/README.md b/README.md index 7ab196f99682e..18707cc489034 100644 --- a/README.md +++ b/README.md @@ -200,14 +200,14 @@ If you need help at any point when contributing, the [New Contributor Ambassador | Language | Language | | -------------------------- | -------------------------- | -| [Bengali](./content/bn/README.md) | [Korean](./content/ko/README.md) | -| [Chinese](./content/zh-cn/README.md) | [Polish](./content/pl/README.md) | -| [French](./content/fr/README.md) | [Portuguese](./content/pt-br/README.md) | -| [German](./content/de/README.md) | [Russian](./content/ru/README.md) | -| [Hindi](./content/hi/README.md) | [Spanish](./content/es/README.md) | -| [Indonesian](./content/id/README.md) | [Ukrainian](./content/uk/README.md) | -| [Italian](./content/it/README.md) | [Vietnamese](./content/vi/README.md) | -| [Japanese](./content/ja/README.md) | | +| [Bengali](./content/bn/README.md) | [Korean](./content/ko/README.md) | +| [Chinese](./content/zh-cn/README.md) | [Persian](./content/fa/README.md) | +| [French](./content/fr/README.md) | [Polish](./content/pl/README.md) | +| [German](./content/de/README.md) | [Portuguese](./content/pt-br/README.md) | +| [Hindi](./content/hi/README.md) | [Russian](./content/ru/README.md) | +| [Indonesian](./content/id/README.md) | [Spanish](./content/es/README.md) | +| [Italian](./content/it/README.md) | [Ukrainian](./content/uk/README.md) | +| [Japanese](./content/ja/README.md) | [Vietnamese](./content/vi/README.md) | ## Code of conduct diff --git a/content/fa/OWNERS b/content/fa/OWNERS new file mode 100644 index 0000000000000..a1d81af5d0858 --- /dev/null +++ b/content/fa/OWNERS @@ -0,0 +1,14 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# This is the localization project for Persian. +# Teams and members are visible at https://github.com/orgs/kubernetes/teams. + +reviewers: +- sig-docs-fa-reviews + +approvers: +- sig-docs-fa-owners + +labels: +- area/localization +- language/fa diff --git a/content/fa/README.md b/content/fa/README.md new file mode 100644 index 0000000000000..4982fabede783 --- /dev/null +++ b/content/fa/README.md @@ -0,0 +1,133 @@ +‫ +# مستندات فارسی کوبرنتیز + +‫ +[![Netlify Status](https://api.netlify.com/api/v1/badges/be93b718-a6df-402a-b4a4-855ba186c97d/deploy-status)](https://app.netlify.com/sites/kubernetes-io-main-staging/deploys) [![GitHub release](https://img.shields.io/github/release/kubernetes/website.svg)](https://github.com/kubernetes/website/releases/latest) + + +‫ +خوش آمدید! این مخزن شامل محتویات لازم برای ساخت [تارنما کوبرنتیز فارسی و مستندات](https://kubernetes.io/fa/) آن است. خوشحال می‌شویم که در این مسیر با مشارکت کردن ما را همراهی کنید. + +‫ +## نحوه مشارکت کردن در مستندسازی + +‫ +شما می‌توانید روی دکمه‌ی **Fork** در گوشه‌ی سمت راست بالای صفحه کلیک کنید تا یک رونوشت از این مخزن در حساب گیت‌هاب خود ایجاد کنید. این رونوشت *fork* نامیده می‌شود. تغییرات دلخواه را در fork خود اعمال کنید. وقتی آماده‌ی ارسال آن تغییرات به ما شدید، به fork خود بروید و یک درخواست ادغام جدید ایجاد کنید و به ما اطلاع دهید. + +‫ +پس از ایجاد درخواست ادغام از سمت شما، فرد بررسی‌کننده تیم مستندات فارسی کوبرنتیز مسئولیت ارائه بازخورد و بررسی درخواست شما را بر عهده می‌گیرد. به عنوان صاحب درخواست ادغام، مسئولیت اصلاح درخواست ادغام بر اساس بازخوردی که از بررسی‌کننده تیم مستندات فارسی کوبرنتیز دریافت می‌کنید، بر عهده شماست. همچنین، توجه داشته باشید که ممکن است در نهایت بیش از یک بررسی‌کننده بازخورد ارائه دهند، یا ممکن است از فرد بررسی‌کننده جدید و متفاوت از کسی که در ابتدا برای ارائه بازخورد تعیین شده بود، بازخورد دریافت کنید. در برخی موارد، در صورت نیاز، یکی از بررسی‌کنندگان شما ممکن است از یک [بررسی‌کننده فنی کوبرنتیز](https://github.com/kubernetes/website/wiki/tech-reviewers) درخواست بررسی فنی کند. بررسی‌کنندگان تمام تلاش خود را می‌کنند تا بازخوردها را به موقع ارائه دهند، اما زمان پاسخگویی بسته به شرایط ممکن است متفاوت باشد. + +‫ +برای اطلاعات بیشتر در مورد مشارکت در مستندسازی کوبرنتیز به فارسی به لینک‌های زیر مراجعه کنید: + +‫ +* [شروع مشارکت](https://kubernetes.io/fa/docs/contribute/start/) +‫ +* [انواع محتوای صفحه](https://kubernetes.io/fa/docs/contribute/style/page-content-types/) +‫ +* [راهنمای سبک مستندسازی](https://kubernetes.io/fa/docs/contribute/style/style-guide/) +‫ +* [بومی‌سازی مستندات کوبرنتیز](https://kubernetes.io/fa/docs/contribute/localization/) + +‫ +## مستندات بومی‌سازی کوبرنتیز در `README.md` + +‫ +### فارسی +‫ +با تیم بومی سازی فارسی می‌توان از طریق آدرس‌های زیر در ارتباط باشید: +‫ +* محمدامین طاهری ([@xirehat](https://github.com/xirehat)) +‫ +* محمد زارعی ([@moh0ps](https://github.com/moh0ps)) +‫ +* به‌دین طالبی ([@behiuu](https://github.com/behiuu)) +‫ +* محمدرضا بهفر ([@mamrezb](https://github.com/mamrezb)) +‫ +* [کانال Slack](https://kubernetes.slack.com/messages/kubernetes-docs-fa) + +‫ +## اجرای تارنما با Docker + +‫ +برای اجرای تارنما کوبرنتیز، توصیه می‌شود آن را با [Docker](https://docker.com) اجرا کنید که شامل مولد تارنما استاتیک [Hugo](https://gohugo.io) باشد. + +‫ +> در ویندوز، به ابزارهای اضافی نیاز دارید که می‌توانید با [Chocolatey] (https://chocolatey.org) نصب کنید. +`choco install make` + +‫ +> اگر ترجیح می‌دهید تارنما را بدون داکر اجرا کنید، به [اجرای تارنما با هوگو](#اجرای-تارنما-با-هوگو) مراجعه کنید. + +‫ +قالب مورد نیاز [Docsy Hugo theme](https://github.com/google/docsy#readme) باید به عنوان یک زیرماژول git نصب شود: + +``` +git submodule update --init --recursive --depth 1 +``` + +‫ +اگر داکر را نصب کرده‌اید، image داکر `hugo` را ایجاد کنید: + +```bash +make container-image +``` + +‫ +پس از ایجاد image، می‌توانید تارنما را راه اندازی کنید: + +```bash +make container-serve +``` + +‫ +برای مشاهده تارنما، مرورگر خود را با نشانی http://localhost:1313 باز کنید. وقتی تغییراتی در پرونده‌های منبع ایجاد می‌کنید، Hugo تارنما را به‌روزرسانی کرده و مرورگر را مجبور به فراخوانی مجدد می‌کند. + +‫ +## اجرای تارنما با هوگو + +‫ +دستورالعمل‌های نصب Hugo را می‌توانید در [مستندات رسمی](https://gohugo.io/installation/) بیابید. مطمئن شوید که نسخه Hugo مشخص شده در متغیر محیطی `HUGO_VERSION` در فایل `netlify.toml` را نصب می‌کنید. + +‫ +قالب مورد نیاز [Docsy Hugo theme](https://github.com/google/docsy#readme) باید به عنوان یک زیرماژول git نصب شود: + +``` +git submodule update --init --recursive --depth 1 +``` + +‫ +برای اجرای تارنما در صورتی که Hugo را نصب کرده‌اید: + +```bash +npm ci +make serve +``` + +‫ +برای مشاهده تارنما، مرورگر خود را با نشانی http://localhost:1313 باز کنید. وقتی تغییراتی در پرونده‌های منبع ایجاد می‌کنید، Hugo تارنما را به‌روزرسانی کرده و مرورگر را مجبور به فراخوانی مجدد می‌کند. + +‫ +## جامعه، بحث، مشارکت و حمایت + +‫ +برای آشنایی با نحوه تعامل با انجمن کوبرنتیز به [صفحه انجمن](https://kubernetes.io/community/) مراجعه کنید. + +‫ +برای ارتباط با سرپرستان این پروژه می‌توانید از طریق نشانی زیر اقدام کنید: + +- [Slack](https://kubernetes.slack.com/messages/sig-docs) +- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-docs) + +‫ +### قوانین رفتاری + +‫ +مشارکت در جامعه کوبرنتیز تابع [قوانین رفتاری کوبرنتیز](https://github.com/kubernetes/website/blob/main/code-of-conduct.md) است. + +‫ +## سپاس گزاریم + +‫ +کوبرنتیز با مشارکت جامعه رونق می‌گیرد و ما از مشارکت‌های شما در تارنما و مستندات کوبرنتیز فارسی استقبال می‌کنیم. دمتون گرم! \ No newline at end of file diff --git a/content/fa/_common-resources/images/blocks.svg b/content/fa/_common-resources/images/blocks.svg new file mode 100644 index 0000000000000..a129531bec868 --- /dev/null +++ b/content/fa/_common-resources/images/blocks.svg @@ -0,0 +1 @@ +kubernetes_icons \ No newline at end of file diff --git a/content/fa/_common-resources/images/flower.svg b/content/fa/_common-resources/images/flower.svg new file mode 100644 index 0000000000000..fd287a8889c7e --- /dev/null +++ b/content/fa/_common-resources/images/flower.svg @@ -0,0 +1 @@ +kubernetes_icons \ No newline at end of file diff --git a/content/fa/_common-resources/images/kub_video_banner_homepage.jpg b/content/fa/_common-resources/images/kub_video_banner_homepage.jpg new file mode 100644 index 0000000000000..e40d92a50363b Binary files /dev/null and b/content/fa/_common-resources/images/kub_video_banner_homepage.jpg differ diff --git a/content/fa/_common-resources/images/scalable.svg b/content/fa/_common-resources/images/scalable.svg new file mode 100644 index 0000000000000..d8c475146e1cc --- /dev/null +++ b/content/fa/_common-resources/images/scalable.svg @@ -0,0 +1 @@ +kubernetes_icons \ No newline at end of file diff --git a/content/fa/_common-resources/images/suitcase.svg b/content/fa/_common-resources/images/suitcase.svg new file mode 100644 index 0000000000000..2393fa8bcb14e --- /dev/null +++ b/content/fa/_common-resources/images/suitcase.svg @@ -0,0 +1 @@ +kubernetes_icons \ No newline at end of file diff --git a/content/fa/_common-resources/index.md b/content/fa/_common-resources/index.md new file mode 100644 index 0000000000000..ca03031f1ee91 --- /dev/null +++ b/content/fa/_common-resources/index.md @@ -0,0 +1,3 @@ +--- +headless: true +--- diff --git a/content/fa/_index.html b/content/fa/_index.html new file mode 100644 index 0000000000000..fb2538a22dad0 --- /dev/null +++ b/content/fa/_index.html @@ -0,0 +1,62 @@ +--- +title: "مدیریت کانتینر در محیط عملیاتی" +abstract: "استقرار، مقیاس‌بندی و مدیریت خودکار کانتینر" +cid: home +sitemap: + priority: 1.0 +--- + +{{< blocks/section class="k8s-overview" >}} +{{% blocks/feature image="flower" id="feature-primary" %}} +[کوبرنتیز]({{< relref "/docs/concepts/overview/" >}}), که با نام K8s نیز شناخته می‌شود، یک سامانه متن‌باز برای خودکارسازی استقرار، مقیاس‌بندی و مدیریت برنامه‌های کانتینری است. + +این سامانه، کانتینرهایی را که یک برنامه را تشکیل می‌دهند، برای مدیریت و کشف آسان، در واحدهای منطقی گروه‌بندی می‌کند. کوبرنتیز بر اساس [۱۵ سال تجربه در اجرای برنامه‌های عملیاتی در گوگل](https://queue.acm.org/detail.cfm?id=2898444) و با ترکیب بهترین ایده‌ها و شیوه‌های جامعه ساخته شده است. +{{% /blocks/feature %}} + +{{% blocks/feature image="scalable" %}} +#### مقیاس سیاره + +کوبرنتیز که بر اساس همان اصولی طراحی شده است که به گوگل اجازه می‌دهد میلیاردها کانتینر را در هفته اجرا کند، می‌تواند بدون افزایش تیم عملیاتی شما، مقیاس‌پذیر شود. + +{{% /blocks/feature %}} + +{{% blocks/feature image="blocks" %}} +#### از بزرگ شدن نترس + +چه یک سازمان کوچک و چه یک سازمان با مقیاس جهانی را اداره کنید، انعطاف‌پذیری کوبرنتیز با شما رشد می‌کند تا برنامه‌های شما را به طور مداوم و آسان، صرف نظر از پیچیدگی نیازتان، ارائه دهد. + +{{% /blocks/feature %}} + +{{% blocks/feature image="suitcase" %}} +#### کوبرنتیز همه جا + +کوبرنتیز متن‌باز است و به شما آزادی عمل می‌دهد تا از زیرساخت‌های ابری داخلی، ترکیبی یا عمومی بهره ببرید و به شما امکان می‌دهد بدون دردسر برنامه‌ها را به جایی که برایتان مهم است منتقل کنید. + +برای دانلود کوبرنتیز، به بخش [دانلود](/releases/download/) مراجعه کنید. + +{{% /blocks/feature %}} + +{{< /blocks/section >}} + +{{< blocks/section id="video" background-image="kub_video_banner_homepage" >}} +
+

چالش‌های مهاجرت بیش از ۱۵۰ میکروسرویس به کوبرنتیز

+

نوشته Sarah Wells، راهبر فنی عملیات و پایایی در Financial Times

+ + +

در رویدادهای آینده KubeCon + CloudNativeCon شرکت کنید

+ هند (حیدرآباد، ۶ و ۷ اوت) + آمریکا شمالی (آتلانتا، ۱۰ تا ۱۳ نوامبر) + اروپا (آمستردام، ۲۳ تا ۲۶ مارس ۲۰۲۶) +
+
+ + +
+{{< /blocks/section >}} + +{{< blocks/kubernetes-features >}} + +{{< blocks/case-studies >}} + +{{< kubeweekly id="kubeweekly" >}} diff --git a/content/fa/case-studies/_index.html b/content/fa/case-studies/_index.html new file mode 100644 index 0000000000000..d34b330e87c69 --- /dev/null +++ b/content/fa/case-studies/_index.html @@ -0,0 +1,14 @@ +--- +title: مطالعات موردی +linkTitle: مطالعات موردی +bigheader: مطالعات موردی کاربران کوبرنتیز +abstract: مجموعه‌ای از کاربران که کوبرنتیز را در محیط عملیاتی اجرا می‌کنند. +layout: basic +class: gridPage +body_class: caseStudies +cid: caseStudies +menu: + main: + weight: 60 +--- + diff --git a/content/fa/community/_index.html b/content/fa/community/_index.html new file mode 100644 index 0000000000000..6cb601f969f61 --- /dev/null +++ b/content/fa/community/_index.html @@ -0,0 +1,191 @@ +--- +title: جامعه +layout: basic +body_class: community +cid: community +community_styles_migrated: true +menu: + main: + weight: 50 +--- + + +
+

جامعه کوبرنتیز - کاربران، مشارکت‌کنندگان و فرهنگی که + ما با هم ساخته‌ایم - یکی از بزرگترین دلایل رشد سریع این + پروژه متن‌باز است. فرهنگ و ارزش‌های ما همچنان با رشد و تغییر + خود پروژه، در حال رشد و تغییر هستند. همه ما با هم + برای بهبود مداوم پروژه و روش‌های کار بر روی آن تلاش می‌کنیم.

+

ما افرادی هستیم که مسائل را ثبت و درخواست‌ها را بررسی می‌کنیم، در جلسات SIG، + گردهمایی‌های کوبرنتیز و KubeCon شرکت می‌کنیم، از پذیرش و نوآوری آن حمایت می‌کنیم، + kubectl get pods را اجرا می‌کنیم و به هزاران روش حیاتی دیگر مشارکت می‌کنیم. + برای یادگیری نحوه مشارکت و عضویت در این جامعه شگفت‌انگیز، ادامه مطلب را بخوانید.

+
+ + + + + +
+

ارزش‌های جامعه

+

ارزش‌های جامعه کوبرنتیز سنگ بنای موفقیت مداوم این پروژه هستند.
+ این اصول، هر جنبه‌ای از پروژه کوبرنتیز را هدایت می‌کنند.

+ + ادامه مطلب + +
+ +
+

آیین‌نامه رفتاری

+

جامعه‌ی کوبرنتیز برای احترام و شمول ارزش قائل است و در تمام تعاملات، یک آیین‌نامه‌ی رفتاری را اجرا می‌کند.

+

اگر در یک رویداد یا جلسه، در Slack یا از طریق هر سازوکار ارتباطی دیگری متوجه نقض «آیین‌نامه رفتاری» شدید، با کمیته آیین‌نامه رفتاری کوبرنتیز از طریق conduct@kubernetes.io تماس بگیرید. تمام گزارش‌ها محرمانه می‌مانند. می‌توانید درباره کمیته در مخزن جامعه کوبرنتیز روی گیت‌هاب مطالعه کنید.

+ + بیشتر بخوانید + +
+ +
+

ویدیوها

+ +

کوبرنتیز در یوتیوب خیلی فعال هست، برای طیف وسیعی از موضوعات آن را دنبال کنید.

+ +
+ + + + + +
+
+ +
+

بحث‌ها

+ +

ما زیاد صحبت می‌کنیم. ما را پیدا کنید و در هر یک از این بُن‌سازه‌ها به گفتگو بپیوندید.

+ +
+
+ + Forum + + ◀ انجمن‌های اجتماعی +

بحث‌های فنی موضوعی که اسناد، عیب‌یابی و موارد دیگر را به هم پیوند می‌دهد.

+
+ +
+ + Bluesky + + ◀ Bluesky +

@kubernetes.io

+

اطلاعیه‌های بلادرنگ مطالب وبلاگ، رویدادها، اخبار، ایده‌ها.

+
+ +
+ + GitHub + + ◀ GitHub +

تمام ردیابی پروژه و مشکلات، به علاوه کدهای مربوط به دوره.

+
+ +
+ + Server Fault + + ◀ Server Fault +

بحث‌های مربوط به کوبرنتیز در Server Fault. سوالی بپرسید یا به سوالی پاسخ دهید.

+
+ +
+ + Slack + + ◀ Slack +

با بیش از ۱۷۰ کانال، کانالی را پیدا خواهید کرد که متناسب با نیازهای شما باشد.

+
دعوتنامه لازم داری؟ + برای دریافت دعوتنامه به این صفحه https://slack.k8s.io/ + مراجعه کنید.
+
+ +
+ + X + + ◀ 𝕏 +

@kubernetesio

+

اطلاعیه‌های بلادرنگ پست‌های وبلاگ، رویدادها، اخبار، ایده‌ها.

+
+
+
+ + +
+

جامعه جهانی

+

+ با بیش از ۱۵۰ گردهمایی در جهان که همچنان در حال افزایش است، به دنبال افراد محلی علاقه‌مند به کوبرنتیز بگردید. اگر کسی در نزدیکی شما نیست، مسئولیت را به عهده بگیرید و گردهمایی خودتان را ایجاد کنید. +

+ + یک جلسه ملاقات پیدا کنید + +
+ +
+

آخرین اخبار

+
+ +
+
diff --git a/content/fa/community/code-of-conduct.md b/content/fa/community/code-of-conduct.md new file mode 100644 index 0000000000000..d66e5174817f6 --- /dev/null +++ b/content/fa/community/code-of-conduct.md @@ -0,0 +1,23 @@ +--- +title: آیین‌نامه رفتاری انجمن کوبرنتیز +body_class: code-of-conduct +cid: code-of-conduct +--- + +_کوبرنتیز از +[آیین‌نامه رفتاری CNCF](https://github.com/cncf/foundation/blob/main/code-of-conduct.md) پیروی می‌کند. +متن آیین‌نامه رفتاری CNCF در زیر آمده است +[commit 71412bb02](https://github.com/cncf/foundation/blob/71412bb029090d42ecbeadb39374a337bfb48a9c/code-of-conduct.md)._ + +
+{{< include "static/cncf-code-of-conduct.md" >}} +
+ +--- + +اگر در یک رویداد یا جلسه، در Slack یا در هر سازوکار ارتباطی دیگری متوجه نقض آیین‌نامه رفتاری شدید، با [کمیته آیین نامه کوبرنتیز](https://git.k8s.io/community/committee-code-of-conduct) تماس بگیرید. + +می‌توانید از طریق این ایمیل [conduct@kubernetes.io](mailto:conduct@kubernetes.io) با آنها در ارتباط باشید. +تمام گزارش‌ها محرمانه می‌مانند. + +اگر متوجه شدید که این صفحه قدیمی است، لطفاً [درخواست رسیدگی به مشکل را ثبت کنید](https://github.com/kubernetes/website/issues/new/choose). diff --git a/content/fa/community/static/OWNERS b/content/fa/community/static/OWNERS new file mode 100644 index 0000000000000..3db354af1468a --- /dev/null +++ b/content/fa/community/static/OWNERS @@ -0,0 +1,7 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# Disable inheritance to encourage careful review of any changes here. +options: + no_parent_owners: true +approvers: +- sig-docs-leads diff --git a/content/fa/community/static/README.md b/content/fa/community/static/README.md new file mode 100644 index 0000000000000..bc44990c077f8 --- /dev/null +++ b/content/fa/community/static/README.md @@ -0,0 +1,5 @@ +The files in this directory have been imported from other sources. Do not +edit them directly, except by replacing them with new versions. + +Localization note: you do not need to create localized versions of any of + the files in this directory. \ No newline at end of file diff --git a/content/fa/community/static/cncf-code-of-conduct.md b/content/fa/community/static/cncf-code-of-conduct.md new file mode 100644 index 0000000000000..73d8475abdd45 --- /dev/null +++ b/content/fa/community/static/cncf-code-of-conduct.md @@ -0,0 +1,85 @@ + +## CNCF Community Code of Conduct v1.3 + +### Community Code of Conduct + +As contributors, maintainers, and participants in the CNCF community, and in the interest of fostering +an open and welcoming community, we pledge to respect all people who participate or contribute +through reporting issues, posting feature requests, updating documentation, +submitting pull requests or patches, attending conferences or events, or engaging in other community or project activities. + +We are committed to making participation in the CNCF community a harassment-free experience for everyone, regardless of age, body size, caste, disability, ethnicity, level of experience, family status, gender, gender identity and expression, marital status, military or veteran status, nationality, personal appearance, race, religion, sexual orientation, socioeconomic status, tribe, or any other dimension of diversity. + +## Scope + +This code of conduct applies: +* within project and community spaces, +* in other spaces when an individual CNCF community participant's words or actions are directed at or are about a CNCF project, the CNCF community, or another CNCF community participant. + +### CNCF Events + +CNCF events that are produced by the Linux Foundation with professional events staff are governed by the Linux Foundation [Events Code of Conduct](https://events.linuxfoundation.org/code-of-conduct/) available on the event page. This is designed to be used in conjunction with the CNCF Code of Conduct. + +## Our Standards + +The CNCF Community is open, inclusive and respectful. Every member of our community has the right to have their identity respected. + +Examples of behavior that contributes to a positive environment include but are not limited to: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community +* Using welcoming and inclusive language + + +Examples of unacceptable behavior include but are not limited to: + +* The use of sexualized language or imagery +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment in any form +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Violence, threatening violence, or encouraging others to engage in violent behavior +* Stalking or following someone without their consent +* Unwelcome physical contact +* Unwelcome sexual or romantic attention or advances +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +The following behaviors are also prohibited: +* Providing knowingly false or misleading information in connection with a Code of Conduct investigation or otherwise intentionally tampering with an investigation. +* Retaliating against a person because they reported an incident or provided information about an incident as a witness. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. +By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect +of managing a CNCF project. +Project maintainers who do not follow or enforce the Code of Conduct may be temporarily or permanently removed from the project team. + +## Reporting + +For incidents occurring in the Kubernetes community, contact the [Kubernetes Code of Conduct Committee](https://git.k8s.io/community/committee-code-of-conduct) via . You can expect a response within three business days. + +For other projects, or for incidents that are project-agnostic or impact multiple CNCF projects, please contact the [CNCF Code of Conduct Committee](https://www.cncf.io/conduct/committee/) via . Alternatively, you can contact any of the individual members of the [CNCF Code of Conduct Committee](https://www.cncf.io/conduct/committee/) to submit your report. For more detailed instructions on how to submit a report, including how to submit a report anonymously, please see our [Incident Resolution Procedures](https://github.com/cncf/foundation/blob/main/code-of-conduct/coc-incident-resolution-procedures.md). You can expect a response within three business days. + +For incidents occurring at CNCF event that is produced by the Linux Foundation, please contact . + +## Enforcement + +Upon review and investigation of a reported incident, the CoC response team that has jurisdiction will determine what action is appropriate based on this Code of Conduct and its related documentation. + +For information about which Code of Conduct incidents are handled by project leadership, which incidents are handled by the CNCF Code of Conduct Committee, and which incidents are handled by the Linux Foundation (including its events team), see our [Jurisdiction Policy](https://github.com/cncf/foundation/blob/main/code-of-conduct/coc-committee-jurisdiction-policy.md). + +## Amendments + +Consistent with the CNCF Charter, any substantive changes to this Code of Conduct must be approved by the Technical Oversight Committee. + +## Acknowledgements + +This Code of Conduct is adapted from the Contributor Covenant +(https://contributor-covenant.org), version 2.0 available at +https://contributor-covenant.org/version/2/0/code_of_conduct/ \ No newline at end of file diff --git a/content/fa/docs/OWNERS b/content/fa/docs/OWNERS new file mode 100644 index 0000000000000..457d6276563be --- /dev/null +++ b/content/fa/docs/OWNERS @@ -0,0 +1,9 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +# Teams and members are visible at https://github.com/orgs/kubernetes/teams. + +reviewers: +- sig-docs-fa-reviews + +approvers: +- sig-docs-fa-owners diff --git a/content/fa/docs/_index.md b/content/fa/docs/_index.md new file mode 100644 index 0000000000000..832ab12d8b77d --- /dev/null +++ b/content/fa/docs/_index.md @@ -0,0 +1,6 @@ +--- +linktitle: مستندات کوبرنتیز +title: مستندات +sitemap: + priority: 1.0 +--- diff --git a/content/fa/docs/concepts/_index.md b/content/fa/docs/concepts/_index.md new file mode 100644 index 0000000000000..8002b9e83aa37 --- /dev/null +++ b/content/fa/docs/concepts/_index.md @@ -0,0 +1,12 @@ +--- +title: مفاهیم +main_menu: true +content_type: concept +weight: 40 +--- + + + +بخش مفاهیم به شما کمک می‌کند تا درباره بخش‌های سیستم کوبرنتیز و انتزاع‌هایی که کوبرنتیز برای نمایش {{< glossary_tooltip text="خوشه" term_id="cluster" length="all" >}} شما به کار می‌برد بیاموزید، و همچنین کمک می‌کند درک عمیق‌تری از نحوه کار کوبرنتیز به دست آورید. + + diff --git a/content/fa/docs/concepts/architecture/self-healing.md b/content/fa/docs/concepts/architecture/self-healing.md new file mode 100644 index 0000000000000..11b24b749eba2 --- /dev/null +++ b/content/fa/docs/concepts/architecture/self-healing.md @@ -0,0 +1,49 @@ +--- +title: خودترمیمی کوبرنتیز +content_type: concept +weight: 50 +feature: + title: خودترمیمی + anchor: بازیابی خودکار از آسیب + description: > + کوبرنتیز کانتینرهایی که از کار می‌افتند را مجدداً راه‌اندازی می‌کند، در صورت نیاز کل Podها را جایگزین می‌کند، در پاسخ به خرابی‌های گسترده‌تر، فضای ذخیره‌سازی را دوباره متصل می‌کند و می‌تواند با مقیاس‌پذیرهای خودکار گره ادغام شود تا حتی در سطح گره نیز خود را ترمیم کند. +--- + + +کوبرنتیز با قابلیت‌های خودترمیمی طراحی شده است که به حفظ سلامت و در دسترس بودن بارهای کاری کمک می‌کند. این سیستم به طور خودکار کانتینرهای خراب را جایگزین می‌کند، بارهای کاری را در صورت از دسترس خارج شدن گره‌ها مجدداً برنامه‌ریزی می‌کند و تضمین می‌کند که وضعیت مطلوب سیستم حفظ شود. + + + +## Self-Healing capabilities {#self-healing-capabilities} + +- **Container-level restarts:** If a container inside a Pod fails, Kubernetes restarts it based on the [`restartPolicy`](/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy). + +- **Replica replacement:** If a Pod in a [Deployment](/docs/concepts/workloads/controllers/deployment/) or [StatefulSet](/docs/concepts/workloads/controllers/statefulset/) fails, Kubernetes creates a replacement Pod to maintain the specified number of replicas. + If a Pod fails that is part of a [DaemonSet](/docs/concepts/workloads/controllers/daemonset/) fails, the control plane + creates a replacement Pod to run on the same node. + +- **Persistent storage recovery:** If a node is running a Pod with a PersistentVolume (PV) attached, and the node fails, Kubernetes can reattach the volume to a new Pod on a different node. + +- **Load balancing for Services:** If a Pod behind a [Service](/docs/concepts/services-networking/service/) fails, Kubernetes automatically removes it from the Service's endpoints to route traffic only to healthy Pods. + +Here are some of the key components that provide Kubernetes self-healing: + +- **[kubelet](/docs/concepts/architecture/#kubelet):** Ensures that containers are running, and restarts those that fail. + +- **ReplicaSet, StatefulSet and DaemonSet controller:** Maintains the desired number of Pod replicas. + +- **PersistentVolume controller:** Manages volume attachment and detachment for stateful workloads. + +## Considerations {#considerations} + +- **Storage Failures:** If a persistent volume becomes unavailable, recovery steps may be required. + +- **Application Errors:** Kubernetes can restart containers, but underlying application issues must be addressed separately. + +## {{% heading "whatsnext" %}} + +- Read more about [Pods](/docs/concepts/workloads/pods/) +- Learn about [Kubernetes Controllers](/docs/concepts/architecture/controller/) +- Explore [PersistentVolumes](/docs/concepts/storage/persistent-volumes/) +- Read about [node autoscaling](/docs/concepts/cluster-administration/node-autoscaling/). Node autoscaling + also provides automatic healing if or when nodes fail in your cluster. \ No newline at end of file diff --git a/content/fa/docs/concepts/configuration/manage-resources-containers.md b/content/fa/docs/concepts/configuration/manage-resources-containers.md new file mode 100644 index 0000000000000..91bda75250669 --- /dev/null +++ b/content/fa/docs/concepts/configuration/manage-resources-containers.md @@ -0,0 +1,935 @@ +--- +title: مدیریت منابع برای پادها و کانتینرها +content_type: concept +weight: 40 +feature: + title: بسته بندی سطل زباله اتوماتیک + description: > + کانتینرها را به طور خودکار بر اساس الزامات منابع و سایر محدودیت‌ها قرار می‌دهد، در حالی که دسترسی‌پذیری را فدا نمی‌کند. بارهای کاری بحرانی و بهترین تلاش را با هم ترکیب می‌کند تا میزان استفاده را افزایش داده و منابع بیشتری را ذخیره کند. +--- + + + +When you specify a {{< glossary_tooltip term_id="pod" >}}, you can optionally specify how much of each resource a +{{< glossary_tooltip text="container" term_id="container" >}} needs. The most common resources to specify are CPU and memory +(RAM); there are others. + +When you specify the resource _request_ for containers in a Pod, the +{{< glossary_tooltip text="kube-scheduler" term_id="kube-scheduler" >}} uses this information to decide which node to place the Pod on. +When you specify a resource _limit_ for a container, the {{< glossary_tooltip text="kubelet" term_id="kubelet" >}} enforces those +limits so that the running container is not allowed to use more of that resource +than the limit you set. The kubelet also reserves at least the _request_ amount of +that system resource specifically for that container to use. + + + +## Requests and limits + +If the node where a Pod is running has enough of a resource available, it's possible (and +allowed) for a container to use more resource than its `request` for that resource specifies. + +For example, if you set a `memory` request of 256 MiB for a container, and that container is in +a Pod scheduled to a Node with 8GiB of memory and no other Pods, then the container can try to use +more RAM. + +Limits are a different story. Both `cpu` and `memory` limits are applied by the kubelet (and +{{< glossary_tooltip text="container runtime" term_id="container-runtime" >}}), +and are ultimately enforced by the kernel. On Linux nodes, the Linux kernel +enforces limits with +{{< glossary_tooltip text="cgroups" term_id="cgroup" >}}. +The behavior of `cpu` and `memory` limit enforcement is slightly different. + +`cpu` limits are enforced by CPU throttling. When a container approaches +its `cpu` limit, the kernel will restrict access to the CPU corresponding to the +container's limit. Thus, a `cpu` limit is a hard limit the kernel enforces. +Containers may not use more CPU than is specified in their `cpu` limit. + +`memory` limits are enforced by the kernel with out of memory (OOM) kills. When +a container uses more than its `memory` limit, the kernel may terminate it. However, +terminations only happen when the kernel detects memory pressure. Thus, a +container that over allocates memory may not be immediately killed. This means +`memory` limits are enforced reactively. A container may use more memory than +its `memory` limit, but if it does, it may get killed. + +{{< note >}} +There is an alpha feature `MemoryQoS` which attempts to add more preemptive +limit enforcement for memory (as opposed to reactive enforcement by the OOM +killer). However, this effort is +[stalled](https://github.com/kubernetes/enhancements/tree/a47155b340/keps/sig-node/2570-memory-qos#latest-update-stalled) +due to a potential livelock situation a memory hungry can cause. +{{< /note >}} + +{{< note >}} +If you specify a limit for a resource, but do not specify any request, and no admission-time +mechanism has applied a default request for that resource, then Kubernetes copies the limit +you specified and uses it as the requested value for the resource. +{{< /note >}} + +## Resource types + +*CPU* and *memory* are each a *resource type*. A resource type has a base unit. +CPU represents compute processing and is specified in units of [Kubernetes CPUs](#meaning-of-cpu). +Memory is specified in units of bytes. +For Linux workloads, you can specify _huge page_ resources. +Huge pages are a Linux-specific feature where the node kernel allocates blocks of memory +that are much larger than the default page size. + +For example, on a system where the default page size is 4KiB, you could specify a limit, +`hugepages-2Mi: 80Mi`. If the container tries allocating over 40 2MiB huge pages (a +total of 80 MiB), that allocation fails. + +{{< note >}} +You cannot overcommit `hugepages-*` resources. +This is different from the `memory` and `cpu` resources. +{{< /note >}} + +CPU and memory are collectively referred to as *compute resources*, or *resources*. Compute +resources are measurable quantities that can be requested, allocated, and +consumed. They are distinct from +[API resources](/docs/concepts/overview/kubernetes-api/). API resources, such as Pods and +[Services](/docs/concepts/services-networking/service/) are objects that can be read and modified +through the Kubernetes API server. + +## Resource requests and limits of Pod and container + +For each container, you can specify resource limits and requests, +including the following: + +* `spec.containers[].resources.limits.cpu` +* `spec.containers[].resources.limits.memory` +* `spec.containers[].resources.limits.hugepages-` +* `spec.containers[].resources.requests.cpu` +* `spec.containers[].resources.requests.memory` +* `spec.containers[].resources.requests.hugepages-` + +Although you can only specify requests and limits for individual containers, +it is also useful to think about the overall resource requests and limits for +a Pod. +For a particular resource, a *Pod resource request/limit* is the sum of the +resource requests/limits of that type for each container in the Pod. + +## Pod-level resource specification + +{{< feature-state feature_gate_name="PodLevelResources" >}} + +Starting in Kubernetes 1.32, you can also specify resource requests and limits at +the Pod level. At the Pod level, Kubernetes {{< skew currentVersion >}} +only supports resource requests or limits for specific resource types: `cpu` and / +or `memory`. This feature is currently in alpha and with the feature enabled, +Kubernetes allows you to declare an overall resource budget for the Pod, which is +especially helpful when dealing with a large number of containers where it can be +difficult to accurately gauge individual resource needs. Additionally, it enables +containers within a Pod to share idle resources with each other, improving resource +utilization. + +For a Pod, you can specify resource limits and requests for CPU and memory by including the following: +* `spec.resources.limits.cpu` +* `spec.resources.limits.memory` +* `spec.resources.requests.cpu` +* `spec.resources.requests.memory` + +## Resource units in Kubernetes + +### CPU resource units {#meaning-of-cpu} + +Limits and requests for CPU resources are measured in *cpu* units. +In Kubernetes, 1 CPU unit is equivalent to **1 physical CPU core**, +or **1 virtual core**, depending on whether the node is a physical host +or a virtual machine running inside a physical machine. + +Fractional requests are allowed. When you define a container with +`spec.containers[].resources.requests.cpu` set to `0.5`, you are requesting half +as much CPU time compared to if you asked for `1.0` CPU. +For CPU resource units, the [quantity](/docs/reference/kubernetes-api/common-definitions/quantity/) expression `0.1` is equivalent to the +expression `100m`, which can be read as "one hundred millicpu". Some people say +"one hundred millicores", and this is understood to mean the same thing. + +CPU resource is always specified as an absolute amount of resource, never as a relative amount. For example, +`500m` CPU represents the roughly same amount of computing power whether that container +runs on a single-core, dual-core, or 48-core machine. + +{{< note >}} +Kubernetes doesn't allow you to specify CPU resources with a precision finer than +`1m` or `0.001` CPU. To avoid accidentally using an invalid CPU quantity, it's useful to specify CPU units using the milliCPU form +instead of the decimal form when using less than 1 CPU unit. + +For example, you have a Pod that uses `5m` or `0.005` CPU and would like to decrease +its CPU resources. By using the decimal form, it's harder to spot that `0.0005` CPU +is an invalid value, while by using the milliCPU form, it's easier to spot that +`0.5m` is an invalid value. +{{< /note >}} + +### Memory resource units {#meaning-of-memory} + +Limits and requests for `memory` are measured in bytes. You can express memory as +a plain integer or as a fixed-point number using one of these +[quantity](/docs/reference/kubernetes-api/common-definitions/quantity/) suffixes: +E, P, T, G, M, k. You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, +Mi, Ki. For example, the following represent roughly the same value: + +```shell +128974848, 129e6, 129M, 128974848000m, 123Mi +``` + +Pay attention to the case of the suffixes. If you request `400m` of memory, this is a request +for 0.4 bytes. Someone who types that probably meant to ask for 400 mebibytes (`400Mi`) +or 400 megabytes (`400M`). + +## Container resources example {#example-1} + +The following Pod has two containers. Both containers are defined with a request for +0.25 CPU +and 64MiB (226 bytes) of memory. Each container has a limit of 0.5 +CPU and 128MiB of memory. You can say the Pod has a request of 0.5 CPU and 128 +MiB of memory, and a limit of 1 CPU and 256MiB of memory. + +```yaml +--- +apiVersion: v1 +kind: Pod +metadata: + name: frontend +spec: + containers: + - name: app + image: images.my-company.example/app:v4 + resources: + requests: + memory: "64Mi" + cpu: "250m" + limits: + memory: "128Mi" + cpu: "500m" + - name: log-aggregator + image: images.my-company.example/log-aggregator:v6 + resources: + requests: + memory: "64Mi" + cpu: "250m" + limits: + memory: "128Mi" + cpu: "500m" +``` + +## Pod resources example {#example-2} + +{{< feature-state feature_gate_name="PodLevelResources" >}} + +This feature can be enabled by setting the `PodLevelResources` +[feature gate](/docs/reference/command-line-tools-reference/feature-gates). +The following Pod has an explicit request of 1 CPU and 100 MiB of memory, and an +explicit limit of 1 CPU and 200 MiB of memory. The `pod-resources-demo-ctr-1` +container has explicit requests and limits set. However, the +`pod-resources-demo-ctr-2` container will simply share the resources available +within the Pod resource boundaries, as it does not have explicit requests and limits +set. + +{{% code_sample file="pods/resource/pod-level-resources.yaml" %}} + +## How Pods with resource requests are scheduled + +When you create a Pod, the Kubernetes scheduler selects a node for the Pod to +run on. Each node has a maximum capacity for each of the resource types: the +amount of CPU and memory it can provide for Pods. The scheduler ensures that, +for each resource type, the sum of the resource requests of the scheduled +containers is less than the capacity of the node. +Note that although actual memory +or CPU resource usage on nodes is very low, the scheduler still refuses to place +a Pod on a node if the capacity check fails. This protects against a resource +shortage on a node when resource usage later increases, for example, during a +daily peak in request rate. + +## How Kubernetes applies resource requests and limits {#how-pods-with-resource-limits-are-run} + +When the kubelet starts a container as part of a Pod, the kubelet passes that container's +requests and limits for memory and CPU to the container runtime. + +On Linux, the container runtime typically configures +kernel {{< glossary_tooltip text="cgroups" term_id="cgroup" >}} that apply and enforce the +limits you defined. + +- The CPU limit defines a hard ceiling on how much CPU time the container can use. + During each scheduling interval (time slice), the Linux kernel checks to see if this + limit is exceeded; if so, the kernel waits before allowing that cgroup to resume execution. +- The CPU request typically defines a weighting. If several different containers (cgroups) + want to run on a contended system, workloads with larger CPU requests are allocated more + CPU time than workloads with small requests. +- The memory request is mainly used during (Kubernetes) Pod scheduling. On a node that uses + cgroups v2, the container runtime might use the memory request as a hint to set + `memory.min` and `memory.low`. +- The memory limit defines a memory limit for that cgroup. If the container tries to + allocate more memory than this limit, the Linux kernel out-of-memory subsystem activates + and, typically, intervenes by stopping one of the processes in the container that tried + to allocate memory. If that process is the container's PID 1, and the container is marked + as restartable, Kubernetes restarts the container. +- The memory limit for the Pod or container can also apply to pages in memory backed + volumes, such as an `emptyDir`. The kubelet tracks `tmpfs` emptyDir volumes as container + memory use, rather than as local ephemeral storage. When using memory backed `emptyDir`, + be sure to check the notes [below](#memory-backed-emptydir). + +If a container exceeds its memory request and the node that it runs on becomes short of +memory overall, it is likely that the Pod the container belongs to will be +{{< glossary_tooltip text="evicted" term_id="eviction" >}}. + +A container might or might not be allowed to exceed its CPU limit for extended periods of time. +However, container runtimes don't terminate Pods or containers for excessive CPU usage. + +To determine whether a container cannot be scheduled or is being killed due to resource limits, +see the [Troubleshooting](#troubleshooting) section. + +### Monitoring compute & memory resource usage + +The kubelet reports the resource usage of a Pod as part of the Pod +[`status`](/docs/concepts/overview/working-with-objects/#object-spec-and-status). + +If optional [tools for monitoring](/docs/tasks/debug/debug-cluster/resource-usage-monitoring/) +are available in your cluster, then Pod resource usage can be retrieved either +from the [Metrics API](/docs/tasks/debug/debug-cluster/resource-metrics-pipeline/#metrics-api) +directly or from your monitoring tools. + +### Considerations for memory backed `emptyDir` volumes {#memory-backed-emptydir} + +{{< caution >}} +If you do not specify a `sizeLimit` for an `emptyDir` volume, that volume may +consume up to that pod's memory limit (`Pod.spec.containers[].resources.limits.memory`). +If you do not set a memory limit, the pod has no upper bound on memory consumption, +and can consume all available memory on the node. Kubernetes schedules pods based +on resource requests (`Pod.spec.containers[].resources.requests`) and will not +consider memory usage above the request when deciding if another pod can fit on +a given node. This can result in a denial of service and cause the OS to do +out-of-memory (OOM) handling. It is possible to create any number of `emptyDir`s +that could potentially consume all available memory on the node, making OOM +more likely. +{{< /caution >}} + +From the perspective of memory management, there are some similarities between +when a process uses memory as a work area and when using memory-backed +`emptyDir`. But when using memory as a volume, like memory-backed `emptyDir`, +there are additional points below that you should be careful of: + +* Files stored on a memory-backed volume are almost entirely managed by the + user application. Unlike when used as a work area for a process, you can not + rely on things like language-level garbage collection. +* The purpose of writing files to a volume is to save data or pass it between + applications. Neither Kubernetes nor the OS may automatically delete files + from a volume, so memory used by those files can not be reclaimed when the + system or the pod are under memory pressure. +* A memory-backed `emptyDir` is useful because of its performance, but memory + is generally much smaller in size and much higher in cost than other storage + media, such as disks or SSDs. Using large amounts of memory for `emptyDir` + volumes may affect the normal operation of your pod or of the whole node, + so should be used carefully. + +If you are administering a cluster or namespace, you can also set +[ResourceQuota](/docs/concepts/policy/resource-quotas/) that limits memory use; +you may also want to define a [LimitRange](/docs/concepts/policy/limit-range/) +for additional enforcement. +If you specify a `spec.containers[].resources.limits.memory` for each Pod, +then the maximum size of an `emptyDir` volume will be the pod's memory limit. + +As an alternative, a cluster administrator can enforce size limits for +`emptyDir` volumes in new Pods using a policy mechanism such as +[ValidationAdmissionPolicy](/docs/reference/access-authn-authz/validating-admission-policy). + +## Local ephemeral storage + + +{{< feature-state for_k8s_version="v1.25" state="stable" >}} + +Nodes have local ephemeral storage, backed by +locally-attached writeable devices or, sometimes, by RAM. +"Ephemeral" means that there is no long-term guarantee about durability. + +Pods use ephemeral local storage for scratch space, caching, and for logs. +The kubelet can provide scratch space to Pods using local ephemeral storage to +mount [`emptyDir`](/docs/concepts/storage/volumes/#emptydir) + {{< glossary_tooltip term_id="volume" text="volumes" >}} into containers. + +The kubelet also uses this kind of storage to hold +[node-level container logs](/docs/concepts/cluster-administration/logging/#logging-at-the-node-level), +container images, and the writable layers of running containers. + +{{< caution >}} +If a node fails, the data in its ephemeral storage can be lost. +Your applications cannot expect any performance SLAs (disk IOPS for example) +from local ephemeral storage. +{{< /caution >}} + + +{{< note >}} +To make the resource quota work on ephemeral-storage, two things need to be done: + +* An admin sets the resource quota for ephemeral-storage in a namespace. +* A user needs to specify limits for the ephemeral-storage resource in the Pod spec. + +If the user doesn't specify the ephemeral-storage resource limit in the Pod spec, +the resource quota is not enforced on ephemeral-storage. + +{{< /note >}} + +Kubernetes lets you track, reserve and limit the amount +of ephemeral local storage a Pod can consume. + +### Configurations for local ephemeral storage + +Kubernetes supports two ways to configure local ephemeral storage on a node: +{{< tabs name="local_storage_configurations" >}} +{{% tab name="Single filesystem" %}} +In this configuration, you place all different kinds of ephemeral local data +(`emptyDir` volumes, writeable layers, container images, logs) into one filesystem. +The most effective way to configure the kubelet means dedicating this filesystem +to Kubernetes (kubelet) data. + +The kubelet also writes +[node-level container logs](/docs/concepts/cluster-administration/logging/#logging-at-the-node-level) +and treats these similarly to ephemeral local storage. + +The kubelet writes logs to files inside its configured log directory (`/var/log` +by default); and has a base directory for other locally stored data +(`/var/lib/kubelet` by default). + +Typically, both `/var/lib/kubelet` and `/var/log` are on the system root filesystem, +and the kubelet is designed with that layout in mind. + +Your node can have as many other filesystems, not used for Kubernetes, +as you like. +{{% /tab %}} +{{% tab name="Two filesystems" %}} +You have a filesystem on the node that you're using for ephemeral data that +comes from running Pods: logs, and `emptyDir` volumes. You can use this filesystem +for other data (for example: system logs not related to Kubernetes); it can even +be the root filesystem. + +The kubelet also writes +[node-level container logs](/docs/concepts/cluster-administration/logging/#logging-at-the-node-level) +into the first filesystem, and treats these similarly to ephemeral local storage. + +You also use a separate filesystem, backed by a different logical storage device. +In this configuration, the directory where you tell the kubelet to place +container image layers and writeable layers is on this second filesystem. + +The first filesystem does not hold any image layers or writeable layers. + +Your node can have as many other filesystems, not used for Kubernetes, +as you like. +{{% /tab %}} +{{< /tabs >}} + +The kubelet can measure how much local storage it is using. It does this provided +that you have set up the node using one of the supported configurations for local +ephemeral storage. + +If you have a different configuration, then the kubelet does not apply resource +limits for ephemeral local storage. + +{{< note >}} +The kubelet tracks `tmpfs` emptyDir volumes as container memory use, rather +than as local ephemeral storage. +{{< /note >}} + +{{< note >}} +The kubelet will only track the root filesystem for ephemeral storage. OS layouts that mount a separate disk to `/var/lib/kubelet` or `/var/lib/containers` will not report ephemeral storage correctly. +{{< /note >}} + +### Setting requests and limits for local ephemeral storage + +You can specify `ephemeral-storage` for managing local ephemeral storage. Each +container of a Pod can specify either or both of the following: + +* `spec.containers[].resources.limits.ephemeral-storage` +* `spec.containers[].resources.requests.ephemeral-storage` + +Limits and requests for `ephemeral-storage` are measured in byte quantities. +You can express storage as a plain integer or as a fixed-point number using one of these suffixes: +E, P, T, G, M, k. You can also use the power-of-two equivalents: Ei, Pi, Ti, Gi, +Mi, Ki. For example, the following quantities all represent roughly the same value: + +- `128974848` +- `129e6` +- `129M` +- `123Mi` + +Pay attention to the case of the suffixes. If you request `400m` of ephemeral-storage, this is a request +for 0.4 bytes. Someone who types that probably meant to ask for 400 mebibytes (`400Mi`) +or 400 megabytes (`400M`). + +In the following example, the Pod has two containers. Each container has a request of +2GiB of local ephemeral storage. Each container has a limit of 4GiB of local ephemeral +storage. Therefore, the Pod has a request of 4GiB of local ephemeral storage, and +a limit of 8GiB of local ephemeral storage. 500Mi of that limit could be +consumed by the `emptyDir` volume. + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: frontend +spec: + containers: + - name: app + image: images.my-company.example/app:v4 + resources: + requests: + ephemeral-storage: "2Gi" + limits: + ephemeral-storage: "4Gi" + volumeMounts: + - name: ephemeral + mountPath: "/tmp" + - name: log-aggregator + image: images.my-company.example/log-aggregator:v6 + resources: + requests: + ephemeral-storage: "2Gi" + limits: + ephemeral-storage: "4Gi" + volumeMounts: + - name: ephemeral + mountPath: "/tmp" + volumes: + - name: ephemeral + emptyDir: + sizeLimit: 500Mi +``` + +### How Pods with ephemeral-storage requests are scheduled + +When you create a Pod, the Kubernetes scheduler selects a node for the Pod to +run on. Each node has a maximum amount of local ephemeral storage it can provide for Pods. +For more information, see +[Node Allocatable](/docs/tasks/administer-cluster/reserve-compute-resources/#node-allocatable). + +The scheduler ensures that the sum of the resource requests of the scheduled containers is less than the capacity of the node. + +### Ephemeral storage consumption management {#resource-emphemeralstorage-consumption} + +If the kubelet is managing local ephemeral storage as a resource, then the +kubelet measures storage use in: + +- `emptyDir` volumes, except _tmpfs_ `emptyDir` volumes +- directories holding node-level logs +- writeable container layers + +If a Pod is using more ephemeral storage than you allow it to, the kubelet +sets an eviction signal that triggers Pod eviction. + +For container-level isolation, if a container's writable layer and log +usage exceeds its storage limit, the kubelet marks the Pod for eviction. + +For pod-level isolation the kubelet works out an overall Pod storage limit by +summing the limits for the containers in that Pod. In this case, if the sum of +the local ephemeral storage usage from all containers and also the Pod's `emptyDir` +volumes exceeds the overall Pod storage limit, then the kubelet also marks the Pod +for eviction. + +{{< caution >}} +If the kubelet is not measuring local ephemeral storage, then a Pod +that exceeds its local storage limit will not be evicted for breaching +local storage resource limits. + +However, if the filesystem space for writeable container layers, node-level logs, +or `emptyDir` volumes falls low, the node +{{< glossary_tooltip text="taints" term_id="taint" >}} itself as short on local storage +and this taint triggers eviction for any Pods that don't specifically tolerate the taint. + +See the supported [configurations](#configurations-for-local-ephemeral-storage) +for ephemeral local storage. +{{< /caution >}} + +The kubelet supports different ways to measure Pod storage use: + +{{< tabs name="resource-emphemeralstorage-measurement" >}} +{{% tab name="Periodic scanning" %}} +The kubelet performs regular, scheduled checks that scan each +`emptyDir` volume, container log directory, and writeable container layer. + +The scan measures how much space is used. + +{{< note >}} +In this mode, the kubelet does not track open file descriptors +for deleted files. + +If you (or a container) create a file inside an `emptyDir` volume, +something then opens that file, and you delete the file while it is +still open, then the inode for the deleted file stays until you close +that file but the kubelet does not categorize the space as in use. +{{< /note >}} +{{% /tab %}} +{{% tab name="Filesystem project quota" %}} + +{{< feature-state feature_gate_name="LocalStorageCapacityIsolationFSQuotaMonitoring" >}} + +Project quotas are an operating-system level feature for managing +storage use on filesystems. With Kubernetes, you can enable project +quotas for monitoring storage use. Make sure that the filesystem +backing the `emptyDir` volumes, on the node, provides project quota support. +For example, XFS and ext4fs offer project quotas. + +{{< note >}} +Project quotas let you monitor storage use; they do not enforce limits. +{{< /note >}} + +Kubernetes uses project IDs starting from `1048576`. The IDs in use are +registered in `/etc/projects` and `/etc/projid`. If project IDs in +this range are used for other purposes on the system, those project +IDs must be registered in `/etc/projects` and `/etc/projid` so that +Kubernetes does not use them. + +Quotas are faster and more accurate than directory scanning. When a +directory is assigned to a project, all files created under a +directory are created in that project, and the kernel merely has to +keep track of how many blocks are in use by files in that project. +If a file is created and deleted, but has an open file descriptor, +it continues to consume space. Quota tracking records that space accurately +whereas directory scans overlook the storage used by deleted files. + +To use quotas to track a pod's resource usage, the pod must be in +a user namespace. Within user namespaces, the kernel restricts changes +to projectIDs on the filesystem, ensuring the reliability of storage +metrics calculated by quotas. + +If you want to use project quotas, you should: + +* Enable the `LocalStorageCapacityIsolationFSQuotaMonitoring=true` + [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) + using the `featureGates` field in the + [kubelet configuration](/docs/reference/config-api/kubelet-config.v1beta1/). + +* Ensure the `UserNamespacesSupport` + [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) + is enabled, and that the kernel, CRI implementation and OCI runtime support user namespaces. + +* Ensure that the root filesystem (or optional runtime filesystem) + has project quotas enabled. All XFS filesystems support project quotas. + For ext4 filesystems, you need to enable the project quota tracking feature + while the filesystem is not mounted. + + ```bash + # For ext4, with /dev/block-device not mounted + sudo tune2fs -O project -Q prjquota /dev/block-device + ``` + +* Ensure that the root filesystem (or optional runtime filesystem) is + mounted with project quotas enabled. For both XFS and ext4fs, the + mount option is named `prjquota`. + + +If you don't want to use project quotas, you should: + +* Disable the `LocalStorageCapacityIsolationFSQuotaMonitoring` + [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) + using the `featureGates` field in the + [kubelet configuration](/docs/reference/config-api/kubelet-config.v1beta1/). +{{% /tab %}} +{{< /tabs >}} + +## Extended resources + +Extended resources are fully-qualified resource names outside the +`kubernetes.io` domain. They allow cluster operators to advertise and users to +consume the non-Kubernetes-built-in resources. + +There are two steps required to use Extended Resources. First, the cluster +operator must advertise an Extended Resource. Second, users must request the +Extended Resource in Pods. + +### Managing extended resources + +#### Node-level extended resources + +Node-level extended resources are tied to nodes. + +##### Device plugin managed resources +See [Device +Plugin](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) +for how to advertise device plugin managed resources on each node. + +##### Other resources + +To advertise a new node-level extended resource, the cluster operator can +submit a `PATCH` HTTP request to the API server to specify the available +quantity in the `status.capacity` for a node in the cluster. After this +operation, the node's `status.capacity` will include a new resource. The +`status.allocatable` field is updated automatically with the new resource +asynchronously by the kubelet. + +Because the scheduler uses the node's `status.allocatable` value when +evaluating Pod fitness, the scheduler only takes account of the new value after +that asynchronous update. There may be a short delay between patching the +node capacity with a new resource and the time when the first Pod that requests +the resource can be scheduled on that node. + +**Example:** + +Here is an example showing how to use `curl` to form an HTTP request that +advertises five "example.com/foo" resources on node `k8s-node-1` whose master +is `k8s-master`. + +```shell +curl --header "Content-Type: application/json-patch+json" \ +--request PATCH \ +--data '[{"op": "add", "path": "/status/capacity/example.com~1foo", "value": "5"}]' \ +http://k8s-master:8080/api/v1/nodes/k8s-node-1/status +``` + +{{< note >}} +In the preceding request, `~1` is the encoding for the character `/` +in the patch path. The operation path value in JSON-Patch is interpreted as a +JSON-Pointer. For more details, see +[IETF RFC 6901, section 3](https://tools.ietf.org/html/rfc6901#section-3). +{{< /note >}} + +#### Cluster-level extended resources + +Cluster-level extended resources are not tied to nodes. They are usually managed +by scheduler extenders, which handle the resource consumption and resource quota. + +You can specify the extended resources that are handled by scheduler extenders +in [scheduler configuration](/docs/reference/config-api/kube-scheduler-config.v1/) + +**Example:** + +The following configuration for a scheduler policy indicates that the +cluster-level extended resource "example.com/foo" is handled by the scheduler +extender. + +- The scheduler sends a Pod to the scheduler extender only if the Pod requests + "example.com/foo". +- The `ignoredByScheduler` field specifies that the scheduler does not check + the "example.com/foo" resource in its `PodFitsResources` predicate. + +```json +{ + "kind": "Policy", + "apiVersion": "v1", + "extenders": [ + { + "urlPrefix":"", + "bindVerb": "bind", + "managedResources": [ + { + "name": "example.com/foo", + "ignoredByScheduler": true + } + ] + } + ] +} +``` + +### Consuming extended resources + +Users can consume extended resources in Pod specs like CPU and memory. +The scheduler takes care of the resource accounting so that no more than the +available amount is simultaneously allocated to Pods. + +The API server restricts quantities of extended resources to whole numbers. +Examples of _valid_ quantities are `3`, `3000m` and `3Ki`. Examples of +_invalid_ quantities are `0.5` and `1500m` (because `1500m` would result in `1.5`). + +{{< note >}} +Extended resources replace Opaque Integer Resources. +Users can use any domain name prefix other than `kubernetes.io` which is reserved. +{{< /note >}} + +To consume an extended resource in a Pod, include the resource name as a key +in the `spec.containers[].resources.limits` map in the container spec. + +{{< note >}} +Extended resources cannot be overcommitted, so request and limit +must be equal if both are present in a container spec. +{{< /note >}} + +A Pod is scheduled only if all of the resource requests are satisfied, including +CPU, memory and any extended resources. The Pod remains in the `PENDING` state +as long as the resource request cannot be satisfied. + +**Example:** + +The Pod below requests 2 CPUs and 1 "example.com/foo" (an extended resource). + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: my-pod +spec: + containers: + - name: my-container + image: myimage + resources: + requests: + cpu: 2 + example.com/foo: 1 + limits: + example.com/foo: 1 +``` + +## PID limiting + +Process ID (PID) limits allow for the configuration of a kubelet +to limit the number of PIDs that a given Pod can consume. See +[PID Limiting](/docs/concepts/policy/pid-limiting/) for information. + +## Troubleshooting + +### My Pods are pending with event message `FailedScheduling` + +If the scheduler cannot find any node where a Pod can fit, the Pod remains +unscheduled until a place can be found. An +[Event](/docs/reference/kubernetes-api/cluster-resources/event-v1/) is produced +each time the scheduler fails to find a place for the Pod. You can use `kubectl` +to view the events for a Pod; for example: + +```shell +kubectl describe pod frontend | grep -A 9999999999 Events +``` +``` +Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Warning FailedScheduling 23s default-scheduler 0/42 nodes available: insufficient cpu +``` + +In the preceding example, the Pod named "frontend" fails to be scheduled due to +insufficient CPU resource on any node. Similar error messages can also suggest +failure due to insufficient memory (PodExceedsFreeMemory). In general, if a Pod +is pending with a message of this type, there are several things to try: + +- Add more nodes to the cluster. +- Terminate unneeded Pods to make room for pending Pods. +- Check that the Pod is not larger than all the nodes. For example, if all the + nodes have a capacity of `cpu: 1`, then a Pod with a request of `cpu: 1.1` will + never be scheduled. +- Check for node taints. If most of your nodes are tainted, and the new Pod does + not tolerate that taint, the scheduler only considers placements onto the + remaining nodes that don't have that taint. + +You can check node capacities and amounts allocated with the +`kubectl describe nodes` command. For example: + +```shell +kubectl describe nodes e2e-test-node-pool-4lw4 +``` +``` +Name: e2e-test-node-pool-4lw4 +[ ... lines removed for clarity ...] +Capacity: + cpu: 2 + memory: 7679792Ki + pods: 110 +Allocatable: + cpu: 1800m + memory: 7474992Ki + pods: 110 +[ ... lines removed for clarity ...] +Non-terminated Pods: (5 in total) + Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits + --------- ---- ------------ ---------- --------------- ------------- + kube-system fluentd-gcp-v1.38-28bv1 100m (5%) 0 (0%) 200Mi (2%) 200Mi (2%) + kube-system kube-dns-3297075139-61lj3 260m (13%) 0 (0%) 100Mi (1%) 170Mi (2%) + kube-system kube-proxy-e2e-test-... 100m (5%) 0 (0%) 0 (0%) 0 (0%) + kube-system monitoring-influxdb-grafana-v4-z1m12 200m (10%) 200m (10%) 600Mi (8%) 600Mi (8%) + kube-system node-problem-detector-v0.1-fj7m3 20m (1%) 200m (10%) 20Mi (0%) 100Mi (1%) +Allocated resources: + (Total limits may be over 100 percent, i.e., overcommitted.) + CPU Requests CPU Limits Memory Requests Memory Limits + ------------ ---------- --------------- ------------- + 680m (34%) 400m (20%) 920Mi (11%) 1070Mi (13%) +``` + +In the preceding output, you can see that if a Pod requests more than 1.120 CPUs +or more than 6.23Gi of memory, that Pod will not fit on the node. + +By looking at the “Pods” section, you can see which Pods are taking up space on +the node. + +The amount of resources available to Pods is less than the node capacity because +system daemons use a portion of the available resources. Within the Kubernetes API, +each Node has a `.status.allocatable` field +(see [NodeStatus](/docs/reference/kubernetes-api/cluster-resources/node-v1/#NodeStatus) +for details). + +The `.status.allocatable` field describes the amount of resources that are available +to Pods on that node (for example: 15 virtual CPUs and 7538 MiB of memory). +For more information on node allocatable resources in Kubernetes, see +[Reserve Compute Resources for System Daemons](/docs/tasks/administer-cluster/reserve-compute-resources/). + +You can configure [resource quotas](/docs/concepts/policy/resource-quotas/) +to limit the total amount of resources that a namespace can consume. +Kubernetes enforces quotas for objects in particular namespace when there is a +ResourceQuota in that namespace. +For example, if you assign specific namespaces to different teams, you +can add ResourceQuotas into those namespaces. Setting resource quotas helps to +prevent one team from using so much of any resource that this over-use affects other teams. + +You should also consider what access you grant to that namespace: +**full** write access to a namespace allows someone with that access to remove any +resource, including a configured ResourceQuota. + +### My container is terminated + +Your container might get terminated because it is resource-starved. To check +whether a container is being killed because it is hitting a resource limit, call +`kubectl describe pod` on the Pod of interest: + +```shell +kubectl describe pod simmemleak-hra99 +``` + +The output is similar to: +``` +Name: simmemleak-hra99 +Namespace: default +Image(s): saadali/simmemleak +Node: kubernetes-node-tf0f/10.240.216.66 +Labels: name=simmemleak +Status: Running +Reason: +Message: +IP: 10.244.2.75 +Containers: + simmemleak: + Image: saadali/simmemleak:latest + Limits: + cpu: 100m + memory: 50Mi + State: Running + Started: Tue, 07 Jul 2019 12:54:41 -0700 + Last State: Terminated + Reason: OOMKilled + Exit Code: 137 + Started: Fri, 07 Jul 2019 12:54:30 -0700 + Finished: Fri, 07 Jul 2019 12:54:33 -0700 + Ready: False + Restart Count: 5 +Conditions: + Type Status + Ready False +Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Scheduled 42s default-scheduler Successfully assigned simmemleak-hra99 to kubernetes-node-tf0f + Normal Pulled 41s kubelet Container image "saadali/simmemleak:latest" already present on machine + Normal Created 41s kubelet Created container simmemleak + Normal Started 40s kubelet Started container simmemleak + Normal Killing 32s kubelet Killing container with id ead3fb35-5cf5-44ed-9ae1-488115be66c6: Need to kill Pod +``` + +In the preceding example, the `Restart Count: 5` indicates that the `simmemleak` +container in the Pod was terminated and restarted five times (so far). +The `OOMKilled` reason shows that the container tried to use more memory than its limit. + +Your next step might be to check the application code for a memory leak. If you +find that the application is behaving how you expect, consider setting a higher +memory limit (and possibly request) for that container. + +## {{% heading "whatsnext" %}} + +* Get hands-on experience [assigning Memory resources to containers and Pods](/docs/tasks/configure-pod-container/assign-memory-resource/). +* Get hands-on experience [assigning CPU resources to containers and Pods](/docs/tasks/configure-pod-container/assign-cpu-resource/). +* Read how the API reference defines a [container](/docs/reference/kubernetes-api/workload-resources/pod-v1/#Container) + and its [resource requirements](/docs/reference/kubernetes-api/workload-resources/pod-v1/#resources) +* Read about [project quotas](https://www.linux.org/docs/man8/xfs_quota.html) in XFS +* Read more about the [kube-scheduler configuration reference (v1)](/docs/reference/config-api/kube-scheduler-config.v1/) +* Read more about [Quality of Service classes for Pods](/docs/concepts/workloads/pods/pod-qos/) diff --git a/content/fa/docs/concepts/configuration/secret.md b/content/fa/docs/concepts/configuration/secret.md new file mode 100644 index 0000000000000..e6b761c2b728f --- /dev/null +++ b/content/fa/docs/concepts/configuration/secret.md @@ -0,0 +1,682 @@ +--- +reviewers: + - xirehat +title: Secrets +api_metadata: +- apiVersion: "v1" + kind: "Secret" +content_type: concept +feature: + title: مدیریت secrets و پیکربندی + description: > + بدون نیاز به بازسازی ایمیج و بدون افشای اسرار در پیکربندی پشته، اسرار و پیکربندی برنامه را مستقر و به‌روزرسانی کنید. +weight: 30 +--- + + + +A Secret is an object that contains a small amount of sensitive data such as +a password, a token, or a key. Such information might otherwise be put in a +{{< glossary_tooltip term_id="pod" >}} specification or in a +{{< glossary_tooltip text="container image" term_id="image" >}}. Using a +Secret means that you don't need to include confidential data in your +application code. + +Because Secrets can be created independently of the Pods that use them, there +is less risk of the Secret (and its data) being exposed during the workflow of +creating, viewing, and editing Pods. Kubernetes, and applications that run in +your cluster, can also take additional precautions with Secrets, such as avoiding +writing sensitive data to nonvolatile storage. + +Secrets are similar to {{< glossary_tooltip text="ConfigMaps" term_id="configmap" >}} +but are specifically intended to hold confidential data. + +{{< caution >}} +Kubernetes Secrets are, by default, stored unencrypted in the API server's underlying data store +(etcd). Anyone with API access can retrieve or modify a Secret, and so can anyone with access to etcd. +Additionally, anyone who is authorized to create a Pod in a namespace can use that access to read +any Secret in that namespace; this includes indirect access such as the ability to create a +Deployment. + +In order to safely use Secrets, take at least the following steps: + +1. [Enable Encryption at Rest](/docs/tasks/administer-cluster/encrypt-data/) for Secrets. +1. [Enable or configure RBAC rules](/docs/reference/access-authn-authz/authorization/) with + least-privilege access to Secrets. +1. Restrict Secret access to specific containers. +1. [Consider using external Secret store providers](https://secrets-store-csi-driver.sigs.k8s.io/concepts.html#provider-for-the-secrets-store-csi-driver). + +For more guidelines to manage and improve the security of your Secrets, refer to +[Good practices for Kubernetes Secrets](/docs/concepts/security/secrets-good-practices). + +{{< /caution >}} + +See [Information security for Secrets](#information-security-for-secrets) for more details. + + + +## Uses for Secrets + +You can use Secrets for purposes such as the following: + +- [Set environment variables for a container](/docs/tasks/inject-data-application/distribute-credentials-secure/#define-container-environment-variables-using-secret-data). +- [Provide credentials such as SSH keys or passwords to Pods](/docs/tasks/inject-data-application/distribute-credentials-secure/#provide-prod-test-creds). +- [Allow the kubelet to pull container images from private registries](/docs/tasks/configure-pod-container/pull-image-private-registry/). + +The Kubernetes control plane also uses Secrets; for example, +[bootstrap token Secrets](#bootstrap-token-secrets) are a mechanism to +help automate node registration. + +### Use case: dotfiles in a secret volume + +You can make your data "hidden" by defining a key that begins with a dot. +This key represents a dotfile or "hidden" file. For example, when the following Secret +is mounted into a volume, `secret-volume`, the volume will contain a single file, +called `.secret-file`, and the `dotfile-test-container` will have this file +present at the path `/etc/secret-volume/.secret-file`. + +{{< note >}} +Files beginning with dot characters are hidden from the output of `ls -l`; +you must use `ls -la` to see them when listing directory contents. +{{< /note >}} + +{{% code language="yaml" file="secret/dotfile-secret.yaml" %}} + +### Use case: Secret visible to one container in a Pod + +Consider a program that needs to handle HTTP requests, do some complex business +logic, and then sign some messages with an HMAC. Because it has complex +application logic, there might be an unnoticed remote file reading exploit in +the server, which could expose the private key to an attacker. + +This could be divided into two processes in two containers: a frontend container +which handles user interaction and business logic, but which cannot see the +private key; and a signer container that can see the private key, and responds +to simple signing requests from the frontend (for example, over localhost networking). + +With this partitioned approach, an attacker now has to trick the application +server into doing something rather arbitrary, which may be harder than getting +it to read a file. + +### Alternatives to Secrets + +Rather than using a Secret to protect confidential data, you can pick from alternatives. + +Here are some of your options: + +- If your cloud-native component needs to authenticate to another application that you + know is running within the same Kubernetes cluster, you can use a + [ServiceAccount](/docs/reference/access-authn-authz/authentication/#service-account-tokens) + and its tokens to identify your client. +- There are third-party tools that you can run, either within or outside your cluster, + that manage sensitive data. For example, a service that Pods access over HTTPS, + that reveals a Secret if the client correctly authenticates (for example, with a ServiceAccount + token). +- For authentication, you can implement a custom signer for X.509 certificates, and use + [CertificateSigningRequests](/docs/reference/access-authn-authz/certificate-signing-requests/) + to let that custom signer issue certificates to Pods that need them. +- You can use a [device plugin](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) + to expose node-local encryption hardware to a specific Pod. For example, you can schedule + trusted Pods onto nodes that provide a Trusted Platform Module, configured out-of-band. + +You can also combine two or more of those options, including the option to use Secret objects themselves. + +For example: implement (or deploy) an {{< glossary_tooltip text="operator" term_id="operator-pattern" >}} +that fetches short-lived session tokens from an external service, and then creates Secrets based +on those short-lived session tokens. Pods running in your cluster can make use of the session tokens, +and operator ensures they are valid. This separation means that you can run Pods that are unaware of +the exact mechanisms for issuing and refreshing those session tokens. + +## Types of Secret {#secret-types} + +When creating a Secret, you can specify its type using the `type` field of +the [Secret](/docs/reference/kubernetes-api/config-and-storage-resources/secret-v1/) +resource, or certain equivalent `kubectl` command line flags (if available). +The Secret type is used to facilitate programmatic handling of the Secret data. + +Kubernetes provides several built-in types for some common usage scenarios. +These types vary in terms of the validations performed and the constraints +Kubernetes imposes on them. + +| Built-in Type | Usage | +| ------------------------------------- |---------------------------------------- | +| `Opaque` | arbitrary user-defined data | +| `kubernetes.io/service-account-token` | ServiceAccount token | +| `kubernetes.io/dockercfg` | serialized `~/.dockercfg` file | +| `kubernetes.io/dockerconfigjson` | serialized `~/.docker/config.json` file | +| `kubernetes.io/basic-auth` | credentials for basic authentication | +| `kubernetes.io/ssh-auth` | credentials for SSH authentication | +| `kubernetes.io/tls` | data for a TLS client or server | +| `bootstrap.kubernetes.io/token` | bootstrap token data | + +You can define and use your own Secret type by assigning a non-empty string as the +`type` value for a Secret object (an empty string is treated as an `Opaque` type). + +Kubernetes doesn't impose any constraints on the type name. However, if you +are using one of the built-in types, you must meet all the requirements defined +for that type. + +If you are defining a type of Secret that's for public use, follow the convention +and structure the Secret type to have your domain name before the name, separated +by a `/`. For example: `cloud-hosting.example.net/cloud-api-credentials`. + +### Opaque Secrets + +`Opaque` is the default Secret type if you don't explicitly specify a type in +a Secret manifest. When you create a Secret using `kubectl`, you must use the +`generic` subcommand to indicate an `Opaque` Secret type. For example, the +following command creates an empty Secret of type `Opaque`: + +```shell +kubectl create secret generic empty-secret +kubectl get secret empty-secret +``` + +The output looks like: + +``` +NAME TYPE DATA AGE +empty-secret Opaque 0 2m6s +``` + +The `DATA` column shows the number of data items stored in the Secret. +In this case, `0` means you have created an empty Secret. + +### ServiceAccount token Secrets + +A `kubernetes.io/service-account-token` type of Secret is used to store a +token credential that identifies a +{{< glossary_tooltip text="ServiceAccount" term_id="service-account" >}}. This +is a legacy mechanism that provides long-lived ServiceAccount credentials to +Pods. + +In Kubernetes v1.22 and later, the recommended approach is to obtain a +short-lived, automatically rotating ServiceAccount token by using the +[`TokenRequest`](/docs/reference/kubernetes-api/authentication-resources/token-request-v1/) +API instead. You can get these short-lived tokens using the following methods: + +* Call the `TokenRequest` API either directly or by using an API client like + `kubectl`. For example, you can use the + [`kubectl create token`](/docs/reference/generated/kubectl/kubectl-commands#-em-token-em-) + command. +* Request a mounted token in a + [projected volume](/docs/reference/access-authn-authz/service-accounts-admin/#bound-service-account-token-volume) + in your Pod manifest. Kubernetes creates the token and mounts it in the Pod. + The token is automatically invalidated when the Pod that it's mounted in is + deleted. For details, see + [Launch a Pod using service account token projection](/docs/tasks/configure-pod-container/configure-service-account/#launch-a-pod-using-service-account-token-projection). + +{{< note >}} +You should only create a ServiceAccount token Secret +if you can't use the `TokenRequest` API to obtain a token, +and the security exposure of persisting a non-expiring token credential +in a readable API object is acceptable to you. For instructions, see +[Manually create a long-lived API token for a ServiceAccount](/docs/tasks/configure-pod-container/configure-service-account/#manually-create-an-api-token-for-a-serviceaccount). +{{< /note >}} + +When using this Secret type, you need to ensure that the +`kubernetes.io/service-account.name` annotation is set to an existing +ServiceAccount name. If you are creating both the ServiceAccount and +the Secret objects, you should create the ServiceAccount object first. + +After the Secret is created, a Kubernetes {{< glossary_tooltip text="controller" term_id="controller" >}} +fills in some other fields such as the `kubernetes.io/service-account.uid` annotation, and the +`token` key in the `data` field, which is populated with an authentication token. + +The following example configuration declares a ServiceAccount token Secret: + +{{% code language="yaml" file="secret/serviceaccount-token-secret.yaml" %}} + +After creating the Secret, wait for Kubernetes to populate the `token` key in the `data` field. + +See the [ServiceAccount](/docs/concepts/security/service-accounts/) +documentation for more information on how ServiceAccounts work. +You can also check the `automountServiceAccountToken` field and the +`serviceAccountName` field of the +[`Pod`](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#pod-v1-core) +for information on referencing ServiceAccount credentials from within Pods. + +### Docker config Secrets + +If you are creating a Secret to store credentials for accessing a container image registry, +you must use one of the following `type` values for that Secret: + +- `kubernetes.io/dockercfg`: store a serialized `~/.dockercfg` which is the + legacy format for configuring Docker command line. The Secret + `data` field contains a `.dockercfg` key whose value is the content of a + base64 encoded `~/.dockercfg` file. +- `kubernetes.io/dockerconfigjson`: store a serialized JSON that follows the + same format rules as the `~/.docker/config.json` file, which is a new format + for `~/.dockercfg`. The Secret `data` field must contain a + `.dockerconfigjson` key for which the value is the content of a base64 + encoded `~/.docker/config.json` file. + +Below is an example for a `kubernetes.io/dockercfg` type of Secret: + +{{% code language="yaml" file="secret/dockercfg-secret.yaml" %}} + +{{< note >}} +If you do not want to perform the base64 encoding, you can choose to use the +`stringData` field instead. +{{< /note >}} + +When you create Docker config Secrets using a manifest, the API +server checks whether the expected key exists in the `data` field, and +it verifies if the value provided can be parsed as a valid JSON. The API +server doesn't validate if the JSON actually is a Docker config file. + +You can also use `kubectl` to create a Secret for accessing a container +registry, such as when you don't have a Docker configuration file: + +```shell +kubectl create secret docker-registry secret-tiger-docker \ + --docker-email=tiger@acme.example \ + --docker-username=tiger \ + --docker-password=pass1234 \ + --docker-server=my-registry.example:5000 +``` + +This command creates a Secret of type `kubernetes.io/dockerconfigjson`. + +Retrieve the `.data.dockerconfigjson` field from that new Secret and decode the +data: + +```shell +kubectl get secret secret-tiger-docker -o jsonpath='{.data.*}' | base64 -d +``` + +The output is equivalent to the following JSON document (which is also a valid +Docker configuration file): + +```json +{ + "auths": { + "my-registry.example:5000": { + "username": "tiger", + "password": "pass1234", + "email": "tiger@acme.example", + "auth": "dGlnZXI6cGFzczEyMzQ=" + } + } +} +``` + +{{< caution >}} +The `auth` value there is base64 encoded; it is obscured but not secret. +Anyone who can read that Secret can learn the registry access bearer token. + +It is suggested to use [credential providers](/docs/tasks/administer-cluster/kubelet-credential-provider/) to dynamically and securely provide pull secrets on-demand. +{{< /caution >}} + +### Basic authentication Secret + +The `kubernetes.io/basic-auth` type is provided for storing credentials needed +for basic authentication. When using this Secret type, the `data` field of the +Secret must contain one of the following two keys: + +- `username`: the user name for authentication +- `password`: the password or token for authentication + +Both values for the above two keys are base64 encoded strings. You can +alternatively provide the clear text content using the `stringData` field in the +Secret manifest. + +The following manifest is an example of a basic authentication Secret: + +{{% code language="yaml" file="secret/basicauth-secret.yaml" %}} + +{{< note >}} +The `stringData` field for a Secret does not work well with server-side apply. +{{< /note >}} + +The basic authentication Secret type is provided only for convenience. +You can create an `Opaque` type for credentials used for basic authentication. +However, using the defined and public Secret type (`kubernetes.io/basic-auth`) helps other +people to understand the purpose of your Secret, and sets a convention for what key names +to expect. + +### SSH authentication Secrets + +The builtin type `kubernetes.io/ssh-auth` is provided for storing data used in +SSH authentication. When using this Secret type, you will have to specify a +`ssh-privatekey` key-value pair in the `data` (or `stringData`) field +as the SSH credential to use. + +The following manifest is an example of a Secret used for SSH public/private +key authentication: + +{{% code language="yaml" file="secret/ssh-auth-secret.yaml" %}} + +The SSH authentication Secret type is provided only for convenience. +You can create an `Opaque` type for credentials used for SSH authentication. +However, using the defined and public Secret type (`kubernetes.io/ssh-auth`) helps other +people to understand the purpose of your Secret, and sets a convention for what key names +to expect. +The Kubernetes API verifies that the required keys are set for a Secret of this type. + +{{< caution >}} +SSH private keys do not establish trusted communication between an SSH client and +host server on their own. A secondary means of establishing trust is needed to +mitigate "man in the middle" attacks, such as a `known_hosts` file added to a ConfigMap. +{{< /caution >}} + +### TLS Secrets + +The `kubernetes.io/tls` Secret type is for storing +a certificate and its associated key that are typically used for TLS. + +One common use for TLS Secrets is to configure encryption in transit for +an [Ingress](/docs/concepts/services-networking/ingress/), but you can also use it +with other resources or directly in your workload. +When using this type of Secret, the `tls.key` and the `tls.crt` key must be provided +in the `data` (or `stringData`) field of the Secret configuration, although the API +server doesn't actually validate the values for each key. + +As an alternative to using `stringData`, you can use the `data` field to provide +the base64 encoded certificate and private key. For details, see +[Constraints on Secret names and data](#restriction-names-data). + +The following YAML contains an example config for a TLS Secret: + +{{% code language="yaml" file="secret/tls-auth-secret.yaml" %}} + +The TLS Secret type is provided only for convenience. +You can create an `Opaque` type for credentials used for TLS authentication. +However, using the defined and public Secret type (`kubernetes.io/tls`) +helps ensure the consistency of Secret format in your project. The API server +verifies if the required keys are set for a Secret of this type. + +To create a TLS Secret using `kubectl`, use the `tls` subcommand: + +```shell +kubectl create secret tls my-tls-secret \ + --cert=path/to/cert/file \ + --key=path/to/key/file +``` + +The public/private key pair must exist before hand. The public key certificate for `--cert` must be .PEM encoded +and must match the given private key for `--key`. + +### Bootstrap token Secrets + +The `bootstrap.kubernetes.io/token` Secret type is for +tokens used during the node bootstrap process. It stores tokens used to sign +well-known ConfigMaps. + +A bootstrap token Secret is usually created in the `kube-system` namespace and +named in the form `bootstrap-token-` where `` is a 6 character +string of the token ID. + +As a Kubernetes manifest, a bootstrap token Secret might look like the +following: + +{{% code language="yaml" file="secret/bootstrap-token-secret-base64.yaml" %}} + +A bootstrap token Secret has the following keys specified under `data`: + +- `token-id`: A random 6 character string as the token identifier. Required. +- `token-secret`: A random 16 character string as the actual token Secret. Required. +- `description`: A human-readable string that describes what the token is + used for. Optional. +- `expiration`: An absolute UTC time using [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339) specifying when the token + should be expired. Optional. +- `usage-bootstrap-`: A boolean flag indicating additional usage for + the bootstrap token. +- `auth-extra-groups`: A comma-separated list of group names that will be + authenticated as in addition to the `system:bootstrappers` group. + +You can alternatively provide the values in the `stringData` field of the Secret +without base64 encoding them: + +{{% code language="yaml" file="secret/bootstrap-token-secret-literal.yaml" %}} + +{{< note >}} +The `stringData` field for a Secret does not work well with server-side apply. +{{< /note >}} + +## Working with Secrets + +### Creating a Secret + +There are several options to create a Secret: + +- [Use `kubectl`](/docs/tasks/configmap-secret/managing-secret-using-kubectl/) +- [Use a configuration file](/docs/tasks/configmap-secret/managing-secret-using-config-file/) +- [Use the Kustomize tool](/docs/tasks/configmap-secret/managing-secret-using-kustomize/) + +#### Constraints on Secret names and data {#restriction-names-data} + +The name of a Secret object must be a valid +[DNS subdomain name](/docs/concepts/overview/working-with-objects/names#dns-subdomain-names). + +You can specify the `data` and/or the `stringData` field when creating a +configuration file for a Secret. The `data` and the `stringData` fields are optional. +The values for all keys in the `data` field have to be base64-encoded strings. +If the conversion to base64 string is not desirable, you can choose to specify +the `stringData` field instead, which accepts arbitrary strings as values. + +The keys of `data` and `stringData` must consist of alphanumeric characters, +`-`, `_` or `.`. All key-value pairs in the `stringData` field are internally +merged into the `data` field. If a key appears in both the `data` and the +`stringData` field, the value specified in the `stringData` field takes +precedence. + +#### Size limit {#restriction-data-size} + +Individual Secrets are limited to 1MiB in size. This is to discourage creation +of very large Secrets that could exhaust the API server and kubelet memory. +However, creation of many smaller Secrets could also exhaust memory. You can +use a [resource quota](/docs/concepts/policy/resource-quotas/) to limit the +number of Secrets (or other resources) in a namespace. + +### Editing a Secret + +You can edit an existing Secret unless it is [immutable](#secret-immutable). To +edit a Secret, use one of the following methods: + +- [Use `kubectl`](/docs/tasks/configmap-secret/managing-secret-using-kubectl/#edit-secret) +- [Use a configuration file](/docs/tasks/configmap-secret/managing-secret-using-config-file/#edit-secret) + +You can also edit the data in a Secret using the [Kustomize tool](/docs/tasks/configmap-secret/managing-secret-using-kustomize/#edit-secret). However, this +method creates a new `Secret` object with the edited data. + +Depending on how you created the Secret, as well as how the Secret is used in +your Pods, updates to existing `Secret` objects are propagated automatically to +Pods that use the data. For more information, refer to [Using Secrets as files from a Pod](#using-secrets-as-files-from-a-pod) section. + +### Using a Secret + +Secrets can be mounted as data volumes or exposed as +{{< glossary_tooltip text="environment variables" term_id="container-env-variables" >}} +to be used by a container in a Pod. Secrets can also be used by other parts of the +system, without being directly exposed to the Pod. For example, Secrets can hold +credentials that other parts of the system should use to interact with external +systems on your behalf. + +Secret volume sources are validated to ensure that the specified object +reference actually points to an object of type Secret. Therefore, a Secret +needs to be created before any Pods that depend on it. + +If the Secret cannot be fetched (perhaps because it does not exist, or +due to a temporary lack of connection to the API server) the kubelet +periodically retries running that Pod. The kubelet also reports an Event +for that Pod, including details of the problem fetching the Secret. + +#### Optional Secrets {#restriction-secret-must-exist} + +When you reference a Secret in a Pod, you can mark the Secret as _optional_, +such as in the following example. If an optional Secret doesn't exist, +Kubernetes ignores it. + +{{% code language="yaml" file="secret/optional-secret.yaml" %}} + +By default, Secrets are required. None of a Pod's containers will start until +all non-optional Secrets are available. + +If a Pod references a specific key in a non-optional Secret and that Secret +does exist, but is missing the named key, the Pod fails during startup. + +### Using Secrets as files from a Pod {#using-secrets-as-files-from-a-pod} + +If you want to access data from a Secret in a Pod, one way to do that is to +have Kubernetes make the value of that Secret be available as a file inside +the filesystem of one or more of the Pod's containers. + +For instructions, refer to +[Create a Pod that has access to the secret data through a Volume](/docs/tasks/inject-data-application/distribute-credentials-secure/#create-a-pod-that-has-access-to-the-secret-data-through-a-volume). + +When a volume contains data from a Secret, and that Secret is updated, Kubernetes tracks +this and updates the data in the volume, using an eventually-consistent approach. + +{{< note >}} +A container using a Secret as a +[subPath](/docs/concepts/storage/volumes#using-subpath) volume mount does not receive +automated Secret updates. +{{< /note >}} + +The kubelet keeps a cache of the current keys and values for the Secrets that are used in +volumes for pods on that node. +You can configure the way that the kubelet detects changes from the cached values. The +`configMapAndSecretChangeDetectionStrategy` field in the +[kubelet configuration](/docs/reference/config-api/kubelet-config.v1beta1/) controls +which strategy the kubelet uses. The default strategy is `Watch`. + +Updates to Secrets can be either propagated by an API watch mechanism (the default), based on +a cache with a defined time-to-live, or polled from the cluster API server on each kubelet +synchronisation loop. + +As a result, the total delay from the moment when the Secret is updated to the moment +when new keys are projected to the Pod can be as long as the kubelet sync period + cache +propagation delay, where the cache propagation delay depends on the chosen cache type +(following the same order listed in the previous paragraph, these are: +watch propagation delay, the configured cache TTL, or zero for direct polling). + +### Using Secrets as environment variables + +To use a Secret in an {{< glossary_tooltip text="environment variable" term_id="container-env-variables" >}} +in a Pod: + +1. For each container in your Pod specification, add an environment variable + for each Secret key that you want to use to the + `env[].valueFrom.secretKeyRef` field. +1. Modify your image and/or command line so that the program looks for values + in the specified environment variables. + +For instructions, refer to +[Define container environment variables using Secret data](/docs/tasks/inject-data-application/distribute-credentials-secure/#define-container-environment-variables-using-secret-data). + +It's important to note that the range of characters allowed for environment variable +names in pods is [restricted](/docs/tasks/inject-data-application/define-environment-variable-container/#using-environment-variables-inside-of-your-config). +If any keys do not meet the rules, those keys are not made available to your container, though +the Pod is allowed to start. + +### Container image pull Secrets {#using-imagepullsecrets} + +If you want to fetch container images from a private repository, you need a way for +the kubelet on each node to authenticate to that repository. You can configure +_image pull Secrets_ to make this possible. These Secrets are configured at the Pod +level. + +#### Using imagePullSecrets + +The `imagePullSecrets` field is a list of references to Secrets in the same namespace. +You can use an `imagePullSecrets` to pass a Secret that contains a Docker (or other) image registry +password to the kubelet. The kubelet uses this information to pull a private image on behalf of your Pod. +See the [PodSpec API](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#podspec-v1-core) +for more information about the `imagePullSecrets` field. + +##### Manually specifying an imagePullSecret + +You can learn how to specify `imagePullSecrets` from the +[container images](/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod) +documentation. + +##### Arranging for imagePullSecrets to be automatically attached + +You can manually create `imagePullSecrets`, and reference these from a ServiceAccount. Any Pods +created with that ServiceAccount or created with that ServiceAccount by default, will get their +`imagePullSecrets` field set to that of the service account. +See [Add ImagePullSecrets to a service account](/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account) +for a detailed explanation of that process. + +### Using Secrets with static Pods {#restriction-static-pod} + +You cannot use ConfigMaps or Secrets with {{< glossary_tooltip text="static Pods" term_id="static-pod" >}}. + +## Immutable Secrets {#secret-immutable} + +{{< feature-state for_k8s_version="v1.21" state="stable" >}} + +Kubernetes lets you mark specific Secrets (and ConfigMaps) as _immutable_. +Preventing changes to the data of an existing Secret has the following benefits: + +- protects you from accidental (or unwanted) updates that could cause applications outages +- (for clusters that extensively use Secrets - at least tens of thousands of unique Secret + to Pod mounts), switching to immutable Secrets improves the performance of your cluster + by significantly reducing load on kube-apiserver. The kubelet does not need to maintain + a [watch] on any Secrets that are marked as immutable. + +### Marking a Secret as immutable {#secret-immutable-create} + +You can create an immutable Secret by setting the `immutable` field to `true`. For example, + +```yaml +apiVersion: v1 +kind: Secret +metadata: ... +data: ... +immutable: true +``` + +You can also update any existing mutable Secret to make it immutable. + +{{< note >}} +Once a Secret or ConfigMap is marked as immutable, it is _not_ possible to revert this change +nor to mutate the contents of the `data` field. You can only delete and recreate the Secret. +Existing Pods maintain a mount point to the deleted Secret - it is recommended to recreate +these pods. +{{< /note >}} + +## Information security for Secrets + +Although ConfigMap and Secret work similarly, Kubernetes applies some additional +protection for Secret objects. + +Secrets often hold values that span a spectrum of importance, many of which can +cause escalations within Kubernetes (e.g. service account tokens) and to +external systems. Even if an individual app can reason about the power of the +Secrets it expects to interact with, other apps within the same namespace can +render those assumptions invalid. + +A Secret is only sent to a node if a Pod on that node requires it. +For mounting Secrets into Pods, the kubelet stores a copy of the data into a `tmpfs` +so that the confidential data is not written to durable storage. +Once the Pod that depends on the Secret is deleted, the kubelet deletes its local copy +of the confidential data from the Secret. + +There may be several containers in a Pod. By default, containers you define +only have access to the default ServiceAccount and its related Secret. +You must explicitly define environment variables or map a volume into a +container in order to provide access to any other Secret. + +There may be Secrets for several Pods on the same node. However, only the +Secrets that a Pod requests are potentially visible within its containers. +Therefore, one Pod does not have access to the Secrets of another Pod. + +### Configure least-privilege access to Secrets + +To enhance the security measures around Secrets, use separate namespaces to isolate access to mounted secrets. + +{{< warning >}} +Any containers that run with `privileged: true` on a node can access all +Secrets used on that node. +{{< /warning >}} + +## {{% heading "whatsnext" %}} + +- For guidelines to manage and improve the security of your Secrets, refer to + [Good practices for Kubernetes Secrets](/docs/concepts/security/secrets-good-practices). +- Learn how to [manage Secrets using `kubectl`](/docs/tasks/configmap-secret/managing-secret-using-kubectl/) +- Learn how to [manage Secrets using config file](/docs/tasks/configmap-secret/managing-secret-using-config-file/) +- Learn how to [manage Secrets using kustomize](/docs/tasks/configmap-secret/managing-secret-using-kustomize/) +- Read the [API reference](/docs/reference/kubernetes-api/config-and-storage-resources/secret-v1/) for `Secret` diff --git a/content/fa/docs/concepts/containers/_index.md b/content/fa/docs/concepts/containers/_index.md new file mode 100644 index 0000000000000..16909ae01c068 --- /dev/null +++ b/content/fa/docs/concepts/containers/_index.md @@ -0,0 +1,39 @@ +--- +title: کانتینرها +weight: 40 +description: فناوری برای بسته‌بندی یک برنامه به همراه وابستگی‌های زمان اجرا. +reviewers: +- xirehat +content_type: concept +card: + name: concepts + weight: 50 +--- + + + +این صفحه به بررسی کانتینرها و ایمیج‌های کانتینر، و همچنین کاربرد آن‌ها در عملیات و توسعه راه‌حل‌ها می‌پردازد. + +واژه _کانتینر_ یک اصطلاح بارگذاری‌شده است. هر زمان از این واژه استفاده می‌کنید، بررسی کنید که مخاطبان شما از همان تعریف استفاده می‌کنند یا خیر. + +هر کانتینری که اجرا می‌کنید قابل تکرار است؛ استانداردسازی‌ای که با درج وابستگی‌ها به دست می‌آید این تضمین را می‌دهد که در هر نقطه‌ای که آن را اجرا کنید، رفتار یکسانی خواهید داشت. + +کانتینرها، برنامه‌ها را از زیرساخت میزبان جدا می‌کنند. این موضوع استقرار را در محیط‌های مختلف ابری یا سیستم‌عامل آسان‌تر می‌سازد. + +هر {{< glossary_tooltip text="نود" term_id="node" >}} در یک خوشه Kubernetes، کانتینرهایی را که تشکیل‌دهنده [پادها](/docs/concepts/workloads/pods/) هستند و به آن نود اختصاص یافته‌اند، اجرا می‌کند. کانتینرهای یک پاد، هم‌مکان و هم‌زمان‌بندی شده تا بر روی یک نود اجرا شوند. + + + + +## ایمیج‌های کانتینر +یک [ایمیج کانتینر](/docs/concepts/containers/images/) بسته‌ی نرم‌افزاری آماده اجراست که همه آنچه برای راه‌اندازی یک برنامه لازم است را در بر می‌گیرد: کد و هر محیط اجرای مورد نیاز، کتابخانه‌های برنامه و سیستم، و مقادیر پیش‌فرض برای هر تنظیم ضروری. + +کانتینرها قرار است بدون‌حالت (stateless) و [تغییرناپذیر](https://glossary.cncf.io/immutable-infrastructure/) باشند؛ نباید کد یک کانتینر در حال اجرا را تغییر دهید. اگر برنامه‌ای کانتینری دارید و می‌خواهید تغییری اعمال کنید، روش درست این است که یک ایمیج جدید شامل آن تغییر بسازید و سپس کانتینر را از روی ایمیج به‌روزشده مجدداً ایجاد کنید. + +## زمان‌اجرای کانتینر + +{{< glossary_definition term_id="container-runtime" length="all" >}} + +عموماً می‌توانید به خوشه اجازه دهید زمان‌اجرای پیش‌فرض را برای یک پاد انتخاب کند. اگر نیاز دارید در خوشه خود بیش از یک زمان‌اجرا داشته باشید، می‌توانید [RuntimeClass](/docs/concepts/containers/runtime-class/) را برای یک پاد مشخص کنید تا مطمئن شوید Kubernetes آن کانتینرها را با زمان‌اجرای مورد نظر شما اجرا می‌کند. + +همچنین می‌توانید با استفاده از RuntimeClass، پادهای مختلف را با یک زمان‌اجرا اما با تنظیمات متفاوت اجرا کنید. diff --git a/content/fa/docs/concepts/containers/container-environment.md b/content/fa/docs/concepts/containers/container-environment.md new file mode 100644 index 0000000000000..a33b28ea2255c --- /dev/null +++ b/content/fa/docs/concepts/containers/container-environment.md @@ -0,0 +1,63 @@ +--- +reviewers: +- xirehat +title: محیط کانتینر +content_type: concept +weight: 20 +--- + + + +این صفحه منابع موجود برای کانتینرها در محیط کانتینر را شرح می‌دهد. + + + + + + +## محیط کانتینر + +محیط کانتینر در کوبرنتیز چند منبع مهم را در اختیار کانتینرها قرار می‌دهد: + +* یک فایل‌سیستم، که ترکیبی از یک [ایمیج](/docs/concepts/containers/images/) و یک یا چند [ولوم](/docs/concepts/storage/volumes/) است. +* اطلاعات مربوط به خود کانتینر. +* اطلاعات درباره سایر اشیاء در خوشه. + +### اطلاعات کانتینر + +*نام میزبان* (hostname) یک کانتینر، همان نام پادی است که کانتینر در آن اجرا می‌شود. +این مقدار از طریق فرمان `hostname` یا فراخوانی تابع +[`gethostname`](https://man7.org/linux/man-pages/man2/gethostname.2.html) +در libc در دسترس است. + +نام پاد و فضای نام (namespace) به‌صورت متغیرهای محیطی از طریق +[API پایین‌رو](/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/) +در دسترس کانتینر قرار می‌گیرند. + +متغیرهای محیطی تعریف‌شده توسط کاربر در تعریف پاد نیز برای کانتینر قابل دسترسی هستند، +و همچنین هر متغیر محیطی که به‌طور ایستا در ایمیج کانتینر مشخص شده باشد. + +### اطلاعات خوشه + +لیستی از تمامی سرویس‌هایی که هنگام ایجاد یک کانتینر در حال اجرا بودند، به‌صورت متغیرهای محیطی در اختیار آن کانتینر قرار می‌گیرد. +این لیست محدود به سرویس‌های درون همان فضای نام (namespace) پاد کانتینر جدید و سرویس‌های صفحه کنترل کوبرنتیز است. + +برای سرویسی به نام *foo* که به کانتینری به نام *bar* نگاشت می‌شود، +متغیرهای زیر تعریف می‌شوند: + +```shell +FOO_SERVICE_HOST= +FOO_SERVICE_PORT= +``` + +سرویس‌ها دارای آدرس‌های IP اختصاصی هستند و در صورت فعال بودن [افزونه DNS](https://releases.k8s.io/v{{< skew currentPatchVersion >}}/cluster/addons/dns/)، از طریق DNS برای کانتینر قابل دسترسی‌اند. + + + +## {{% heading "whatsnext" %}} + + +* برای آشنایی بیشتر با [قلاب‌های چرخه عمر کانتینر](/docs/concepts/containers/container-lifecycle-hooks/) مطالعه کنید. +* تجربه عملی کسب کنید و با [اضافه کردن هندلر به رویدادهای چرخه عمر کانتینر](/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/) کار کنید. + + diff --git a/content/fa/docs/concepts/containers/container-lifecycle-hooks.md b/content/fa/docs/concepts/containers/container-lifecycle-hooks.md new file mode 100644 index 0000000000000..6093a6b7d5be8 --- /dev/null +++ b/content/fa/docs/concepts/containers/container-lifecycle-hooks.md @@ -0,0 +1,107 @@ +--- +reviewers: +- xirehat +title: قلاب‌های چرخه عمر کانتینر +content_type: concept +weight: 40 +--- + + + +این صفحه توضیح می‌دهد که چگونه کانتینرهای مدیریت‌شده توسط kubelet می‌توانند از چارچوب قلاب چرخه حیات کانتینر برای اجرای کدی که توسط رویدادها در طول چرخه حیات مدیریت آنها ایجاد می‌شود، استفاده کنند. + + + + + +## نمای کلی + +مشابه بسیاری از فریم‌ورک‌های زبان‌های برنامه‌نویسی که دارای قلاب‌های چرخه‌عمر مؤلفه هستند، مانند Angular، Kubernetes نیز به کانتینرها قلاب‌های چرخه‌عمر ارائه می‌دهد. این قلاب‌ها به کانتینرها امکان می‌دهند تا از رویدادهای چرخه‌عمر مدیریتی خود آگاه شوند و هنگام اجرای قلاب مربوطه، کدی را که در یک هندلر پیاده‌سازی شده اجرا کنند. + +## قلاب‌های کانتینر + +دو قلاب وجود دارد که در اختیار کانتینرها قرار می‌گیرند: + +`PostStart` + +این قلاب بلافاصله پس از ایجاد کانتینر اجرا می‌شود. با این حال، تضمینی وجود ندارد که قلاب قبل از ENTRYPOINT کانتینر اجرا شود. هیچ پارامتری به هندلر ارسال نمی‌شود. + +`PreStop` + +این قلاب درست قبل از خاتمه کانتینر در اثر یک درخواست API یا رویدادی مدیریتی مانند شکست پروب liveness/startup، پیش‌دستی (preemption)، تداخل منابع و موارد دیگر فراخوانی می‌شود. فراخوانی قلاب `PreStop` در صورتی شکست می‌خورد که کانتینر قبلاً در وضعیت خاتمه‌یافته یا تکمیل‌شده باشد. این قلاب باید قبل از ارسال سیگنال TERM برای متوقف کردن کانتینر تکمیل شود. شمارش معکوس دوره مهلت خاتمه پاد قبل از اجرای قلاب `PreStop` آغاز می‌شود، بنابراین فارغ از نتیجه هندلر، کانتینر در نهایت در دوره مهلت خاتمه پاد متوقف خواهد شد. هیچ پارامتری به هندلر ارسال نمی‌شود. + +توضیح دقیق‌تر رفتار خاتمه را می‌توانید در +[Termination of Pods](/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination) +مطالعه کنید. + +`StopSignal` + +چرخه‌عمر `StopSignal` می‌تواند برای تعریف سیگنال توقفی استفاده شود که هنگام متوقف شدن کانتینر به آن ارسال می‌شود. اگر این مقدار تنظیم شود، هرگونه دستور `STOPSIGNAL` تعریف‌شده در درون ایمیج کانتینر را نادیده می‌گیرد. + +توضیح دقیق‌تر رفتار خاتمه با سیگنال‌های توقف سفارشی را می‌توانید در +[Stop Signals](/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination-stop-signals) +مطالعه کنید. + +### پیاده‌سازی هندلر قلاب + +کانتینرها می‌توانند با پیاده‌سازی و ثبت یک هندلر برای قلاب مربوطه به آن دسترسی پیدا کنند. +سه نوع هندلر قلاب وجود دارد که می‌توان برای کانتینرها پیاده‌سازی کرد: + +* Exec – اجرای یک فرمان مشخص، مانند `pre-stop.sh`، در داخل cgroups و namespaceهای کانتینر. + منابع مصرف‌شده توسط این فرمان به حساب کانتینر منظور می‌شوند. +* HTTP – ارسال یک درخواست HTTP به یک endpoint خاص درون کانتینر. +* Sleep – ایست موقت کانتینر برای مدت زمان مشخص. + این یک ویژگی در سطح بتا است که به‌طور پیش‌فرض با `PodLifecycleSleepAction` + [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) فعال می‌شود. + +{{< note >}} +بتا-level feature gate `PodLifecycleSleepActionAllowZero` که از نسخه v1.33 به‌طور پیش‌فرض فعال است، +به شما اجازه می‌دهد مدت زمان Sleep را صفر ثانیه (عملاً عملیاتی انجام نمی‌شود) +برای هندلرهای چرخه‌عمر Sleep تنظیم کنید. +{{< /note >}} + +### اجرای هندلر قلاب + +وقتی یک قلاب مدیریت چرخه‌عمر کانتینر فراخوانی می‌شود، سیستم مدیریت Kubernetes هندلر را بر اساس نوع عمل قلاب اجرا می‌کند. عملیات‌های `httpGet`، `tcpSocket` ([منسوخ شده](/docs/reference/generated/kubernetes-api/v1.31/#lifecyclehandler-v1-core)) و `sleep` توسط فرآیند kubelet اجرا می‌شوند و `exec` در داخل کانتینر اجرا می‌شود. + +فراخوانی هندلر قلاب `PostStart` هنگام ایجاد کانتینر شروع می‌شود، به این معنی که ENTRYPOINT کانتینر و قلاب `PostStart` به‌طور هم‌زمان فعال می‌شوند. با این حال، اگر اجرای قلاب `PostStart` طولانی شود یا در حین اجرا گیر کند، ممکن است مانع از انتقال کانتینر به وضعیت `running` شود. + +قلاب‌های `PreStop` به‌صورت ناهمزمان با سیگنال توقف کانتینر اجرا نمی‌شوند؛ قلاب باید اجرای خود را قبل از ارسال سیگنال TERM کامل کند. اگر قلاب `PreStop` در حین اجرا گیر کند، فاز پاد به `Terminating` تغییر می‌کند و تا زمان اتمام دوره `terminationGracePeriodSeconds` و سپس کشته شدن پاد در آن وضعیت باقی می‌ماند. این دوره مهلت شامل مجموع زمانی است که برای اجرای قلاب `PreStop` و متوقف شدن طبیعی کانتینر نیاز است. برای مثال، اگر `terminationGracePeriodSeconds` برابر ۶۰ ثانیه باشد، و قلاب ۵۵ ثانیه و کانتینر ۱۰ ثانیه بعد از دریافت سیگنال برای توقف طبیعی زمان ببرد، کانتینر قبل از توقف طبیعی کشته می‌شود، چون `terminationGracePeriodSeconds` کمتر از مجموع زمان (۵۵+۱۰) است. + +اگر هر یک از قلاب‌های `PostStart` یا `PreStop` با شکست مواجه شوند، کانتینر را نابود می‌کنند. + +کاربران باید هندلرهای قلاب خود را تا حد ممکن سبک نگه دارند. با این حال، در برخی موارد اجرای فرمان‌های طولانی‌مدت منطقی است، مانند وقتی که لازم است قبل از توقف کانتینر، وضعیت (state) ذخیره شود. + +### تضمین تحویل قلاب‌ها + +تحویل قلاب قرار است *حداقل یک‌بار* باشد، یعنی ممکن است برای هر رویداد مشخص – مانند `PostStart` یا `PreStop` – قلاب چندین بار فراخوانی شود. مدیریت صحیح این شرایط بر عهده پیاده‌سازی قلاب است. + +به‌طور کلی، معمولاً تنها یک‌بار تحویل انجام می‌شود. اگر مثلاً گیرنده HTTP قلاب از کار افتاده و قادر به دریافت درخواست نباشد، تلاشی برای ارسال مجدد صورت نمی‌گیرد. با این حال، در برخی موارد نادر ممکن است تحویل دوگانه رخ دهد. برای مثال، اگر kubelet در میانه ارسال قلاب ری‌استارت شود، ممکن است پس از برگشت، قلاب دوباره ارسال شود. + +### اشکال‌زدایی هندلرهای قلاب + +لاگ‌های مربوط به هندلر قلاب در رویدادهای پاد نمایش داده نمی‌شوند. اگر به دلیلی اجرای هندلر با شکست مواجه شود، یک رویداد منتشر می‌شود. برای `PostStart` این رویداد `FailedPostStartHook` و برای `PreStop` این رویداد `FailedPreStopHook` است. برای ایجاد دستی یک رویداد `FailedPostStartHook`، فایل [lifecycle-events.yaml](https://k8s.io/examples/pods/lifecycle-events.yaml) را ویرایش کرده و فرمان postStart را به `"badcommand"` تغییر دهید و سپس آن را اعمال کنید. در ادامه نمونه‌ای از خروجی رویدادهایی که با اجرای `kubectl describe pod lifecycle-demo` مشاهده می‌کنید آمده است: + +``` +Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal Scheduled 7s default-scheduler Successfully assigned default/lifecycle-demo to ip-XXX-XXX-XX-XX.us-east-2... + Normal Pulled 6s kubelet Successfully pulled image "nginx" in 229.604315ms + Normal Pulling 4s (x2 over 6s) kubelet Pulling image "nginx" + Normal Created 4s (x2 over 5s) kubelet Created container lifecycle-demo-container + Normal Started 4s (x2 over 5s) kubelet Started container lifecycle-demo-container + Warning FailedPostStartHook 4s (x2 over 5s) kubelet Exec lifecycle hook ([badcommand]) for Container "lifecycle-demo-container" in Pod "lifecycle-demo_default(30229739-9651-4e5a-9a32-a8f1688862db)" failed - error: command 'badcommand' exited with 126: , message: "OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: \"badcommand\": executable file not found in $PATH: unknown\r\n" + Normal Killing 4s (x2 over 5s) kubelet FailedPostStartHook + Normal Pulled 4s kubelet Successfully pulled image "nginx" in 215.66395ms + Warning BackOff 2s (x2 over 3s) kubelet Back-off restarting failed container +``` + + + +## {{% heading "whatsnext" %}} + + +* برای کسب اطلاعات بیشتر درباره [محیط کانتینر](/docs/concepts/containers/container-environment/) مطالعه کنید. +* تجربه عملی به‌دست آورید و با [پیوست هندلرها به رویدادهای چرخه‌عمر کانتینر](/docs/tasks/configure-pod-container/attach-handler-lifecycle-event/) کار کنید. + diff --git a/content/fa/docs/concepts/containers/images.md b/content/fa/docs/concepts/containers/images.md new file mode 100644 index 0000000000000..b2b2de64c43d0 --- /dev/null +++ b/content/fa/docs/concepts/containers/images.md @@ -0,0 +1,437 @@ +--- +reviewers: +- xirehat +title: ایمیج‌ها +content_type: concept +weight: 10 +hide_summary: true # Listed separately in section index +--- + + + +یک ایمیج کانتینر نشان‌دهنده داده‌های باینری است که یک برنامه و همه وابستگی‌های نرم‌افزاری آن را در بر می‌گیرد. ایمیج‌های کانتینر بسته‌های نرم‌افزاری اجرایی هستند که می‌توانند به‌صورت مستقل اجرا شوند و مفروضات بسیار دقیقی درباره محیط اجرای خود داشته باشند. + +شما معمولاً ایمیج کانتینر برنامه خود را ایجاد و آن را به یک رجیستری پوش می‌کنید، سپس پیش از ارجاع به آن در یک {{< glossary_tooltip text="Pod" term_id="pod" >}}، از آن استفاده می‌کنید. + +این صفحه نمای کلی‌ای از مفهوم ایمیج کانتینر ارائه می‌دهد. + +{{< note >}} +اگر به دنبال ایمیج‌های کانتینر برای یک نسخه کوبرنتیز (مانند v{{< skew latestVersion >}}، آخرین ریزنسخه) هستید، به [دانلود کوبرنتیز](https://kubernetes.io/releases/download/) مراجعه کنید. +{{< /note >}} + + +## نام‌های ایمیج + +به ایمیج‌های کانتینر معمولاً نام‌هایی مانند `pause`، `example/mycontainer` یا `kube-apiserver` اختصاص داده می‌شود. +ایمیج‌ها می‌توانند شامل نام میزبان رجیستری نیز باشند؛ برای مثال: +`fictional.registry.example/imagename` +و حتی ممکن است یک شماره پورت نیز اضافه شود؛ برای مثال: +`fictional.registry.example:10443/imagename` + +اگر نام میزبان رجیستری را مشخص نکنید، Kubernetes فرض می‌کند که منظور شما [رجیستری عمومی Docker](https://hub.docker.com/) است. +می‌توانید این رفتار را با تنظیم یک رجیستری ایمیج پیش‌فرض در پیکربندی +[زمان‌اجرای کانتینر](/docs/setup/production-environment/container-runtimes/) +تغییر دهید. + +پس از بخش نام ایمیج، می‌توانید یک _tag_ یا _digest_ اضافه کنید (دقیقا مانند زمانی که با دستورات `docker` یا `podman` کار می‌کنید). +تگ‌ها به شما امکان می‌دهند نسخه‌های مختلف از یک سری ایمیج را شناسایی کنید. +دایجست‌ها (digests) شناسه‌ای یکتا برای یک نسخه مشخص از ایمیج هستند. +دایجست‌ها هش محتوای ایمیج بوده و تغییرناپذیرند. +تگ‌ها می‌توانند به ایمیج‌های مختلف اشاره کنند، اما دایجست‌ها ثابت هستند. + +تگ‌های ایمیج از حروف کوچک و بزرگ، ارقام، زیرخط (`_`)، نقطه (`.`) و خط تیره (`-`) تشکیل شده‌اند. +طول تگ می‌تواند تا ۱۲۸ نویسه باشد و باید با الگوی زیر مطابق باشد: + +[a-zA-Z0-9_][a-zA-Z0-9._-]{0,127} + +برای مطالعه بیشتر و مشاهده عبارت باقاعده اعتبارسنجی، به +[OCI Distribution Specification](https://github.com/opencontainers/distribution-spec/blob/master/spec.md#workflow-categories) +مراجعه کنید. +اگر تگی مشخص نکنید، Kubernetes فرض می‌کند منظور شما تگ `latest` است. + +دایجست‌های ایمیج شامل یک الگوریتم هش (مانند `sha256`) و یک مقدار هش هستند. برای مثال: + +sha256:1ff6c18fbef2045af6b9c16bf034cc421a29027b800e4f9b68ae9b1cb3e9ae07 + +برای اطلاعات بیشتر درباره فرمت دایجست، به +[OCI Image Specification](https://github.com/opencontainers/image-spec/blob/master/descriptor.md#digests) +مراجعه کنید. + +نمونه‌هایی از نام‌های ایمیجی که Kubernetes می‌تواند استفاده کند: + +- `busybox` — فقط نام ایمیج، بدون تگ یا دایجست. Kubernetes از رجیستری عمومی Docker و تگ latest استفاده می‌کند. معادل `docker.io/library/busybox:latest`. +- `busybox:1.32.0` — نام ایمیج به‌علاوه تگ. Kubernetes از رجیستری عمومی Docker استفاده می‌کند. معادل `docker.io/library/busybox:1.32.0`. +- `registry.k8s.io/pause:latest` — نام ایمیج با رجیستری سفارشی و تگ latest. +- `registry.k8s.io/pause:3.5` — نام ایمیج با رجیستری سفارشی و تگ غیر-latest. +- `registry.k8s.io/pause@sha256:1ff6c18fbef2045af6b9c16bf034cc421a29027b800e4f9b68ae9b1cb3e9ae07` — نام ایمیج به‌همراه دایجست. +- `registry.k8s.io/pause:3.5@sha256:1ff6c18fbef2045af6b9c16bf034cc421a29027b800e4f9b68ae9b1cb3e9ae07` — نام ایمیج با تگ و دایجست. در زمان pull، فقط دایجست استفاده می‌شود. + +## به‌روزرسانی ایمیج‌ها + +هنگامی که برای اولین بار یک {{< glossary_tooltip text="Deployment" term_id="deployment" >}}، {{< glossary_tooltip text="StatefulSet" term_id="statefulset" >}}، پاد یا هر شیء دیگری که شامل یک PodTemplate است را ایجاد می‌کنید و سیاست کشیدن (pull policy) به‌طور صریح مشخص نشده باشد، به‌طور پیش‌فرض سیاست کشیدن تمام کانتینرهای آن پاد روی `IfNotPresent` تنظیم می‌شود. این سیاست باعث می‌شود kubelet در صورتی که ایمیج قبلاً وجود داشته باشد، از کشیدن آن صرف‌نظر کند. + +### سیاست دریافت ایمیج + +مقدار `imagePullPolicy` برای یک کانتینر و تگ ایمیج هر دو بر _زمانی_ که kubelet تلاش می‌کند ایمیج مشخص‌شده را بکشد (دانلود کند) تأثیر می‌گذارند. + +در اینجا فهرستی از مقادیری که می‌توانید برای `imagePullPolicy` تنظیم کنید و تأثیرات هر یک آمده است: + +`IfNotPresent` +: ایمیج تنها در صورتی کشیده می‌شود که قبلاً به‌صورت محلی موجود نباشد. + +`Always` +: هر بار که kubelet یک کانتینر را راه‌اندازی می‌کند، kubelet از رجیستری ایمیج کانتینر برای حل نام به یک + [دایجست](https://docs.docker.com/engine/reference/commandline/pull/#pull-an-image-by-digest-immutable-identifier) + استفاده می‌کند. اگر kubelet قبلاً ایمیجی با آن دایجست دقیق را در کش محلی داشته باشد، از همان کش استفاده می‌کند؛ + در غیر این صورت، ایمیجی با دایجست حل‌شده را می‌کشد و با آن کانتینر را راه‌اندازی می‌کند. + +`Never` +: kubelet تلاش به دریافت ایمیج نمی‌کند. اگر ایمیج به‌هرصورت قبلاً به‌صورت محلی موجود باشد، kubelet سعی می‌کند کانتینر را + اجرا کند؛ در غیر این صورت، راه‌اندازی با شکست مواجه می‌شود. برای جزئیات بیشتر به بخش [ایمیج‌های از پیش کش‌شده](#pre-pulled-images) مراجعه کنید. + +سمانتیک کشing (cache) ارائه‌دهنده ایمیج زیرین باعث می‌شود حتی `imagePullPolicy: Always` نیز کارآمد باشد +تا زمانی که رجیستری به‌طور قابل‌اعتمادی در دسترس باشد. زمان‌اجرای کانتینر شما می‌تواند تشخیص دهد که لایه‌های +ایمیج قبلاً روی نود وجود دارند تا دوباره دانلود نشوند. + +{{< note >}} +در محیط تولید از تگ `:latest` خودداری کنید، زیرا ردیابی نسخه در حال اجرا دشوارتر است و بازگشت به نسخه قبلی پیچیده‌تر می‌شود. + +به جای آن از تگی معنادار مانند `v1.42.0` و/یا دایجست استفاده کنید. +{{< /note >}} + +برای اطمینان از اینکه پاد همیشه از یک نسخه مشخص از ایمیج استفاده کند، می‌توانید دایجست ایمیج را مشخص کنید؛ +`:` را با `@` جایگزین کنید +(مثال: `image@sha256:45b23dee08af5e43a7fea6c4cf9c25ccf269ee113168c19722f87876677c5cb2`). + +هنگام استفاده از تگ‌ها، اگر رجیستری ایمیج کد مربوط به آن تگ را تغییر دهد، ممکن است پادهای شما ترکیبی از کد قدیمی و جدید اجرا کنند. +دایجست ایمیج یک نسخه یکتا را مشخص می‌کند، بنابراین هر بار که Kubernetes با آن نام و دایجست ایمیج، کانتینری را اجرا کند، +کد یکسانی راه‌اندازی خواهد شد. مشخص کردن ایمیج با دایجست باعث قفل شدن کدی می‌شود که اجرا می‌کنید، +به‌طوری که تغییر در رجیستری نتواند منجر به اجرای همزمان نسخه‌های متفاوت شود. + +کنترل‌کننده‌های ورود ثالث ([admission controllers](/docs/reference/access-authn-authz/admission-controllers/)) وجود دارند که +هنگام ایجاد پاد (و PodTemplate) آن‌ها را اصلاح می‌کنند تا بارکاری در حال اجرا بر اساس دایجست ایمیج +و نه تگ تعریف شود. این ممکن است مفید باشد اگر بخواهید تمام بارکاری خود را تضمین کنید +که همیشه کد یکسانی اجرا کند، صرف‌نظر از تغییرات تگ در رجیستری. + +#### سیاست پیش‌فرض کشیدن ایمیج {#imagepullpolicy-defaulting} + +وقتی شما (یا یک کنترلر) پادی جدید را به API سرور ارسال می‌کنید، خوشه زمانی که شرایط مشخصی برقرار باشد، فیلد `imagePullPolicy` را تنظیم می‌کند: + +- اگر فیلد `imagePullPolicy` را حذف کنید و دایجست ایمیج کانتینر را مشخص کنید، `imagePullPolicy` به‌طور خودکار روی `IfNotPresent` تنظیم می‌شود. +- اگر فیلد `imagePullPolicy` را حذف کنید و تگ ایمیج کانتینر `:latest` باشد، `imagePullPolicy` به‌طور خودکار روی `Always` تنظیم می‌شود. +- اگر فیلد `imagePullPolicy` را حذف کنید و تگی برای ایمیج کانتینر مشخص نکنید، `imagePullPolicy` به‌طور خودکار روی `Always` تنظیم می‌شود. +- اگر فیلد `imagePullPolicy` را حذف کنید و تگی غیر از `:latest` برای ایمیج کانتینر مشخص کنید، `imagePullPolicy` به‌طور خودکار روی `IfNotPresent` تنظیم می‌شود. + +{{< note >}} +مقدار `imagePullPolicy` کانتینر همیشه هنگام _ایجاد_ اولیه شیء تنظیم می‌شود و در صورت تغییر بعدی تگ یا دایجست ایمیج، به‌روزرسانی نمی‌گردد. + +برای مثال، اگر یک Deployment با ایمیجی ایجاد کنید که تگش _نه_ `:latest` باشد و سپس آن Deployment را بروزرسانی کنید تا تگش به `:latest` تغییر یابد، فیلد `imagePullPolicy` _تغییر نخواهد کرد_ تا `Always`. برای تغییر سیاست کشیدن، باید پس از ایجاد اولیه هر شیء به‌صورت دستی آن را تنظیم کنید. +{{< /note >}} + +#### کشیدن اجباری ایمیج + +اگر می‌خواهید همیشه کشیدن ایمیج را اجباری کنید، می‌توانید یکی از اقدامات زیر را انجام دهید: + +- `imagePullPolicy` کانتینر را روی `Always` تنظیم کنید. +- `imagePullPolicy` را حذف کنید و از `:latest` به‌عنوان تگ ایمیج استفاده کنید؛ Kubernetes هنگام ارسال پاد، سیاست را به `Always` تنظیم می‌کند. +- `imagePullPolicy` و تگ ایمیج را حذف کنید؛ Kubernetes هنگام ارسال پاد، سیاست را به `Always` تنظیم می‌کند. +- کنترل‌کننده admission [AlwaysPullImages](/docs/reference/access-authn-authz/admission-controllers/#alwayspullimages) را فعال کنید. + +### ImagePullBackOff + +وقتی kubelet برای پاد کانتینر می‌سازد، ممکن است کانتینر در وضعیت [Waiting](/docs/concepts/workloads/pods/pod-lifecycle/#container-state-waiting) به‌خاطر `ImagePullBackOff` قرار گیرد. + +وضعیت `ImagePullBackOff` به این معنی است که کانتینر نتوانسته شروع به کار کند زیرا Kubernetes نتوانسته ایمیج کانتینر را بکشد (برای دلایلی مانند نام نامعتبر ایمیج یا تلاش برای دریافت از رجیستری خصوصی بدون `imagePullSecret`). قسمت `BackOff` نشان می‌دهد که Kubernetes با تأخیر افزایشی همچنان تلاش به دریافت ایمیج خواهد کرد. + +Kubernetes تأخیر بین هر تلاش را افزایش می‌دهد تا به حد مشخصی برسد که برابر ۳۰۰ ثانیه (۵ دقیقه) است. + +### دریافت ایمیج بر اساس کلاس زمان‌اجرا + +{{< feature-state feature_gate_name="RuntimeClassInImageCriApi" >}} +Kubernetes از نسخه آلفا، پشتیبانی از دریافت ایمیج را بر اساس کلاس زمان‌اجرا (RuntimeClass) یک پاد ارائه می‌دهد. + +اگر [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) +`RuntimeClassInImageCriApi` را فعال کنید، kubelet ایمیج‌های کانتینر را بر اساس زوج نام ایمیج و هندلر زمان‌اجرا (runtime handler) مرجع می‌دهد، نه فقط نام ایمیج یا دایجست. +زمان‌اجرای شما ({{< glossary_tooltip text="container runtime" term_id="container-runtime" >}}) ممکن است رفتار خود را بر اساس هندلر انتخاب‌شده تنظیم کند. +دریافت ایمیج بر اساس کلاس زمان‌اجرا برای کانتینرهای مبتنی بر ماشین مجازی، مانند کانتینرهای Windows Hyper-V، مفید است. + +## دریافت سریالی و موازی ایمیج‌ها + +به‌طور پیش‌فرض، kubelet ایمیج‌ها را سریالی (متوالی) می‌کشد. یعنی kubelet تنها یک درخواست دریافت ایمیج را در یک زمان به سرویس ایمیج ارسال می‌کند. سایر درخواست‌ها باید تا پایان پردازش درخواست جاری صبر کنند. + +نودها تصمیمات دریافت ایمیج را به‌صورت جداگانه . حتی در حالت سریالی‌سازی دریافت ایمیج، دو نود مختلف می‌توانند به‌طور موازی همان ایمیج را بکشند. + +اگر می‌خواهید دریافت ایمیج را به‌صورت موازی فعال کنید، می‌توانید فیلد `serializeImagePulls` را در [پیکربندی kubelet](/docs/reference/config-api/kubelet-config.v1beta1/) روی false تنظیم کنید. با `serializeImagePulls: false`، درخواست‌های دریافت ایمیج فوراً به سرویس ایمیج ارسال می‌شوند و چندین ایمیج به‌طور هم‌زمان کشیده می‌شوند. + +هنگام فعال کردن دریافت موازی ایمیج‌ها، مطمئن شوید که سرویس ایمیج زمان‌اجرای شما قادر به پردازش دریافت موازی ایمیج‌ها باشد. + +kubelet هرگز برای یک پاد چند ایمیج را به‌طور موازی نمی‌کشد. برای مثال، اگر پادی یک کانتینر init و یک کانتینر برنامه داشته باشد، دریافت ایمیج‌های این دو کانتینر موازی‌سازی نمی‌شود. اما اگر دو پاد با ایمیج‌های مختلف داشته باشید و ویژگی دریافت موازی فعال باشد، kubelet ایمیج‌های آن دو پاد را به‌طور موازی می‌کشد. + +### حداکثر تعداد دریافت موازی ایمیج + +{{< feature-state for_k8s_version="v1.32" state="beta" >}} + +وقتی `serializeImagePulls` روی false تنظیم شود، kubelet به‌طور پیش‌فرض هیچ محدودیتی برای حداکثر تعداد ایمیج‌هایی که هم‌زمان کشیده می‌شوند در نظر نمی‌گیرد. اگر بخواهید تعداد دریافت موازی ایمیج‌ها را محدود کنید، می‌توانید فیلد `maxParallelImagePulls` را در پیکربندی kubelet تعیین کنید. با تنظیم `maxParallelImagePulls` روی _n_، تنها _n_ ایمیج می‌توانند هم‌زمان کشیده شوند و هر درخواست دریافت ایمیج فراتر از _n_ باید تا اتمام حداقل یکی از دریافت‌های در حال انجام منتظر بماند. + +محدود کردن تعداد دریافت موازی ایمیج‌ها از مصرف بیش‌ازحد پهنای باند شبکه یا I/O دیسک جلوگیری می‌کند، زمانی که دریافت موازی ایمیج فعال باشد. + +می‌توانید `maxParallelImagePulls` را به عددی مثبت برابر یا بزرگ‌تر از ۱ تنظیم کنید. اگر آن را به عددی برابر یا بزرگ‌تر از ۲ تنظیم کنید، باید `serializeImagePulls` را روی false قرار دهید. در غیر این صورت، kubelet با تنظیم نامعتبر `maxParallelImagePulls` موفق به راه‌اندازی نخواهد شد. + +## ایمیج چندمعماری با ایندکس ایمیج + +علاوه بر ارائه‌ی ایمیج‌های باینری، یک رجیستری کانتینر می‌تواند یک +[ایندکس ایمیج کانتینر](https://github.com/opencontainers/image-spec/blob/master/image-index.md) +نیز سرو کند. ایندکس ایمیج می‌تواند به چندین +[مانیفست ایمیج](https://github.com/opencontainers/image-spec/blob/master/manifest.md) +برای نسخه‌های معماری‌محور یک کانتینر اشاره کند. ایده این است که شما می‌توانید +یک نام برای ایمیج داشته باشید (برای مثال: `pause`، `example/mycontainer`، `kube-apiserver`) +و اجازه دهید سیستم‌های مختلف، ایمیج باینری مناسب معماری ماشینی را که استفاده می‌کنند، دریافت کنند. + +پروژه‌ی Kubernetes معمولاً ایمیج‌های کانتینر برای نسخه‌های خود را با نام‌هایی حاوی پسوند `-$(ARCH)` می‌سازد. +برای سازگاری با نسخه‌های قدیمی‌تر، ایمیج‌های قدیمی‌تر را با پسوندهای مشخص تولید می‌کند. +برای مثال، ایمیجی با نام `pause` یک تصویر چندمعماری حاوی مانیفست برای همه‌ی معماری‌های پشتیبانی‌شده خواهد بود، +در حالی که `pause-amd64` نسخه‌ای سازگار با پیکربندی‌های قبلی یا فایل‌های YAML با نام سخت‌کدشده و پسوند است. + +## استفاده از رجیستری خصوصی + +رجیستری‌های خصوصی ممکن است برای کشف و/یا دریافت ایمیج‌ها از آن‌ها به احراز هویت نیاز داشته باشند. +اطلاعات اعتبار (Credentials) را می‌توان به چند روش فراهم کرد: + +- [تعریف `imagePullSecrets` هنگام تعریف یک پاد](#specifying-imagepullsecrets-on-a-pod) + تنها پادهایی که کلیدهای خود را ارائه می‌کنند می‌توانند به رجیستری خصوصی دسترسی پیدا کنند. + +- [پیکربندی نودها برای احراز هویت به یک رجیستری خصوصی](#configuring-nodes-to-authenticate-to-a-private-registry) + - همه‌ی پادها می‌توانند هر رجیستری خصوصی پیکربندی‌شده را بخوانند. + - نیازمند پیکربندی نود توسط مدیر خوشه است. + +- استفاده از افزونه‌ی _kubelet credential provider_ برای [دریافت پویا اعتبارنامه‌ها برای رجیستری‌های خصوصی](#kubelet-credential-provider) + می‌توان kubelet را طوری پیکربندی کرد که از افزونه‌ی اجرایی Credential Provider برای + رجیستری خصوصی مربوطه استفاده کند. + +- [ایمیج‌های از پیش دریافت‌شده](#pre-pulled-images) + - همه پادها می‌توانند از هر ایمیجی که روی نود کش شده است استفاده کنند. + - نیازمند دسترسی root به تمام نودها برای پیکربندی. +- افزونه‌های مخصوص فروشنده یا محلی + + اگر از پیکربندی نود سفارشی استفاده می‌کنید، شما (یا ارائه‌دهنده خدمات ابری شما) می‌توانید مکانیزم خود را برای احراز هویت نود به رجیستری کانتینر پیاده‌سازی کنید. + +این گزینه‌ها در ادامه با جزئیات بیشتری توضیح داده شده‌اند. + +### مشخص کردن `imagePullSecrets` در پاد + +{{< note >}} +این روش توصیه‌شده برای اجرای کانتینرها بر اساس ایمیج‌های موجود در رجیستری‌های خصوصی است. +{{< /note >}} + +Kubernetes از مشخص کردن کلیدهای رجیستری ایمیج کانتینر در پاد پشتیبانی می‌کند. +تمام `imagePullSecrets` باید Secretهایی باشند که در همان +{{< glossary_tooltip term_id="namespace" >}} +پاد وجود دارند. این Secretها باید از نوع `kubernetes.io/dockercfg` یا `kubernetes.io/dockerconfigjson` باشند. + +### پیکربندی نودها برای احراز هویت به یک رجیستری خصوصی + +دستورالعمل‌های خاص برای تنظیم اعتبارنامه‌ها به زمان‌اجرای کانتینر و رجیستری مورد استفاده شما بستگی دارد. برای دقیق‌ترین اطلاعات به مستندات راه‌حل خود مراجعه کنید. + +برای مثال پیکربندی یک رجیستری ایمیج کانتینر خصوصی، به تسک +[Pull an Image from a Private Registry](/docs/tasks/configure-pod-container/pull-image-private-registry) +مراجعه کنید. آن مثال از یک رجیستری خصوصی در Docker Hub استفاده می‌کند. + +### افزونه‌ی اعتبارنامه kubelet برای دریافت ایمیج‌های احراز هویت‌شده {#kubelet-credential-provider} + +می‌توانید kubelet را طوری پیکربندی کنید که یک باینری افزونه را فراخوانی کند تا به‌صورت پویا اعتبارنامه‌های رجیستری را برای یک ایمیج کانتینر دریافت کند. این روش مقاوم‌ترین و چندمنظوره‌ترین راه برای دریافت اعتبارنامه‌ها برای رجیستری‌های خصوصی است، اما نیاز به پیکربندی در سطح kubelet دارد. + +این تکنیک می‌تواند برای اجرای {{< glossary_tooltip term_id="static-pod" text="static Pods" >}} که نیاز به ایمیج‌های کانتینر میزبانی‌شده در یک رجیستری خصوصی دارند، بسیار مفید باشد. استفاده از {{< glossary_tooltip term_id="service-account" >}} یا {{< glossary_tooltip term_id="secret" >}} برای ارائه اعتبارنامه‌های رجیستری خصوصی در مشخصات یک پاد ایستا ممکن نیست، زیرا پاد ایستا نمی‌تواند به منابع API دیگر در مشخصات خود ارجاع دهد. + +برای جزئیات بیشتر، به [Configure a kubelet image credential provider](/docs/tasks/administer-cluster/kubelet-credential-provider/) مراجعه کنید. + +### تفسیر فایل config.json {#config-json} + +تفسیر `config.json` بین پیاده‌سازی اصلی Docker و تفسیر Kubernetes متفاوت است. در Docker، کلیدهای `auths` تنها می‌توانند URLهای ریشه‌ای را مشخص کنند، در حالی که Kubernetes علاوه بر مسیرهای مطابقت پیشوندی، از URLهای الگو (glob) نیز پشتیبانی می‌کند. تنها محدودیت این است که الگوهای glob (`*`) باید برای هر زیردامنه شامل نقطه (`.`) باشند. تعداد زیردامنه‌های مطابقت‌شده باید برابر با تعداد الگوهای glob (`*.`) باشد. برای مثال: + +- `*.kubernetes.io` با `kubernetes.io` **مطابقت ندارد**، اما با `abc.kubernetes.io` **مطابقت می‌کند**. +- `*.*.kubernetes.io` با `abc.kubernetes.io` **مطابقت ندارد**، اما با `abc.def.kubernetes.io` **مطابقت می‌کند**. +- `prefix.*.io` با `prefix.kubernetes.io` **مطابقت می‌کند**. +- `*-good.kubernetes.io` با `prefix-good.kubernetes.io` **مطابقت می‌کند**. + +این بدان معناست که `config.json` زیر معتبر است: + +```json +{ + "auths": { + "my-registry.example/images": { "auth": "…" }, + "*.my-registry.example/images": { "auth": "…" } + } +} +``` + +عملیات دریافت ایمیج، اطلاعات اعتبار (Credentials) را برای هر الگوی معتبر به زمان‌اجرای کانتینر CRI ارسال می‌کند. برای مثال، نام‌های ایمیجی زیر با موفقیت مطابقت پیدا می‌کنند: + +- `my-registry.example/images` +- `my-registry.example/images/my-image` +- `my-registry.example/images/another-image` +- `sub.my-registry.example/images/my-image` + +اما این نام‌های ایمیج **مطابقت نخواهند داشت**: + +- `a.sub.my-registry.example/images/my-image` +- `a.b.sub.my-registry.example/images/my-image` + +kubelet عملیات دریافت ایمیج را به‌صورت متوالی برای هر اعتبارنامه یافت‌شده انجام می‌دهد. این بدان معناست که می‌توانید چندین ورودی مختلف در `config.json` برای مسیرهای گوناگون داشته باشید: + +```json +{ + "auths": { + "my-registry.example/images": { + "auth": "…" + }, + "my-registry.example/images/subpath": { + "auth": "…" + } + } +} +``` + +اگر اکنون یک کانتینر مشخص کند ایمیج `my-registry.example/images/subpath/my-image` باید دریافت شود، آنگاه kubelet تلاش می‌کند آن را با استفاده از هر دو منبع احراز هویت دانلود کند و اگر یکی از آن‌ها شکست بخورد، از دیگری استفاده کند. + +### ایمیج‌های از پیش دریافت‌شده + +{{< note >}} +این روش مناسب است اگر بتوانید پیکربندی نودها را کنترل کنید. اگر ارائه‌دهنده ابری شما نودها را مدیریت کرده و آن‌ها را به‌طور خودکار جایگزین کند، به‌طور قابل‌اعتمادی کار نخواهد کرد. +{{< /note >}} + +به‌طور پیش‌فرض، kubelet سعی می‌کند هر ایمیج را از رجیستری مشخص‌شده دریافت کند. با این حال، اگر ویژگی `imagePullPolicy` کانتینر روی `IfNotPresent` یا `Never` تنظیم شده باشد، ایمیج محلی استفاده می‌شود (به‌ترتیب، به‌طور ترجیحی یا انحصاری). + +اگر می‌خواهید به‌جای احراز هویت به رجیستری، به ایمیج‌های از پیش دریافت‌شده متکی باشید، باید مطمئن شوید که همه نودهای خوشه همان ایمیج‌های از پیش دریافت‌شده را دارند. + +این روش می‌تواند برای بارگذاری اولیه برخی ایمیج‌ها به‌منظور افزایش سرعت یا به‌عنوان جایگزینی برای احراز هویت به رجیستری خصوصی استفاده شود. + +مشابه استفاده از [kubelet credential provider](#kubelet-credential-provider)، ایمیج‌های از پیش دریافت‌شده همچنین برای راه‌اندازی {{< glossary_tooltip text="static Pods" term_id="static-pod" >}} که به ایمیج‌های میزبانی‌شده در رجیستری خصوصی وابسته‌اند مناسب هستند. + +{{< note >}} +{{< feature-state feature_gate_name="KubeletEnsureSecretPulledImages" >}} +دسترسی به ایمیج‌های از پیش دریافت‌شده ممکن است بر اساس [اعتبارسنجی اعتبارنامه دریافت ایمیج](#ensureimagepullcredentialverification) مجاز باشد. +{{< /note >}} + +#### اطمینان از اعتبارسنجی اعتبارنامه‌های دریافت ایمیج {#ensureimagepullcredentialverification} + +{{< feature-state feature_gate_name="KubeletEnsureSecretPulledImages" >}} + +اگر feature gate `KubeletEnsureSecretPulledImages` برای خوشه شما فعال باشد، Kubernetes اعتبارنامه‌های دریافت ایمیج را برای هر ایمیجی که نیاز به اعتبارنامه برای دریافت دارد، حتی اگر آن ایمیج قبلاً روی نود موجود باشد، اعتبارسنجی می‌کند. این اعتبارسنجی تضمین می‌کند که ایمیج‌هایی که در یک درخواست پاد وجود دارند و با اعتبارنامه‌های ارائه‌شده با موفقیت دریافت نشده‌اند، باید مجدداً از رجیستری دریافت شوند. علاوه بر این، دریافت ایمیج‌هایی که از همان اعتبارنامه‌ای استفاده می‌کنند که پیش‌تر منجر به دریافت موفق شده است، نیازی به دریافت مجدد از رجیستری ندارند و در عوض به‌صورت محلی اعتبارسنجی می‌شوند (مشروط بر اینکه ایمیج به‌صورت محلی موجود باشد). +این موضوع توسط فیلد `imagePullCredentialsVerificationPolicy` در [پیکربندی Kubelet](/docs/reference/config-api/kubelet-config.v1beta1/#kubelet-config-k8s-io-v1beta1-ImagePullCredentialsVerificationPolicy) کنترل می‌شود. + +این پیکربندی تعیین می‌کند که چه زمانی اعتبارنامه‌های دریافت ایمیج باید اعتبارسنجی شوند اگر ایمیج قبلاً روی نود موجود باشد: + +* `NeverVerify`: رفتار معادل غیرفعال بودن این feature gate را شبیه‌سازی می‌کند. اگر ایمیج به‌صورت محلی موجود باشد، اعتبارنامه‌های دریافت ایمیج اعتبارسنجی نمی‌شوند. +* `NeverVerifyPreloadedImages`: ایمیج‌هایی که خارج از kubelet دریافت شده‌اند، اعتبارسنجی نمی‌شوند، اما همه ایمیج‌های دیگر اعتبارنامه‌هایشان اعتبارسنجی می‌شود. این رفتار پیش‌فرض است. +* `NeverVerifyAllowListedImages`: ایمیج‌هایی که خارج از kubelet دریافت شده‌اند و در لیست `preloadedImagesVerificationAllowlist` مشخص‌شده در پیکربندی kubelet آمده‌اند، اعتبارسنجی نمی‌شوند. +* `AlwaysVerify`: همه ایمیج‌ها قبل از استفاده، اعتبارنامه‌هایشان اعتبارسنجی می‌شود. + +این اعتبارسنجی شامل [ایمیج‌های از پیش دریافت‌شده](#pre-pulled-images)، ایمیج‌هایی که با استفاده از Secretهای سراسری نود دریافت شده‌اند، و ایمیج‌هایی که با استفاده از Secretهای سطح پاد دریافت شده‌اند، می‌شود. + +{{< note >}} +در صورت گردش اعتبارنامه‌ها، اعتبارنامه‌های قبلاً استفاده‌شده برای دریافت ایمیج بدون نیاز به دسترسی به رجیستری همچنان اعتبارسنجی می‌شوند. اعتبارنامه‌های جدید یا گردش‌یافته نیاز به دریافت مجدد ایمیج از رجیستری خواهند داشت. +{{< /note >}} + +#### ایجاد یک راز با پیکربندی Docker + +برای احراز هویت در رجیستری، باید نام کاربری، رمز عبور رجیستری و آدرس ایمیل کلاینت و همچنین نام میزبان آن را بدانید. + +دستور زیر را اجرا کنید و مقادیر مناسب را جایگزین متغیرهای جایگزین کنید: + +```shell +kubectl create secret docker-registry \ + --docker-server= \ + --docker-username= \ + --docker-password= \ + --docker-email= +``` + +اگر قبلاً یک فایل اعتبارنامه Docker دارید، به‌جای استفاده از دستور بالا می‌توانید فایل اعتبارنامه را به‌عنوان یک {{< glossary_tooltip text="Secret" term_id="secret" >}} در Kubernetes وارد (import) کنید. دستورالعمل [ایجاد Secret بر اساس اعتبارنامه‌های موجود Docker](/docs/tasks/configure-pod-container/pull-image-private-registry/#registry-secret-existing-credentials) نحوه انجام این کار را توضیح می‌دهد. + +این روش زمانی که از چندین رجیستری کانتینر خصوصی استفاده می‌کنید بسیار مفید است، زیرا دستور `kubectl create secret docker-registry` یک Secret ایجاد می‌کند که فقط با یک رجیستری خصوصی کار می‌کند. + +{{< note >}} +پادها تنها می‌توانند به imagePullSecrets در همان namespace خود ارجاع دهند، بنابراین این فرآیند باید برای هر namespace یک‌بار انجام شود. +{{< /note >}} + +#### ارجاع به `imagePullSecrets` در یک پاد + +اکنون می‌توانید پادهایی ایجاد کنید که با افزودن بخش `imagePullSecrets` به تعریف پاد، به آن Secret ارجاع دهند. هر آیتم در آرایه `imagePullSecrets` فقط می‌تواند به یک Secret در همان namespace اشاره کند. + +برای مثال: +```shell +cat < pod.yaml +apiVersion: v1 +kind: Pod +metadata: + name: foo + namespace: awesomeapps +spec: + containers: + - name: foo + image: janedoe/awesomeapp:v1 + imagePullSecrets: + - name: myregistrykey +EOF + +cat <> ./kustomization.yaml +resources: +- pod.yaml +EOF +``` + +برای هر پادی که از یک رجیستری خصوصی استفاده می‌کند باید این کار انجام شود. + +با این حال، می‌توانید این فرآیند را با مشخص کردن بخش `imagePullSecrets` +در یک منبع [ServiceAccount](/docs/tasks/configure-pod-container/configure-service-account/) خودکار کنید. +برای دستورالعمل‌های دقیق‌تر به بخش +[افزودن ImagePullSecrets به یک Service Account](/docs/tasks/configure-pod-container/configure-service-account/#add-imagepullsecrets-to-a-service-account) +مراجعه کنید. + +می‌توانید این روش را همراه با یک فایل `.docker/config.json` به ازای هر نود استفاده کنید. +اعتبارنامه‌ها با هم ادغام خواهند شد. + +## موارد استفاده + +راه‌حل‌های متعددی برای پیکربندی رجیستری‌های خصوصی وجود دارد. در اینجا برخی موارد رایج و راه‌حل‌های پیشنهاد‌شده آمده‌اند: + +1. خوشه‌ای که تنها از ایمیج‌های غیرخصوصی (مثلاً متن‌باز) استفاده می‌کند و نیازی به پنهان کردن ایمیج‌ها نیست. + - از ایمیج‌های عمومی در یک رجیستری عمومی استفاده کنید + - پیکربندی لازم نیست. + - برخی ارائه‌دهندگان ابری به‌طور خودکار ایمیج‌های عمومی را کش یا میران کنند که دسترسی‌پذیری را بهبود و زمان دریافت را کاهش می‌دهد. +1. خوشه‌ای که برخی ایمیج‌های اختصاصی دارد که باید از کاربران خارج شرکت پنهان باشد اما برای همه کاربران خوشه قابل مشاهده باشد. + - از رجیستری خصوصی میزبانی‌شده استفاده کنید + - ممکن است نیاز به پیکربندی دستی روی نودهایی باشد که باید به رجیستری خصوصی دسترسی داشته باشند. + - یا، یک رجیستری خصوصی داخلی پشت فایروال خود با دسترسی خواندن باز اجرا کنید. + - نیازی به پیکربندی Kubernetes نیست. + - از سرویس رجیستری ایمیج میزبانی‌شده‌ای استفاده کنید که دسترسی به ایمیج را کنترل می‌کند + - با autoscaling نود بهتر از پیکربندی دستی نودها کار می‌کند. + - یا، در خوشه‌ای که تغییر پیکربندی نودها دشوار است، از `imagePullSecrets` استفاده کنید. +1. خوشه‌ای با ایمیج‌های اختصاصی که برخی از آن‌ها نیاز به کنترل دسترسی سخت‌گیرانه‌تر دارند. + - مطمئن شوید کنترل‌کننده admission [AlwaysPullImages](/docs/reference/access-authn-authz/admission-controllers/#alwayspullimages) + فعال است؛ در غیر این صورت، همه پادها ممکن است به همه ایمیج‌ها دسترسی داشته باشند. + - داده‌های حساس را به یک منبع Secret انتقال دهید، به جای بسته‌بندی در ایمیج. +1. خوشه چندمستأجری که هر مستأجر نیاز به رجیستری خصوصی خود دارد. + - مطمئن شوید کنترل‌کننده admission [AlwaysPullImages](/docs/reference/access-authn-authz/admission-controllers/#alwayspullimages) + فعال است؛ در غیر این صورت، همه پادهای همه مستأجران ممکن است به همه ایمیج‌ها دسترسی داشته باشند. + - یک رجیستری خصوصی با احراز هویت مورد نیاز اجرا کنید. + - برای هر مستأجر اعتبارنامه رجیستری تولید کنید، در یک Secret ذخیره و آن Secret را به همه namespaceهای مستأجر انتقال دهید. + - سپس مستأجر آن Secret را به `imagePullSecrets` هر namespace اضافه می‌کند. + +اگر به چندین رجیستری نیاز دارید، می‌توانید برای هر رجیستری یک Secret جداگانه ایجاد کنید. + +## ارائه‌دهنده اعتبارنامه داخلی قدیمی kubelet + +در نسخه‌های قدیمی‌تر Kubernetes، kubelet با اعتبارنامه‌های ارائه‌دهنده ابری یکپارچه بود. این امکان را فراهم می‌کرد که به‌صورت پویا اعتبارنامه‌ها برای رجیستری‌های ایمیج دریافت شوند. + +سه پیاده‌سازی داخلی از ارائه‌دهنده اعتبارنامه kubelet وجود داشت: ACR (Azure Container Registry)، ECR (Elastic Container Registry)، و GCR (Google Container Registry). + +از نسخه 1.26 Kubernetes به بعد، این مکانیزم قدیمی حذف شده است، بنابراین باید یکی از کارهای زیر را انجام دهید: +- پیکربندی یک ارائه‌دهنده اعتبارنامه kubelet برای ایمیج روی هر نود؛ یا +- مشخص کردن اعتبارنامه‌های دریافت ایمیج با استفاده از `imagePullSecrets` و حداقل یک Secret. + +## {{% heading "whatsnext" %}} + +* مستند [OCI Image Manifest Specification](https://github.com/opencontainers/image-spec/blob/main/manifest.md) را مطالعه کنید. +* درباره [جمع‌آوری زباله ایمیج‌های کانتینر](/docs/concepts/architecture/garbage-collection/#container-image-garbage-collection) بیشتر بیاموزید. +* اطلاعات بیشتری درباره [دریافت ایمیج از رجیستری خصوصی](/docs/tasks/configure-pod-container/pull-image-private-registry) کسب کنید. diff --git a/content/fa/docs/concepts/containers/runtime-class.md b/content/fa/docs/concepts/containers/runtime-class.md new file mode 100644 index 0000000000000..3002e01d35973 --- /dev/null +++ b/content/fa/docs/concepts/containers/runtime-class.md @@ -0,0 +1,138 @@ +--- +reviewers: + - xirehat +title: کلاس زمان اجرا +content_type: concept +weight: 30 +hide_summary: true # Listed separately in section index +--- + + + +{{< feature-state for_k8s_version="v1.20" state="stable" >}} + +این صفحه مکانیزم انتخاب منبع و زمان اجرا در RuntimeClass را شرح می‌دهد. + +RuntimeClass قابلیتی برای انتخاب پیکربندی زمان اجرای کانتینر است. پیکربندی زمان اجرای کانتینر برای اجرای کانتینرهای یک Pod استفاده می‌شود. + + + +## انگیزه + +شما می‌توانید یک RuntimeClass متفاوت بین Podهای مختلف تنظیم کنید تا تعادلی بین عملکرد و امنیت برقرار شود. به عنوان مثال، اگر بخشی از حجم کاری شما نیاز به سطح بالایی از تضمین امنیت اطلاعات دارد، می‌توانید آن Podها را طوری زمان‌بندی کنید که در یک زمان اجرای کانتینر که از مجازی‌سازی سخت‌افزار استفاده می‌کند، اجرا شوند. در این صورت، از ایزوله بودن بیشتر زمان اجرای جایگزین، به قیمت مقداری سربار اضافی، بهره‌مند خواهید شد. + +همچنین می‌توانید از RuntimeClass برای اجرای Podهای مختلف با زمان اجرای کانتینر یکسان اما با تنظیمات متفاوت استفاده کنید. + +## راه‌اندازی + +1. پیکربندی پیاده‌سازی CRI روی گره‌ها (وابسته به زمان اجرا) + +2. ایجاد منابع RuntimeClass مربوطه + +### 2. پیکربندی پیاده‌سازی CRI روی گره‌ها + +پیکربندی‌های موجود از طریق RuntimeClass به پیاده‌سازی رابط زمان اجرای کانتینر (CRI) وابسته هستند. برای نحوه پیکربندی، به مستندات مربوطه ([below](#cri-configuration)) برای پیاده‌سازی CRI خود مراجعه کنید. + +{{< note >}} +RuntimeClass به‌طور پیش‌فرض فرض می‌کند که پیکربندی نودها در سراسر خوشه همگن است (به این معنی که همه نودها از نظر زمان‌اجرای کانتینرها به یک شکل پیکربندی شده‌اند). برای پشتیبانی از پیکربندی‌های ناهمگن نود، به بخش [زمان‌بندی](#scheduling) در پایین مراجعه کنید. +{{< /note >}} + +پیکربندی‌ها نام `handler` متناظری دارند که توسط RuntimeClass ارجاع داده می‌شود. +این `handler` باید یک [نام برچسب DNS](/docs/concepts/overview/working-with-objects/names/#dns-label-names) معتبر باشد. + +### 2. ایجاد منابع متقابل RuntimeClass + +هر یک از پیکربندی‌هایی که در مرحله ۱ تنظیم شدند، باید یک نام `handler` مرتبط داشته باشند که پیکربندی را شناسایی کند. برای هر `handler`، یک شیء RuntimeClass متناظر ایجاد کنید. + +منبع RuntimeClass در حال حاضر تنها دو فیلد مهم دارد: نام RuntimeClass (`metadata.name`) و `handler`. تعریف شیء به این صورت است: +```yaml +# RuntimeClass is defined in the node.k8s.io API group +apiVersion: node.k8s.io/v1 +kind: RuntimeClass +metadata: + # The name the RuntimeClass will be referenced by. + # RuntimeClass is a non-namespaced resource. + name: myclass +# The name of the corresponding CRI configuration +handler: myconfiguration +``` + +نام یک شیء RuntimeClass باید یک [نام زیردامنه DNS](/docs/concepts/overview/working-with-objects/names#dns-subdomain-names) معتبر باشد. + +{{< note >}} +توصیه می‌شود عملیات نوشتن روی RuntimeClass (ایجاد/به‌روزرسانی/پچ/حذف) محدود به مدیر خوشه باشد. این معمولاً پیش‌فرض است. برای جزئیات بیشتر به [مروری بر مجوزدهی](/docs/reference/access-authn-authz/authorization/) مراجعه کنید. +{{< /note >}} + +## استفاده + +پس از پیکربندی RuntimeClassها برای خوشه، می‌توانید در مشخصات پاد، `runtimeClassName` را برای استفاده از آن تعیین کنید. برای مثال: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: mypod +spec: + runtimeClassName: myclass + # ... +``` + +این دستور به kubelet می‌گوید که برای اجرای این پاد از RuntimeClass مشخص‌شده استفاده کند. اگر RuntimeClass مشخص‌شده وجود نداشته باشد یا CRI نتواند هندلر مربوطه را اجرا کند، پاد وارد [فاز نهایی](/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase) `Failed` می‌شود. برای مشاهده پیام خطا، به [رویداد مربوطه](/docs/tasks/debug/debug-application/debug-running-pod/) مراجعه کنید. + +اگر `runtimeClassName` مشخص نشود، از RuntimeHandler پیش‌فرض استفاده خواهد شد که معادل رفتار هنگام غیرفعال بودن قابلیت RuntimeClass است. + +### پیکربندی CRI + +برای جزئیات بیشتر در مورد تنظیم زمان‌اجراهای CRI، به [نصب CRI](/docs/setup/production-environment/container-runtimes/) مراجعه کنید. + +#### {{< glossary_tooltip term_id="containerd" >}} + +هندلرهای زمان‌اجرا از طریق پیکربندی containerd در مسیر +`/etc/containerd/config.toml` تعریف می‌شوند. هندلرهای معتبر در بخش `runtimes` پیکربندی می‌شوند: + +``` +[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.${HANDLER_NAME}] +``` + +برای مشاهده جزئیات بیشتر به مستندات پیکربندی [containerd](https://github.com/containerd/containerd/blob/main/docs/cri/config.md) مراجعه کنید: + +#### {{< glossary_tooltip term_id="cri-o" >}} + +هندلرهای زمان‌اجرا از طریق پیکربندی CRI-O در مسیر `/etc/crio/crio.conf` تنظیم می‌شوند. هندلرهای معتبر در جدول [crio.runtime](https://github.com/cri-o/cri-o/blob/master/docs/crio.conf.5.md#crioruntime-table) پیکربندی می‌شوند: + +``` +[crio.runtime.runtimes.${HANDLER_NAME}] + runtime_path = "${PATH_TO_BINARY}" +``` + +برای جزئیات بیشتر به مستندات پیکربندی CRI-O در [اینجا](https://github.com/cri-o/cri-o/blob/master/docs/crio.conf.5.md) مراجعه کنید. + +## زمان‌بندی + +{{< feature-state for_k8s_version="v1.16" state="beta" >}} + +با مشخص کردن فیلد `scheduling` برای یک RuntimeClass، می‌توانید قیدهایی تعریف کنید تا اطمینان حاصل شود پادهایی که با این RuntimeClass اجرا می‌شوند، روی نودهایی زمان‌بندی شوند که از آن پشتیبانی می‌کنند. اگر `scheduling` تنظیم نشود، فرض بر این است که این RuntimeClass توسط همه نودها پشتیبانی می‌شود. + +برای اطمینان از اینکه پادها روی نودهای پشتیبانی‌کننده از یک RuntimeClass خاص قرار بگیرند، آن مجموعه نودها باید یک برچسب مشترک داشته باشند که سپس توسط فیلد `runtimeclass.scheduling.nodeSelector` انتخاب شود. nodeSelector مربوط به RuntimeClass در مرحله admission با nodeSelector پاد ترکیب می‌شود و در واقع اشتراک مجموعه نودهای انتخاب‌شده توسط هر دو گرفته می‌شود. اگر تعارضی وجود داشته باشد، پاد رد خواهد شد. + +اگر نودهای پشتیبانی‌کننده به‌منظور جلوگیری از اجرای سایر پادهای RuntimeClass روی آن نود، تِینت (taint) شده باشند، می‌توانید `tolerations` را به RuntimeClass اضافه کنید. همانند `nodeSelector`، tolerations نیز در admission با tolerations پاد ترکیب می‌شود و در واقع اجتماع مجموعه نودهای مورد تحمل هر دو گرفته می‌شود. + +برای آشنایی بیشتر با پیکربندی node selector و tolerations، به بخش +[اختصاص پادها به نودها](/docs/concepts/scheduling-eviction/assign-pod-node/) +مراجعه کنید. + +### سربار پاد + +{{< feature-state for_k8s_version="v1.24" state="stable" >}} + +شما می‌توانید منابع _سربار_ مرتبط با اجرای یک پاد را مشخص کنید. اعلام سربار به خوشه (شامل scheduler) اجازه می‌دهد در تصمیم‌گیری‌ها درباره پادها و منابع، آن را لحاظ کند. + +سربار پاد در RuntimeClass از طریق فیلد `overhead` تعریف می‌شود. با استفاده از این فیلد می‌توانید سربار اجرای پادهایی که از این RuntimeClass استفاده می‌کنند را مشخص کرده و اطمینان حاصل کنید که این سربارها در Kubernetes لحاظ شوند. + +## {{% heading "whatsnext" %}} + +- [طراحی RuntimeClass](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/585-runtime-class/README.md) +- [طراحی زمان‌بندی RuntimeClass](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/585-runtime-class/README.md#runtimeclass-scheduling) +- درباره مفهوم [سربار پاد](/docs/concepts/scheduling-eviction/pod-overhead/) مطالعه کنید +- [طراحی ویژگی PodOverhead](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/688-pod-overhead) + diff --git a/content/fa/docs/concepts/extend-kubernetes/_index.md b/content/fa/docs/concepts/extend-kubernetes/_index.md new file mode 100644 index 0000000000000..c021da4e2b92d --- /dev/null +++ b/content/fa/docs/concepts/extend-kubernetes/_index.md @@ -0,0 +1,334 @@ +--- +title: گسترش کوبرنتیز +weight: 999 # this section should come last +description: روش‌های مختلف برای تغییر رفتار خوشه کوبرنتیز شما. +reviewers: +- xirehat +feature: + title: طراحی شده برای توسعه‌پذیری + description: > + بدون تغییر کد منبع بالادست، ویژگی‌هایی را به خوشه کوبرنتیز خود اضافه کنید. +content_type: concept +no_list: true +--- + + + +Kubernetes is highly configurable and extensible. As a result, there is rarely a need to fork or +submit patches to the Kubernetes project code. + +This guide describes the options for customizing a Kubernetes cluster. It is aimed at +{{< glossary_tooltip text="cluster operators" term_id="cluster-operator" >}} who want to understand +how to adapt their Kubernetes cluster to the needs of their work environment. Developers who are +prospective {{< glossary_tooltip text="Platform Developers" term_id="platform-developer" >}} or +Kubernetes Project {{< glossary_tooltip text="Contributors" term_id="contributor" >}} will also +find it useful as an introduction to what extension points and patterns exist, and their +trade-offs and limitations. + +Customization approaches can be broadly divided into [configuration](#configuration), which only +involves changing command line arguments, local configuration files, or API resources; and [extensions](#extensions), +which involve running additional programs, additional network services, or both. +This document is primarily about _extensions_. + + + +## Configuration + +*Configuration files* and *command arguments* are documented in the [Reference](/docs/reference/) section of the online +documentation, with a page for each binary: + +* [`kube-apiserver`](/docs/reference/command-line-tools-reference/kube-apiserver/) +* [`kube-controller-manager`](/docs/reference/command-line-tools-reference/kube-controller-manager/) +* [`kube-scheduler`](/docs/reference/command-line-tools-reference/kube-scheduler/) +* [`kubelet`](/docs/reference/command-line-tools-reference/kubelet/) +* [`kube-proxy`](/docs/reference/command-line-tools-reference/kube-proxy/) + +Command arguments and configuration files may not always be changeable in a hosted Kubernetes service or a +distribution with managed installation. When they are changeable, they are usually only changeable +by the cluster operator. Also, they are subject to change in future Kubernetes versions, and +setting them may require restarting processes. For those reasons, they should be used only when +there are no other options. + +Built-in *policy APIs*, such as [ResourceQuota](/docs/concepts/policy/resource-quotas/), +[NetworkPolicy](/docs/concepts/services-networking/network-policies/) and Role-based Access Control +([RBAC](/docs/reference/access-authn-authz/rbac/)), are built-in Kubernetes APIs that provide declaratively configured policy settings. +APIs are typically usable even with hosted Kubernetes services and with managed Kubernetes installations. +The built-in policy APIs follow the same conventions as other Kubernetes resources such as Pods. +When you use a policy APIs that is [stable](/docs/reference/using-api/#api-versioning), you benefit from a +[defined support policy](/docs/reference/using-api/deprecation-policy/) like other Kubernetes APIs. +For these reasons, policy APIs are recommended over *configuration files* and *command arguments* where suitable. + +## Extensions + +Extensions are software components that extend and deeply integrate with Kubernetes. +They adapt it to support new types and new kinds of hardware. + +Many cluster administrators use a hosted or distribution instance of Kubernetes. +These clusters come with extensions pre-installed. As a result, most Kubernetes +users will not need to install extensions and even fewer users will need to author new ones. + +### Extension patterns + +Kubernetes is designed to be automated by writing client programs. Any +program that reads and/or writes to the Kubernetes API can provide useful +automation. *Automation* can run on the cluster or off it. By following +the guidance in this doc you can write highly available and robust automation. +Automation generally works with any Kubernetes cluster, including hosted +clusters and managed installations. + +There is a specific pattern for writing client programs that work well with +Kubernetes called the {{< glossary_tooltip term_id="controller" text="controller" >}} +pattern. Controllers typically read an object's `.spec`, possibly do things, and then +update the object's `.status`. + +A controller is a client of the Kubernetes API. When Kubernetes is the client and calls +out to a remote service, Kubernetes calls this a *webhook*. The remote service is called +a *webhook backend*. As with custom controllers, webhooks do add a point of failure. + +{{< note >}} +Outside of Kubernetes, the term “webhook” typically refers to a mechanism for asynchronous +notifications, where the webhook call serves as a one-way notification to another system or +component. In the Kubernetes ecosystem, even synchronous HTTP callouts are often +described as “webhooks”. +{{< /note >}} + +In the webhook model, Kubernetes makes a network request to a remote service. +With the alternative *binary Plugin* model, Kubernetes executes a binary (program). +Binary plugins are used by the kubelet (for example, [CSI storage plugins](https://kubernetes-csi.github.io/docs/) +and [CNI network plugins](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/)), +and by kubectl (see [Extend kubectl with plugins](/docs/tasks/extend-kubectl/kubectl-plugins/)). + +### Extension points + +This diagram shows the extension points in a Kubernetes cluster and the +clients that access it. + + + +{{< figure src="/docs/concepts/extend-kubernetes/extension-points.png" + alt="Symbolic representation of seven numbered extension points for Kubernetes" + class="diagram-large" caption="Kubernetes extension points" >}} + +#### Key to the figure + +1. Users often interact with the Kubernetes API using `kubectl`. [Plugins](#client-extensions) + customise the behaviour of clients. There are generic extensions that can apply to different clients, + as well as specific ways to extend `kubectl`. + +1. The API server handles all requests. Several types of extension points in the API server allow + authenticating requests, or blocking them based on their content, editing content, and handling + deletion. These are described in the [API Access Extensions](#api-access-extensions) section. + +1. The API server serves various kinds of *resources*. *Built-in resource kinds*, such as + `pods`, are defined by the Kubernetes project and can't be changed. + Read [API extensions](#api-extensions) to learn about extending the Kubernetes API. + +1. The Kubernetes scheduler [decides](/docs/concepts/scheduling-eviction/assign-pod-node/) + which nodes to place pods on. There are several ways to extend scheduling, which are + described in the [Scheduling extensions](#scheduling-extensions) section. + +1. Much of the behavior of Kubernetes is implemented by programs called + {{< glossary_tooltip term_id="controller" text="controllers" >}}, that are + clients of the API server. Controllers are often used in conjunction with custom resources. + Read [combining new APIs with automation](#combining-new-apis-with-automation) and + [Changing built-in resources](#changing-built-in-resources) to learn more. + +1. The kubelet runs on servers (nodes), and helps pods appear like virtual servers with their own IPs on + the cluster network. [Network Plugins](#network-plugins) allow for different implementations of + pod networking. + +1. You can use [Device Plugins](#device-plugins) to integrate custom hardware or other special + node-local facilities, and make these available to Pods running in your cluster. The kubelet + includes support for working with device plugins. + + The kubelet also mounts and unmounts + {{< glossary_tooltip text="volume" term_id="volume" >}} for pods and their containers. + You can use [Storage Plugins](#storage-plugins) to add support for new kinds + of storage and other volume types. + + +#### Extension point choice flowchart {#extension-flowchart} + +If you are unsure where to start, this flowchart can help. Note that some solutions may involve +several types of extensions. + + + +{{< figure src="/docs/concepts/extend-kubernetes/flowchart.svg" + alt="Flowchart with questions about use cases and guidance for implementers. Green circles indicate yes; red circles indicate no." + class="diagram-large" caption="Flowchart guide to select an extension approach" >}} + +--- + +## Client extensions + +Plugins for kubectl are separate binaries that add or replace the behavior of specific subcommands. +The `kubectl` tool can also integrate with [credential plugins](/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins) +These extensions only affect a individual user's local environment, and so cannot enforce site-wide policies. + +If you want to extend the `kubectl` tool, read [Extend kubectl with plugins](/docs/tasks/extend-kubectl/kubectl-plugins/). + +## API extensions + +### Custom resource definitions + +Consider adding a _Custom Resource_ to Kubernetes if you want to define new controllers, application +configuration objects or other declarative APIs, and to manage them using Kubernetes tools, such +as `kubectl`. + +For more about Custom Resources, see the +[Custom Resources](/docs/concepts/extend-kubernetes/api-extension/custom-resources/) concept guide. + +### API aggregation layer + +You can use Kubernetes' [API Aggregation Layer](/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/) +to integrate the Kubernetes API with additional services such as for [metrics](/docs/tasks/debug/debug-cluster/resource-metrics-pipeline/). + +### Combining new APIs with automation + +A combination of a custom resource API and a control loop is called the +{{< glossary_tooltip term_id="controller" text="controllers" >}} pattern. If your controller takes +the place of a human operator deploying infrastructure based on a desired state, then the controller +may also be following the {{< glossary_tooltip text="operator pattern" term_id="operator-pattern" >}}. +The Operator pattern is used to manage specific applications; usually, these are applications that +maintain state and require care in how they are managed. + +You can also make your own custom APIs and control loops that manage other resources, such as storage, +or to define policies (such as an access control restriction). + +### Changing built-in resources + +When you extend the Kubernetes API by adding custom resources, the added resources always fall +into a new API Groups. You cannot replace or change existing API groups. +Adding an API does not directly let you affect the behavior of existing APIs (such as Pods), whereas +_API Access Extensions_ do. + +## API access extensions + +When a request reaches the Kubernetes API Server, it is first _authenticated_, then _authorized_, +and is then subject to various types of _admission control_ (some requests are in fact not +authenticated, and get special treatment). See +[Controlling Access to the Kubernetes API](/docs/concepts/security/controlling-access/) +for more on this flow. + +Each of the steps in the Kubernetes authentication / authorization flow offers extension points. + +### Authentication + +[Authentication](/docs/reference/access-authn-authz/authentication/) maps headers or certificates +in all requests to a username for the client making the request. + +Kubernetes has several built-in authentication methods that it supports. It can also sit behind an +authenticating proxy, and it can send a token from an `Authorization:` header to a remote service for +verification (an [authentication webhook](/docs/reference/access-authn-authz/authentication/#webhook-token-authentication)) +if those don't meet your needs. + +### Authorization + +[Authorization](/docs/reference/access-authn-authz/authorization/) determines whether specific +users can read, write, and do other operations on API resources. It works at the level of whole +resources -- it doesn't discriminate based on arbitrary object fields. + +If the built-in authorization options don't meet your needs, an +[authorization webhook](/docs/reference/access-authn-authz/webhook/) +allows calling out to custom code that makes an authorization decision. + +### Dynamic admission control + +After a request is authorized, if it is a write operation, it also goes through +[Admission Control](/docs/reference/access-authn-authz/admission-controllers/) steps. +In addition to the built-in steps, there are several extensions: + +* The [Image Policy webhook](/docs/reference/access-authn-authz/admission-controllers/#imagepolicywebhook) + restricts what images can be run in containers. +* To make arbitrary admission control decisions, a general + [Admission webhook](/docs/reference/access-authn-authz/extensible-admission-controllers/#admission-webhooks) + can be used. Admission webhooks can reject creations or updates. + Some admission webhooks modify the incoming request data before it is handled further by Kubernetes. + +## Infrastructure extensions + +### Device plugins + +_Device plugins_ allow a node to discover new Node resources (in addition to the +builtin ones like cpu and memory) via a +[Device Plugin](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/). + +### Storage plugins + +{{< glossary_tooltip text="Container Storage Interface" term_id="csi" >}} (CSI) plugins provide +a way to extend Kubernetes with supports for new kinds of volumes. The volumes can be backed by +durable external storage, or provide ephemeral storage, or they might offer a read-only interface +to information using a filesystem paradigm. + +Kubernetes also includes support for [FlexVolume](/docs/concepts/storage/volumes/#flexvolume) plugins, +which are deprecated since Kubernetes v1.23 (in favour of CSI). + +FlexVolume plugins allow users to mount volume types that aren't natively supported by Kubernetes. When +you run a Pod that relies on FlexVolume storage, the kubelet calls a binary plugin to mount the volume. +The archived [FlexVolume](https://git.k8s.io/design-proposals-archive/storage/flexvolume-deployment.md) +design proposal has more detail on this approach. + +The [Kubernetes Volume Plugin FAQ for Storage Vendors](https://github.com/kubernetes/community/blob/master/sig-storage/volume-plugin-faq.md#kubernetes-volume-plugin-faq-for-storage-vendors) +includes general information on storage plugins. + +### Network plugins + +Your Kubernetes cluster needs a _network plugin_ in order to have a working Pod network +and to support other aspects of the Kubernetes network model. + +[Network Plugins](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/) +allow Kubernetes to work with different networking topologies and technologies. + +### Kubelet image credential provider plugins + +{{< feature-state for_k8s_version="v1.26" state="stable" >}} +Kubelet image credential providers are plugins for the kubelet to dynamically retrieve image registry +credentials. The credentials are then used when pulling images from container image registries that +match the configuration. + +The plugins can communicate with external services or use local files to obtain credentials. This way, +the kubelet does not need to have static credentials for each registry, and can support various +authentication methods and protocols. + +For plugin configuration details, see +[Configure a kubelet image credential provider](/docs/tasks/administer-cluster/kubelet-credential-provider/). + +## Scheduling extensions + +The scheduler is a special type of controller that watches pods, and assigns +pods to nodes. The default scheduler can be replaced entirely, while +continuing to use other Kubernetes components, or +[multiple schedulers](/docs/tasks/extend-kubernetes/configure-multiple-schedulers/) +can run at the same time. + +This is a significant undertaking, and almost all Kubernetes users find they +do not need to modify the scheduler. + +You can control which [scheduling plugins](/docs/reference/scheduling/config/#scheduling-plugins) +are active, or associate sets of plugins with different named [scheduler profiles](/docs/reference/scheduling/config/#multiple-profiles). +You can also write your own plugin that integrates with one or more of the kube-scheduler's +[extension points](/docs/concepts/scheduling-eviction/scheduling-framework/#extension-points). + +Finally, the built in `kube-scheduler` component supports a +[webhook](https://git.k8s.io/design-proposals-archive/scheduling/scheduler_extender.md) +that permits a remote HTTP backend (scheduler extension) to filter and / or prioritize +the nodes that the kube-scheduler chooses for a pod. + +{{< note >}} +You can only affect node filtering +and node prioritization with a scheduler extender webhook; other extension points are +not available through the webhook integration. +{{< /note >}} + +## {{% heading "whatsnext" %}} + +* Learn more about infrastructure extensions + * [Device Plugins](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) + * [Network Plugins](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/) + * CSI [storage plugins](https://kubernetes-csi.github.io/docs/) +* Learn about [kubectl plugins](/docs/tasks/extend-kubectl/kubectl-plugins/) +* Learn more about [Custom Resources](/docs/concepts/extend-kubernetes/api-extension/custom-resources/) +* Learn more about [Extension API Servers](/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/) +* Learn about [Dynamic admission control](/docs/reference/access-authn-authz/extensible-admission-controllers/) +* Learn about the [Operator pattern](/docs/concepts/extend-kubernetes/operator/) diff --git a/content/fa/docs/concepts/overview/_index.md b/content/fa/docs/concepts/overview/_index.md new file mode 100644 index 0000000000000..2715d225bd0c8 --- /dev/null +++ b/content/fa/docs/concepts/overview/_index.md @@ -0,0 +1,138 @@ +--- +reviewers: +- xirehat +title: "نمای کلی" +description: > + کوبرنتیز یک پلتفرم متن‌باز، قابل حمل و قابل توسعه برای مدیریت حجم کار و سرویس‌های کانتینری است که پیکربندی اعلانی و اتوماسیون را تسهیل می‌کند. این پلتفرم دارای یک بن‌سازه بزرگ و به سرعت در حال رشد است. خدمات، پشتیبانی و ابزارهای کوبرنتیز به طور گسترده در دسترس هستند. +content_type: concept +weight: 20 +card: + name: concepts + weight: 10 + anchors: + - anchor: "#why-you-need-kubernetes-and-what-can-it-do" + title: چرا کوبرنتیز؟ +no_list: true +--- + + +این صفحه مروری بر کوبرنتیز است. + + + + +نام «کوبرنتیس» از واژه یونانی به‌معنای «سکان‌دار» یا «خلبان» گرفته شده است. مخفف «K8s» حاصل شمارش هشت حرف بین «K» و «s» است. گوگل پروژه کوبرنتیس را در سال ۲۰۱۴ به‌صورت متن‌باز منتشر کرد. کوبرنتیس بیش از [۱۵ سال تجربه گوگل](/blog/2015/04/borg-predecessor-to-kubernetes/) در اجرای بارهای کاری تولیدی در مقیاس بزرگ را با ایده‌ها و بهترین رویه‌های جامعه کاربری تلفیق می‌کند. + +## چرا به کوبرنتیس نیاز دارید و چه کاری می‌تواند انجام دهد {#why-you-need-kubernetes-and-what-can-it-do} + +کانتینرها راه مناسبی برای بسته‌بندی و اجرای برنامه‌های شما هستند. در یک محیط تولیدی باید کانتینرهایی را که برنامه‌ها را اجرا می‌کنند مدیریت کنید و اطمینان حاصل کنید که هیچ زمان ازکارافتادگی وجود نداشته باشد. برای مثال، اگر یک کانتینر از کار بیفتد باید کانتینر دیگری به‌جای آن راه‌اندازی شود. آیا راحت‌تر نبود اگر سامانه‌ای این رفتار را برای شما مدیریت می‌کرد؟ + +اینجاست که کوبرنتیس به کمک می‌آید! کوبرنتیس چارچوبی در اختیار شما قرار می‌دهد تا سامانه‌های توزیع‌شده را به‌صورت پایدار اجرا کنید. این سامانه مسئول مقیاس‌پذیری و جبران خرابی برای برنامه شماست، الگوهای استقرار فراهم می‌آورد و امکانات دیگری نیز در اختیار می‌گذارد. به‌عنوان مثال: کوبرنتیس می‌تواند به‌سادگی یک استقرار کَنَری را برای سامانه شما مدیریت کند. + +کوبرنتیس امکانات زیر را در اختیار شما می‌گذارد: + +* **کشف سرویس و توزیع بار** + کوبرنتیس می‌تواند یک کانتینر را با استفاده از نام DNS یا آدرس IP اختصاصی در معرض دسترس قرار دهد. اگر ترافیک ورودی به یک کانتینر بالا باشد، کوبرنتیس قادر است ترافیک شبکه را متعادل و توزیع کند تا استقرار پایدار بماند. + +* **مدیریت ذخیره‌سازی (ارکستراسیون)** + کوبرنتیس به شما اجازه می‌دهد به‌طور خودکار یک سیستم ذخیره‌سازی دلخواه ـ از دیسک‌های محلی گرفته تا ارائه‌دهندگان ابر عمومی ـ را متصل (mount) کنید. + +* **به‌روزرسانی و بازگردانی خودکار** + با استفاده از کوبرنتیس می‌توانید وضعیت مطلوب کانتینرهای مستقرشده خود را توصیف کرده و کوبرنتیس با نرخی کنترل‌شده، وضعیت واقعی را به وضعیت مطلوب تغییر دهد. برای نمونه، می‌توانید از کوبرنتیس بخواهید کانتینرهای جدید بسازد، کانتینرهای قدیمی را حذف کند و همه منابع آن‌ها را به کانتینر جدید اختصاص دهد. + +* **بسته‌بندی خودکار وظایف (Bin Packing)** + شما یک خوشه از نودها در اختیار کوبرنتیس قرار می‌دهید تا وظایف کانتینری‌شده را روی آن‌ها اجرا کند. سپس به کوبرنتیس می‌گویید هر کانتینر چه میزان CPU و حافظه (RAM) نیاز دارد؛ کوبرنتیس کانتینرها را طوری روی نودها جا می‌دهد که بهترین استفاده از منابع شما حاصل شود. + +* **خوددرمانی (Self-healing)** + کوبرنتیس کانتینرهایی را که از کار می‌افتند دوباره راه‌اندازی می‌کند، کانتینرها را جایگزین می‌کند، کانتینرهایی را که به آزمون سلامت کاربر پاسخ نمی‌دهند می‌کشد و تا زمانی که کانتینر آماده سرویس‌دهی نباشد، آن را به مشتریان معرفی نمی‌کند. + +* **مدیریت محرمانه‌ها و پیکربندی** + کوبرنتیس امکان ذخیره و مدیریت اطلاعات حساس مانند گذرواژه‌ها، توکن‌های OAuth و کلیدهای SSH را فراهم می‌کند. می‌توانید محرمانه‌ها و پیکربندی برنامه را بدون بازسازی تصاویر کانتینر و بدون افشای اسرار در پیکربندی پشته خود، استقرار داده یا به‌روزرسانی کنید. + +* **اجرای دسته‌ای (Batch)** + افزون بر سرویس‌ها، کوبرنتیس می‌تواند وظایف دسته‌ای و CI شما را نیز مدیریت کند و در صورت تمایل، کانتینرهای ازکارافتاده را جایگزین کند. + +* **مقیاس‌گذاری افقی** + برنامه خود را با یک فرمان ساده، از طریق یک رابط کاربری، یا به‌طور خودکار بر اساس مصرف CPU به بالا یا پایین مقیاس کنید. + +* **پشته دوگانه IPv4/IPv6** + تخصیص آدرس‌های IPv4 و IPv6 به پادها و سرویس‌ها. + +* **طراحی‌شده برای توسعه‌پذیری** + بدون تغییر کد منبع بالادست، ویژگی‌های جدید به خوشه کوبرنتیس خود اضافه کنید. + +## آنچه کوبرنتیز نیست + +کوبرنتیز یک سیستم PaaS (پلتفرم به عنوان سرویس) سنتی و فراگیر نیست. + +از آنجایی که کوبرنتیز در سطح کانتینر و نه در سطح سخت‌افزار عمل می‌کند، برخی از ویژگی‌های عمومی و کاربردی رایج در ارائه‌های PaaS، مانند استقرار، مقیاس‌بندی، متعادل‌سازی بار را ارائه می‌دهد و به کاربران اجازه می‌دهد تا راه‌حل‌های ثبت وقایع، نظارت و هشدار خود را ادغام کنند. با این حال، کوبرنتیز یکپارچه نیست و این راه‌حل‌های پیش‌فرض اختیاری و قابل اتصال هستند. کوبرنتیز بلوک‌های سازنده برای ساخت پلتفرم‌های توسعه‌دهندگان را فراهم می‌کند، اما در صورت لزوم، حق انتخاب و انعطاف‌پذیری کاربر را حفظ می‌کند. + +کوبرنتیز: + +* انواع برنامه‌های پشتیبانی‌شده را محدود نمی‌کند. Kubernetes قصد دارد از انواع بسیار متنوعی از بارهای کاری، از جمله بارهای کاری بدون وضعیت، با وضعیت و پردازش داده، پشتیبانی کند. اگر یک برنامه بتواند در یک کانتینر اجرا شود، باید روی Kubernetes به خوبی اجرا شود. + +* کد منبع را مستقر نمی‌کند و برنامه شما را نمی‌سازد. گردش‌های کاری ادغام مداوم، تحویل و استقرار (CI/CD) توسط فرهنگ‌ها و ترجیحات سازمانی و همچنین الزامات فنی تعیین می‌شوند. + +* خدمات سطح برنامه، مانند میان‌افزار (به عنوان مثال، گذرگاه‌های پیام)، چارچوب‌های پردازش داده (به عنوان مثال، Spark)، پایگاه‌های داده (به عنوان مثال، MySQL)، حافظه‌های پنهان و همچنین سیستم‌های ذخیره‌سازی خوشه‌ای (به عنوان مثال، Ceph) را به عنوان سرویس‌های داخلی ارائه نمی‌دهد. چنین اجزایی می‌توانند روی Kubernetes اجرا شوند و/یا می‌توانند توسط برنامه‌هایی که روی Kubernetes اجرا می‌شوند از طریق مکانیسم‌های قابل حمل، مانند [Open Service Broker](https://openservicebrokerapi.org/) قابل دسترسی باشند. + +* راه‌حل‌های ثبت وقایع، نظارت یا هشدار را دیکته نمی‌کند. این سیستم، برخی یکپارچه‌سازی‌ها را +به عنوان اثبات مفهوم، و مکانیسم‌هایی را برای جمع‌آوری و صدور معیارها ارائه می‌دهد. + +* زبان/سیستم پیکربندی (به عنوان مثال، Jsonnet) را ارائه یا الزامی نمی‌کند. +یک API اعلانی ارائه می‌دهد که ممکن است توسط اشکال دلخواه مشخصات اعلانی هدف قرار گیرد. + +* هیچ سیستم پیکربندی، نگهداری، مدیریت یا خودترمیمی جامعی را ارائه یا اتخاذ نمی‌کند. + +* علاوه بر این، Kubernetes یک سیستم ارکستراسیون صرف نیست. در واقع، نیاز به ارکستراسیون را از بین می‌برد. تعریف فنی ارکستراسیون، اجرای یک گردش کار تعریف شده است: +ابتدا A، سپس B و سپس C را انجام دهید. در مقابل، Kubernetes شامل مجموعه‌ای از فرآیندهای کنترل مستقل و قابل ترکیب است که به طور مداوم وضعیت فعلی را به سمت وضعیت مطلوب ارائه شده سوق می‌دهند. +مهم نیست که چگونه از A به C می‌رسید. کنترل متمرکز نیز مورد نیاز نیست. این +منجر به سیستمی می‌شود که استفاده از آن آسان‌تر و قدرتمندتر، مقاوم‌تر، انعطاف‌پذیرتر و قابل توسعه‌تر است. + +## پیشینه تاریخی Kubernetes {#going-back-in-time} + +بیایید با بازگشت به گذشته، نگاهی به این بیندازیم که چرا Kubernetes بسیار مفید است. + +![تکامل استقرار](/images/docs/Container_Evolution.svg) + +**دوران استقرار سنتی:** + +در اوایل، سازمان‌ها برنامه‌ها را روی سرورهای فیزیکی اجرا می‌کردند. هیچ راهی برای تعریف مرزهای منابع برای برنامه‌ها در یک سرور فیزیکی وجود نداشت و این باعث ایجاد مشکلاتی در تخصیص منابع می‌شد. به عنوان مثال، اگر چندین برنامه روی یک سرور فیزیکی اجرا شوند، ممکن است مواردی وجود داشته باشد که یک برنامه بیشتر منابع را اشغال کند و در نتیجه، برنامه‌های دیگر عملکرد ضعیفی داشته باشند. یک راه حل برای این مشکل، اجرای هر برنامه روی یک سرور فیزیکی متفاوت است. اما این روش مقیاس‌پذیر نبود زیرا منابع کمتر از حد مورد استفاده قرار می‌گرفتند و نگهداری بسیاری از سرورهای فیزیکی برای سازمان‌ها پرهزینه بود. + +**دورۀ استقرار مجازی‌شده:** + +به‌عنوان یک راه‌حل، مجازی‌سازی معرفی شد. این فناوری امکان می‌دهد چندین ماشین مجازی (VM) را روی CPU یک سرور فیزیکی واحد اجرا کنید. مجازی‌سازی باعث می‌شود برنامه‌ها در ماشین‌های مجازی از یکدیگر جدا باشند و سطحی از امنیت ایجاد شود؛ زیرا اطلاعات یک برنامه به‌صورت آزاد توسط برنامۀ دیگر قابل دسترسی نیست. + +مجازی‌سازی استفاده بهتر از منابعِ یک سرور فیزیکی را ممکن می‌سازد و مقیاس‌پذیری بهتری فراهم می‌آورد؛ چراکه افزودن یا به‌روزرسانی یک برنامه آسان است، هزینه‌های سخت‌افزاری کاهش می‌یابد و مزایای بسیار دیگری نیز به‌دنبال دارد. با مجازی‌سازی می‌توانید مجموعه‌ای از منابع فیزیکی را به‌صورت یک خوشه از ماشین‌های مجازی یک‌بارمصرف ارائه کنید. + +هر ماشین مجازی یک ماشین کامل است که تمامی مؤلفه‌ها، از جمله سیستم‌عامل خود را، بر روی سخت‌افزار مجازی‌شده اجرا می‌کند. + +**دورۀ استقرار کانتینری:** + +کانتینرها شبیه ماشین‌های مجازی هستند، اما ویژگی‌های جداسازی در آن‌ها منعطف‌تر است تا سیستم‌عامل (OS) میان برنامه‌ها به اشتراک گذاشته شود؛ ازاین‌رو کانتینرها سبک محسوب می‌شوند. مشابه یک ماشین مجازی، هر کانتینر سامانه فایل اختصاصی، سهمی از CPU، حافظه، فضای فرایند و موارد دیگر را در اختیار دارد. چون کانتینرها از زیرساخت پایه جدا شده‌اند، در میان رایانش ابری و توزیع‌های مختلف سیستم‌عامل قابل حمل‌اند. + +کانتینرها به‌دلیل مزایای اضافه‌ای همچون موارد زیر محبوب شده‌اند: + +* ایجاد و استقرار چابک برنامه: افزایش سهولت و کارایی ایجاد تصویر کانتینر در مقایسه با استفاده از تصویر ماشین مجازی. + +* توسعه، ادغام و استقرار مداوم: امکان ساخت و استقرار تصویر کانتینر قابل اعتماد و مکرر را با عقبگردهای سریع و کارآمد (به دلیل تغییرناپذیری تصویر) فراهم می‌کند. + +* جداسازی دغدغه‌های توسعه و عملیات: ایجاد تصاویر کانتینر برنامه در زمان ساخت/انتشار به جای زمان استقرار، و در نتیجه جداسازی برنامه‌ها از زیرساخت. + +* قابلیت مشاهده: نه تنها اطلاعات و معیارهای سطح سیستم عامل را نشان می‌دهد، بلکه سلامت برنامه و سایر سیگنال‌ها را نیز پوشش می‌دهد. + +* سازگاری محیطی در طول توسعه، آزمایش و تولید: همانطور که در ابر اجرا می‌شود، روی لپ‌تاپ نیز اجرا می‌شود. + +* قابلیت حمل توزیع ابر و سیستم عامل: روی اوبونتو، RHEL، CoreOS، در محل، روی ابرهای عمومی بزرگ و هر جای دیگر اجرا می‌شود. + +* مدیریت متمرکز بر برنامه: سطح انتزاع را از اجرای یک سیستم عامل روی سخت‌افزار مجازی به اجرای یک برنامه روی یک سیستم عامل با استفاده از منابع منطقی افزایش می‌دهد. * میکروسرویس‌های آزاد، توزیع‌شده، انعطاف‌پذیر و با اتصال آزاد: برنامه‌ها به قطعات کوچک‌تر و مستقل تقسیم می‌شوند و می‌توانند به صورت پویا مستقر و مدیریت شوند - نه یک پشته یکپارچه که روی یک ماشین بزرگ تک‌منظوره اجرا می‌شود. + +* ایزوله‌سازی منابع: عملکرد قابل پیش‌بینی برنامه. + +* استفاده از منابع: کارایی و تراکم بالا. + +## {{% heading "whatsnext" %}} + +* نگاهی بیندازید به [اجزای کوبرنتیز](/docs/concepts/overview/components/) +* نگاهی بیندازید به [رابط برنامه‌نویسی کوبرنتیز](/docs/concepts/overview/kubernetes-api/) +* نگاهی بیندازید به [معماری خوشه](/docs/concepts/architecture/) +* آماده‌اید تا [شروع کنید](/docs/setup/)؟ \ No newline at end of file diff --git a/content/fa/docs/concepts/overview/components.md b/content/fa/docs/concepts/overview/components.md new file mode 100644 index 0000000000000..eb5fbd0829bee --- /dev/null +++ b/content/fa/docs/concepts/overview/components.md @@ -0,0 +1,88 @@ +--- +reviewers: +- xirehat +title: اجزای کوبرنتیز +content_type: concept +description: > + مروری بر اجزای کلیدی که یک خوشه کوبرنتیز را تشکیل می‌دهند. +weight: 10 +card: + title: اجزای یک خوشه + name: concepts + weight: 20 +--- + + + +این صفحه نمایی سطح‌بالا از اجزای اساسی که یک خوشه کوبرنتیز را تشکیل می‌دهند ارائه می‌کند. + +{{< figure src="/images/docs/components-of-kubernetes.svg" alt="اجزای کوبرنتیز" caption="اجزای یک خوشه کوبرنتیز" class="diagram-large" clicktozoom="true" >}} + + + +## اجزای اصلی + +یک خوشه کوبرنتیز از یک کنترل‌پلن و یک یا چند نود کاری تشکیل شده است. +در ادامه، مرور کوتاهی بر اجزای اصلی داریم: + +### اجزای control plane + +وضعیت کلی خوشه را مدیریت می‌کنند: + +[kube-apiserver](/docs/concepts/architecture/#kube-apiserver) +: مولفه سروریِ اصلی که رابط HTTP کوبرنتیز را در دسترس قرار می‌دهد. + +[etcd](/docs/concepts/architecture/#etcd) +: یک مخزن کلید-مقدار سازگار و در دسترس‌بالا برای تمام داده‌های سرور API. + +[kube-scheduler](/docs/concepts/architecture/#kube-scheduler) +: پادهایی را که هنوز به نودی تخصیص نیافته‌اند جست‌وجو کرده و هر پاد را به نود مناسب می‌سپارد. + +[kube-controller-manager](/docs/concepts/architecture/#kube-controller-manager) +: {{< glossary_tooltip text="controllers" term_id="controller" >}} را برای پیاده‌سازی رفتار API کوبرنتیز اجرا می‌کند. + +[cloud-controller-manager](/docs/concepts/architecture/#cloud-controller-manager) (اختیاری) +: با ارائه‌دهنده(های) ابری زیرساخت ادغام می‌شود. + +### اجزای گره + +روی هر نود اجرا می‌شوند، پادهای در حال اجرا را نگه می‌دارند و محیط اجرایی کوبرنتیز را فراهم می‌کنند: + +[kubelet](/docs/concepts/architecture/#kubelet) +: اطمینان حاصل می‌کند که پادها (و کانتینرهای‌شان) در حال اجرا هستند. + +[kube-proxy](/docs/concepts/architecture/#kube-proxy) (اختیاری) +: قواعد شبکه را روی نودها نگه می‌دارد تا {{< glossary_tooltip text="Services" term_id="service" >}} را پیاده‌سازی کند. + +[Container runtime](/docs/concepts/architecture/#container-runtime) +: نرم‌افزاری که مسئول اجرای کانتینرهاست. برای اطلاعات بیشتر + [زمان‌های اجرای کانتینر](/docs/setup/production-environment/container-runtimes/) را مطالعه کنید. + +{{% thirdparty-content single="true" %}} + +خوشه شما ممکن است به نرم‌افزارهای اضافی روی هر نود نیاز داشته باشد؛ به‌عنوان مثال، ممکن است روی یک نود لینوکسی +[systemd](https://systemd.io/) را برای نظارت بر اجزای محلی اجرا کنید. + +## افزونه‌ها + +افزونه‌ها قابلیت‌های کوبرنتیز را گسترش می‌دهند. چند نمونه مهم عبارت‌اند از: + +[DNS](/docs/concepts/architecture/#dns) +: برای حل نام DNS در سراسر خوشه. + +[رابط وب](/docs/concepts/architecture/#web-ui-dashboard) (داشبورد) +: برای مدیریت خوشه از طریق رابط وب. + +[پایش منابع کانتینر](/docs/concepts/architecture/#container-resource-monitoring) +: برای جمع‌آوری و ذخیره داده‌های متریک کانتینرها. + +[لاگ‌گیری در سطح خوشه](/docs/concepts/architecture/#cluster-level-logging) +: برای ذخیره لاگ‌های کانتینرها در یک مخزن لاگ مرکزی. + +## انعطاف در معماری + +کوبرنتیز در چگونگی استقرار و مدیریت این اجزا انعطاف‌پذیر است. +این معماری می‌تواند با نیازهای گوناگون — از محیط‌های توسعه کوچک تا استقرارهای تولیدی در مقیاس بزرگ — تطبیق یابد. + +برای اطلاعات جزئی‌تر درباره هر جزء و روش‌های مختلف پیکربندی معماری خوشه، +به صفحه [معماری خوشه](/docs/concepts/architecture/) مراجعه کنید. diff --git a/content/fa/docs/concepts/overview/kubernetes-api.md b/content/fa/docs/concepts/overview/kubernetes-api.md new file mode 100644 index 0000000000000..bd0d399bdf486 --- /dev/null +++ b/content/fa/docs/concepts/overview/kubernetes-api.md @@ -0,0 +1,321 @@ +--- +reviewers: +- xirehat +title: رابط برنامه‌نویسی کاربردی کوبرنتیز +content_type: concept +weight: 40 +description: > + رابط برنامه‌نویسی کاربردی کوبرنتیز (Kubernetes API) به شما امکان می‌دهد وضعیت اشیاء را در کوبرنتیز پرس‌وجو و دستکاری کنید. هسته صفحه کنترل کوبرنتیز، سرور API و HTTP API ارائه شده توسط آن است. کاربران، بخش‌های مختلف خوشه شما و اجزای خارجی، همگی از طریق سرور API با یکدیگر ارتباط برقرار می‌کنند. +card: + name: concepts + weight: 30 +--- + + + +هسته {{< glossary_tooltip text="control plane" term_id="control-plane" >}} کوبرنتیز، {{< glossary_tooltip text="API server" term_id="kube-apiserver" >}} است. سرور API یک رابط HTTP را در دسترس قرار می‌دهد که امکان می‌دهد کاربران نهایی، بخش‌های مختلف خوشه شما و اجزای خارجی با یکدیگر ارتباط برقرار کنند. + +رابط API کوبرنتیز به شما اجازه می‌دهد وضعیت اشیای API در کوبرنتیز (برای نمونه: ‌Podها، ‌Namespaceها، ‌ConfigMapها و Eventها) را پرس‌وجو کرده و دست‌کاری نمایید. + +بیشتر عملیات را می‌توان از طریق رابط خط فرمان [kubectl](/docs/reference/kubectl/) یا ابزارهای خط فرمان دیگری مانند [kubeadm](/docs/reference/setup-tools/kubeadm/) که خود از API استفاده می‌کنند انجام داد. با این حال، می‌توانید با فراخوان‌های REST نیز به API دسترسی مستقیم داشته باشید. کوبرنتیز برای کسانی که قصد دارند با API کوبرنتیز برنامه بنویسند، مجموعه‌ای از [کتابخانه‌های کاربری](/docs/reference/using-api/client-libraries/) فراهم ساخته است. + +هر خوشه کوبرنتیز مشخصات APIهایی را که ارائه می‌کند منتشر می‌کند. دو سازوکار برای انتشار این مشخصات وجود دارد که هر دو در فراهم‌کردن تعامل‌پذیری خودکار سودمندند. به‌عنوان نمونه، ابزار `kubectl` این مشخصات را دریافت کرده و برای تکمیل خودکار خط فرمان و ویژگی‌های دیگر در کش نگه می‌دارد. دو سازوکار پشتیبانی‌شده عبارت‌اند از: + +- [Discovery API](#discovery-api) + : اطلاعاتی درباره ‌APIهای کوبرنتیز شامل نام APIها، منابع، نسخه‌ها و عملیات پشتیبانی‌شده ارائه می‌دهد. این اصطلاح ویژه کوبرنتیز است زیرا API مجزایی از OpenAPI کوبرنتیز به‌شمار می‌رود. هدف آن ارائه خلاصه کوتاهی از منابع موجود است و جزئیات طرح‌واره هر منبع را شامل نمی‌شود. برای طرح‌واره منابع، به سند OpenAPI مراجعه کنید. + +- [سند OpenAPI کوبرنتیز](#openapi-interface-definition) + : طرح‌واره‌های کامل [OpenAPI v2.0 و v3.0](https://www.openapis.org/) را برای همه پایانه‌های ‌API کوبرنتیز فراهم می‌کند. OpenAPI v3 روش ترجیحی برای دسترسی است زیرا نمایی جامع و دقیق از API ارائه می‌دهد. این سند همه مسیرهای API و منابع مصرف‌شده یا تولیدشده در هر عملیات، و نیز اجزای توسعه‌پذیری پشتیبانی‌شده توسط خوشه را در بر می‌گیرد. این داده یک مشخصات کامل است و به‌مراتب حجیم‌تر از داده Discovery API می‌باشد. + +## API اکتشاف (Discovery API) + +کوبرنتیز فهرستی از تمام نسخه‌ها و منابع هر گروه را که پشتیبانی می‌شوند از طریق Discovery API منتشر می‌کند. این فهرست برای هر منبع شامل موارد زیر است: + +- نام +- گستره خوشه‌ای یا namespaced +- نشانی پایانه (Endpoint URL) و افعال پشتیبانی‌شده +- نام‌های جایگزین +- گروه، نسخه، kind + +این API در دو شکل تجمیعی و غیرتجمیعی در دسترس است. اکتشاف تجمیعی دو پایانه ارائه می‌دهد، در حالی‌ که اکتشاف غیرتجمیعی برای هر نسخه گروه یک پایانه جداگانه فراهم می‌کند. + +### اکتشاف تجمیعی + +{{< feature-state feature_gate_name="AggregatedDiscoveryEndpoint" >}} + +کوبرنتیز به‌طور پایدار از _اکتشاف تجمیعی_ پشتیبانی می‌کند و همه منابعی را که یک خوشه پشتیبانی می‌کند از طریق دو پایانه `/api` و `/apis` منتشر می‌نماید. درخواست این پایانه‌ها تعداد درخواست‌های لازم برای دریافت داده اکتشاف از خوشه را به‌طور چشمگیری کاهش می‌دهد. برای دسترسی به داده می‌توانید پایانه مربوطه را با هدر `Accept` زیر فراخوانی کنید: +`Accept: application/json;v=v2;g=apidiscovery.k8s.io;as=APIGroupDiscoveryList` + +اگر نوع منبع را با هدر `Accept` مشخص نکنید، پاسخ پیش‌فرض پایانه‌های `/api` و `/apis` یک سند اکتشاف غیرتجمیعی خواهد بود. + +[سند اکتشاف](https://github.com/kubernetes/kubernetes/blob/release-{{< skew currentVersion >}}/api/discovery/aggregated_v2.json) +برای منابع داخلی در مخزن GitHub کوبرنتیز موجود است. زمانی‌ که به یک خوشه کوبرنتیز دسترسی ندارید، این سند می‌تواند به‌عنوان مرجع مجموعه پایه منابع قابلِ دسترس به کار رود. + +این پایانه همچنین از ETag و کدگذاری protobuf پشتیبانی می‌کند. + +### اکتشاف غیرتجمیعی + +بدون اکتشاف تجمیعی، اکتشاف به‌صورت لایه‌ای منتشر می‌شود؛ به این صورت که پایانه‌های ریشه اطلاعات اکتشاف برای اسناد پایین‌دستی را منتشر می‌کنند. + +فهرست همه نسخه‌های گروهی که یک خوشه پشتیبانی می‌کند در پایانه‌های `/api` و `/apis` منتشر می‌شود. مثال: + +``` +{ + "kind": "APIGroupList", + "apiVersion": "v1", + "groups": [ + { + "name": "apiregistration.k8s.io", + "versions": [ + { + "groupVersion": "apiregistration.k8s.io/v1", + "version": "v1" + } + ], + "preferredVersion": { + "groupVersion": "apiregistration.k8s.io/v1", + "version": "v1" + } + }, + { + "name": "apps", + "versions": [ + { + "groupVersion": "apps/v1", + "version": "v1" + } + ], + "preferredVersion": { + "groupVersion": "apps/v1", + "version": "v1" + } + }, + ... +} +``` + +برای دریافت سند اکتشاف برای هر نسخه گروه، باید درخواست‌های اضافی به نشانی +`/apis//` ارسال شود (برای مثال: +`/apis/rbac.authorization.k8s.io/v1alpha1`). این سند فهرست منابعی را که زیر آن نسخه گروه ارائه می‌شوند اعلام می‌کند. این پایانه‌ها توسط +`kubectl` برای واکشی فهرست منابع پشتیبانی‌شده توسط یک خوشه استفاده می‌شوند. + + + + + +## تعریف رابط OpenAPI + +برای جزئیات بیشتر درباره مشخصات OpenAPI به [مستندات OpenAPI](https://www.openapis.org/) مراجعه کنید. + +کوبرنتیز هر دو نسخه OpenAPI v2.0 و OpenAPI v3.0 را ارائه می‌دهد. OpenAPI v3 روش ترجیحی برای دسترسی به OpenAPI است، زیرا نمایی جامع و بدون اتلاف از منابع کوبرنتیز فراهم می‌کند. به‌دلیل محدودیت‌های نسخه ۲ OpenAPI، برخی فیلدها از سند منتشرشده حذف می‌شوند، از جمله ولی نه محدود به `default`، `nullable` و `oneOf`. + +### OpenAPI V2 + +سرور API کوبرنتیز یک مشخصات تجمیعی OpenAPI v2 را از طریق پایانه +`/openapi/v2` ارائه می‌دهد. می‌توانید قالب پاسخ را با استفاده از +هدرهای درخواست به شکل زیر مشخص کنید: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Valid request header values for OpenAPI v2 queries
HeaderPossible valuesNotes
Accept-Encodinggzipnot supplying this header is also acceptable
Acceptapplication/com.github.proto-openapi.spec.v2@v1.0+protobufmainly for intra-cluster use
application/jsondefault
*serves application/json
+ +{{< warning >}} +قوانین اعتبارسنجی که به‌عنوان بخشی از طرح‌واره‌های OpenAPI منتشر می‌شوند ممکن است کامل نباشند (و معمولاً هم نیستند). +اعتبارسنجی‌های اضافی در داخل سرور API انجام می‌شود. اگر به تأیید دقیق و کامل نیاز دارید، +دستور `kubectl apply --dry-run=server` تمام اعتبارسنجی‌های قابل اجرا را اجرا می‌کند (و همچنین بررسی‌های زمان پذیرش را فعال می‌نماید). +{{< /warning >}} + +### OpenAPI V3 + +{{< feature-state feature_gate_name="OpenAPIV3" >}} + +کوبرنتیز از انتشار توصیف APIهای خود به‌صورت OpenAPI v3 پشتیبانی می‌کند. + +یک پایانه اکتشاف به نشانی `/openapi/v3` برای مشاهده فهرست همه گروه/نسخه‌های موجود فراهم شده است. این پایانه تنها JSON بازمی‌گرداند. این گروه/نسخه‌ها در قالب زیر ارائه می‌شوند: + +```yaml +{ + "paths": { + ..., + "api/v1": { + "serverRelativeURL": "/openapi/v3/api/v1?hash=CC0E9BFD992D8C59AEC98A1E2336F899E8318D3CF4C68944C3DEC640AF5AB52D864AC50DAA8D145B3494F75FA3CFF939FCBDDA431DAD3CA79738B297795818CF" + }, + "apis/admissionregistration.k8s.io/v1": { + "serverRelativeURL": "/openapi/v3/apis/admissionregistration.k8s.io/v1?hash=E19CC93A116982CE5422FC42B590A8AFAD92CDE9AE4D59B5CAAD568F083AD07946E6CB5817531680BCE6E215C16973CD39003B0425F3477CFD854E89A9DB6597" + }, + .... + } +} +``` + + +نشانی‌های نسبی به توصیف‌های تغییرناپذیر OpenAPI اشاره می‌کنند تا +عملکرد کش سمت کاربر را بهبود دهند. هدرهای مناسب کش HTTP نیز برای این منظور +توسط سرور API تنظیم می‌شوند (`Expires` یک سال در آینده و `Cache-Control` +بر روی `immutable`). هنگامی که یک نشانی منسوخ استفاده شود، سرور API +کاربر را به جدیدترین نشانی هدایت (redirect) می‌کند. + +سرور API کوبرنتیز برای هر نسخه گروه کوبرنتیز، مشخصات OpenAPI v3 را +در پایانه `/openapi/v3/apis//?hash=` منتشر می‌کند. + +برای مشاهده هدرهای درخواستی پذیرفته‌شده، به جدول زیر مراجعه کنید. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Valid request header values for OpenAPI v3 queries
HeaderPossible valuesNotes
Accept-Encodinggzipnot supplying this header is also acceptable
Acceptapplication/com.github.proto-openapi.spec.v3@v1.0+protobufmainly for intra-cluster use
application/jsondefault
*serves application/json
+ +یک پیاده‌سازی Golang برای واکشی OpenAPI V3 در بسته +[`k8s.io/client-go/openapi3`](https://pkg.go.dev/k8s.io/client-go/openapi3) در دسترس است. + +کوبرنتیز {{< skew currentVersion >}} مشخصات +OpenAPI v2.0 و v3.0 را منتشر می‌کند؛ در حال حاضر برنامه‌ای برای پشتیبانی از نسخه 3.1 وجود ندارد. + +### سریال‌سازی Protobuf + +کوبرنتیز یک قالب سریال‌سازی جایگزین مبتنی بر Protobuf را پیاده‌سازی کرده است که +در درجه اول برای ارتباط درون‌خوشهی در نظر گرفته شده است. برای اطلاعات بیشتر +درباره این قالب، به طرح پیشنهادی +[سریال‌سازی Protobuf در کوبرنتیز](https://git.k8s.io/design-proposals-archive/api-machinery/protobuf.md) +و فایل‌های Interface Definition Language (IDL) برای هر طرح‌واره که در +بسته‌های Go تعریف‌کننده اشیای API قرار دارند مراجعه کنید. + +## پایداری داده (Persistence) + +کوبرنتیز وضعیت سریال‌شده اشیاء را با نوشتن آن‌ها در +{{< glossary_tooltip term_id="etcd" >}} ذخیره می‌کند. + +## گروه‌های API و نسخه‌بندی + +برای آسان‌تر کردن حذف فیلدها یا بازچینی نمایش منابع، +کوبرنتیز از چندین نسخه API پشتیبانی می‌کند که هر یک در مسیر API متفاوتی +مثل `/api/v1` یا `/apis/rbac.authorization.k8s.io/v1alpha1` قرار دارند. + +نسخه‌بندی در سطح API انجام می‌شود، نه در سطح منبع یا فیلد، تا +نمایی شفاف و سازگار از منابع و رفتار سیستم ارائه شده و +کنترل دسترسی به APIهایی که به پایان عمر یا آزمایشی هستند امکان‌پذیر شود. + +برای سهولت توسعه و گسترش API، کوبرنتیز +[گروه‌های API](/docs/reference/using-api/#api-groups) را پیاده‌سازی کرده که می‌توانند +[فعال یا غیرفعال](/docs/reference/using-api/#enabling-or-disabling) شوند. + +منابع API به‌واسطه گروه API، نوع منبع، نام فضا (برای منابع namespaced) و نام متمایز می‌شوند. +سرور API تبدیل بین نسخه‌های API را به‌صورت شفاف مدیریت می‌کند: +تمام نسخه‌های مختلف در واقع نمایش‌هایی از همان داده ذخیره‌شده هستند، و سرور API +ممکن است همان داده زیرساختی را از طریق چند نسخه API ارائه دهد. + +برای مثال، فرض کنید دو نسخه API، `v1` و `v1beta1`، برای یک منبع وجود دارد. +اگر در ابتدا شیئی را با نسخه `v1beta1` ایجاد کنید، تا زمانی که نسخه `v1beta1` +منقضی و حذف نشده است می‌توانید آن شیء را با هر یک از نسخه‌های `v1beta1` یا `v1` +بخوانید، به‌روزرسانی یا حذف کنید؛ پس از آن، دسترسی و تغییر شیء فقط از طریق نسخه `v1` ممکن است. + +### تغییرات API + +هر سامانه موفق باید با ظهور موارد استفاده جدید یا تغییر موارد موجود رشد کند و تغییر یابد؛ +بنابراین کوبرنتیز API خود را به گونه‌ای طراحی کرده تا پیوسته تغییر و گسترش یابد. +هدف پروژه کوبرنتیز این است که سازگاری با کلاینت‌های موجود را نشکند و این +سازگاری را برای مدتی حفظ کند تا پروژه‌های دیگر فرصت تطبیق داشته باشند. + +به‌طور کلی، افزودن منابع API یا فیلدهای جدید می‌تواند به دفعات و به‌سرعت انجام شود. +حذف منابع یا فیلدها نیازمند پیروی از +[سیاست منسوخ‌سازی API](/docs/reference/using-api/deprecation-policy/) است. + +کوبرنتیز تعهد قوی دارد که پس از رسیدن APIهای رسمی به مرحله دسترسی عمومی (GA) +— معمولاً در نسخه `v1` — سازگاری آن‌ها را حفظ کند. همچنین کوبرنتیز +سازگاری با داده‌هایی که از طریق نسخه‌های _بتا_ APIهای رسمی ذخیره شده‌اند را تضمین می‌کند +و اطمینان می‌دهد که داده‌ها هنگام پایدار شدن ویژگی‌ها قابل تبدیل و دسترس‌پذیر از طریق +نسخه‌های GA باشند. + +اگر نسخه بتای API را اتخاذ کنید، باید پس از فارغ‌التحصیل شدن API به نسخه بتا یا پایدار بعدی +مهاجرت نمایید. بهترین زمان برای این کار، دوره منسوخ‌سازی نسخه بتا است، +زیرا اشیاء به طور هم‌زمان از طریق هر دو نسخه API قابل دسترسی هستند. پس از پایان دوره +منسوخ‌سازی و توقف ارائه نسخه بتا، باید از نسخه جایگزین استفاده شود. + +{{< note >}} +هرچند کوبرنتیز تلاش می‌کند برای نسخه‌های _آلفا_ نیز سازگاری را حفظ کند، +ولی در برخی شرایط این امر ممکن نیست. اگر از هر نسخه آلفا استفاده می‌کنید، +در زمان به‌روزرسانی خوشه، یادداشت‌های انتشار کوبرنتیز را بررسی کنید، +زیرا ممکن است تغییرات ناسازگاری رخ داده باشد که نیازمند حذف تمامی +اشیای آلفا پیش از ارتقا باشد. +{{< /note >}} + +برای جزئیات بیشتر درباره تعاریف سطوح نسخه API، به +[مرجع نسخه‌های API](/docs/reference/using-api/#api-versioning) مراجعه کنید. + +## گسترش API + +API کوبرنتیز را می‌توان به یکی از دو روش زیر گسترش داد: + +1. [منابع سفارشی](/docs/concepts/extend-kubernetes/api-extension/custom-resources/) + به شما امکان می‌دهد به‌صورت اعلان‌محور تعریف کنید که سرور API چگونه + ‌API منبع انتخابی شما را فراهم کند. +2. همچنین می‌توانید با پیاده‌سازی + [لایه تجمیع](/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/) + API کوبرنتیز را گسترش دهید. + +## {{% heading "whatsnext" %}} + +- بیاموزید چگونه با افزودن + [CustomResourceDefinition](/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/) + API کوبرنتیز را گسترش دهید. +- مستند + [کنترل دسترسی به API کوبرنتیز](/docs/concepts/security/controlling-access/) + توضیح می‌دهد خوشه چگونه احراز هویت و مجوزدهی برای دسترسی به API را مدیریت می‌کند. +- درباره پایانه‌های API، انواع منابع و نمونه‌ها در + [مرجع API](/docs/reference/kubernetes-api/) بخوانید. +- درباره اینکه تغییر سازگار چیست و چگونه می‌توان API را تغییر داد، در + [تغییرات API](https://git.k8s.io/community/contributors/devel/sig-architecture/api_changes.md#readme) + مطالعه کنید. diff --git a/content/fa/docs/concepts/overview/working-with-objects/_index.md b/content/fa/docs/concepts/overview/working-with-objects/_index.md new file mode 100644 index 0000000000000..a1635aad48593 --- /dev/null +++ b/content/fa/docs/concepts/overview/working-with-objects/_index.md @@ -0,0 +1,160 @@ +--- +title: اشیاء در کوبرنتیز +content_type: concept +weight: 30 +description: > + اشیای کوبرنتیز موجودیت‌های پایداری در سیستم کوبرنتیز هستند. + کوبرنتیز از این موجودیت‌ها برای نمایش وضعیت خوشه شما استفاده می‌کند. + درباره مدل اشیای کوبرنتیز و چگونگی کار با این اشیا بیشتر بیاموزید. +simple_list: true +card: + name: concepts + weight: 40 +--- + + + +این صفحه توضیح می‌دهد که اشیای کوبرنتیز چگونه در API کوبرنتیز نمایش داده می‌شوند و چگونه می‌توانید آن‌ها را در قالب `.yaml` بیان کنید. + + + +## درک اشیای کوبرنتیز {#kubernetes-objects} + +*اشیای کوبرنتیز* موجودیت‌های پایداری در سیستم کوبرنتیز هستند. کوبرنتیز از این موجودیت‌ها برای نمایش وضعیت خوشه شما استفاده می‌کند. این اشیا به‌طور مشخص می‌توانند موارد زیر را توصیف کنند: + +* چه برنامه‌های کانتینری در حال اجرا هستند (و روی کدام نودها) +* منابع در دسترس برای آن برنامه‌ها +* سیاست‌های مرتبط با رفتار آن برنامه‌ها، مانند سیاست‌های راه‌اندازی مجدد، به‌روزرسانی‌ها و تحمل خطا + +یک شیٔ کوبرنتیز در واقع «ثبتِ نیت» است—پس از ایجاد یک شیٔ، سیستم کوبرنتیز به‌طور مداوم تلاش می‌کند تا از وجود آن شیٔ اطمینان حاصل کند. با ایجاد یک شیٔ، در واقع به سیستم کوبرنتیز می‌گویید که می‌خواهید بار کاری خوشه شما چه شکلی باشد؛ این همان *وضعیت مطلوب* خوشه است. + +برای کار با اشیای کوبرنتیز—چه برای ایجاد، چه اصلاح یا حذف آن‌ها—باید از +[API کوبرنتیز](/docs/concepts/overview/kubernetes-api/) استفاده کنید. به‌عنوان مثال، وقتی از +رابط خط فرمان `kubectl` استفاده می‌کنید، این CLI فراخوان‌های لازم به API کوبرنتیز را برای شما انجام می‌دهد. همچنین می‌توانید به‌طور مستقیم در برنامه‌های خود و با استفاده از یکی از +[کتابخانه‌های کاربری](/docs/reference/using-api/client-libraries/) +به API کوبرنتیز متصل شوید. + +### مشخصات و وضعیت شیء + +تقریباً هر شیء کوبرنتیز دو فیلد تودرتو دارد که پیکربندی شیء را کنترل می‌کنند: +*`spec`* (مشخصات) و *`status`* (وضعیت). +برای اشیایی که دارای `spec` هستند، هنگام ایجاد شیء باید این فیلد را تنظیم کنید و +توصیفی از ویژگی‌هایی که می‌خواهید منبع داشته باشد ارائه دهید؛ یعنی _وضعیت مطلوب_ آن. + +فیلد `status` _وضعیت فعلی_ شیء را توصیف می‌کند و توسط سیستم کوبرنتیز و اجزای آن +تأمین و به‌روزرسانی می‌شود. +{{< glossary_tooltip text="control plane" term_id="control-plane" >}} +کوبرنتیز به‌طور مداوم و فعال تلاش می‌کند وضعیت واقعی هر شیء را با وضعیت مطلوب +ارائه‌شده توسط شما منطبق نگه دارد. + +برای مثال: در کوبرنتیز، **Deployment** شیئی است که می‌تواند یک برنامه در حال اجرا روی خوشه شما را نشان دهد. +هنگامی‌ که Deployment را ایجاد می‌کنید، ممکن است در `spec` آن مشخص کنید که سه +نمونه (Replica) از برنامه باید اجرا شوند. سیستم کوبرنتیز این مشخصات را خوانده و سه +نمونه از برنامه موردنظر شما را اجرا می‌کند—و `status` را طوری به‌روزرسانی می‌کند که +با `spec` منطبق باشد. اگر یکی از این نمونه‌ها از کار بیفتد (تغییری در وضعیت)، سیستم +کوبرنتیز به اختلاف بین `spec` و `status` واکنش نشان می‌دهد و آن را اصلاح می‌کند—در این +جا با راه‌اندازی یک نمونه جایگزین. + +برای اطلاعات بیشتر درباره فیلدهای `spec`، `status` و متاداده‌ها، به +[قراردادهای API کوبرنتیز](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md) +مراجعه کنید. + +### توصیف یک شیء در کوبرنتیز + +هنگام ایجاد یک شیء در کوبرنتیز، باید `spec` آن را که وضعیت مطلوب را توصیف می‌کند به‌ همراه +برخی اطلاعات پایه (مانند نام) ارائه دهید. +وقتی از API کوبرنتیز برای ایجاد شیء استفاده می‌کنید (مستقیم یا از طریق `kubectl`)، +درخواست API باید این اطلاعات را به‌صورت JSON در بدنه درخواست داشته باشد. +اغلب، این اطلاعات را در فایلی به نام _مانیفست_ به `kubectl` می‌دهید. +به‌طور قراردادی، مانیفست‌ها با فرمت YAML نوشته می‌شوند (هرچند می‌توانید از JSON نیز +استفاده کنید). +ابزاری مانند `kubectl` هنگام ارسال درخواست HTTP به API، اطلاعات موجود در مانیفست را +به JSON یا یک قالب‌سازی پشتیبانی‌شده دیگر تبدیل می‌کند. + +در این‌جا یک نمونه مانیفست آورده شده که فیلدهای الزامی و `spec` یک Deployment +کوبرنتیز را نشان می‌دهد: + +{{% code_sample file="application/deployment.yaml" %}} + +یکی از روش‌های ایجاد یک Deployment با استفاده از فایلی شبیه مثال بالا، استفاده از +دستور [`kubectl apply`](/docs/reference/generated/kubectl/kubectl-commands#apply) در +رابط خط فرمان `kubectl` و ارسال فایل `.yaml` به‌عنوان آرگومان است. برای مثال: + +```shell +kubectl apply -f https://k8s.io/examples/application/deployment.yaml +``` + +خروجی مشابه این است: + +``` +deployment.apps/nginx-deployment created +``` + +### فیلدهای ضروری + +در مانیفست (فایل YAML یا JSON) مربوط به شیٔ کوبرنتیزی که می‌خواهید ایجاد کنید، لازم است مقادیر فیلدهای زیر را تعیین کنید: + +* `apiVersion` – نسخه API کوبرنتیز که برای ایجاد این شیٔ استفاده می‌کنید +* `kind` – نوع شیئی که می‌خواهید ایجاد کنید +* `metadata` – داده‌هایی که به شناسایی منحصربه‌فرد شیء کمک می‌کنند، شامل رشته `name`، شناسه یکتا (`UID`) و `namespace` اختیاری +* `spec` – وضعیتی که برای شیء انتظار دارید + +قالب دقیق فیلد `spec` برای هر شیء کوبرنتیز متفاوت است و شامل فیلدهای تو‌درتوی مخصوص آن شیء می‌شود. +[مرجع API کوبرنتیز](/docs/reference/kubernetes-api/) می‌تواند به شما کمک کند قالب `spec` برای تمام اشیایی را که می‌توانید با کوبرنتیز ایجاد کنید پیدا کنید. + +برای نمونه، به فیلد [`spec`](/docs/reference/kubernetes-api/workload-resources/pod-v1/#PodSpec) در مرجع API مربوط به Pod نگاه کنید. +برای هر Pod، فیلد `.spec` خود پاد و وضعیت مطلوب آن (مثل نام ایمیج کانتینر برای هر کانتینر در آن پاد) را مشخص می‌کند. نمونه دیگری از مشخصات شیء، فیلد [`spec`](/docs/reference/kubernetes-api/workload-resources/stateful-set-v1/#StatefulSetSpec) برای API مربوط به StatefulSet است؛ در StatefulSet، فیلد `.spec` خود StatefulSet و وضعیت مطلوب آن را تعیین می‌کند. +درون `.spec` یک StatefulSet، یک [قالب](/docs/concepts/workloads/pods/#pod-templates) برای اشیای Pod قرار دارد. این قالب پادهایی را توصیف می‌کند که کنترلر StatefulSet برای برآورده کردن مشخصات StatefulSet ایجاد خواهد کرد. +انواع مختلف شیء همچنین می‌توانند فیلدهای `.status` متفاوتی داشته باشند؛ صفحات مرجع API ساختار این فیلد `.status` و محتوای آن را برای هر نوع شیء توضیح می‌دهند. + +{{< note >}} +برای اطلاعات بیشتر درباره نگارش فایل‌های پیکربندی YAML به +[بهترین شیوه‌های پیکربندی](/docs/concepts/configuration/overview/) مراجعه کنید. +{{< /note >}} + +## اعتبارسنجی فیلد در سمت سرور + +از نسخه Kubernetes v1.25، سرور API قابلیت +[اعتبارسنجی فیلد](/docs/reference/using-api/api-concepts/#field-validation) +در سمت سرور را ارائه می‌دهد که فیلدهای ناشناخته یا تکراری در یک شیء را شناسایی می‌کند. +این قابلیت تمام کارکردهای `kubectl --validate` را در سمت سرور فراهم می‌کند. + +ابزار `kubectl` برای تعیین سطح اعتبارسنجی فیلد از فلگ `--validate` استفاده می‌کند. +این فلگ مقادیر `ignore`، `warn` و `strict` را می‌پذیرد؛ همچنین مقادیر `true` +(معادل `strict`) و `false` (معادل `ignore`) را قبول می‌کند. +تنظیم پیش‌فرض در `kubectl`، گزینه `--validate=true` است. + +`Strict` +: اعتبارسنجی سخت‌گیرانه فیلد؛ در صورت خطا درخواست با شکست مواجه می‌شود + +`Warn` +: اعتبارسنجی فیلد انجام می‌شود، اما خطاها به‌صورت هشدار گزارش می‌شوند و باعث خطا در درخواست نمی‌شوند + +`Ignore` +: هیچ اعتبارسنجی فیلدی در سمت سرور انجام نمی‌شود + +اگر `kubectl` نتواند به سروری متصل شود که از اعتبارسنجی فیلد پشتیبانی می‌کند، +به اعتبارسنجی سمت کاربر (client-side) برمی‌گردد. Kubernetes 1.27 و نسخه‌های پس از آن +همواره اعتبارسنجی فیلد را ارائه می‌دهند؛ نسخه‌های قدیمی‌تر ممکن است این قابلیت را +نداشته باشند. اگر خوشه شما قدیمی‌تر از v1.27 است، مستندات نسخه خود را بررسی کنید. + +## {{% heading "whatsnext" %}} + +اگر در Kubernetes تازه‌کار هستید، درباره موضوعات زیر بیشتر بخوانید: + +* [Pods](/docs/concepts/workloads/pods/) که پایه‌ای‌ترین اشیای کوبرنتیز هستند. +* اشیای [Deployment](/docs/concepts/workloads/controllers/deployment/). +* [کنترلرها](/docs/concepts/architecture/controller/) در کوبرنتیز. +* [kubectl](/docs/reference/kubectl/) و [دستورات kubectl](/docs/reference/generated/kubectl/kubectl-commands). + +[مدیریت اشیای کوبرنتیز](/docs/concepts/overview/working-with-objects/object-management/) +نشان می‌دهد چگونه با `kubectl` اشیا را مدیریت کنید. +اگر `kubectl` را در اختیار ندارید، ممکن است لازم باشد آن را +[نصب کنید](/docs/tasks/tools/#kubectl). + +برای آشنایی کلی با API کوبرنتیز، به این صفحه مراجعه کنید: + +* [مروری بر API کوبرنتیز](/docs/reference/using-api/) + +برای آشنایی عمیق‌تر با اشیا در کوبرنتیز، سایر صفحات همین بخش را مطالعه کنید: + diff --git a/content/fa/docs/concepts/overview/working-with-objects/annotations.md b/content/fa/docs/concepts/overview/working-with-objects/annotations.md new file mode 100644 index 0000000000000..a2710132158ad --- /dev/null +++ b/content/fa/docs/concepts/overview/working-with-objects/annotations.md @@ -0,0 +1,82 @@ +--- +title: حاشیه‌نویسی‌ها +content_type: concept +weight: 60 +--- + + +می‌توانید از حاشیه‌نویس‌های کوبرنتیز برای پیوست کردن فرا‌داده دلخواه و غیرشناسه‌ای به {{< glossary_tooltip text="اشیاء" term_id="object" >}} استفاده کنید. ابزارها و کتابخانه‌ها می‌توانند به‌عنوان کلاینت این فرا‌داده را بازیابی کنند. + + +## پیوست کردن فرا‌داده به اشیاء + +برای پیوست کردن فرا‌داده به اشیای کوبرنتیز می‌توانید از برچسب‌ها (labels) یا حاشیه‌نویس‌ها (annotations) استفاده کنید. +برچسب‌ها برای انتخاب اشیا و یافتن مجموعه‌هایی از اشیا که شرایط خاصی را دارند به‌کار می‌روند. +در مقابل، حاشیه‌نویس‌ها برای شناسایی و انتخاب اشیا استفاده نمی‌شوند. +فرا‌داده در یک حاشیه‌نویس می‌تواند کوچک یا بزرگ، ساخت‌یافته یا غیرساخت‌یافته باشد و حتی شامل نویسه‌هایی باشد که در برچسب‌ها مجاز نیستند. +همچنین می‌توانید در فرا‌داده یک شیء به‌طور هم‌زمان از برچسب‌ها و حاشیه‌نویس‌ها استفاده کنید. + +حاشیه‌نویس‌ها نیز مانند برچسب‌ها، نگاشت‌های کلید/مقدار هستند: + +```json +"metadata": { + "annotations": { + "key1" : "value1", + "key2" : "value2" + } +} +``` + +{{}} +کلیدها و مقدارهای این نگاشت باید رشته (string) باشند؛ به بیان دیگر، نمی‌توانید از انواع عددی، بولی، فهرست یا هر نوع دیگری برای کلید یا مقدار استفاده کنید. +{{}} + +در ادامه چند نمونه از اطلاعاتی که می‌توان در حاشیه‌نویس‌ها ذخیره کرد آورده شده است: + +* فیلدهایی که توسط لایه پیکربندی اعلانی مدیریت می‌شوند. افزودن این فیلدها به‌صورت حاشیه‌نویس، آن‌ها را از مقادیر پیش‌فرض تنظیم‌شده توسط کلاینت یا سرور و همچنین از فیلدهای تولیدشده خودکار یا فیلدهای تنظیم‌شده توسط سامانه‌های خوداندازه یا خودمقیاس جدا می‌کند. + +* اطلاعات ساخت (build)، انتشار (release) یا ایمیج مانند برچسب‌های زمانی (timestamp)، شناسه انتشار (release ID)، شاخه Git، شماره Pull Request، هش‌های ایمیج و نشانی رجیستری. + +* اشاره‌گرهایی به مخزن‌های لاگ، پایش (monitoring)، تحلیل (analytics) یا ممیزی (audit). + +* اطلاعات کتابخانه کلاینت یا ابزار که می‌تواند برای اشکال‌زدایی مفید باشد؛ برای مثال نام، نسخه و اطلاعات build. + +* اطلاعات منشأ کاربر یا ابزار/سیستم، مانند URLهای اشیای مرتبط در دیگر اجزای بن‌سازه. + +* فرا‌داده سبک ابزارهای rollout؛ برای مثال پیکربندی یا نقاط بازیابی (checkpoint). + +* شماره تلفن یا پیجر افراد مسئول، یا مراجع دایرکتوری که نشان می‌دهند این اطلاعات در کجا یافت می‌شود، مثل وب‌سایت تیم. + +* دستورالعمل‌های کاربر نهایی برای پیاده‌سازی‌ها به‌منظور تغییر رفتار یا فعال‌سازی قابلیت‌های غیراستاندارد. + +به‌جای استفاده از حاشیه‌نویس‌ها، می‌توانید این نوع اطلاعات را در یک پایگاه داده یا دایرکتوری بیرونی ذخیره کنید، اما این کار تولید کتابخانه‌ها و ابزارهای مشترک برای استقرار، مدیریت، وارسی (introspection) و کارهای مشابه را بسیار دشوارتر می‌کند. + +## نحو و مجموعه نویسه + +_حاشیه‌نویس‌ها_ نگاشت‌های کلید/مقدار هستند. کلید معتبر یک حاشیه‌نویس دو بخش دارد: یک پیشوند اختیاری و یک نام که با اسلش (`/`) از هم جدا می‌شوند. بخش نام الزامی است و باید حداکثر ۶۳ نویسه باشد؛ این بخش باید با یک نویسه الفانامریک (`[a-z0-9A-Z]`) آغاز و پایان یابد و می‌تواند در میان خود خط تیره (`-`)، زیرخط (`_`)، نقطه (`.`) و نویسه‌های الفانامریک داشته باشد. پیشوند اختیاری است؛ در صورت وجود، باید یک زیر‌دامنه DNS باشد: رشته‌ای از برچسب‌های DNS که با نقطه (`.`) از هم جدا شده‌اند، در مجموع بیش از ۲۵۳ نویسه نباشد و در پایان با یک اسلش (`/`) بیاید. + +اگر پیشوند ذکر نشود، فرض بر این است که کلید حاشیه‌نویس خصوصیِ کاربر است. اجزای خودکار سامانه (برای مثال `kube-scheduler`، `kube-controller-manager`، `kube-apiserver`، `kubectl` یا اتوماسیون‌های شخص ثالث) که به اشیای کاربر نهایی حاشیه‌نویس اضافه می‌کنند، باید حتماً پیشوند مشخص کنند. + +پیشوندهای `kubernetes.io/` و `k8s.io/` برای اجزای اصلی کوبرنتیز رزرو شده‌اند. + +به‌عنوان مثال، در ادامه مانیفستی برای یک Pod آمده است که حاشیه‌نویس `imageregistry: https://hub.docker.com/` را دارد: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: annotations-demo + annotations: + imageregistry: "https://hub.docker.com/" +spec: + containers: + - name: nginx + image: nginx:1.14.2 + ports: + - containerPort: 80 +``` + +## {{% heading "whatsnext" %}} + +- درباره [برچسب‌ها و انتخابگرها](/docs/concepts/overview/working-with-objects/labels/) بیشتر بیاموزید. +- فهرست [برچسب‌ها، حاشیه‌نویس‌ها و تِینت‌های شناخته‌شده](/docs/reference/labels-annotations-taints/) را بیابید. diff --git a/content/fa/docs/concepts/overview/working-with-objects/common-labels.md b/content/fa/docs/concepts/overview/working-with-objects/common-labels.md new file mode 100644 index 0000000000000..68b349a18c03a --- /dev/null +++ b/content/fa/docs/concepts/overview/working-with-objects/common-labels.md @@ -0,0 +1,164 @@ +--- +title: برچسب‌های پیشنهادی +content_type: concept +weight: 100 +--- + + +می‌توانید اشیای کوبرنتیز را با ابزارهایی فراتر از `kubectl` و داشبورد مشاهده و مدیریت کنید. +یک مجموعه مشترک از برچسب‌ها به ابزارها اجازه می‌دهد به‌صورت میان‌عملی کار کنند و اشیا را به شیوه‌ای مشترک توصیف کنند که همه ابزارها بتوانند آن را درک کنند. + +علاوه بر پشتیبانی از ابزارها، برچسب‌های پیشنهادی برنامه‌ها را به گونه‌ای توصیف می‌کنند که بتوان آن‌ها را جست‌وجو کرد. + + + +فرا‌داده حول مفهوم یک _برنامه_ سازمان‌دهی شده است. کوبرنتیز یک پلتفرم به‌عنوان سرویس (PaaS) نیست و مفهوم رسمی‌ای از «برنامه» ندارد و آن را اعمال نمی‌کند. در عوض، برنامه‌ها غیررسمی‌اند و با فرا‌داده توصیف می‌شوند. تعریف این‌که یک برنامه چه چیزهایی را دربر می‌گیرد، انعطاف‌پذیر است. + +{{< note >}} +این‌ها برچسب‌های پیشنهادی هستند. استفاده از آن‌ها مدیریت برنامه‌ها را ساده‌تر می‌کند، اما برای هیچ ابزار هسته‌ای الزامی نیست. +{{< /note >}} + +برچسب‌ها و حاشیه‌نویس‌های مشترک، پیشوند یکسانی دارند: `app.kubernetes.io`. +برچسب‌های بدون پیشوند خصوصیِ کاربران‌اند. این پیشوند مشترک اطمینان می‌دهد که برچسب‌های مشترک با برچسب‌های سفارشی کاربر تداخل نداشته باشند. + +## برچسب‌ها + +برای بهره‌گیری کامل از این برچسب‌ها، باید آن‌ها را روی هر شیء منبع اعمال کنید. + +| Key | Description | Example | Type | +| ----------------------------------- | --------------------- | -------- | ---- | +| `app.kubernetes.io/name` | The name of the application | `mysql` | string | +| `app.kubernetes.io/instance` | A unique name identifying the instance of an application | `mysql-abcxyz` | string | +| `app.kubernetes.io/version` | The current version of the application (e.g., a [SemVer 1.0](https://semver.org/spec/v1.0.0.html), revision hash, etc.) | `5.7.21` | string | +| `app.kubernetes.io/component` | The component within the architecture | `database` | string | +| `app.kubernetes.io/part-of` | The name of a higher level application this one is part of | `wordpress` | string | +| `app.kubernetes.io/managed-by` | The tool being used to manage the operation of an application | `Helm` | string | + +برای نشان دادن این برچسب‌ها در عمل، شیء {{< glossary_tooltip text="StatefulSet" term_id="statefulset" >}} زیر را در نظر بگیرید: + +```yaml +# This is an excerpt +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/name: mysql + app.kubernetes.io/instance: mysql-abcxyz + app.kubernetes.io/version: "5.7.21" + app.kubernetes.io/component: database + app.kubernetes.io/part-of: wordpress + app.kubernetes.io/managed-by: Helm +``` + +## برنامه‌ها و نمونه‌های برنامه + +یک برنامه می‌تواند یک یا چند بار در یک خوشه کوبرنتیز (و در برخی موارد در همان namespace) نصب شود. +برای نمونه، می‌توان WordPress را بیش از یک بار نصب کرد؛ به‌گونه‌ای که وب‌سایت‌های مختلف، نصب‌های متفاوتی از WordPress باشند. + +نام برنامه و نام نمونه آن به‌طور جداگانه ثبت می‌شوند. +برای مثال، WordPress دارای `app.kubernetes.io/name` برابر با `wordpress` است، در حالی که نام نمونه آن با `app.kubernetes.io/instance` مشخص می‌شود و مقداری مانند `wordpress-abcxyz` دارد. +این کار باعث می‌شود هم برنامه و هم نمونه آن قابل شناسایی باشند. +هر نمونه از یک برنامه باید نام یکتایی داشته باشد. + +## مثال‌ها + +برای نشان دادن روش‌های گوناگون استفاده از این برچسب‌ها، مثال‌های زیر سطوح مختلفی از پیچیدگی را دارند. + +### یک سرویس بی‌حالت ساده + +حالت یک سرویس بی‌حالت ساده را که با اشیای `Deployment` و `Service` استقرار یافته در نظر بگیرید. +دو قطعه زیر نشان می‌دهند که برچسب‌ها چگونه می‌توانند در ساده‌ترین شکل به کار روند. + +`Deployment` برای نظارت بر پادهایی که خودِ برنامه را اجرا می‌کنند به کار می‌رود. +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/name: myservice + app.kubernetes.io/instance: myservice-abcxyz +... +``` + +از `Service` برای نمایش برنامه استفاده می‌شود. +```yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: myservice + app.kubernetes.io/instance: myservice-abcxyz +... +``` + +### برنامه وب با یک پایگاه داده + +یک برنامه کمی پیچیده‌تر را در نظر بگیرید: یک برنامه وب (WordPress) +که از یک پایگاه داده (MySQL) استفاده می‌کند و با Helm نصب شده است. +قطعه‌های زیر آغاز اشیایی را نشان می‌دهند که برای استقرار این برنامه به‌کار می‌روند. + +بخش ابتدایی `Deployment` زیر برای WordPress به‌کار می‌رود: + +```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/name: wordpress + app.kubernetes.io/instance: wordpress-abcxyz + app.kubernetes.io/version: "4.9.4" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: server + app.kubernetes.io/part-of: wordpress +... +``` + +از `Service` برای نمایش وردپرس استفاده می‌شود: + +```yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: wordpress + app.kubernetes.io/instance: wordpress-abcxyz + app.kubernetes.io/version: "4.9.4" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: server + app.kubernetes.io/part-of: wordpress +... +``` + +MySQL به‌صورت یک `StatefulSet` در دسترس قرار می‌گیرد و برای خودش و همچنین برای برنامه بزرگ‌تری که به آن تعلق دارد، متادیتا دارد: + +```yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/name: mysql + app.kubernetes.io/instance: mysql-abcxyz + app.kubernetes.io/version: "5.7.21" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: database + app.kubernetes.io/part-of: wordpress +... +``` + +از شیء `Service` برای در معرض قرار دادن MySQL به‌عنوان بخشی از WordPress استفاده می‌شود: + +```yaml +apiVersion: v1 +kind: Service +metadata: + labels: + app.kubernetes.io/name: mysql + app.kubernetes.io/instance: mysql-abcxyz + app.kubernetes.io/version: "5.7.21" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/component: database + app.kubernetes.io/part-of: wordpress +... +``` + +در `StatefulSet` و `Service` مربوط به MySQL مشاهده می‌کنید که اطلاعات مربوط به هر دو، یعنی MySQL و WordPress به‌عنوان برنامه گسترده‌تر، درج شده است. diff --git a/content/fa/docs/concepts/overview/working-with-objects/field-selectors.md b/content/fa/docs/concepts/overview/working-with-objects/field-selectors.md new file mode 100644 index 0000000000000..00f4f91c9e85d --- /dev/null +++ b/content/fa/docs/concepts/overview/working-with-objects/field-selectors.md @@ -0,0 +1,81 @@ +--- +title: انتخابگرهای فیلد +content_type: concept +weight: 70 +--- + +_انتخابگرهای فیلد (Field selectors)_ به شما امکان می‌دهند {{< glossary_tooltip text="اشیا" term_id="object" >}} کوبرنتیز را بر اساس مقدار یک یا چند فیلدِ منبع انتخاب کنید. در ادامه چند نمونه از جستارهای انتخابگر فیلد آمده است: + +* `metadata.name=my-service` +* `metadata.namespace!=default` +* `status.phase=Pending` + +این دستور `kubectl` تمام پادهایی را انتخاب می‌کند که مقدار فیلد [`status.phase`](/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase) آن‌ها `Running` باشد: + +```shell +kubectl get pods --field-selector status.phase=Running +``` + +{{< note >}} +انتخابگرهای فیلد در اصل *فیلتر* منابع هستند. به‌طور پیش‌فرض هیچ انتخابگر/فیلتری اعمال نمی‌شود؛ یعنی همه منابع از نوع مشخص‌شده برگزیده می‌شوند. به همین دلیل دو فرمان زیر در `kubectl` معادل‌اند: +`kubectl get pods` و `kubectl get pods --field-selector ""`. +{{< /note >}} + +## فیلدهای پشتیبانی‌شده + +انتخابگرهای فیلد پشتیبانی‌شده بسته به نوع منبع کوبرنتیز متفاوت‌اند. همه انواع منبع از فیلدهای `metadata.name` و `metadata.namespace` پشتیبانی می‌کنند. استفاده از انتخابگرهای فیلد پشتیبانی‌نشده باعث خطا می‌شود. برای مثال: + +```shell +kubectl get ingress --field-selector foo.bar=baz +``` +``` +Error from server (BadRequest): Unable to find "ingresses" that match label selector "", field selector "foo.bar=baz": "foo.bar" is not a known field selector: only "metadata.name", "metadata.namespace" +``` + +### فهرست فیلدهای پشتیبانی شده + +| Kind | Fields | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Pod | `spec.nodeName`
`spec.restartPolicy`
`spec.schedulerName`
`spec.serviceAccountName`
`spec.hostNetwork`
`status.phase`
`status.podIP`
`status.nominatedNodeName` | +| Event | `involvedObject.kind`
`involvedObject.namespace`
`involvedObject.name`
`involvedObject.uid`
`involvedObject.apiVersion`
`involvedObject.resourceVersion`
`involvedObject.fieldPath`
`reason`
`reportingComponent`
`source`
`type` | +| Secret | `type` | +| Namespace | `status.phase` | +| ReplicaSet | `status.replicas` | +| ReplicationController | `status.replicas` | +| Job | `status.successful` | +| Node | `spec.unschedulable` | +| CertificateSigningRequest | `spec.signerName` | + +### فیلدهای منابع سفارشی + +تمام انواع منبع سفارشی از فیلدهای `metadata.name` و `metadata.namespace` پشتیبانی می‌کنند. + +علاوه بر این، فیلد `spec.versions[*].selectableFields` در یک {{< glossary_tooltip term_id="CustomResourceDefinition" text="CustomResourceDefinition" >}} تعیین می‌کند که کدام فیلدهای دیگرِ یک منبع سفارشی را می‌توان در انتخابگرهای فیلد به‌کار برد. برای اطلاعات بیشتر درباره استفاده از انتخابگرهای فیلد همراه با CustomResourceDefinitionها، به [فیلدهای قابل انتخاب برای منابع سفارشی](/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#crd-selectable-fields) مراجعه کنید. + +## عملگرهای پشتیبانی‌شده + +می‌توانید از عملگرهای `=`, `==` و `!=` در انتخابگرهای فیلد استفاده کنید (دو عملگر `=` و `==` معادل هم هستند). برای مثال، این فرمان `kubectl` تمامی سرویس‌های کوبرنتیز را که در فضای نام `default` نیستند انتخاب می‌کند: + +```shell +kubectl get services --all-namespaces --field-selector metadata.namespace!=default +``` +{{< note >}} +عملگرهای [مبتنی بر مجموعه](/docs/concepts/overview/working-with-objects/labels/#set-based-requirement) +(`in`، `notin`، `exists`) برای انتخابگرهای فیلد پشتیبانی نمی‌شوند. +{{< /note >}} + +## انتخابگرهای زنجیره‌ای + +مانند [برچسب](/docs/concepts/overview/working-with-objects/labels) و سایر انتخابگرها، انتخابگرهای فیلد را می‌توان به‌صورت فهرستی جداشده با ویرگول به یکدیگر زنجیر کرد. این فرمان `kubectl` تمامی پادهایی را انتخاب می‌کند که مقدار `status.phase` آن‌ها برابر با `Running` نیست و فیلد `spec.restartPolicy` آن‌ها برابر با `Always` است: + +```shell +kubectl get pods --field-selector=status.phase!=Running,spec.restartPolicy=Always +``` + +## چندین نوع منبع + +می‌توانید از انتخابگرهای فیلد برای انواع مختلف منبع استفاده کنید. این فرمان `kubectl` تمامی StatefulSet‌ها و Service‌ها را که در فضای نام `default` نیستند انتخاب می‌کند: + +```shell +kubectl get statefulsets,services --all-namespaces --field-selector metadata.namespace!=default +``` diff --git a/content/fa/docs/concepts/overview/working-with-objects/finalizers.md b/content/fa/docs/concepts/overview/working-with-objects/finalizers.md new file mode 100644 index 0000000000000..7ca0cc0f15d02 --- /dev/null +++ b/content/fa/docs/concepts/overview/working-with-objects/finalizers.md @@ -0,0 +1,77 @@ +--- +title: نهایی کننده ها +content_type: concept +weight: 80 +--- + + + +{{}} + +می‌توانید از **پایان‌دهنده‌ها** (finalizerها) برای کنترل {{}} +اشیاء {{< glossary_tooltip text="objects" term_id="object" >}} استفاده کنید؛ به این ترتیب که به +{{}}‌ اطلاع می‌دهید پیش از حذف منبع هدف، وظایف پاک‌سازی مشخصی را انجام دهند. + +پایان‌دهنده‌ها معمولاً کد اجرایی را مشخص نمی‌کنند؛ بلکه فهرستی از کلیدها روی یک منبع—مشابه حاشیه‌نویس‌ها—هستند. +برخی پایان‌دهنده‌ها به‌طور خودکار توسط کوبرنتیز افزوده می‌شوند، اما می‌توانید پایان‌دهنده‌های خود را نیز تعریف کنید. + +## نحوه کار پایان‌دهنده‌ها + +هنگام ایجاد یک منبع با فایل مانیفست، می‌توانید پایان‌دهنده‌ها را در فیلد `metadata.finalizers` تعیین کنید. +وقتی درخواست حذف منبع را می‌دهید، سرور API که این درخواست را پردازش می‌کند مقدارهای فیلد `finalizers` را می‌بیند و: + +* شیء را طوری تغییر می‌دهد که فیلد `metadata.deletionTimestamp` با زمان آغاز حذف افزوده شود؛ +* از حذف شیء جلوگیری می‌کند تا زمانی که تمام موارد از فیلد `metadata.finalizers` آن حذف شوند؛ +* کد وضعیت `202` ‏(HTTP «Accepted») را برمی‌گرداند. + +کنترلری که مسئول آن پایان‌دهنده است، به‌روزرسانی شیء و تنظیم فیلد `metadata.deletionTimestamp` را می‌بیند—علامتی که نشان می‌دهد حذف شیء درخواست شده است. +کنترلر سپس می‌کوشد نیازهای پایان‌دهنده‌های مشخص‌شده برای آن منبع را برآورده کند. هر بار که شرط یک پایان‌دهنده برقرار شد، کنترلر آن کلید را از فیلد `finalizers` منبع برمی‌دارد. +وقتی فیلد `finalizers` خالی شود، شیئی که فیلد `deletionTimestamp` برای آن تنظیم شده، به‌طور خودکار حذف می‌شود. +همچنین می‌توانید از پایان‌دهنده‌ها برای جلوگیری از حذف منابعی استفاده کنید که تحت مدیریت نیستند. + +یک نمونه رایج پایان‌دهنده، `kubernetes.io/pv-protection` است که از حذف تصادفی اشیای `PersistentVolume` جلوگیری می‌کند. +وقتی یک شیء `PersistentVolume` توسط یک Pod استفاده می‌شود، کوبرنتیز پایان‌دهنده `pv-protection` را اضافه می‌کند. +اگر بخواهید آن `PersistentVolume` را حذف کنید، شیء در وضعیت `Terminating` باقی می‌ماند، اما کنترلر نمی‌تواند آن را حذف کند چون پایان‌دهنده وجود دارد. +وقتی Pod دیگر از `PersistentVolume` استفاده نکند، کوبرنتیز پایان‌دهنده `pv-protection` را پاک می‌کند و کنترلر حجم را حذف می‌کند. + +{{}} +* هنگام `DELETE` کردن یک شیء، کوبرنتیز زمان‌سنج حذف را برای آن شیء اضافه می‌کند و سپس بلافاصله شروع به محدود کردن تغییرات در فیلد `.metadata.finalizers` آن شیء می‌کند که اکنون در حالت انتظار حذف است. شما می‌توانید پایان‌دهنده‌های موجود را حذف کنید (حذف یک ورودی از فهرست `finalizers`)، اما نمی‌توانید پایان‌دهنده جدیدی اضافه کنید. همچنین نمی‌توانید پس از تنظیم، `deletionTimestamp` را تغییر دهید. + +* پس از درخواست حذف، نمی‌توانید این شیء را باززنده کنید. تنها راه، حذف آن و ایجاد یک شیء مشابه جدید است. +{{}} + +{{}} +نام‌های پایان‌دهنده سفارشی **باید** نام‌های پایان‌دهنده واجد شرایط عمومی باشند، مانند `example.com/finalizer-name`. کوبرنتیز این قالب را اجرا می‌کند؛ سرور API نوشتن روی اشیایی را که تغییر آن‌ها از نام‌های واجد شرایط پایان‌دهنده برای هر پایان‌دهنده سفارشی استفاده نمی‌کند، رد می‌کند. +{{}} + +## مراجع مالک، برچسب‌ها و پایان‌دهنده‌ها {#owners-labels-finalizers} + +مانند {{}} +[مراجع مالک](/docs/concepts/overview/working-with-objects/owners-dependents/) +روابط بین اشیاء در کوبرنتیز را توصیف می‌کنند، اما برای هدف متفاوتی استفاده می‌شوند. +هنگامی که یک {{}} اشیایی مانند Pod را مدیریت می‌کند، +از برچسب‌ها برای پیگیری تغییرات گروهی از اشیاء مرتبط استفاده می‌کند. + +برای مثال، وقتی یک {{}} یک یا چند Pod ایجاد می‌کند، +کنترلر Job به آن پادها برچسب می‌زند و تغییرات هر Pod در خوشه با همان برچسب را پیگیری می‌کند. + +کنترلر Job همچنین *مراجع مالک* را به آن پادها اضافه می‌کند که به Jobی اشاره دارند +که پادها را ایجاد کرده است. +اگر Job را زمانی که این پادها در حال اجرا هستند حذف کنید، کوبرنتیز از مراجع مالک (نه برچسب‌ها) +برای تعیین این که کدام پادها در خوشه نیاز به پاک‌سازی دارند، استفاده می‌کند. + +کوبرنتیز همچنین هنگام شناسایی مراجع مالک روی منبع هدف قرار گرفته برای حذف، +پایان‌دهنده‌ها را پردازش می‌کند. + +در برخی مواقع، پایان‌دهنده‌ها می‌توانند از حذف اشیاء وابسته جلوگیری کنند، +که ممکن است باعث شود شیء مالک هدف برای مدتی طولانی‌تر از حد انتظار بدون حذف کامل باقی بماند. +در این شرایط باید پایان‌دهنده‌ها و مراجع مالک را روی شیء مالک هدف و اشیاء وابسته بررسی کنید +تا علت را عیب‌یابی کنید. + +{{}} +در مواردی که اشیاء در حالت حذف گیر کرده‌اند، از حذف دستی پایان‌دهنده‌ها خودداری کنید تا فرایند حذف ادامه یابد. پایان‌دهنده‌ها معمولاً به دلایلی به منابع اضافه می‌شوند، پس حذف اجباری آن‌ها می‌تواند به مشکلاتی در خوشه شما منجر شود. این کار تنها زمانی انجام شود که هدف پایان‌دهنده مشخص باشد و به روش دیگری (مثلاً پاک‌سازی دستی یک شیء وابسته) برآورده شده باشد. +{{}} + +## {{% heading "whatsnext" %}} + +* [استفاده از پایان‌دهنده‌ها برای کنترل حذف](/blog/2021/05/14/using-finalizers-to-control-deletion/) را در بلاگ کوبرنتیز بخوانید. diff --git a/content/fa/docs/concepts/overview/working-with-objects/labels.md b/content/fa/docs/concepts/overview/working-with-objects/labels.md new file mode 100644 index 0000000000000..4c1f07ed56c6a --- /dev/null +++ b/content/fa/docs/concepts/overview/working-with-objects/labels.md @@ -0,0 +1,364 @@ +--- +reviewers: +- xirehat +title: برچسب‌ها و انتخابگرها +content_type: concept +weight: 40 +--- + + + +_برچسب‌ها_ نگاشت‌های کلید/مقدار هستند که به {{< glossary_tooltip text="اشیاء" term_id="object" >}} مانند پادها متصل می‌شوند. +برچسب‌ها برای مشخص‌کردن ویژگی‌های شناسایی‌کننده اشیاء طراحی شده‌اند که برای کاربران معنادار و مرتبط‌اند، اما مستقیماً معنایی به سیستم هسته‌ای اضافه نمی‌کنند. +می‌توان از برچسب‌ها برای سازمان‌دهی و انتخاب زیرمجموعه‌ای از اشیاء استفاده کرد. +برچسب‌ها را می‌توان هنگام ایجاد شیء افزود و در هر زمان بعدی تغییر داد یا برچسب جدید اضافه کرد. +هر شیء می‌تواند مجموعه‌ای از برچسب‌های کلید/مقدار داشته باشد. +هر کلید باید برای یک شیء مشخص یکتا باشد. + +```json +"metadata": { + "labels": { + "key1" : "value1", + "key2" : "value2" + } +} +``` + +برچسب‌ها امکان اجرای پرس‌وجوها و واچ‌های کارا را فراهم می‌کنند و برای استفاده در رابط‌های کاربری گرافیکی (UI) و خط فرمان (CLI) ایده‌آل هستند. اطلاعات غیرشناسه‌ای باید با استفاده از [حاشیه‌نویس‌ها](/docs/concepts/overview/working-with-objects/annotations/) ثبت شوند. + + + +## انگیزه + +برچسب‌ها به کاربران اجازه می‌دهند ساختارهای سازمانی خود را به‌صورت اتصال سست (loosely coupled) بر روی اشیاء سیستم نگاشت کنند، بدون آن‌که کلاینت‌ها نیاز به ذخیره این نگاشت‌ها داشته باشند. + +استقرار سرویس‌ها و خطوط پردازش دسته‌ای (batch) اغلب موجودیت‌های چندبعدی هستند (مثلاً چند بخش یا استقرار، چند مسیر انتشار، چند لایه، چند میکروسرویس در هر لایه). در بسیاری موارد، مدیریت نیازمند انجام عملیات‌های عرضی (cross-cutting) است که انتزاع‌های صرفاً سلسله‌مراتبی—به‌ویژه سلسله‌مراتبی‌های صلبی که توسط زیرساخت تعیین شده‌اند و نه توسط کاربران—را می‌شکند. + +برچسب‌های نمونه: + +* `"release" : "stable"`, `"release" : "canary"` +* `"environment" : "dev"`, `"environment" : "qa"`, `"environment" : "production"` +* `"tier" : "frontend"`, `"tier" : "backend"`, `"tier" : "cache"` +* `"partition" : "customerA"`, `"partition" : "customerB"` +* `"track" : "daily"`, `"track" : "weekly"` + +این‌ها مثال‌هایی از +[برچسب‌های رایج](/docs/concepts/overview/working-with-objects/common-labels/) هستند؛ می‌توانید قراردادهای خود را تعریف کنید. +به خاطر داشته باشید که کلید برچسب برای هر شیء باید یکتا باشد. + +## نحو و مجموعه نویسه + +_برچسب‌ها_ نگاشت‌های کلید/مقدار هستند. کلیدهای معتبر برچسب دو بخش دارند: یک پیشوند اختیاری و یک نام که با اسلش (`/`) از هم جدا می‌شوند. بخش نام الزامی است و باید حداکثر ۶۳ نویسه باشد؛ نام باید با یک نویسه الفانامریک (`[a-z0-9A-Z]`) شروع و پایان یابد و می‌تواند در میان شامل خط تیره (`-`)، زیرخط (`_`)، نقطه (`.`) و نویسه‌های الفانامریک باشد. پیشوند اختیاری است. اگر مشخص شود، باید یک زیر‌دامنه DNS باشد: مجموعه‌ای از برچسب‌های DNS که با نقطه (`.`) از هم جدا شده‌اند، مجموعاً بیشتر از ۲۵۳ نویسه نباشند و در پایان با اسلش (`/`) دنبال شوند. + +اگر پیشوند حذف شود، فرض بر این است که کلید برچسب خصوصیِ کاربر است. اجزای خودکار سامانه (مثلاً `kube-scheduler`، `kube-controller-manager`، `kube-apiserver`، `kubectl` یا سایر اتوماسیون‌های شخص ثالث) که برچسب به اشیاء کاربر نهایی اضافه می‌کنند، باید حتماً پیشوند مشخص کنند. + +پیشوندهای `kubernetes.io/` و `k8s.io/` برای اجزای اصلی کوبرنتیز +[رزرو شده‌اند](/docs/reference/labels-annotations-taints/). + +مقدار معتبر برچسب: + +* باید حداکثر ۶۳ نویسه باشد (می‌تواند خالی باشد)، +* اگر خالی نباشد، باید با یک نویسه الفانامریک (`[a-z0-9A-Z]`) شروع و پایان یابد، +* می‌تواند شامل خط تیره (`-`)، زیرخط (`_`)، نقطه (`.`) و نویسه‌های الفانامریک بین آن‌ها باشد. + +برای مثال، در اینجا مانیفستی برای یک Pod آمده است که دو برچسب +`environment: production` و `app: nginx` دارد: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: label-demo + labels: + environment: production + app: nginx +spec: + containers: + - name: nginx + image: nginx:1.14.2 + ports: + - containerPort: 80 +``` + +## انتخابگرهای برچسب + +برخلاف [نام‌ها و UIDها](/docs/concepts/overview/working-with-objects/names/)، برچسب‌ها یکتایی را تضمین نمی‌کنند. در حالت کلی انتظار می‌رود اشیاء مختلف، برچسب(های) یکسانی داشته باشند. + +از طریق _انتخابگر برچسب_، کلاینت/کاربر می‌تواند مجموعه‌ای از اشیاء را شناسایی کند. انتخابگر برچسب، اصلی‌ترین ساختار گروه‌بندی در کوبرنتیز است. + +در حال حاضر API دو نوع انتخابگر را پشتیبانی می‌کند: _مبتنی بر برابری_ و _مبتنی بر مجموعه_. یک انتخابگر برچسب می‌تواند از چند _الزام_ تشکیل شده باشد که با ویرگول از هم جدا شده‌اند. در صورت وجود چند الزام، همه آن‌ها باید برآورده شوند، بنابراین ویرگول نقش عملگر منطقی _AND_ (`&&`) را دارد. + +معنای انتخابگرهای خالی یا مشخص‌نشده وابسته به زمینه است و انواع API که از انتخابگر استفاده می‌کنند باید در مستندات خود در مورد اعتبار و معنی این انتخابگرها توضیح دهند. + +{{< note >}} +برای برخی انواع API، مانند ReplicaSetها، انتخابگرهای برچسب دو نمونه در یک namespace نباید با هم همپوشانی داشته باشند، زیرا کنترلر ممکن است این را دستور متضاد تلقی کرده و نتواند تعیین کند چه تعداد Replica باید وجود داشته باشد. +{{< /note >}} + +{{< caution >}} +برای هر دو حالت مبتنی بر برابری و مبتنی بر مجموعه، عملگر منطقی _OR_ (`||`) وجود ندارد. مطمئن شوید شروط فیلتر شما متناسب با این محدودیت ساختاربندی شده باشند. +{{< /caution >}} + +### الزام‌های مبتنی بر برابری + +الزام‌های مبتنی بر _برابری_ یا _نابرابری_ امکان فیلتر کردن بر اساس کلید و مقدار برچسب را فراهم می‌کنند. اشیاء منطبق باید تمام محدودیت‌های برچسب مشخص‌شده را برآورده کنند، هرچند ممکن است برچسب‌های اضافی نیز داشته باشند. سه نوع عملگر مجاز هستند: `=`, `==`, `!=`. دو عملگر اول نمایانگر _برابری_ (و هم‌معنا) هستند، در حالی که عملگر سوم نمایانگر _نابرابری_ است. برای مثال: + +``` +environment = production +tier != frontend +``` + +کد اول تمام منابعی را انتخاب می‌کند که کلیدشان برابر `environment` و مقدارشان برابر `production` است. کد دوم تمام منابعی را انتخاب می‌کند که کلیدشان برابر `tier` و مقدارشان متفاوت از `frontend` است، و همچنین منابعی که اصلاً برچسبی با کلید `tier` ندارند. می‌توانید منابع در `production` به‌استثنای `frontend` را با عملگر ویرگول فیلتر کنید: `environment=production,tier!=frontend` + +یکی از سناریوهای کاربردی برای الزام مبتنی بر برابری، مشخص کردن معیارهای انتخاب نود برای پادها است. برای مثال، پاد نمونه زیر نودهایی را انتخاب می‌کند که برچسب `accelerator` در آن‌ها وجود دارد و مقدارش `nvidia-tesla-p100` است. + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: cuda-test +spec: + containers: + - name: cuda-test + image: "registry.k8s.io/cuda-vector-add:v0.1" + resources: + limits: + nvidia.com/gpu: 1 + nodeSelector: + accelerator: nvidia-tesla-p100 +``` + +### الزام‌های مبتنی بر مجموعه + +الزام‌های برچسب مبتنی بر _مجموعه_ امکان فیلتر کردن کلیدها بر اساس یک مجموعه از مقادیر را فراهم می‌کنند. سه نوع عملگر پشتیبانی می‌شوند: `in`، `notin` و `exists` (فقط شناسه کلید). برای مثال: + +``` +environment in (production, qa) +tier notin (frontend, backend) +partition +!partition +``` + +- مثال اول تمام منابعی را انتخاب می‌کند که کلیدشان برابر `environment` باشد و مقدارشان برابر `production` یا `qa`. +- مثال دوم تمام منابعی را انتخاب می‌کند که کلیدشان برابر `tier` باشد و مقادیرشان غیر از `frontend` و `backend` باشد، و همچنین منابعی که اصلاً برچسبی با کلید `tier` ندارند. +- مثال سوم تمام منابعی را انتخاب می‌کند که برچسبی با کلید `partition` دارند؛ هیچ مقداری بررسی نمی‌شود. +- مثال چهارم تمام منابعی را انتخاب می‌کند که برچسبی با کلید `partition` ندارند؛ هیچ مقداری بررسی نمی‌شود. + +به‌نحوی مشابه، جداکننده ویرگول نقش عملگر _AND_ را دارد. بنابراین فیلتر کردن منابعی که کلید `partition` دارند (صرف‌نظر از مقدار) و مقادیر `environment` آن‌ها متفاوت از `qa` باشد، با عبارت زیر امکان‌پذیر است: +``partition,environment notin (qa)`` + +انتخابگر برچسب _مبتنی بر مجموعه_ یک شکل کلی از برابری است، زیرا +``environment=production`` معادل +``environment in (production)`` است؛ +که برای عملگرهای `!=` و `notin` نیز صادق است. + +_الزام‌های مبتنی بر مجموعه_ می‌توانند با _الزام‌های مبتنی بر برابری_ ترکیب شوند. +به‌عنوان مثال: `partition in (customerA, customerB),environment!=qa`. + +## API + +### فیلتر کردن LIST و WATCH + +برای عملیات **لیست** و **واچ**، می‌توانید انتخابگرهای برچسب را برای فیلتر کردن مجموعه اشیاء بازگردانده‌شده مشخص کنید؛ این فیلتر را با یک پارامتر پرس‌وجو تعیین می‌کنید. +(برای آشنایی دقیق با واچ‌ها در کوبرنتیز، بخش +[کشف مؤثر تغییرات](/docs/reference/using-api/api-concepts/#efficient-detection-of-changes) +را مطالعه کنید). +هر دو نوع الزام مجاز هستند +(در اینجا همان‌طور که در رشته پرس‌وجوی URL ظاهر می‌شوند نشان داده شده‌اند): + +* الزام‌های _مبتنی بر برابری_: `?labelSelector=environment%3Dproduction,tier%3Dfrontend` +* الزام‌های _مبتنی بر مجموعه_: `?labelSelector=environment+in+%28production%2Cqa%29%2Ctier+in+%28frontend%29` + +هر دو سبک انتخابگر برچسب را می‌توان برای لیست‌کردن یا واچ منابع از طریق یک REST client به کار برد. +برای مثال، با هدف قرار دادن `apiserver` با `kubectl` و استفاده از الزام _مبتنی بر برابری_ می‌توان نوشت: + +```shell +kubectl get pods -l environment=production,tier=frontend +``` + +یا با استفاده از الزام‌های مبتنی بر مجموعه: + +```shell +kubectl get pods -l 'environment in (production),tier in (frontend)' +``` + +همانطور که قبلاً اشاره شد، الزامات مبتنی بر مجموعه، گویاتر هستند. برای مثال، می‌توانند عملگر _OR_ را روی مقادیر پیاده‌سازی کنند: + +```shell +kubectl get pods -l 'environment in (production, qa)' +``` + +یا محدود کردن تطبیق منفی از طریق عملگر _notin_: + +```shell +kubectl get pods -l 'environment,environment notin (frontend)' +``` + +### تنظیم ارجاعات مجموعه‌ای در اشیای API + +برخی از اشیای کوبرنتیز، مانند [`service`](/docs/concepts/services-networking/service/) +و [`replicationcontroller`](/docs/concepts/workloads/controllers/replicationcontroller/)، +از انتخابگرهای برچسب برای مشخص‌کردن مجموعه‌ای از منابع دیگر (مانند [پادها](/docs/concepts/workloads/pods/)) استفاده می‌کنند. + +#### Service و ReplicationController + +مجموعه پادهایی که یک `service` به آن‌ها هدف‌گذاری می‌کند با یک انتخابگر برچسب تعریف می‌شود. +به‌طور مشابه، مجموعه پادهایی که یک `replicationcontroller` باید آن‌ها را مدیریت کند نیز با انتخابگر برچسب مشخص می‌شود. + +انتخابگرهای برچسب برای هر دو شیء در فایل‌های `json` یا `yaml` با استفاده از نقشه‌ها (maps) تعریف می‌شوند +و فقط انتخابگرهای مبتنی بر _برابری_ پشتیبانی می‌شوند: + +```json +"selector": { + "component" : "redis", +} +``` + +یا + +```yaml +selector: + component: redis +``` + +این انتخابگر (به‌ترتیب در قالب `json` یا `yaml`) معادل +`component=redis` یا `component in (redis)` است. + +#### منابعی که از الزام‌های مبتنی بر مجموعه پشتیبانی می‌کنند + +منابع جدیدتر مانند [`Job`](/docs/concepts/workloads/controllers/job/)، +[`Deployment`](/docs/concepts/workloads/controllers/deployment/)، +[`ReplicaSet`](/docs/concepts/workloads/controllers/replicaset/) و +[`DaemonSet`](/docs/concepts/workloads/controllers/daemonset/) +از الزام‌های _مبتنی بر مجموعه_ نیز پشتیبانی می‌کنند. + +```yaml +selector: + matchLabels: + component: redis + matchExpressions: + - { key: tier, operator: In, values: [cache] } + - { key: environment, operator: NotIn, values: [dev] } +``` + +`matchLabels` یک نگاشت از زوج‌های `{کلید، مقدار}` است. یک `{کلید، مقدار}` تکی در نگاشت `matchLabels` +معادل یک عنصر از `matchExpressions` است که در آن فیلد `key` برابر "key"، +عملگر `operator` برابر "In" و آرایه `values` فقط شامل "value" است. +`matchExpressions` فهرستی از الزامات انتخاب پاد (pod selector) است. +عملگرهای معتبر شامل In، NotIn، Exists و DoesNotExist هستند. +در حالت استفاده از In و NotIn، مجموعه مقادیر باید خالی نباشد. +تمام الزامات، چه از `matchLabels` و چه از `matchExpressions`، به‌صورت AND با هم ترکیب می‌شوند— +یعنی همگی باید برقرار باشند تا تطبیق انجام شود. + +#### انتخاب مجموعه‌هایی از نودها + +یکی از کاربردهای انتخاب بر اساس برچسب، محدود کردن مجموعه نودهایی است +که یک پاد می‌تواند روی آن‌ها زمان‌بندی شود. +برای اطلاعات بیشتر، مستندات مربوط به +[انتخاب نود](/docs/concepts/scheduling-eviction/assign-pod-node/) را مشاهده کنید. + +## استفاده مؤثر از برچسب‌ها + +می‌توانید یک برچسب را روی هر منبعی اعمال کنید، +اما این همیشه بهترین روش نیست. +در بسیاری از سناریوها باید از چند برچسب برای تمایز مجموعه‌های منابع از یکدیگر استفاده کرد. + +برای مثال، برنامه‌های مختلف ممکن است مقادیر متفاوتی برای برچسب `app` داشته باشند، +اما یک برنامه چندلایه مانند [مثال guestbook](https://github.com/kubernetes/examples/tree/master/guestbook/) +نیاز دارد که هر لایه را نیز از هم متمایز کند. +لایه frontend می‌تواند برچسب‌های زیر را داشته باشد: + +```yaml +labels: + app: guestbook + tier: frontend +``` + +در حالی که Redis master و replica برچسب‌های `tier` متفاوتی خواهند داشت، و شاید حتی یک برچسب `role` اضافی: + +```yaml +labels: + app: guestbook + tier: backend + role: master +``` + +و + +```yaml +labels: + app: guestbook + tier: backend + role: replica +``` + +برچسب‌ها امکان برش و تفکیک منابع را در امتداد هر بُعدی که توسط یک برچسب مشخص شده است، فراهم می‌کنند: + +```shell +kubectl apply -f examples/guestbook/all-in-one/guestbook-all-in-one.yaml +kubectl get pods -Lapp -Ltier -Lrole +``` + +```none +NAME READY STATUS RESTARTS AGE APP TIER ROLE +guestbook-fe-4nlpb 1/1 Running 0 1m guestbook frontend +guestbook-fe-ght6d 1/1 Running 0 1m guestbook frontend +guestbook-fe-jpy62 1/1 Running 0 1m guestbook frontend +guestbook-redis-master-5pg3b 1/1 Running 0 1m guestbook backend master +guestbook-redis-replica-2q2yf 1/1 Running 0 1m guestbook backend replica +guestbook-redis-replica-qgazl 1/1 Running 0 1m guestbook backend replica +my-nginx-divi2 1/1 Running 0 29m nginx +my-nginx-o0ef1 1/1 Running 0 29m nginx +``` + +```shell +kubectl get pods -lapp=guestbook,role=replica +``` + +```none +NAME READY STATUS RESTARTS AGE +guestbook-redis-replica-2q2yf 1/1 Running 0 3m +guestbook-redis-replica-qgazl 1/1 Running 0 3m +``` + +## به‌روزرسانی برچسب‌ها + +گاهی ممکن است بخواهید پادهای موجود و سایر منابع را پیش از ایجاد منابع جدید، مجدداً برچسب‌گذاری کنید. +این کار را می‌توان با استفاده از دستور `kubectl label` انجام داد. +برای مثال، اگر بخواهید همه پادهای NGINX خود را به‌عنوان لایه frontend برچسب‌گذاری کنید، این دستور را اجرا کنید: + +```shell +kubectl label pods -l app=nginx tier=fe +``` + +```none +pod/my-nginx-2035384211-j5fhi labeled +pod/my-nginx-2035384211-u2c7e labeled +pod/my-nginx-2035384211-u3t6x labeled +``` + +این دستور ابتدا تمام پادها را با برچسب "app=nginx" فیلتر می‌کند و سپس آنها را با برچسب "tier=fe" مشخص می‌کند. +برای دیدن پادهایی که برچسب‌گذاری کرده‌اید، دستور زیر را اجرا کنید: + +```shell +kubectl get pods -l app=nginx -L tier +``` + +```none +NAME READY STATUS RESTARTS AGE TIER +my-nginx-2035384211-j5fhi 1/1 Running 0 23m fe +my-nginx-2035384211-u2c7e 1/1 Running 0 23m fe +my-nginx-2035384211-u3t6x 1/1 Running 0 23m fe +``` + +این دستور تمام پادهایی با برچسب "app=nginx" را نمایش می‌دهد، به‌همراه یک ستون برچسب اضافی برای tier پادها +(که با گزینه `-L` یا `--label-columns` مشخص می‌شود). + +برای اطلاعات بیشتر، به [kubectl label](/docs/reference/generated/kubectl/kubectl-commands/#label) مراجعه کنید. + +## {{% heading "whatsnext" %}} + +- یاد بگیرید چگونه [یک برچسب به نود اضافه کنید](/docs/tasks/configure-pod-container/assign-pods-nodes/#add-a-label-to-a-node) +- [برچسب‌ها، حاشیه‌نویس‌ها و تِینت‌های شناخته‌شده](/docs/reference/labels-annotations-taints/) را پیدا کنید +- [برچسب‌های پیشنهادی](/docs/concepts/overview/working-with-objects/common-labels/) را ببینید +- [اجرای استانداردهای امنیتی پاد با برچسب‌های Namespace](/docs/tasks/configure-pod-container/enforce-standards-namespace-labels/) +- مقاله‌ای درباره [نوشتن کنترلر برای برچسب‌های پاد](/blog/2021/06/21/writing-a-controller-for-pod-labels/) بخوانید diff --git a/content/fa/docs/concepts/overview/working-with-objects/names.md b/content/fa/docs/concepts/overview/working-with-objects/names.md new file mode 100644 index 0000000000000..e676b9582d527 --- /dev/null +++ b/content/fa/docs/concepts/overview/working-with-objects/names.md @@ -0,0 +1,117 @@ +--- +reviewers: +- xirehat +title: نام‌ها و شناسه‌های اشیاء +content_type: concept +weight: 30 +--- + + + +هر {{< glossary_tooltip text="شیء" term_id="object" >}} در خوشه شما یک [_نام_](#names) دارد که برای آن نوع از منبع یکتا است. +همچنین هر شیء در کوبرنتیز یک [_UID_](#uids) دارد که در کل خوشه یکتا است. + +برای مثال، تنها می‌توانید یک پاد با نام `myapp-1234` در یک [namespace](/docs/concepts/overview/working-with-objects/namespaces/) داشته باشید، +اما می‌توانید هم یک پاد و هم یک Deployment با نام `myapp-1234` داشته باشید. + +برای ویژگی‌هایی که توسط کاربر ارائه می‌شوند و یکتا نیستند، کوبرنتیز [برچسب‌ها](/docs/concepts/overview/working-with-objects/labels/) و [حاشیه‌نویس‌ها](/docs/concepts/overview/working-with-objects/annotations/) را فراهم می‌کند. + + + +## نام‌ها + +{{< glossary_definition term_id="name" length="all" >}} + +**نام‌ها باید در تمام [نسخه‌های API](/docs/concepts/overview/kubernetes-api/#api-groups-and-versioning) +برای یک منبع خاص یکتا باشند. منابع API با گروه API، نوع منبع، namespace (برای منابع namespaced)، و نام از هم متمایز می‌شوند. +به عبارت دیگر، نسخه API در این زمینه اهمیتی ندارد.** + +{{< note >}} +در مواردی که اشیاء نماینده موجودیت‌های فیزیکی هستند، مانند Node که نشان‌دهنده یک میزبان فیزیکی است، +اگر میزبان تحت همان نام مجدداً ایجاد شود بدون آن‌که Node قبلی حذف و دوباره ایجاد شود، +کوبرنتیز میزبان جدید را به‌عنوان همان میزبان قدیمی در نظر می‌گیرد که ممکن است به ناسازگاری‌هایی منجر شود. +{{< /note >}} + +سرور ممکن است هنگام ایجاد یک منبع، زمانی که به‌جای `name` فیلد `generateName` ارائه شود، یک نام تولید کند. +وقتی از `generateName` استفاده می‌شود، مقدار ارائه‌شده به‌عنوان پیشوند نام به‌کار می‌رود و سرور یک پسوند تولیدشده به آن اضافه می‌کند. +اگرچه نام به‌صورت خودکار تولید می‌شود، ممکن است با نام‌های موجود تداخل داشته باشد و پاسخ HTTP 409 بازگردد. +از نسخه Kubernetes v1.31 به بعد، احتمال وقوع این مشکل بسیار کمتر شده است، +زیرا سرور تا ۸ تلاش برای تولید نام یکتا انجام می‌دهد پیش از آن‌که پاسخ HTTP 409 بازگرداند. + +در ادامه چهار نوع از محدودیت‌های نام‌گذاری رایج برای منابع آورده شده است. + +### نام‌های زیردامنه‌ای DNS + +بیشتر انواع منابع نیاز به نامی دارند که بتوان از آن به‌عنوان یک زیردامنه DNS استفاده کرد، +مطابق با تعریف [RFC 1123](https://tools.ietf.org/html/rfc1123). +این به این معناست که نام باید: + +- حداکثر ۲۵۳ نویسه داشته باشد +- فقط شامل نویسه‌های الفانامریک کوچک، `-` یا `.` باشد +- با یک نویسه الفانامریک شروع شود +- با یک نویسه الفانامریک پایان یابد + +### نام‌های برچسبی RFC 1123 {#dns-label-names} + +برخی انواع منابع نیاز دارند که نام آن‌ها مطابق با استاندارد برچسب DNS +تعریف‌شده در [RFC 1123](https://tools.ietf.org/html/rfc1123) باشد. +این به این معناست که نام باید: + +- حداکثر ۶۳ نویسه داشته باشد +- فقط شامل نویسه‌های الفانامریک کوچک یا `-` باشد +- با یک نویسه الفانامریک شروع شود +- با یک نویسه الفانامریک پایان یابد + +### نام‌های برچسبی RFC 1035 + +برخی انواع منابع نیاز دارند که نام آن‌ها مطابق با استاندارد برچسب DNS +تعریف‌شده در [RFC 1035](https://tools.ietf.org/html/rfc1035) باشد. +این به این معناست که نام باید: + +- حداکثر ۶۳ نویسه داشته باشد +- فقط شامل نویسه‌های الفانامریک کوچک یا `-` باشد +- با یک نویسه الفبایی (حرف) کوچک شروع شود +- با یک نویسه الفانامریک پایان یابد + +{{< note >}} +تنها تفاوت بین استانداردهای برچسب RFC 1035 و RFC 1123 در این است که +برچسب‌های RFC 1123 اجازه دارند با عدد شروع شوند، +در حالی‌که برچسب‌های RFC 1035 فقط می‌توانند با حروف کوچک الفبایی شروع شوند. +{{< /note >}} + +### نام‌های بخش مسیر (Path Segment) + +برخی انواع منابع نیاز دارند که نام آن‌ها بتواند به‌صورت ایمن به‌عنوان یک بخش از مسیر (path segment) رمزگذاری شود. +به عبارت دیگر، نام نباید "." یا ".." باشد و همچنین نباید شامل "/" یا "%" باشد. + +در اینجا یک نمونه مانیفست برای یک Pod با نام `nginx-demo` آورده شده است: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: nginx-demo +spec: + containers: + - name: nginx + image: nginx:1.14.2 + ports: + - containerPort: 80 +``` + + +{{< note >}} +برخی انواع منابع محدودیت‌های بیشتری برای نام‌های خود دارند. +{{< /note >}} + +## UIDها + +{{< glossary_definition term_id="uid" length="all" >}} + +UIDهای کوبرنتیز شناسه‌های یکتای جهانی هستند (که با عنوان UUID نیز شناخته می‌شوند). +UUIDها مطابق با استانداردهای ISO/IEC 9834-8 و ITU-T X.667 تعریف شده‌اند. + +## {{% heading "whatsnext" %}} + +* درباره [برچسب‌ها](/docs/concepts/overview/working-with-objects/labels/) و [حاشیه‌نویس‌ها](/docs/concepts/overview/working-with-objects/annotations/) در کوبرنتیز مطالعه کنید. +* سند طراحی [شناسه‌ها و نام‌ها در کوبرنتیز](https://git.k8s.io/design-proposals-archive/architecture/identifiers.md) را ببینید. diff --git a/content/fa/docs/concepts/overview/working-with-objects/namespaces.md b/content/fa/docs/concepts/overview/working-with-objects/namespaces.md new file mode 100644 index 0000000000000..c99fe48932cd7 --- /dev/null +++ b/content/fa/docs/concepts/overview/working-with-objects/namespaces.md @@ -0,0 +1,166 @@ +--- +reviewers: +- xirehat +title: فضاهای نام +api_metadata: +- apiVersion: "v1" + kind: "Namespace" +content_type: concept +weight: 45 +--- + + + +در کوبرنتیز، _namespace_‌ها مکانیزمی برای جداسازی گروهی از منابع درون یک خوشه فراهم می‌کنند. +نام منابع باید در داخل یک فضای نام یکتا باشد، اما نیازی نیست در کل خوشه یکتا باشد. +محدوده‌بندی بر پایه فضای نام فقط برای اشیای دارای فضای نام کاربرد دارد +_(مانند Deploymentها، Serviceها و غیره)_ و برای اشیای سراسری خوشه +_(مانند StorageClass، Nodeها، PersistentVolumeها و ...)‌_ صدق نمی‌کند. + + + +## چه زمانی از چند فضای نام استفاده کنیم؟ + +فضای نام برای محیط‌هایی طراحی شده‌اند که کاربران زیادی در تیم‌ها یا پروژه‌های مختلف فعالیت دارند. +در خوشه‌هایی که تنها چند کاربر تا چند ده کاربر دارند، معمولاً نیازی به ایجاد فضای نام یا فکر کردن به آن‌ها ندارید. +زمانی از فضای نام استفاده کنید که به قابلیت‌هایی که فراهم می‌کنند نیاز دارید. + +فضای نام یک محدوده برای نام‌ها ایجاد می‌کنند. +نام منابع باید در داخل یک فضای نام یکتا باشد، اما نیازی نیست در تمام فضای نام یکتا باشد. +فضای نام را نمی‌توان درون هم تو در تو کرد و هر منبع کوبرنتیز تنها می‌تواند در یک فضای نام باشد. + +فضای نام راهی برای تقسیم منابع خوشه بین چند کاربر هستند +(از طریق [سهمیه منابع](/docs/concepts/policy/resource-quotas/)). + +برای جدا کردن منابعی که فقط کمی با هم تفاوت دارند—مثلاً نسخه‌های مختلف یک نرم‌افزار— +لازم نیست از فضای نام جداگانه استفاده کنید؛ در عوض از +{{< glossary_tooltip text="برچسب" term_id="label" >}}‌ برای متمایز کردن منابع در همان فضای نام استفاده کنید. + +{{< note >}} +برای یک خوشه تولیدی، توصیه می‌شود از فضای نام پیش‌فرض (`default`) استفاده نکنید. +در عوض، فضای نام جدید بسازید و از آن‌ها استفاده کنید. +{{< /note >}} + +## فضای نام‌های اولیه + +کوبرنتیز با چهار فضای نام اولیه آغاز به کار می‌کند: + +`default` +: کوبرنتیز این فضای نام را به‌صورت پیش‌فرض در اختیار می‌گذارد تا بتوانید بلافاصله از خوشه جدید خود استفاده کنید، بدون آن‌که ابتدا نیاز به ایجاد یک فضای نام داشته باشید. + +`kube-node-lease` +: این فضای نام شامل اشیای [Lease](/docs/concepts/architecture/leases/) مرتبط با هر نود است. +اجاره‌نامه‌های نود به kubelet اجازه می‌دهند [heartbeat](/docs/concepts/architecture/nodes/#node-heartbeats) ارسال کند +تا control plane بتواند خرابی نود را تشخیص دهد. + +`kube-public` +: این فضای نام توسط *تمامی* کلاینت‌ها (از جمله کلاینت‌های غیرمعتبرشده) قابل خواندن است. +این فضای نام عمدتاً برای استفاده داخلی خوشه رزرو شده، در صورتی که منابعی باید به‌صورت عمومی در کل خوشه قابل مشاهده و خواندن باشند. +جنبه عمومی بودن این فضای نام صرفاً یک قرارداد است، نه یک الزام. + +`kube-system` +: این فضای نام مخصوص اشیایی است که توسط سیستم کوبرنتیز ایجاد می‌شوند. + +## کار با فضاهای نام + +ایجاد و حذف فضاهای نام در +[مستندات راهنمای مدیریت برای فضاهای نام](/docs/tasks/administer-cluster/namespaces) توضیح داده شده است. + +{{< note >}} +از ایجاد فضاهای نام با پیشوند `kube-` خودداری کنید، +زیرا این پیشوند برای فضاهای نام سیستمی کوبرنتیز رزرو شده است. +{{< /note >}} + +### مشاهده فضاهای نام + +برای فهرست‌کردن فضاهای نام فعلی در یک خوشه می‌توانید از دستور زیر استفاده کنید: + +```shell +kubectl get namespace +``` +``` +NAME STATUS AGE +default Active 1d +kube-node-lease Active 1d +kube-public Active 1d +kube-system Active 1d +``` + + +### تنظیم فضای نام برای یک درخواست + +برای تنظیم فضای نام برای یک درخواست جاری، از فلگ `--namespace` استفاده کنید. + +برای مثال: + +```shell +kubectl run nginx --image=nginx --namespace= +kubectl get pods --namespace= +``` + +### تنظیم اولویت فضای نام + +شما می‌توانید فضای نام را برای تمام دستورات بعدی kubectl در آن زمینه به طور دائم ذخیره کنید. + +```shell +kubectl config set-context --current --namespace= +# Validate it +kubectl config view --minify | grep namespace: +``` + +## فضاهای نام و DNS + +هنگامی که یک [Service](/docs/concepts/services-networking/service/) ایجاد می‌کنید، +یک [ورودی DNS](/docs/concepts/services-networking/dns-pod-service/) متناظر با آن ساخته می‌شود. +این ورودی به شکل `..svc.cluster.local` است. +یعنی اگر یک کانتینر فقط از `` استفاده کند، به سرویسی که در فضای نام محلی قرار دارد ارجاع داده می‌شود. +این ویژگی زمانی مفید است که بخواهید از همان پیکربندی در چند فضای نام مانند توسعه (Development)، آزمایشی (Staging) و تولید (Production) استفاده کنید. +اگر بخواهید از یک فضای نام به فضای نام دیگر دسترسی داشته باشید، باید از نام دامنه کامل (FQDN) استفاده کنید. + +در نتیجه، تمام نام‌های فضای نام باید +[برچسب‌های معتبر RFC 1123 DNS](/docs/concepts/overview/working-with-objects/names/#dns-label-names) باشند. + +{{< warning >}} +اگر فضاهای نامی با همان نام [دامنه‌های سطح‌بالای عمومی (TLD)](https://data.iana.org/TLD/tlds-alpha-by-domain.txt) ایجاد شوند، +سرویس‌های درون این فضاهای نام می‌توانند نام‌های کوتاه DNS داشته باشند که با رکوردهای DNS عمومی تداخل پیدا می‌کنند. +اگر بار کاری (Workload) از هر فضای نامی یک جستجوی DNS بدون [نقطه پایانی](https://datatracker.ietf.org/doc/html/rfc1034#page-8) انجام دهد، +به آن سرویس‌ها ارجاع داده می‌شود و نسبت به DNS عمومی اولویت خواهد داشت. + +برای جلوگیری از این مسئله، دسترسی برای ایجاد فضاهای نام را به کاربران مورد اعتماد محدود کنید. +در صورت نیاز، می‌توانید کنترل‌های امنیتی شخص ثالث مانند +[Admission Webhookها](/docs/reference/access-authn-authz/extensible-admission-controllers/) +را پیکربندی کنید تا از ایجاد هر فضای نام با نام یکی از [TLDهای عمومی](https://data.iana.org/TLD/tlds-alpha-by-domain.txt) جلوگیری شود. +{{< /warning >}} + +## همه اشیاء در یک فضای نام قرار ندارند + +بیشتر منابع کوبرنتیز (مانند پادها، سرویس‌ها، کنترلرهای تکرار و غیره) در یک فضای نام قرار دارند. +اما خود منابع فضای نام، در فضای نام دیگری قرار ندارند. +همچنین منابع سطح پایین مانند +[nodes](/docs/concepts/architecture/nodes/) و +[persistentVolumes](/docs/concepts/storage/persistent-volumes/) +در هیچ فضای نامی قرار ندارند. + +برای مشاهده اینکه کدام منابع کوبرنتیز در یک فضای نام هستند و کدام نیستند: + +```shell +# In a namespace +kubectl api-resources --namespaced=true + +# Not in a namespace +kubectl api-resources --namespaced=false +``` + +## برچسب‌گذاری خودکار + +{{< feature-state for_k8s_version="1.22" state="stable" >}} + +سطح کنترل کوبرنتیز یک {{< glossary_tooltip text="برچسب" term_id="label" >}} تغییرناپذیر +با کلید `kubernetes.io/metadata.name` روی تمام فضاهای نام تنظیم می‌کند. +مقدار این برچسب، نام فضای نام است. + +## {{% heading "whatsnext" %}} + +* درباره [ایجاد یک فضای نام جدید](/docs/tasks/administer-cluster/namespaces/#creating-a-new-namespace) بیشتر بیاموزید. +* درباره [حذف یک فضای نام](/docs/tasks/administer-cluster/namespaces/#deleting-a-namespace) بیشتر مطالعه کنید. + diff --git a/content/fa/docs/concepts/overview/working-with-objects/object-management.md b/content/fa/docs/concepts/overview/working-with-objects/object-management.md new file mode 100644 index 0000000000000..747b37f5c7811 --- /dev/null +++ b/content/fa/docs/concepts/overview/working-with-objects/object-management.md @@ -0,0 +1,168 @@ +--- +title: مدیریت اشیاء کوبرنتیز +content_type: concept +weight: 20 +--- + + +ابزار خط فرمان `kubectl` از چندین روش مختلف برای ایجاد و مدیریت +{{< glossary_tooltip text="اشیاء" term_id="object" >}} کوبرنتیز پشتیبانی می‌کند. +این سند نمای کلی‌ای از این روش‌های مختلف ارائه می‌دهد. +برای جزئیات بیشتر درباره مدیریت اشیاء با استفاده از Kubectl، به [کتاب Kubectl](https://kubectl.docs.kubernetes.io) مراجعه کنید. + + + +## تکنیک‌های مدیریت + +{{< warning >}} +یک شیء در کوبرنتیز باید تنها با یک روش مدیریت شود. ترکیب چند روش برای یک شیء واحد می‌تواند منجر به رفتار نامشخص شود. +{{< /warning >}} + +| Management technique | Operates on |Recommended environment | Supported writers | Learning curve | +|----------------------------------|----------------------|------------------------|--------------------|----------------| +| Imperative commands | Live objects | Development projects | 1+ | Lowest | +| Imperative object configuration | Individual files | Production projects | 1 | Moderate | +| Declarative object configuration | Directories of files | Production projects | 1+ | Highest | + +## دستورات امری (Imperative) + +در روش استفاده از دستورات امری، کاربر به‌صورت مستقیم روی اشیای زنده در خوشه عمل می‌کند. +کاربر عملیات مورد نظر را به‌عنوان آرگومان یا فلگ به دستور `kubectl` ارائه می‌دهد. + +این روش برای شروع کار یا انجام یک وظیفه موقتی در خوشه توصیه می‌شود. +از آنجا که این تکنیک به‌طور مستقیم روی اشیای زنده عمل می‌کند، سابقه‌ای از پیکربندی‌های قبلی نگهداری نمی‌کند. + +### مثال‌ها + +اجرای یک نمونه از کانتینر nginx با ایجاد یک شیء Deployment: + +```sh +kubectl create deployment nginx --image nginx +``` + +### ملاحظات (مزایا و معایب) + +مزایا نسبت به پیکربندی شیء: + +- دستورات با یک کلمه عملیاتی ساده بیان می‌شوند. +- دستورات تنها با یک مرحله تغییرات را در خوشه اعمال می‌کنند. + +معایب نسبت به پیکربندی شیء: + +- دستورات با فرایندهای بررسی تغییرات یکپارچه نیستند. +- دستورات سابقه‌ای از تغییرات برای حسابرسی ارائه نمی‌دهند. +- دستورات هیچ منبعی از سوابق به‌جز وضعیت فعلی شیء فراهم نمی‌کنند. +- دستورات الگو (template)‌ای برای ایجاد اشیای جدید در اختیار نمی‌گذارند. + +## پیکربندی امری شیء + +در پیکربندی امری شیء، دستور `kubectl` نوع عملیات (مانند create، replace و غیره)، فلگ‌های اختیاری و حداقل یک نام فایل را مشخص می‌کند. +فایل مشخص‌شده باید شامل تعریف کامل شیء به فرمت YAML یا JSON باشد. + +برای اطلاعات بیشتر درباره تعریف اشیاء به [مرجع API](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/) مراجعه کنید. + +{{< warning >}} +دستور `replace` در روش امری، مشخصات موجود (spec) را با نمونه جدید جایگزین می‌کند +و هر تغییری که در فایل پیکربندی نیامده باشد از بین می‌برد. +این روش نباید برای انواع منابعی که مشخصات آن‌ها به‌صورت مستقل از فایل پیکربندی به‌روزرسانی می‌شود استفاده شود. +برای مثال، سرویس‌هایی از نوع `LoadBalancer` ممکن است فیلد `externalIPs` آن‌ها توسط خوشه +به‌صورت مستقل از فایل پیکربندی به‌روزرسانی شود. +{{< /warning >}} + +### مثال‌ها + +اشیاء تعریف شده در یک فایل پیکربندی را ایجاد کنید: + +```sh +kubectl create -f nginx.yaml +``` + +اشیاء تعریف شده در دو فایل پیکربندی را حذف کنید: + +```sh +kubectl delete -f nginx.yaml -f redis.yaml +``` + +اشیاء تعریف شده در یک فایل پیکربندی را با بازنویسی پیکربندی زنده به‌روزرسانی کنید: + +```sh +kubectl replace -f nginx.yaml +``` + +### ملاحظات (مزایا و معایب) + +مزایا نسبت به دستورات امری: + +- پیکربندی شیء را می‌توان در سیستم‌های کنترل نسخه مانند Git ذخیره کرد. +- پیکربندی شیء می‌تواند با فرایندهایی مانند بررسی تغییرات پیش از ارسال (push) و مسیرهای حسابرسی یکپارچه شود. +- پیکربندی شیء الگو (template)‌ای برای ایجاد اشیای جدید فراهم می‌کند. + +معایب نسبت به دستورات امری: + +- پیکربندی شیء نیازمند درک ابتدایی از ساختار (schema) شیء است. +- پیکربندی شیء نیاز به گام اضافی نوشتن فایل YAML دارد. + +مزایا نسبت به پیکربندی اعلانی شیء: + +- رفتار پیکربندی امری شیء ساده‌تر و قابل درک‌تر است. +- از نسخه 1.5 کوبرنتیز، پیکربندی امری شیء پایداری بیشتری داشته است. + +معایب نسبت به پیکربندی اعلانی شیء: + +- پیکربندی امری شیء بیشتر برای فایل‌ها مناسب است، نه دایرکتوری‌ها. +- به‌روزرسانی‌هایی که روی اشیای زنده اعمال می‌شوند، باید در فایل‌های پیکربندی نیز منعکس شوند؛ + در غیر این صورت، در جایگزینی بعدی از بین خواهند رفت. + +## پیکربندی اعلانی شیء + +در روش پیکربندی اعلانی شیء، کاربر روی فایل‌های پیکربندی اشیاء که به‌صورت محلی ذخیره شده‌اند کار می‌کند، +اما عملیات مورد نظر (ایجاد، به‌روزرسانی، حذف) را به‌طور مستقیم مشخص نمی‌کند. +دستور `kubectl` به‌صورت خودکار بر اساس هر شیء، عملیات ایجاد، به‌روزرسانی یا حذف را تشخیص می‌دهد. +این روش امکان کار با دایرکتوری‌ها را فراهم می‌کند، جایی که ممکن است عملیات مختلفی روی اشیاء مختلف نیاز باشد. + +{{< note >}} +پیکربندی اعلانی شیء تغییراتی را که توسط نویسندگان دیگر ایجاد شده‌اند حفظ می‌کند، +حتی اگر این تغییرات به فایل پیکربندی بازگردانده نشده باشند. +این کار با استفاده از عملیات API به نام `patch` ممکن می‌شود +که فقط تفاوت‌های مشاهده‌شده را می‌نویسد، به‌جای آنکه کل پیکربندی شیء را با `replace` جایگزین کند. +{{< /note >}} + +### مثال‌ها + +تمام فایل‌های پیکربندی شیء در دایرکتوری `configs` را پردازش کرده و اشیای زنده را ایجاد یا patch کنید. +می‌توانید ابتدا با استفاده از `diff` تغییراتی که قرار است اعمال شوند را مشاهده کرده و سپس اجرا کنید: + +```sh +kubectl diff -f configs/ +kubectl apply -f configs/ +``` + +پردازش بازگشتی پوشه‌ها: + +```sh +kubectl diff -R -f configs/ +kubectl apply -R -f configs/ +``` + +### ملاحظات (مزایا و معایب) + +مزایا نسبت به پیکربندی امری شیء: + +- تغییراتی که مستقیماً روی اشیای زنده اعمال می‌شوند حفظ می‌گردند، حتی اگر این تغییرات به فایل‌های پیکربندی بازگردانده نشوند. +- پیکربندی اعلانی شیء پشتیبانی بهتری برای کار با دایرکتوری‌ها دارد و به‌طور خودکار نوع عملیات (ایجاد، patch، حذف) را برای هر شیء تشخیص می‌دهد. + +معایب نسبت به پیکربندی امری شیء: + +- پیکربندی اعلانی شیء در شرایطی که نتیجه‌ها غیرمنتظره باشند، دشوارتر برای اشکال‌زدایی و درک است. +- به‌روزرسانی‌های جزئی با استفاده از diff، عملیات merge و patch پیچیده‌تری ایجاد می‌کنند. + +## {{% heading "whatsnext" %}} + +- [مدیریت اشیای کوبرنتیز با استفاده از دستورات امری](/docs/tasks/manage-kubernetes-objects/imperative-command/) +- [مدیریت امری اشیای کوبرنتیز با استفاده از فایل‌های پیکربندی](/docs/tasks/manage-kubernetes-objects/imperative-config/) +- [مدیریت اعلانی اشیای کوبرنتیز با استفاده از فایل‌های پیکربندی](/docs/tasks/manage-kubernetes-objects/declarative-config/) +- [مدیریت اعلانی اشیای کوبرنتیز با استفاده از Kustomize](/docs/tasks/manage-kubernetes-objects/kustomization/) +- [مرجع دستورات Kubectl](/docs/reference/generated/kubectl/kubectl-commands/) +- [کتاب Kubectl](https://kubectl.docs.kubernetes.io) +- [مرجع API کوبرنتیز](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/) + diff --git a/content/fa/docs/concepts/overview/working-with-objects/owners-dependents.md b/content/fa/docs/concepts/overview/working-with-objects/owners-dependents.md new file mode 100644 index 0000000000000..e0336c522eb16 --- /dev/null +++ b/content/fa/docs/concepts/overview/working-with-objects/owners-dependents.md @@ -0,0 +1,84 @@ +--- +title: مالکان و تحت تکفل +content_type: concept +weight: 90 +--- + + + +در کوبرنتیز، برخی از {{< glossary_tooltip text="اشیاء" term_id="object" >}} +*مالک* اشیای دیگر هستند. +برای مثال، یک {{}} +مالک مجموعه‌ای از پادها است. اشیایی که دارای مالک هستند، *وابسته* به آن مالک محسوب می‌شوند. + +مالکیت با مکانیزم [برچسب‌ها و انتخابگرها](/docs/concepts/overview/working-with-objects/labels/) که برخی منابع نیز از آن استفاده می‌کنند تفاوت دارد. +برای مثال، یک Service که اشیای `EndpointSlice` ایجاد می‌کند، +از {{}} استفاده می‌کند تا control plane بتواند مشخص کند +کدام اشیای `EndpointSlice` برای آن Service استفاده می‌شوند. +علاوه بر برچسب‌ها، هر `EndpointSlice` که به نمایندگی از یک Service مدیریت می‌شود، دارای مرجع مالک است. +مراجع مالک به بخش‌های مختلف کوبرنتیز کمک می‌کنند تا با اشیایی که کنترلشان را بر عهده ندارند تداخلی نداشته باشند. + +## مراجع مالک در مشخصات شیء + +اشیای وابسته دارای فیلدی به نام `metadata.ownerReferences` هستند +که به شیء مالک آن‌ها ارجاع می‌دهد. +یک مرجع مالک معتبر شامل نام شیء و یک {{}} +در همان {{}} +با شیء وابسته است. +کوبرنتیز مقدار این فیلد را به‌صورت خودکار تنظیم می‌کند +برای اشیایی که وابسته به منابعی مانند ReplicaSet، DaemonSet، Deployment، Job، CronJob و ReplicationController هستند. +همچنین می‌توانید این روابط را به‌صورت دستی با تغییر مقدار این فیلد پیکربندی کنید، +اما معمولاً نیازی به این کار نیست و می‌توان اجازه داد کوبرنتیز به‌صورت خودکار این روابط را مدیریت کند. + +اشیای وابسته همچنین دارای فیلدی به نام `ownerReferences.blockOwnerDeletion` هستند +که یک مقدار بولی می‌پذیرد و کنترل می‌کند آیا وابسته خاصی می‌تواند +از حذف شدن شیء مالک توسط مکانیزم garbage collection جلوگیری کند یا نه. +کوبرنتیز این فیلد را به‌طور خودکار روی مقدار `true` قرار می‌دهد اگر +یک {{}} +(مثلاً کنترلر Deployment) مقدار فیلد `metadata.ownerReferences` را تنظیم کند. +شما همچنین می‌توانید مقدار فیلد `blockOwnerDeletion` را به‌صورت دستی تنظیم کنید +تا مشخص کنید کدام وابسته‌ها از حذف مالک جلوگیری کنند. + +یک کنترل‌کننده پذیرش (admission controller) در کوبرنتیز، دسترسی کاربران برای تغییر این فیلد در منابع وابسته را کنترل می‌کند، +بر اساس مجوز حذف شیء مالک. +این کنترل باعث می‌شود کاربران غیرمجاز نتوانند حذف شیء مالک را به تأخیر بیندازند. + +{{< note >}} +ارجاع به مالک در فضای نام متفاوت (cross-namespace owner references) به‌صورت طراحی‌شده مجاز نیستند. +وابسته‌های دارای فضای نام می‌توانند مالک‌های خوشه‌ای (cluster-scoped) یا دارای فضای نام را مشخص کنند. +یک مالک دارای فضای نام **باید** در همان فضای نام با شیء وابسته وجود داشته باشد. +در غیر این صورت، مرجع مالک بی‌اعتبار تلقی می‌شود و شیء وابسته در صورت غیبت تمام مالک‌ها، حذف خواهد شد. + +وابسته‌هایی که در سطح خوشه هستند، تنها می‌توانند به مالک‌هایی در سطح خوشه ارجاع دهند. +از نسخه 1.20 به بعد، اگر یک وابسته خوشه‌ای، نوعی با فضای نام را به‌عنوان مالک مشخص کند، +این مرجع مالک غیرقابل حل در نظر گرفته می‌شود و آن شیء قابل جمع‌آوری توسط garbage collector نخواهد بود. + +در نسخه 1.20 و بالاتر، اگر garbage collector یک `ownerReference` نامعتبر از نوع cross-namespace شناسایی کند، +یا وابسته خوشه‌ای باشد که مرجع مالک آن به نوعی namespaced اشاره دارد، +یک Event هشدار با دلیل `OwnerRefInvalidNamespace` و شیء نامعتبر به‌عنوان `involvedObject` ثبت می‌شود. +می‌توانید برای بررسی چنین Eventهایی این دستور را اجرا کنید: +`kubectl get events -A --field-selector=reason=OwnerRefInvalidNamespace` +{{< /note >}} + +## مالکیت و پایان‌دهنده‌ها (Finalizers) + +وقتی به کوبرنتیز دستور می‌دهید که یک منبع (Resource) را حذف کند، سرور API به کنترل‌کننده مدیریت‌کننده اجازه می‌دهد +تا هرگونه [قانون پایان‌دهنده (finalizer)](/docs/concepts/overview/working-with-objects/finalizers/) برای آن منبع را پردازش کند. +{{}} از حذف تصادفی منابعی که خوشه ممکن است هنوز به آن‌ها نیاز داشته باشد جلوگیری می‌کنند. +برای مثال، اگر بخواهید یک [PersistentVolume](/docs/concepts/storage/persistent-volumes/) را حذف کنید که هنوز توسط یک Pod در حال استفاده است، +حذف فوراً انجام نمی‌شود، زیرا آن `PersistentVolume` دارای پایان‌دهنده `kubernetes.io/pv-protection` است. +در عوض، [حجم](/docs/concepts/storage/volumes/) در وضعیت `Terminating` باقی می‌ماند تا زمانی که کوبرنتیز پایان‌دهنده را حذف کند، +که تنها پس از آن اتفاق می‌افتد که `PersistentVolume` دیگر به هیچ Pod متصل نباشد. + +کوبرنتیز همچنین هنگام استفاده از [حذف آبشاری foreground یا orphan](/docs/concepts/architecture/garbage-collection/#cascading-deletion)، +به منبع مالک پایان‌دهنده‌هایی اضافه می‌کند. +در حذف foreground، پایان‌دهنده `foreground` افزوده می‌شود تا کنترل‌کننده ملزم شود +منابع وابسته‌ای که `ownerReferences.blockOwnerDeletion=true` دارند را قبل از حذف منبع مالک، حذف کند. +اگر سیاست حذف orphan را مشخص کنید، کوبرنتیز پایان‌دهنده `orphan` را اضافه می‌کند +تا کنترل‌کننده پس از حذف شیء مالک، منابع وابسته را نادیده بگیرد. + +## {{% heading "whatsnext" %}} + +* اطلاعات بیشتری درباره [پایان‌دهنده‌های کوبرنتیز](/docs/concepts/overview/working-with-objects/finalizers/) کسب کنید. +* درباره [جمع‌آوری زباله (Garbage Collection)](/docs/concepts/architecture/garbage-collection) بیاموزید. +* مرجع API مربوط به [metadata اشیاء](/docs/reference/kubernetes-api/common-definitions/object-meta/#System) را مطالعه کنید. diff --git a/content/fa/docs/concepts/services-networking/dual-stack.md b/content/fa/docs/concepts/services-networking/dual-stack.md new file mode 100644 index 0000000000000..abff740480a47 --- /dev/null +++ b/content/fa/docs/concepts/services-networking/dual-stack.md @@ -0,0 +1,311 @@ +--- +title: دو پشته IPv4/IPv6 +description: >- + کوبرنتیز به شما امکان می‌دهد شبکه IPv4 تک پشته‌ای، شبکه IPv6 تک پشته‌ای یا شبکه دو پشته‌ای را با هر دو خانواده شبکه فعال پیکربندی کنید. این صفحه نحوه‌ی پیکربندی را توضیح می‌دهد.. +feature: + title: دو پشته IPv4/IPv6 + description: > + تخصیص آدرس‌های IPv4 و IPv6 به پادها و سرویس‌ها +content_type: concept +reviewers: + - xirehat +weight: 90 +--- + + + +{{< feature-state for_k8s_version="v1.23" state="stable" >}} + +IPv4/IPv6 dual-stack networking enables the allocation of both IPv4 and IPv6 addresses to +{{< glossary_tooltip text="Pods" term_id="pod" >}} and {{< glossary_tooltip text="Services" term_id="service" >}}. + +IPv4/IPv6 dual-stack networking is enabled by default for your Kubernetes cluster starting in +1.21, allowing the simultaneous assignment of both IPv4 and IPv6 addresses. + + + +## Supported Features + +IPv4/IPv6 dual-stack on your Kubernetes cluster provides the following features: + +* Dual-stack Pod networking (a single IPv4 and IPv6 address assignment per Pod) +* IPv4 and IPv6 enabled Services +* Pod off-cluster egress routing (eg. the Internet) via both IPv4 and IPv6 interfaces + +## Prerequisites + +The following prerequisites are needed in order to utilize IPv4/IPv6 dual-stack Kubernetes clusters: + +* Kubernetes 1.20 or later + + For information about using dual-stack services with earlier + Kubernetes versions, refer to the documentation for that version + of Kubernetes. + +* Provider support for dual-stack networking (Cloud provider or otherwise must be able to provide + Kubernetes nodes with routable IPv4/IPv6 network interfaces) +* A [network plugin](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/) that + supports dual-stack networking. + +## Configure IPv4/IPv6 dual-stack + +To configure IPv4/IPv6 dual-stack, set dual-stack cluster network assignments: + +* kube-apiserver: + * `--service-cluster-ip-range=,` +* kube-controller-manager: + * `--cluster-cidr=,` + * `--service-cluster-ip-range=,` + * `--node-cidr-mask-size-ipv4|--node-cidr-mask-size-ipv6` defaults to /24 for IPv4 and /64 for IPv6 +* kube-proxy: + * `--cluster-cidr=,` +* kubelet: + * `--node-ip=,` + * This option is required for bare metal dual-stack nodes (nodes that do not define a + cloud provider with the `--cloud-provider` flag). If you are using a cloud provider + and choose to override the node IPs chosen by the cloud provider, set the + `--node-ip` option. + * (The legacy built-in cloud providers do not support dual-stack `--node-ip`.) + +{{< note >}} +An example of an IPv4 CIDR: `10.244.0.0/16` (though you would supply your own address range) + +An example of an IPv6 CIDR: `fdXY:IJKL:MNOP:15::/64` (this shows the format but is not a valid +address - see [RFC 4193](https://tools.ietf.org/html/rfc4193)) +{{< /note >}} + +## Services + +You can create {{< glossary_tooltip text="Services" term_id="service" >}} which can use IPv4, IPv6, or both. + +The address family of a Service defaults to the address family of the first service cluster IP +range (configured via the `--service-cluster-ip-range` flag to the kube-apiserver). + +When you define a Service you can optionally configure it as dual stack. To specify the behavior you want, you +set the `.spec.ipFamilyPolicy` field to one of the following values: + +* `SingleStack`: Single-stack service. The control plane allocates a cluster IP for the Service, + using the first configured service cluster IP range. +* `PreferDualStack`: Allocates both IPv4 and IPv6 cluster IPs for the Service when dual-stack is enabled. If dual-stack is not enabled or supported, it falls back to single-stack behavior. +* `RequireDualStack`: Allocates Service `.spec.clusterIPs` from both IPv4 and IPv6 address ranges when dual-stack is enabled. If dual-stack is not enabled or supported, the Service API object creation fails. + * Selects the `.spec.clusterIP` from the list of `.spec.clusterIPs` based on the address family + of the first element in the `.spec.ipFamilies` array. + +If you would like to define which IP family to use for single stack or define the order of IP +families for dual-stack, you can choose the address families by setting an optional field, +`.spec.ipFamilies`, on the Service. + +{{< note >}} +The `.spec.ipFamilies` field is conditionally mutable: you can add or remove a secondary +IP address family, but you cannot change the primary IP address family of an existing Service. +{{< /note >}} + +You can set `.spec.ipFamilies` to any of the following array values: + +- `["IPv4"]` +- `["IPv6"]` +- `["IPv4","IPv6"]` (dual stack) +- `["IPv6","IPv4"]` (dual stack) + +The first family you list is used for the legacy `.spec.clusterIP` field. + +### Dual-stack Service configuration scenarios + +These examples demonstrate the behavior of various dual-stack Service configuration scenarios. + +#### Dual-stack options on new Services + +1. This Service specification does not explicitly define `.spec.ipFamilyPolicy`. When you create + this Service, Kubernetes assigns a cluster IP for the Service from the first configured + `service-cluster-ip-range` and sets the `.spec.ipFamilyPolicy` to `SingleStack`. ([Services + without selectors](/docs/concepts/services-networking/service/#services-without-selectors) and + [headless Services](/docs/concepts/services-networking/service/#headless-services) with selectors + will behave in this same way.) + + {{% code_sample file="service/networking/dual-stack-default-svc.yaml" %}} + +1. This Service specification explicitly defines `PreferDualStack` in `.spec.ipFamilyPolicy`. When + you create this Service on a dual-stack cluster, Kubernetes assigns both IPv4 and IPv6 + addresses for the service. The control plane updates the `.spec` for the Service to record the IP + address assignments. The field `.spec.clusterIPs` is the primary field, and contains both assigned + IP addresses; `.spec.clusterIP` is a secondary field with its value calculated from + `.spec.clusterIPs`. + + * For the `.spec.clusterIP` field, the control plane records the IP address that is from the + same address family as the first service cluster IP range. + * On a single-stack cluster, the `.spec.clusterIPs` and `.spec.clusterIP` fields both only list + one address. + * On a cluster with dual-stack enabled, specifying `RequireDualStack` in `.spec.ipFamilyPolicy` + behaves the same as `PreferDualStack`. + + {{% code_sample file="service/networking/dual-stack-preferred-svc.yaml" %}} + +1. This Service specification explicitly defines `IPv6` and `IPv4` in `.spec.ipFamilies` as well + as defining `PreferDualStack` in `.spec.ipFamilyPolicy`. When Kubernetes assigns an IPv6 and + IPv4 address in `.spec.clusterIPs`, `.spec.clusterIP` is set to the IPv6 address because that is + the first element in the `.spec.clusterIPs` array, overriding the default. + + {{% code_sample file="service/networking/dual-stack-preferred-ipfamilies-svc.yaml" %}} + +#### Dual-stack defaults on existing Services + +These examples demonstrate the default behavior when dual-stack is newly enabled on a cluster +where Services already exist. (Upgrading an existing cluster to 1.21 or beyond will enable +dual-stack.) + +1. When dual-stack is enabled on a cluster, existing Services (whether `IPv4` or `IPv6`) are + configured by the control plane to set `.spec.ipFamilyPolicy` to `SingleStack` and set + `.spec.ipFamilies` to the address family of the existing Service. The existing Service cluster IP + will be stored in `.spec.clusterIPs`. + + {{% code_sample file="service/networking/dual-stack-default-svc.yaml" %}} + + You can validate this behavior by using kubectl to inspect an existing service. + + ```shell + kubectl get svc my-service -o yaml + ``` + + ```yaml + apiVersion: v1 + kind: Service + metadata: + labels: + app.kubernetes.io/name: MyApp + name: my-service + spec: + clusterIP: 10.0.197.123 + clusterIPs: + - 10.0.197.123 + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack + ports: + - port: 80 + protocol: TCP + targetPort: 80 + selector: + app.kubernetes.io/name: MyApp + type: ClusterIP + status: + loadBalancer: {} + ``` + +1. When dual-stack is enabled on a cluster, existing + [headless Services](/docs/concepts/services-networking/service/#headless-services) with selectors are + configured by the control plane to set `.spec.ipFamilyPolicy` to `SingleStack` and set + `.spec.ipFamilies` to the address family of the first service cluster IP range (configured via the + `--service-cluster-ip-range` flag to the kube-apiserver) even though `.spec.clusterIP` is set to + `None`. + + {{% code_sample file="service/networking/dual-stack-default-svc.yaml" %}} + + You can validate this behavior by using kubectl to inspect an existing headless service with selectors. + + ```shell + kubectl get svc my-service -o yaml + ``` + + ```yaml + apiVersion: v1 + kind: Service + metadata: + labels: + app.kubernetes.io/name: MyApp + name: my-service + spec: + clusterIP: None + clusterIPs: + - None + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack + ports: + - port: 80 + protocol: TCP + targetPort: 80 + selector: + app.kubernetes.io/name: MyApp + ``` + +#### Switching Services between single-stack and dual-stack + +Services can be changed from single-stack to dual-stack and from dual-stack to single-stack. + +1. To change a Service from single-stack to dual-stack, change `.spec.ipFamilyPolicy` from + `SingleStack` to `PreferDualStack` or `RequireDualStack` as desired. When you change this + Service from single-stack to dual-stack, Kubernetes assigns the missing address family so that the + Service now has IPv4 and IPv6 addresses. + + Edit the Service specification updating the `.spec.ipFamilyPolicy` from `SingleStack` to `PreferDualStack`. + + Before: + + ```yaml + spec: + ipFamilyPolicy: SingleStack + ``` + + After: + + ```yaml + spec: + ipFamilyPolicy: PreferDualStack + ``` + +1. To change a Service from dual-stack to single-stack, change `.spec.ipFamilyPolicy` from + `PreferDualStack` or `RequireDualStack` to `SingleStack`. When you change this Service from + dual-stack to single-stack, Kubernetes retains only the first element in the `.spec.clusterIPs` + array, and sets `.spec.clusterIP` to that IP address and sets `.spec.ipFamilies` to the address + family of `.spec.clusterIPs`. + +### Headless Services without selector + +For [Headless Services without selectors](/docs/concepts/services-networking/service/#without-selectors) +and without `.spec.ipFamilyPolicy` explicitly set, the `.spec.ipFamilyPolicy` field defaults to +`RequireDualStack`. + +### Service type LoadBalancer + +To provision a dual-stack load balancer for your Service: + +* Set the `.spec.type` field to `LoadBalancer` +* Set `.spec.ipFamilyPolicy` field to `PreferDualStack` or `RequireDualStack` + +{{< note >}} +To use a dual-stack `LoadBalancer` type Service, your cloud provider must support IPv4 and IPv6 +load balancers. +{{< /note >}} + +## Egress traffic + +If you want to enable egress traffic in order to reach off-cluster destinations (eg. the public +Internet) from a Pod that uses non-publicly routable IPv6 addresses, you need to enable the Pod to +use a publicly routed IPv6 address via a mechanism such as transparent proxying or IP +masquerading. The [ip-masq-agent](https://github.com/kubernetes-sigs/ip-masq-agent) project +supports IP masquerading on dual-stack clusters. + +{{< note >}} +Ensure your {{< glossary_tooltip text="CNI" term_id="cni" >}} provider supports IPv6. +{{< /note >}} + +## Windows support + +Kubernetes on Windows does not support single-stack "IPv6-only" networking. However, +dual-stack IPv4/IPv6 networking for pods and nodes with single-family services +is supported. + +You can use IPv4/IPv6 dual-stack networking with `l2bridge` networks. + +{{< note >}} +Overlay (VXLAN) networks on Windows **do not** support dual-stack networking. +{{< /note >}} + +You can read more about the different network modes for Windows within the +[Networking on Windows](/docs/concepts/services-networking/windows-networking#network-modes) topic. + +## {{% heading "whatsnext" %}} + +* [Validate IPv4/IPv6 dual-stack](/docs/tasks/network/validate-dual-stack) networking +* [Enable dual-stack networking using kubeadm](/docs/setup/production-environment/tools/kubeadm/dual-stack-support/) + diff --git a/content/fa/docs/concepts/services-networking/service.md b/content/fa/docs/concepts/services-networking/service.md new file mode 100644 index 0000000000000..9925cca8eb70e --- /dev/null +++ b/content/fa/docs/concepts/services-networking/service.md @@ -0,0 +1,1084 @@ +--- +reviewers: +- xirehat +title: Service +api_metadata: +- apiVersion: "v1" + kind: "Service" +feature: + title: کشف سرویس و تعادل بار + description: > + نیازی نیست برنامه خود را برای استفاده از یک سازوکار کشف سرویس ناآشنا تغییر دهید. کوبرنتیز به Podها نشانی IP مخصوص به خودشان و یک نام DNS واحد برای مجموعه‌ای از Podها می‌دهد و می‌تواند بین آنها تعادل بار ایجاد کند. +description: >- + یک برنامه‌ی در حال اجرا در خوشه شما را پشت یک نقطه‌ی پایانی رو به بیرون قرار می‌دهد، حتی زمانی که حجم کار بین چندین backend تقسیم شده باشد. +content_type: concept +weight: 10 +--- + + + + +{{< glossary_definition term_id="service" length="short" prepend="In Kubernetes, a Service is" >}} + +A key aim of Services in Kubernetes is that you don't need to modify your existing +application to use an unfamiliar service discovery mechanism. +You can run code in Pods, whether this is a code designed for a cloud-native world, or +an older app you've containerized. You use a Service to make that set of Pods available +on the network so that clients can interact with it. + +If you use a {{< glossary_tooltip term_id="deployment" >}} to run your app, +that Deployment can create and destroy Pods dynamically. From one moment to the next, +you don't know how many of those Pods are working and healthy; you might not even know +what those healthy Pods are named. +Kubernetes {{< glossary_tooltip term_id="pod" text="Pods" >}} are created and destroyed +to match the desired state of your cluster. Pods are ephemeral resources (you should not +expect that an individual Pod is reliable and durable). + +Each Pod gets its own IP address (Kubernetes expects network plugins to ensure this). +For a given Deployment in your cluster, the set of Pods running in one moment in +time could be different from the set of Pods running that application a moment later. + +This leads to a problem: if some set of Pods (call them "backends") provides +functionality to other Pods (call them "frontends") inside your cluster, +how do the frontends find out and keep track of which IP address to connect +to, so that the frontend can use the backend part of the workload? + +Enter _Services_. + + + +## Services in Kubernetes + +The Service API, part of Kubernetes, is an abstraction to help you expose groups of +Pods over a network. Each Service object defines a logical set of endpoints (usually +these endpoints are Pods) along with a policy about how to make those pods accessible. + +For example, consider a stateless image-processing backend which is running with +3 replicas. Those replicas are fungible—frontends do not care which backend +they use. While the actual Pods that compose the backend set may change, the +frontend clients should not need to be aware of that, nor should they need to keep +track of the set of backends themselves. + +The Service abstraction enables this decoupling. + +The set of Pods targeted by a Service is usually determined +by a {{< glossary_tooltip text="selector" term_id="selector" >}} that you +define. +To learn about other ways to define Service endpoints, +see [Services _without_ selectors](#services-without-selectors). + +If your workload speaks HTTP, you might choose to use an +[Ingress](/docs/concepts/services-networking/ingress/) to control how web traffic +reaches that workload. +Ingress is not a Service type, but it acts as the entry point for your +cluster. An Ingress lets you consolidate your routing rules into a single resource, so +that you can expose multiple components of your workload, running separately in your +cluster, behind a single listener. + +The [Gateway](https://gateway-api.sigs.k8s.io/#what-is-the-gateway-api) API for Kubernetes +provides extra capabilities beyond Ingress and Service. You can add Gateway to your cluster - +it is a family of extension APIs, implemented using +{{< glossary_tooltip term_id="CustomResourceDefinition" text="CustomResourceDefinitions" >}} - +and then use these to configure access to network services that are running in your cluster. + +### Cloud-native service discovery + +If you're able to use Kubernetes APIs for service discovery in your application, +you can query the {{< glossary_tooltip text="API server" term_id="kube-apiserver" >}} +for matching EndpointSlices. Kubernetes updates the EndpointSlices for a Service +whenever the set of Pods in a Service changes. + +For non-native applications, Kubernetes offers ways to place a network port or load +balancer in between your application and the backend Pods. + +Either way, your workload can use these [service discovery](#discovering-services) +mechanisms to find the target it wants to connect to. + +## Defining a Service + +A Service is an {{< glossary_tooltip text="object" term_id="object" >}} +(the same way that a Pod or a ConfigMap is an object). You can create, +view or modify Service definitions using the Kubernetes API. Usually +you use a tool such as `kubectl` to make those API calls for you. + +For example, suppose you have a set of Pods that each listen on TCP port 9376 +and are labelled as `app.kubernetes.io/name=MyApp`. You can define a Service to +publish that TCP listener: + +{{% code_sample file="service/simple-service.yaml" %}} + +Applying this manifest creates a new Service named "my-service" with the default +ClusterIP [service type](#publishing-services-service-types). The Service +targets TCP port 9376 on any Pod with the `app.kubernetes.io/name: MyApp` label. + +Kubernetes assigns this Service an IP address (the _cluster IP_), +that is used by the virtual IP address mechanism. For more details on that mechanism, +read [Virtual IPs and Service Proxies](/docs/reference/networking/virtual-ips/). + +The controller for that Service continuously scans for Pods that +match its selector, and then makes any necessary updates to the set of +EndpointSlices for the Service. + +The name of a Service object must be a valid +[RFC 1035 label name](/docs/concepts/overview/working-with-objects/names#rfc-1035-label-names). + + +{{< note >}} +A Service can map _any_ incoming `port` to a `targetPort`. By default and +for convenience, the `targetPort` is set to the same value as the `port` +field. +{{< /note >}} + +### Port definitions {#field-spec-ports} + +Port definitions in Pods have names, and you can reference these names in the +`targetPort` attribute of a Service. For example, we can bind the `targetPort` +of the Service to the Pod port in the following way: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: nginx + labels: + app.kubernetes.io/name: proxy +spec: + containers: + - name: nginx + image: nginx:stable + ports: + - containerPort: 80 + name: http-web-svc + +--- +apiVersion: v1 +kind: Service +metadata: + name: nginx-service +spec: + selector: + app.kubernetes.io/name: proxy + ports: + - name: name-of-service-port + protocol: TCP + port: 80 + targetPort: http-web-svc +``` + +This works even if there is a mixture of Pods in the Service using a single +configured name, with the same network protocol available via different +port numbers. This offers a lot of flexibility for deploying and evolving +your Services. For example, you can change the port numbers that Pods expose +in the next version of your backend software, without breaking clients. + +The default protocol for Services is +[TCP](/docs/reference/networking/service-protocols/#protocol-tcp); you can also +use any other [supported protocol](/docs/reference/networking/service-protocols/). + +Because many Services need to expose more than one port, Kubernetes supports +[multiple port definitions](#multi-port-services) for a single Service. +Each port definition can have the same `protocol`, or a different one. + +### Services without selectors + +Services most commonly abstract access to Kubernetes Pods thanks to the selector, +but when used with a corresponding set of +{{}} +objects and without a selector, the Service can abstract other kinds of backends, +including ones that run outside the cluster. + +For example: + +* You want to have an external database cluster in production, but in your + test environment you use your own databases. +* You want to point your Service to a Service in a different + {{< glossary_tooltip term_id="namespace" >}} or on another cluster. +* You are migrating a workload to Kubernetes. While evaluating the approach, + you run only a portion of your backends in Kubernetes. + +In any of these scenarios you can define a Service _without_ specifying a +selector to match Pods. For example: + +```yaml +apiVersion: v1 +kind: Service +metadata: + name: my-service +spec: + ports: + - name: http + protocol: TCP + port: 80 + targetPort: 9376 +``` + +Because this Service has no selector, the corresponding EndpointSlice +objects are not created automatically. You can map the Service +to the network address and port where it's running, by adding an EndpointSlice +object manually. For example: + +```yaml +apiVersion: discovery.k8s.io/v1 +kind: EndpointSlice +metadata: + name: my-service-1 # by convention, use the name of the Service + # as a prefix for the name of the EndpointSlice + labels: + # You should set the "kubernetes.io/service-name" label. + # Set its value to match the name of the Service + kubernetes.io/service-name: my-service +addressType: IPv4 +ports: + - name: http # should match with the name of the service port defined above + appProtocol: http + protocol: TCP + port: 9376 +endpoints: + - addresses: + - "10.4.5.6" + - addresses: + - "10.1.2.3" +``` + +#### Custom EndpointSlices + +When you create an [EndpointSlice](#endpointslices) object for a Service, you can +use any name for the EndpointSlice. Each EndpointSlice in a namespace must have a +unique name. You link an EndpointSlice to a Service by setting the +`kubernetes.io/service-name` {{< glossary_tooltip text="label" term_id="label" >}} +on that EndpointSlice. + +{{< note >}} +The endpoint IPs _must not_ be: loopback (127.0.0.0/8 for IPv4, ::1/128 for IPv6), or +link-local (169.254.0.0/16 and 224.0.0.0/24 for IPv4, fe80::/64 for IPv6). + +The endpoint IP addresses cannot be the cluster IPs of other Kubernetes Services, +because {{< glossary_tooltip term_id="kube-proxy" >}} doesn't support virtual IPs +as a destination. +{{< /note >}} + +For an EndpointSlice that you create yourself, or in your own code, +you should also pick a value to use for the label +[`endpointslice.kubernetes.io/managed-by`](/docs/reference/labels-annotations-taints/#endpointslicekubernetesiomanaged-by). +If you create your own controller code to manage EndpointSlices, consider using a +value similar to `"my-domain.example/name-of-controller"`. If you are using a third +party tool, use the name of the tool in all-lowercase and change spaces and other +punctuation to dashes (`-`). +If people are directly using a tool such as `kubectl` to manage EndpointSlices, +use a name that describes this manual management, such as `"staff"` or +`"cluster-admins"`. You should +avoid using the reserved value `"controller"`, which identifies EndpointSlices +managed by Kubernetes' own control plane. + +#### Accessing a Service without a selector {#service-no-selector-access} + +Accessing a Service without a selector works the same as if it had a selector. +In the [example](#services-without-selectors) for a Service without a selector, +traffic is routed to one of the two endpoints defined in +the EndpointSlice manifest: a TCP connection to 10.1.2.3 or 10.4.5.6, on port 9376. + +{{< note >}} +The Kubernetes API server does not allow proxying to endpoints that are not mapped to +pods. Actions such as `kubectl port-forward service/ forwardedPort:servicePort` where the service has no +selector will fail due to this constraint. This prevents the Kubernetes API server +from being used as a proxy to endpoints the caller may not be authorized to access. +{{< /note >}} + +An `ExternalName` Service is a special case of Service that does not have +selectors and uses DNS names instead. For more information, see the +[ExternalName](#externalname) section. + +### EndpointSlices + +{{< feature-state for_k8s_version="v1.21" state="stable" >}} + +[EndpointSlices](/docs/concepts/services-networking/endpoint-slices/) are objects that +represent a subset (a _slice_) of the backing network endpoints for a Service. + +Your Kubernetes cluster tracks how many endpoints each EndpointSlice represents. +If there are so many endpoints for a Service that a threshold is reached, then +Kubernetes adds another empty EndpointSlice and stores new endpoint information +there. +By default, Kubernetes makes a new EndpointSlice once the existing EndpointSlices +all contain at least 100 endpoints. Kubernetes does not make the new EndpointSlice +until an extra endpoint needs to be added. + +See [EndpointSlices](/docs/concepts/services-networking/endpoint-slices/) for more +information about this API. + +### Endpoints (deprecated) {#endpoints} + +{{< feature-state for_k8s_version="v1.33" state="deprecated" >}} + +The EndpointSlice API is the evolution of the older +[Endpoints](/docs/reference/kubernetes-api/service-resources/endpoints-v1/) +API. The deprecated Endpoints API has several problems relative to +EndpointSlice: + + - It does not support dual-stack clusters. + - It does not contain information needed to support newer features, such as + [trafficDistribution](/docs/concepts/services-networking/service/#traffic-distribution). + - It will truncate the list of endpoints if it is too long to fit in a single object. + +Because of this, it is recommended that all clients use the +EndpointSlice API rather than Endpoints. + +#### Over-capacity endpoints + +Kubernetes limits the number of endpoints that can fit in a single Endpoints +object. When there are over 1000 backing endpoints for a Service, Kubernetes +truncates the data in the Endpoints object. Because a Service can be linked +with more than one EndpointSlice, the 1000 backing endpoint limit only +affects the legacy Endpoints API. + +In that case, Kubernetes selects at most 1000 possible backend endpoints to store +into the Endpoints object, and sets an +{{< glossary_tooltip text="annotation" term_id="annotation" >}} on the Endpoints: +[`endpoints.kubernetes.io/over-capacity: truncated`](/docs/reference/labels-annotations-taints/#endpoints-kubernetes-io-over-capacity). +The control plane also removes that annotation if the number of backend Pods drops below 1000. + +Traffic is still sent to backends, but any load balancing mechanism that relies on the +legacy Endpoints API only sends traffic to at most 1000 of the available backing endpoints. + +The same API limit means that you cannot manually update an Endpoints to have more than 1000 endpoints. + +### Application protocol + +{{< feature-state for_k8s_version="v1.20" state="stable" >}} + +The `appProtocol` field provides a way to specify an application protocol for +each Service port. This is used as a hint for implementations to offer +richer behavior for protocols that they understand. +The value of this field is mirrored by the corresponding +Endpoints and EndpointSlice objects. + +This field follows standard Kubernetes label syntax. Valid values are one of: + +* [IANA standard service names](https://www.iana.org/assignments/service-names). + +* Implementation-defined prefixed names such as `mycompany.com/my-custom-protocol`. + +* Kubernetes-defined prefixed names: + +| Protocol | Description | +|----------|-------------| +| `kubernetes.io/h2c` | HTTP/2 over cleartext as described in [RFC 7540](https://www.rfc-editor.org/rfc/rfc7540) | +| `kubernetes.io/ws` | WebSocket over cleartext as described in [RFC 6455](https://www.rfc-editor.org/rfc/rfc6455) | +| `kubernetes.io/wss` | WebSocket over TLS as described in [RFC 6455](https://www.rfc-editor.org/rfc/rfc6455) | + +### Multi-port Services + +For some Services, you need to expose more than one port. +Kubernetes lets you configure multiple port definitions on a Service object. +When using multiple ports for a Service, you must give all of your ports names +so that these are unambiguous. +For example: + +```yaml +apiVersion: v1 +kind: Service +metadata: + name: my-service +spec: + selector: + app.kubernetes.io/name: MyApp + ports: + - name: http + protocol: TCP + port: 80 + targetPort: 9376 + - name: https + protocol: TCP + port: 443 + targetPort: 9377 +``` + +{{< note >}} +As with Kubernetes {{< glossary_tooltip term_id="name" text="names">}} in general, names for ports +must only contain lowercase alphanumeric characters and `-`. Port names must +also start and end with an alphanumeric character. + +For example, the names `123-abc` and `web` are valid, but `123_abc` and `-web` are not. +{{< /note >}} + +## Service type {#publishing-services-service-types} + +For some parts of your application (for example, frontends) you may want to expose a +Service onto an external IP address, one that's accessible from outside of your +cluster. + +Kubernetes Service types allow you to specify what kind of Service you want. + +The available `type` values and their behaviors are: + +[`ClusterIP`](#type-clusterip) +: Exposes the Service on a cluster-internal IP. Choosing this value + makes the Service only reachable from within the cluster. This is the + default that is used if you don't explicitly specify a `type` for a Service. + You can expose the Service to the public internet using an + [Ingress](/docs/concepts/services-networking/ingress/) or a + [Gateway](https://gateway-api.sigs.k8s.io/). + +[`NodePort`](#type-nodeport) +: Exposes the Service on each Node's IP at a static port (the `NodePort`). + To make the node port available, Kubernetes sets up a cluster IP address, + the same as if you had requested a Service of `type: ClusterIP`. + +[`LoadBalancer`](#loadbalancer) +: Exposes the Service externally using an external load balancer. Kubernetes + does not directly offer a load balancing component; you must provide one, or + you can integrate your Kubernetes cluster with a cloud provider. + +[`ExternalName`](#externalname) +: Maps the Service to the contents of the `externalName` field (for example, + to the hostname `api.foo.bar.example`). The mapping configures your cluster's + DNS server to return a `CNAME` record with that external hostname value. + No proxying of any kind is set up. + +The `type` field in the Service API is designed as nested functionality - each level +adds to the previous. However there is an exception to this nested design. You can +define a `LoadBalancer` Service by +[disabling the load balancer `NodePort` allocation](/docs/concepts/services-networking/service/#load-balancer-nodeport-allocation). + +### `type: ClusterIP` {#type-clusterip} + +This default Service type assigns an IP address from a pool of IP addresses that +your cluster has reserved for that purpose. + +Several of the other types for Service build on the `ClusterIP` type as a +foundation. + +If you define a Service that has the `.spec.clusterIP` set to `"None"` then +Kubernetes does not assign an IP address. See [headless Services](#headless-services) +for more information. + +#### Choosing your own IP address + +You can specify your own cluster IP address as part of a `Service` creation +request. To do this, set the `.spec.clusterIP` field. For example, if you +already have an existing DNS entry that you wish to reuse, or legacy systems +that are configured for a specific IP address and difficult to re-configure. + +The IP address that you choose must be a valid IPv4 or IPv6 address from within the +`service-cluster-ip-range` CIDR range that is configured for the API server. +If you try to create a Service with an invalid `clusterIP` address value, the API +server will return a 422 HTTP status code to indicate that there's a problem. + +Read [avoiding collisions](/docs/reference/networking/virtual-ips/#avoiding-collisions) +to learn how Kubernetes helps reduce the risk and impact of two different Services +both trying to use the same IP address. + +### `type: NodePort` {#type-nodeport} + +If you set the `type` field to `NodePort`, the Kubernetes control plane +allocates a port from a range specified by `--service-node-port-range` flag (default: 30000-32767). +Each node proxies that port (the same port number on every Node) into your Service. +Your Service reports the allocated port in its `.spec.ports[*].nodePort` field. + +Using a NodePort gives you the freedom to set up your own load balancing solution, +to configure environments that are not fully supported by Kubernetes, or even +to expose one or more nodes' IP addresses directly. + +For a node port Service, Kubernetes additionally allocates a port (TCP, UDP or +SCTP to match the protocol of the Service). Every node in the cluster configures +itself to listen on that assigned port and to forward traffic to one of the ready +endpoints associated with that Service. You'll be able to contact the `type: NodePort` +Service, from outside the cluster, by connecting to any node using the appropriate +protocol (for example: TCP), and the appropriate port (as assigned to that Service). + +#### Choosing your own port {#nodeport-custom-port} + +If you want a specific port number, you can specify a value in the `nodePort` +field. The control plane will either allocate you that port or report that +the API transaction failed. +This means that you need to take care of possible port collisions yourself. +You also have to use a valid port number, one that's inside the range configured +for NodePort use. + +Here is an example manifest for a Service of `type: NodePort` that specifies +a NodePort value (30007, in this example): + +```yaml +apiVersion: v1 +kind: Service +metadata: + name: my-service +spec: + type: NodePort + selector: + app.kubernetes.io/name: MyApp + ports: + - port: 80 + # By default and for convenience, the `targetPort` is set to + # the same value as the `port` field. + targetPort: 80 + # Optional field + # By default and for convenience, the Kubernetes control plane + # will allocate a port from a range (default: 30000-32767) + nodePort: 30007 +``` + +#### Reserve Nodeport ranges to avoid collisions {#avoid-nodeport-collisions} + +The policy for assigning ports to NodePort services applies to both the auto-assignment and +the manual assignment scenarios. When a user wants to create a NodePort service that +uses a specific port, the target port may conflict with another port that has already been assigned. + +To avoid this problem, the port range for NodePort services is divided into two bands. +Dynamic port assignment uses the upper band by default, and it may use the lower band once the +upper band has been exhausted. Users can then allocate from the lower band with a lower risk of port collision. + +#### Custom IP address configuration for `type: NodePort` Services {#service-nodeport-custom-listen-address} + +You can set up nodes in your cluster to use a particular IP address for serving node port +services. You might want to do this if each node is connected to multiple networks (for example: +one network for application traffic, and another network for traffic between nodes and the +control plane). + +If you want to specify particular IP address(es) to proxy the port, you can set the +`--nodeport-addresses` flag for kube-proxy or the equivalent `nodePortAddresses` +field of the [kube-proxy configuration file](/docs/reference/config-api/kube-proxy-config.v1alpha1/) +to particular IP block(s). + +This flag takes a comma-delimited list of IP blocks (e.g. `10.0.0.0/8`, `192.0.2.0/25`) +to specify IP address ranges that kube-proxy should consider as local to this node. + +For example, if you start kube-proxy with the `--nodeport-addresses=127.0.0.0/8` flag, +kube-proxy only selects the loopback interface for NodePort Services. +The default for `--nodeport-addresses` is an empty list. +This means that kube-proxy should consider all available network interfaces for NodePort. +(That's also compatible with earlier Kubernetes releases.) +{{< note >}} +This Service is visible as `:spec.ports[*].nodePort` and `.spec.clusterIP:spec.ports[*].port`. +If the `--nodeport-addresses` flag for kube-proxy or the equivalent field +in the kube-proxy configuration file is set, `` would be a filtered +node IP address (or possibly IP addresses). +{{< /note >}} + +### `type: LoadBalancer` {#loadbalancer} + +On cloud providers which support external load balancers, setting the `type` +field to `LoadBalancer` provisions a load balancer for your Service. +The actual creation of the load balancer happens asynchronously, and +information about the provisioned balancer is published in the Service's +`.status.loadBalancer` field. +For example: + +```yaml +apiVersion: v1 +kind: Service +metadata: + name: my-service +spec: + selector: + app.kubernetes.io/name: MyApp + ports: + - protocol: TCP + port: 80 + targetPort: 9376 + clusterIP: 10.0.171.239 + type: LoadBalancer +status: + loadBalancer: + ingress: + - ip: 192.0.2.127 +``` + +Traffic from the external load balancer is directed at the backend Pods. The cloud +provider decides how it is load balanced. + +To implement a Service of `type: LoadBalancer`, Kubernetes typically starts off +by making the changes that are equivalent to you requesting a Service of +`type: NodePort`. The cloud-controller-manager component then configures the external +load balancer to forward traffic to that assigned node port. + +You can configure a load balanced Service to +[omit](#load-balancer-nodeport-allocation) assigning a node port, provided that the +cloud provider implementation supports this. + +Some cloud providers allow you to specify the `loadBalancerIP`. In those cases, the load-balancer is created +with the user-specified `loadBalancerIP`. If the `loadBalancerIP` field is not specified, +the load balancer is set up with an ephemeral IP address. If you specify a `loadBalancerIP` +but your cloud provider does not support the feature, the `loadbalancerIP` field that you +set is ignored. + + +{{< note >}} +The`.spec.loadBalancerIP` field for a Service was deprecated in Kubernetes v1.24. + +This field was under-specified and its meaning varies across implementations. +It also cannot support dual-stack networking. This field may be removed in a future API version. + +If you're integrating with a provider that supports specifying the load balancer IP address(es) +for a Service via a (provider specific) annotation, you should switch to doing that. + +If you are writing code for a load balancer integration with Kubernetes, avoid using this field. +You can integrate with [Gateway](https://gateway-api.sigs.k8s.io/) rather than Service, or you +can define your own (provider specific) annotations on the Service that specify the equivalent detail. +{{< /note >}} + +#### Node liveness impact on load balancer traffic + +Load balancer health checks are critical to modern applications. They are used to +determine which server (virtual machine, or IP address) the load balancer should +dispatch traffic to. The Kubernetes APIs do not define how health checks have to be +implemented for Kubernetes managed load balancers, instead it's the cloud providers +(and the people implementing integration code) who decide on the behavior. Load +balancer health checks are extensively used within the context of supporting the +`externalTrafficPolicy` field for Services. + +#### Load balancers with mixed protocol types + +{{< feature-state feature_gate_name="MixedProtocolLBService" >}} + +By default, for LoadBalancer type of Services, when there is more than one port defined, all +ports must have the same protocol, and the protocol must be one which is supported +by the cloud provider. + +The feature gate `MixedProtocolLBService` (enabled by default for the kube-apiserver as of v1.24) allows the use of +different protocols for LoadBalancer type of Services, when there is more than one port defined. + +{{< note >}} +The set of protocols that can be used for load balanced Services is defined by your +cloud provider; they may impose restrictions beyond what the Kubernetes API enforces. +{{< /note >}} + +#### Disabling load balancer NodePort allocation {#load-balancer-nodeport-allocation} + +{{< feature-state for_k8s_version="v1.24" state="stable" >}} + +You can optionally disable node port allocation for a Service of `type: LoadBalancer`, by setting +the field `spec.allocateLoadBalancerNodePorts` to `false`. This should only be used for load balancer implementations +that route traffic directly to pods as opposed to using node ports. By default, `spec.allocateLoadBalancerNodePorts` +is `true` and type LoadBalancer Services will continue to allocate node ports. If `spec.allocateLoadBalancerNodePorts` +is set to `false` on an existing Service with allocated node ports, those node ports will **not** be de-allocated automatically. +You must explicitly remove the `nodePorts` entry in every Service port to de-allocate those node ports. + +#### Specifying class of load balancer implementation {#load-balancer-class} + +{{< feature-state for_k8s_version="v1.24" state="stable" >}} + +For a Service with `type` set to `LoadBalancer`, the `.spec.loadBalancerClass` field +enables you to use a load balancer implementation other than the cloud provider default. + +By default, `.spec.loadBalancerClass` is not set and a `LoadBalancer` +type of Service uses the cloud provider's default load balancer implementation if the +cluster is configured with a cloud provider using the `--cloud-provider` component +flag. + +If you specify `.spec.loadBalancerClass`, it is assumed that a load balancer +implementation that matches the specified class is watching for Services. +Any default load balancer implementation (for example, the one provided by +the cloud provider) will ignore Services that have this field set. +`spec.loadBalancerClass` can be set on a Service of type `LoadBalancer` only. +Once set, it cannot be changed. +The value of `spec.loadBalancerClass` must be a label-style identifier, +with an optional prefix such as "`internal-vip`" or "`example.com/internal-vip`". +Unprefixed names are reserved for end-users. + +#### Load balancer IP address mode {#load-balancer-ip-mode} + +{{< feature-state feature_gate_name="LoadBalancerIPMode" >}} + +For a Service of `type: LoadBalancer`, a controller can set `.status.loadBalancer.ingress.ipMode`. +The `.status.loadBalancer.ingress.ipMode` specifies how the load-balancer IP behaves. +It may be specified only when the `.status.loadBalancer.ingress.ip` field is also specified. + +There are two possible values for `.status.loadBalancer.ingress.ipMode`: "VIP" and "Proxy". +The default value is "VIP" meaning that traffic is delivered to the node +with the destination set to the load-balancer's IP and port. +There are two cases when setting this to "Proxy", depending on how the load-balancer +from the cloud provider delivers the traffics: + +- If the traffic is delivered to the node then DNATed to the pod, the destination would be set to the node's IP and node port; +- If the traffic is delivered directly to the pod, the destination would be set to the pod's IP and port. + +Service implementations may use this information to adjust traffic routing. + +#### Internal load balancer + +In a mixed environment it is sometimes necessary to route traffic from Services inside the same +(virtual) network address block. + +In a split-horizon DNS environment you would need two Services to be able to route both external +and internal traffic to your endpoints. + +To set an internal load balancer, add one of the following annotations to your Service +depending on the cloud service provider you're using: + +{{< tabs name="service_tabs" >}} +{{% tab name="Default" %}} +Select one of the tabs. +{{% /tab %}} + +{{% tab name="GCP" %}} + +```yaml +metadata: + name: my-service + annotations: + networking.gke.io/load-balancer-type: "Internal" +``` +{{% /tab %}} +{{% tab name="AWS" %}} + +```yaml +metadata: + name: my-service + annotations: + service.beta.kubernetes.io/aws-load-balancer-internal: "true" +``` + +{{% /tab %}} +{{% tab name="Azure" %}} + +```yaml +metadata: + name: my-service + annotations: + service.beta.kubernetes.io/azure-load-balancer-internal: "true" +``` + +{{% /tab %}} +{{% tab name="IBM Cloud" %}} + +```yaml +metadata: + name: my-service + annotations: + service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "private" +``` + +{{% /tab %}} +{{% tab name="OpenStack" %}} + +```yaml +metadata: + name: my-service + annotations: + service.beta.kubernetes.io/openstack-internal-load-balancer: "true" +``` + +{{% /tab %}} +{{% tab name="Baidu Cloud" %}} + +```yaml +metadata: + name: my-service + annotations: + service.beta.kubernetes.io/cce-load-balancer-internal-vpc: "true" +``` + +{{% /tab %}} +{{% tab name="Tencent Cloud" %}} + +```yaml +metadata: + annotations: + service.kubernetes.io/qcloud-loadbalancer-internal-subnetid: subnet-xxxxx +``` + +{{% /tab %}} +{{% tab name="Alibaba Cloud" %}} + +```yaml +metadata: + annotations: + service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet" +``` + +{{% /tab %}} +{{% tab name="OCI" %}} + +```yaml +metadata: + name: my-service + annotations: + service.beta.kubernetes.io/oci-load-balancer-internal: true +``` +{{% /tab %}} +{{< /tabs >}} + +### `type: ExternalName` {#externalname} + +Services of type ExternalName map a Service to a DNS name, not to a typical selector such as +`my-service` or `cassandra`. You specify these Services with the `spec.externalName` parameter. + +This Service definition, for example, maps +the `my-service` Service in the `prod` namespace to `my.database.example.com`: + +```yaml +apiVersion: v1 +kind: Service +metadata: + name: my-service + namespace: prod +spec: + type: ExternalName + externalName: my.database.example.com +``` + +{{< note >}} +A Service of `type: ExternalName` accepts an IPv4 address string, +but treats that string as a DNS name comprised of digits, +not as an IP address (the internet does not however allow such names in DNS). +Services with external names that resemble IPv4 +addresses are not resolved by DNS servers. + +If you want to map a Service directly to a specific IP address, consider using +[headless Services](#headless-services). +{{< /note >}} + +When looking up the host `my-service.prod.svc.cluster.local`, the cluster DNS Service +returns a `CNAME` record with the value `my.database.example.com`. Accessing +`my-service` works in the same way as other Services but with the crucial +difference that redirection happens at the DNS level rather than via proxying or +forwarding. Should you later decide to move your database into your cluster, you +can start its Pods, add appropriate selectors or endpoints, and change the +Service's `type`. + +{{< caution >}} +You may have trouble using ExternalName for some common protocols, including HTTP and HTTPS. +If you use ExternalName then the hostname used by clients inside your cluster is different from +the name that the ExternalName references. + +For protocols that use hostnames this difference may lead to errors or unexpected responses. +HTTP requests will have a `Host:` header that the origin server does not recognize; +TLS servers will not be able to provide a certificate matching the hostname that the client connected to. +{{< /caution >}} + +## Headless Services + +Sometimes you don't need load-balancing and a single Service IP. In +this case, you can create what are termed _headless Services_, by explicitly +specifying `"None"` for the cluster IP address (`.spec.clusterIP`). + +You can use a headless Service to interface with other service discovery mechanisms, +without being tied to Kubernetes' implementation. + +For headless Services, a cluster IP is not allocated, kube-proxy does not handle +these Services, and there is no load balancing or proxying done by the platform for them. + +A headless Service allows a client to connect to whichever Pod it prefers, directly. Services that are headless don't +configure routes and packet forwarding using +[virtual IP addresses and proxies](/docs/reference/networking/virtual-ips/); instead, headless Services report the +endpoint IP addresses of the individual pods via internal DNS records, served through the cluster's +[DNS service](/docs/concepts/services-networking/dns-pod-service/). +To define a headless Service, you make a Service with `.spec.type` set to ClusterIP (which is also the default for `type`), +and you additionally set `.spec.clusterIP` to None. + +The string value None is a special case and is not the same as leaving the `.spec.clusterIP` field unset. + +How DNS is automatically configured depends on whether the Service has selectors defined: + +### With selectors + +For headless Services that define selectors, the endpoints controller creates +EndpointSlices in the Kubernetes API, and modifies the DNS configuration to return +A or AAAA records (IPv4 or IPv6 addresses) that point directly to the Pods backing the Service. + +### Without selectors + +For headless Services that do not define selectors, the control plane does +not create EndpointSlice objects. However, the DNS system looks for and configures +either: + +* DNS CNAME records for [`type: ExternalName`](#externalname) Services. +* DNS A / AAAA records for all IP addresses of the Service's ready endpoints, + for all Service types other than `ExternalName`. + * For IPv4 endpoints, the DNS system creates A records. + * For IPv6 endpoints, the DNS system creates AAAA records. + +When you define a headless Service without a selector, the `port` must +match the `targetPort`. + +## Discovering services + +For clients running inside your cluster, Kubernetes supports two primary modes of +finding a Service: environment variables and DNS. + +### Environment variables + +When a Pod is run on a Node, the kubelet adds a set of environment variables +for each active Service. It adds `{SVCNAME}_SERVICE_HOST` and `{SVCNAME}_SERVICE_PORT` variables, +where the Service name is upper-cased and dashes are converted to underscores. + + +For example, the Service `redis-primary` which exposes TCP port 6379 and has been +allocated cluster IP address 10.0.0.11, produces the following environment +variables: + +```shell +REDIS_PRIMARY_SERVICE_HOST=10.0.0.11 +REDIS_PRIMARY_SERVICE_PORT=6379 +REDIS_PRIMARY_PORT=tcp://10.0.0.11:6379 +REDIS_PRIMARY_PORT_6379_TCP=tcp://10.0.0.11:6379 +REDIS_PRIMARY_PORT_6379_TCP_PROTO=tcp +REDIS_PRIMARY_PORT_6379_TCP_PORT=6379 +REDIS_PRIMARY_PORT_6379_TCP_ADDR=10.0.0.11 +``` + +{{< note >}} +When you have a Pod that needs to access a Service, and you are using +the environment variable method to publish the port and cluster IP to the client +Pods, you must create the Service *before* the client Pods come into existence. +Otherwise, those client Pods won't have their environment variables populated. + +If you only use DNS to discover the cluster IP for a Service, you don't need to +worry about this ordering issue. +{{< /note >}} + +Kubernetes also supports and provides variables that are compatible with Docker +Engine's "_[legacy container links](https://docs.docker.com/network/links/)_" feature. +You can read [`makeLinkVariables`](https://github.com/kubernetes/kubernetes/blob/dd2d12f6dc0e654c15d5db57a5f9f6ba61192726/pkg/kubelet/envvars/envvars.go#L72) +to see how this is implemented in Kubernetes. + +### DNS + +You can (and almost always should) set up a DNS service for your Kubernetes +cluster using an [add-on](/docs/concepts/cluster-administration/addons/). + +A cluster-aware DNS server, such as CoreDNS, watches the Kubernetes API for new +Services and creates a set of DNS records for each one. If DNS has been enabled +throughout your cluster then all Pods should automatically be able to resolve +Services by their DNS name. + +For example, if you have a Service called `my-service` in a Kubernetes +namespace `my-ns`, the control plane and the DNS Service acting together +create a DNS record for `my-service.my-ns`. Pods in the `my-ns` namespace +should be able to find the service by doing a name lookup for `my-service` +(`my-service.my-ns` would also work). + +Pods in other namespaces must qualify the name as `my-service.my-ns`. These names +will resolve to the cluster IP assigned for the Service. + +Kubernetes also supports DNS SRV (Service) records for named ports. If the +`my-service.my-ns` Service has a port named `http` with the protocol set to +`TCP`, you can do a DNS SRV query for `_http._tcp.my-service.my-ns` to discover +the port number for `http`, as well as the IP address. + +The Kubernetes DNS server is the only way to access `ExternalName` Services. +You can find more information about `ExternalName` resolution in +[DNS for Services and Pods](/docs/concepts/services-networking/dns-pod-service/). + + +
+ + + + + + + +## Virtual IP addressing mechanism + +Read [Virtual IPs and Service Proxies](/docs/reference/networking/virtual-ips/) explains the +mechanism Kubernetes provides to expose a Service with a virtual IP address. + +### Traffic policies + +You can set the `.spec.internalTrafficPolicy` and `.spec.externalTrafficPolicy` fields +to control how Kubernetes routes traffic to healthy (“ready”) backends. + +See [Traffic Policies](/docs/reference/networking/virtual-ips/#traffic-policies) for more details. + +### Traffic distribution + +{{< feature-state feature_gate_name="ServiceTrafficDistribution" >}} + +The `.spec.trafficDistribution` field provides another way to influence traffic +routing within a Kubernetes Service. While traffic policies focus on strict +semantic guarantees, traffic distribution allows you to express _preferences_ +(such as routing to topologically closer endpoints). This can help optimize for +performance, cost, or reliability. In Kubernetes {{< skew currentVersion >}}, the +following field value is supported: + +`PreferClose` +: Indicates a preference for routing traffic to endpoints that are in the same + zone as the client. + +{{< feature-state feature_gate_name="PreferSameTrafficDistribution" >}} + +Two additional values are available when the `PreferSameTrafficDistribution` +[feature gate](/docs/reference/command-line-tools-reference/feature-gates/) is +enabled: + +`PreferSameZone` +: This is an alias for `PreferClose` that is clearer about the intended semantics. + +`PreferSameNode` +: Indicates a preference for routing traffic to endpoints that are on the same + node as the client. + +If the field is not set, the implementation will apply its default routing strategy. + +See [Traffic +Distribution](/docs/reference/networking/virtual-ips/#traffic-distribution) for +more details + +### Session stickiness + +If you want to make sure that connections from a particular client are passed to +the same Pod each time, you can configure session affinity based on the client's +IP address. Read [session affinity](/docs/reference/networking/virtual-ips/#session-affinity) +to learn more. + +## External IPs + +If there are external IPs that route to one or more cluster nodes, Kubernetes Services +can be exposed on those `externalIPs`. When network traffic arrives into the cluster, with +the external IP (as destination IP) and the port matching that Service, rules and routes +that Kubernetes has configured ensure that the traffic is routed to one of the endpoints +for that Service. + +When you define a Service, you can specify `externalIPs` for any +[service type](#publishing-services-service-types). +In the example below, the Service named `"my-service"` can be accessed by clients using TCP, +on `"198.51.100.32:80"` (calculated from `.spec.externalIPs[]` and `.spec.ports[].port`). + +```yaml +apiVersion: v1 +kind: Service +metadata: + name: my-service +spec: + selector: + app.kubernetes.io/name: MyApp + ports: + - name: http + protocol: TCP + port: 80 + targetPort: 49152 + externalIPs: + - 198.51.100.32 +``` + +{{< note >}} +Kubernetes does not manage allocation of `externalIPs`; these are the responsibility +of the cluster administrator. +{{< /note >}} + +## API Object + +Service is a top-level resource in the Kubernetes REST API. You can find more details +about the [Service API object](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#service-v1-core). + +## {{% heading "whatsnext" %}} + +Learn more about Services and how they fit into Kubernetes: + +* Follow the [Connecting Applications with Services](/docs/tutorials/services/connect-applications-service/) + tutorial. +* Read about [Ingress](/docs/concepts/services-networking/ingress/), which + exposes HTTP and HTTPS routes from outside the cluster to Services within + your cluster. +* Read about [Gateway](/docs/concepts/services-networking/gateway/), an extension to + Kubernetes that provides more flexibility than Ingress. + +For more context, read the following: + +* [Virtual IPs and Service Proxies](/docs/reference/networking/virtual-ips/) +* [EndpointSlices](/docs/concepts/services-networking/endpoint-slices/) +* [Service API reference](/docs/reference/kubernetes-api/service-resources/service-v1/) +* [EndpointSlice API reference](/docs/reference/kubernetes-api/service-resources/endpoint-slice-v1/) +* [Endpoint API reference (legacy)](/docs/reference/kubernetes-api/service-resources/endpoints-v1/) diff --git a/content/fa/docs/concepts/storage/persistent-volumes.md b/content/fa/docs/concepts/storage/persistent-volumes.md new file mode 100644 index 0000000000000..f2182be8e3021 --- /dev/null +++ b/content/fa/docs/concepts/storage/persistent-volumes.md @@ -0,0 +1,1304 @@ +--- +reviewers: +- xirehat +title: حجم‌های پایدار +api_metadata: +- apiVersion: "v1" + kind: "PersistentVolume" +- apiVersion: "v1" + kind: "PersistentVolumeClaim" +feature: + title: ارکستراسیون ذخیره‌سازی + description: > + سیستم ذخیره‌سازی مورد نظر خود را، چه از ذخیره‌سازی محلی، چه از یک ارائه‌دهنده ابر عمومی یا یک سیستم ذخیره‌سازی شبکه‌ای مانند iSCSI یا NFS، به‌طور خودکار نصب کنید. +content_type: concept +weight: 20 +--- + + + +This document describes _persistent volumes_ in Kubernetes. Familiarity with +[volumes](/docs/concepts/storage/volumes/), [StorageClasses](/docs/concepts/storage/storage-classes/) +and [VolumeAttributesClasses](/docs/concepts/storage/volume-attributes-classes/) is suggested. + + + +## Introduction + +Managing storage is a distinct problem from managing compute instances. +The PersistentVolume subsystem provides an API for users and administrators +that abstracts details of how storage is provided from how it is consumed. +To do this, we introduce two new API resources: PersistentVolume and PersistentVolumeClaim. + +A _PersistentVolume_ (PV) is a piece of storage in the cluster that has been +provisioned by an administrator or dynamically provisioned using +[Storage Classes](/docs/concepts/storage/storage-classes/). It is a resource in +the cluster just like a node is a cluster resource. PVs are volume plugins like +Volumes, but have a lifecycle independent of any individual Pod that uses the PV. +This API object captures the details of the implementation of the storage, be that +NFS, iSCSI, or a cloud-provider-specific storage system. + +A _PersistentVolumeClaim_ (PVC) is a request for storage by a user. It is similar +to a Pod. Pods consume node resources and PVCs consume PV resources. Pods can +request specific levels of resources (CPU and Memory). Claims can request specific +size and access modes (e.g., they can be mounted ReadWriteOnce, ReadOnlyMany, +ReadWriteMany, or ReadWriteOncePod, see [AccessModes](#access-modes)). + +While PersistentVolumeClaims allow a user to consume abstract storage resources, +it is common that users need PersistentVolumes with varying properties, such as +performance, for different problems. Cluster administrators need to be able to +offer a variety of PersistentVolumes that differ in more ways than size and access +modes, without exposing users to the details of how those volumes are implemented. +For these needs, there is the _StorageClass_ resource. + +See the [detailed walkthrough with working examples](/docs/tasks/configure-pod-container/configure-persistent-volume-storage/). + +## Lifecycle of a volume and claim + +PVs are resources in the cluster. PVCs are requests for those resources and also act +as claim checks to the resource. The interaction between PVs and PVCs follows this lifecycle: + +### Provisioning + +There are two ways PVs may be provisioned: statically or dynamically. + +#### Static + +A cluster administrator creates a number of PVs. They carry the details of the +real storage, which is available for use by cluster users. They exist in the +Kubernetes API and are available for consumption. + +#### Dynamic + +When none of the static PVs the administrator created match a user's PersistentVolumeClaim, +the cluster may try to dynamically provision a volume specially for the PVC. +This provisioning is based on StorageClasses: the PVC must request a +[storage class](/docs/concepts/storage/storage-classes/) and +the administrator must have created and configured that class for dynamic +provisioning to occur. Claims that request the class `""` effectively disable +dynamic provisioning for themselves. + +To enable dynamic storage provisioning based on storage class, the cluster administrator +needs to enable the `DefaultStorageClass` +[admission controller](/docs/reference/access-authn-authz/admission-controllers/#defaultstorageclass) +on the API server. This can be done, for example, by ensuring that `DefaultStorageClass` is +among the comma-delimited, ordered list of values for the `--enable-admission-plugins` flag of +the API server component. For more information on API server command-line flags, +check [kube-apiserver](/docs/reference/command-line-tools-reference/kube-apiserver/) documentation. + +### Binding + +A user creates, or in the case of dynamic provisioning, has already created, +a PersistentVolumeClaim with a specific amount of storage requested and with +certain access modes. A control loop in the control plane watches for new PVCs, finds +a matching PV (if possible), and binds them together. If a PV was dynamically +provisioned for a new PVC, the loop will always bind that PV to the PVC. Otherwise, +the user will always get at least what they asked for, but the volume may be in +excess of what was requested. Once bound, PersistentVolumeClaim binds are exclusive, +regardless of how they were bound. A PVC to PV binding is a one-to-one mapping, +using a ClaimRef which is a bi-directional binding between the PersistentVolume +and the PersistentVolumeClaim. + +Claims will remain unbound indefinitely if a matching volume does not exist. +Claims will be bound as matching volumes become available. For example, a +cluster provisioned with many 50Gi PVs would not match a PVC requesting 100Gi. +The PVC can be bound when a 100Gi PV is added to the cluster. + +### Using + +Pods use claims as volumes. The cluster inspects the claim to find the bound +volume and mounts that volume for a Pod. For volumes that support multiple +access modes, the user specifies which mode is desired when using their claim +as a volume in a Pod. + +Once a user has a claim and that claim is bound, the bound PV belongs to the +user for as long as they need it. Users schedule Pods and access their claimed +PVs by including a `persistentVolumeClaim` section in a Pod's `volumes` block. +See [Claims As Volumes](#claims-as-volumes) for more details on this. + +### Storage Object in Use Protection + +The purpose of the Storage Object in Use Protection feature is to ensure that +PersistentVolumeClaims (PVCs) in active use by a Pod and PersistentVolume (PVs) +that are bound to PVCs are not removed from the system, as this may result in data loss. + +{{< note >}} +PVC is in active use by a Pod when a Pod object exists that is using the PVC. +{{< /note >}} + +If a user deletes a PVC in active use by a Pod, the PVC is not removed immediately. +PVC removal is postponed until the PVC is no longer actively used by any Pods. Also, +if an admin deletes a PV that is bound to a PVC, the PV is not removed immediately. +PV removal is postponed until the PV is no longer bound to a PVC. + +You can see that a PVC is protected when the PVC's status is `Terminating` and the +`Finalizers` list includes `kubernetes.io/pvc-protection`: + +```shell +kubectl describe pvc hostpath +Name: hostpath +Namespace: default +StorageClass: example-hostpath +Status: Terminating +Volume: +Labels: +Annotations: volume.beta.kubernetes.io/storage-class=example-hostpath + volume.beta.kubernetes.io/storage-provisioner=example.com/hostpath +Finalizers: [kubernetes.io/pvc-protection] +... +``` + +You can see that a PV is protected when the PV's status is `Terminating` and +the `Finalizers` list includes `kubernetes.io/pv-protection` too: + +```shell +kubectl describe pv task-pv-volume +Name: task-pv-volume +Labels: type=local +Annotations: +Finalizers: [kubernetes.io/pv-protection] +StorageClass: standard +Status: Terminating +Claim: +Reclaim Policy: Delete +Access Modes: RWO +Capacity: 1Gi +Message: +Source: + Type: HostPath (bare host directory volume) + Path: /tmp/data + HostPathType: +Events: +``` + +### Reclaiming + +When a user is done with their volume, they can delete the PVC objects from the +API that allows reclamation of the resource. The reclaim policy for a PersistentVolume +tells the cluster what to do with the volume after it has been released of its claim. +Currently, volumes can either be Retained, Recycled, or Deleted. + +#### Retain + +The `Retain` reclaim policy allows for manual reclamation of the resource. +When the PersistentVolumeClaim is deleted, the PersistentVolume still exists +and the volume is considered "released". But it is not yet available for +another claim because the previous claimant's data remains on the volume. +An administrator can manually reclaim the volume with the following steps. + +1. Delete the PersistentVolume. The associated storage asset in external infrastructure + still exists after the PV is deleted. +1. Manually clean up the data on the associated storage asset accordingly. +1. Manually delete the associated storage asset. + +If you want to reuse the same storage asset, create a new PersistentVolume with +the same storage asset definition. + +#### Delete + +For volume plugins that support the `Delete` reclaim policy, deletion removes +both the PersistentVolume object from Kubernetes, as well as the associated +storage asset in the external infrastructure. Volumes that were dynamically provisioned +inherit the [reclaim policy of their StorageClass](#reclaim-policy), which +defaults to `Delete`. The administrator should configure the StorageClass +according to users' expectations; otherwise, the PV must be edited or +patched after it is created. See +[Change the Reclaim Policy of a PersistentVolume](/docs/tasks/administer-cluster/change-pv-reclaim-policy/). + +#### Recycle + +{{< warning >}} +The `Recycle` reclaim policy is deprecated. Instead, the recommended approach +is to use dynamic provisioning. +{{< /warning >}} + +If supported by the underlying volume plugin, the `Recycle` reclaim policy performs +a basic scrub (`rm -rf /thevolume/*`) on the volume and makes it available again for a new claim. + +However, an administrator can configure a custom recycler Pod template using +the Kubernetes controller manager command line arguments as described in the +[reference](/docs/reference/command-line-tools-reference/kube-controller-manager/). +The custom recycler Pod template must contain a `volumes` specification, as +shown in the example below: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: pv-recycler + namespace: default +spec: + restartPolicy: Never + volumes: + - name: vol + hostPath: + path: /any/path/it/will/be/replaced + containers: + - name: pv-recycler + image: "registry.k8s.io/busybox" + command: ["/bin/sh", "-c", "test -e /scrub && rm -rf /scrub/..?* /scrub/.[!.]* /scrub/* && test -z \"$(ls -A /scrub)\" || exit 1"] + volumeMounts: + - name: vol + mountPath: /scrub +``` + +However, the particular path specified in the custom recycler Pod template in the +`volumes` part is replaced with the particular path of the volume that is being recycled. + +### PersistentVolume deletion protection finalizer +{{< feature-state feature_gate_name="HonorPVReclaimPolicy" >}} + +Finalizers can be added on a PersistentVolume to ensure that PersistentVolumes +having `Delete` reclaim policy are deleted only after the backing storage are deleted. + +The finalizer `external-provisioner.volume.kubernetes.io/finalizer`(introduced +in v1.31) is added to both dynamically provisioned and statically provisioned +CSI volumes. + +The finalizer `kubernetes.io/pv-controller`(introduced in v1.31) is added to +dynamically provisioned in-tree plugin volumes and skipped for statically +provisioned in-tree plugin volumes. + +The following is an example of dynamically provisioned in-tree plugin volume: + +```shell +kubectl describe pv pvc-74a498d6-3929-47e8-8c02-078c1ece4d78 +Name: pvc-74a498d6-3929-47e8-8c02-078c1ece4d78 +Labels: +Annotations: kubernetes.io/createdby: vsphere-volume-dynamic-provisioner + pv.kubernetes.io/bound-by-controller: yes + pv.kubernetes.io/provisioned-by: kubernetes.io/vsphere-volume +Finalizers: [kubernetes.io/pv-protection kubernetes.io/pv-controller] +StorageClass: vcp-sc +Status: Bound +Claim: default/vcp-pvc-1 +Reclaim Policy: Delete +Access Modes: RWO +VolumeMode: Filesystem +Capacity: 1Gi +Node Affinity: +Message: +Source: + Type: vSphereVolume (a Persistent Disk resource in vSphere) + VolumePath: [vsanDatastore] d49c4a62-166f-ce12-c464-020077ba5d46/kubernetes-dynamic-pvc-74a498d6-3929-47e8-8c02-078c1ece4d78.vmdk + FSType: ext4 + StoragePolicyName: vSAN Default Storage Policy +Events: +``` + +The finalizer `external-provisioner.volume.kubernetes.io/finalizer` is added for CSI volumes. +The following is an example: + +```shell +Name: pvc-2f0bab97-85a8-4552-8044-eb8be45cf48d +Labels: +Annotations: pv.kubernetes.io/provisioned-by: csi.vsphere.vmware.com +Finalizers: [kubernetes.io/pv-protection external-provisioner.volume.kubernetes.io/finalizer] +StorageClass: fast +Status: Bound +Claim: demo-app/nginx-logs +Reclaim Policy: Delete +Access Modes: RWO +VolumeMode: Filesystem +Capacity: 200Mi +Node Affinity: +Message: +Source: + Type: CSI (a Container Storage Interface (CSI) volume source) + Driver: csi.vsphere.vmware.com + FSType: ext4 + VolumeHandle: 44830fa8-79b4-406b-8b58-621ba25353fd + ReadOnly: false + VolumeAttributes: storage.kubernetes.io/csiProvisionerIdentity=1648442357185-8081-csi.vsphere.vmware.com + type=vSphere CNS Block Volume +Events: +``` + +When the `CSIMigration{provider}` feature flag is enabled for a specific in-tree volume plugin, +the `kubernetes.io/pv-controller` finalizer is replaced by the +`external-provisioner.volume.kubernetes.io/finalizer` finalizer. + +The finalizers ensure that the PV object is removed only after the volume is deleted +from the storage backend provided the reclaim policy of the PV is `Delete`. This +also ensures that the volume is deleted from storage backend irrespective of the +order of deletion of PV and PVC. + +### Reserving a PersistentVolume + +The control plane can [bind PersistentVolumeClaims to matching PersistentVolumes](#binding) +in the cluster. However, if you want a PVC to bind to a specific PV, you need to pre-bind them. + +By specifying a PersistentVolume in a PersistentVolumeClaim, you declare a binding +between that specific PV and PVC. If the PersistentVolume exists and has not reserved +PersistentVolumeClaims through its `claimRef` field, then the PersistentVolume and +PersistentVolumeClaim will be bound. + +The binding happens regardless of some volume matching criteria, including node affinity. +The control plane still checks that [storage class](/docs/concepts/storage/storage-classes/), +access modes, and requested storage size are valid. + +```yaml +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: foo-pvc + namespace: foo +spec: + storageClassName: "" # Empty string must be explicitly set otherwise default StorageClass will be set + volumeName: foo-pv + ... +``` + +This method does not guarantee any binding privileges to the PersistentVolume. +If other PersistentVolumeClaims could use the PV that you specify, you first +need to reserve that storage volume. Specify the relevant PersistentVolumeClaim +in the `claimRef` field of the PV so that other PVCs can not bind to it. + +```yaml +apiVersion: v1 +kind: PersistentVolume +metadata: + name: foo-pv +spec: + storageClassName: "" + claimRef: + name: foo-pvc + namespace: foo + ... +``` + +This is useful if you want to consume PersistentVolumes that have their `persistentVolumeReclaimPolicy` set +to `Retain`, including cases where you are reusing an existing PV. + +### Expanding Persistent Volumes Claims + +{{< feature-state for_k8s_version="v1.24" state="stable" >}} + +Support for expanding PersistentVolumeClaims (PVCs) is enabled by default. You can expand +the following types of volumes: + +* {{< glossary_tooltip text="csi" term_id="csi" >}} (including some CSI migrated +volme types) +* flexVolume (deprecated) +* portworxVolume (deprecated) + +You can only expand a PVC if its storage class's `allowVolumeExpansion` field is set to true. + +```yaml +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + name: example-vol-default +provisioner: vendor-name.example/magicstorage +parameters: + resturl: "http://192.168.10.100:8080" + restuser: "" + secretNamespace: "" + secretName: "" +allowVolumeExpansion: true +``` + +To request a larger volume for a PVC, edit the PVC object and specify a larger +size. This triggers expansion of the volume that backs the underlying PersistentVolume. A +new PersistentVolume is never created to satisfy the claim. Instead, an existing volume is resized. + +{{< warning >}} +Directly editing the size of a PersistentVolume can prevent an automatic resize of that volume. +If you edit the capacity of a PersistentVolume, and then edit the `.spec` of a matching +PersistentVolumeClaim to make the size of the PersistentVolumeClaim match the PersistentVolume, +then no storage resize happens. +The Kubernetes control plane will see that the desired state of both resources matches, +conclude that the backing volume size has been manually +increased and that no resize is necessary. +{{< /warning >}} + +#### CSI Volume expansion + +{{< feature-state for_k8s_version="v1.24" state="stable" >}} + +Support for expanding CSI volumes is enabled by default but it also requires a +specific CSI driver to support volume expansion. Refer to documentation of the +specific CSI driver for more information. + +#### Resizing a volume containing a file system + +You can only resize volumes containing a file system if the file system is XFS, Ext3, or Ext4. + +When a volume contains a file system, the file system is only resized when a new Pod is using +the PersistentVolumeClaim in `ReadWrite` mode. File system expansion is either done when a Pod is starting up +or when a Pod is running and the underlying file system supports online expansion. + +FlexVolumes (deprecated since Kubernetes v1.23) allow resize if the driver is configured with the +`RequiresFSResize` capability to `true`. The FlexVolume can be resized on Pod restart. + +#### Resizing an in-use PersistentVolumeClaim + +{{< feature-state for_k8s_version="v1.24" state="stable" >}} + +In this case, you don't need to delete and recreate a Pod or deployment that is using an existing PVC. +Any in-use PVC automatically becomes available to its Pod as soon as its file system has been expanded. +This feature has no effect on PVCs that are not in use by a Pod or deployment. You must create a Pod that +uses the PVC before the expansion can complete. + +Similar to other volume types - FlexVolume volumes can also be expanded when in-use by a Pod. + +{{< note >}} +FlexVolume resize is possible only when the underlying driver supports resize. +{{< /note >}} + +#### Recovering from Failure when Expanding Volumes + +If a user specifies a new size that is too big to be satisfied by underlying +storage system, expansion of PVC will be continuously retried until user or +cluster administrator takes some action. This can be undesirable and hence +Kubernetes provides following methods of recovering from such failures. + +{{< tabs name="recovery_methods" >}} +{{% tab name="Manually with Cluster Administrator access" %}} + +If expanding underlying storage fails, the cluster administrator can manually +recover the Persistent Volume Claim (PVC) state and cancel the resize requests. +Otherwise, the resize requests are continuously retried by the controller without +administrator intervention. + +1. Mark the PersistentVolume(PV) that is bound to the PersistentVolumeClaim(PVC) + with `Retain` reclaim policy. +2. Delete the PVC. Since PV has `Retain` reclaim policy - we will not lose any data + when we recreate the PVC. +3. Delete the `claimRef` entry from PV specs, so as new PVC can bind to it. + This should make the PV `Available`. +4. Re-create the PVC with smaller size than PV and set `volumeName` field of the + PVC to the name of the PV. This should bind new PVC to existing PV. +5. Don't forget to restore the reclaim policy of the PV. + +{{% /tab %}} +{{% tab name="By requesting expansion to smaller size" %}} +{{< feature-state feature_gate_name="RecoverVolumeExpansionFailure" >}} + +{{< note >}} +Recover from failing PVC expansion by users (`RecoverVolumeExpansionFailure`) is available as an beta feature +since Kubernetes 1.32 and should be enabled by default. Refer to the +[feature gate](/docs/reference/command-line-tools-reference/feature-gates/) +documentation for more information. +{{< /note >}} + + +When using `RecoverVolumeExpansionFailure` feature, if expansion has failed for a PVC, you can retry expansion with a +smaller size than the previously requested value. To request a new expansion attempt with a +smaller proposed size, edit `.spec.resources` for that PVC and choose a value that is less than the +value you previously tried. +This is useful if expansion to a higher value did not succeed because of capacity constraint. +If that has happened, or you suspect that it might have, you can retry expansion by specifying a +size that is within the capacity limits of underlying storage provider. You can monitor status of +resize operation by watching `.status.allocatedResourceStatuses` and events on the PVC. + +Note that, +although you can specify a lower amount of storage than what was requested previously, +the new value must still be higher than `.status.capacity`. +Kubernetes does not support shrinking a PVC to less than its current size. +{{% /tab %}} +{{% /tabs %}} + +## Types of Persistent Volumes + +PersistentVolume types are implemented as plugins. Kubernetes currently supports the following plugins: + +* [`csi`](/docs/concepts/storage/volumes/#csi) - Container Storage Interface (CSI) +* [`fc`](/docs/concepts/storage/volumes/#fc) - Fibre Channel (FC) storage +* [`hostPath`](/docs/concepts/storage/volumes/#hostpath) - HostPath volume + (for single node testing only; WILL NOT WORK in a multi-node cluster; + consider using `local` volume instead) +* [`iscsi`](/docs/concepts/storage/volumes/#iscsi) - iSCSI (SCSI over IP) storage +* [`local`](/docs/concepts/storage/volumes/#local) - local storage devices + mounted on nodes. +* [`nfs`](/docs/concepts/storage/volumes/#nfs) - Network File System (NFS) storage + +The following types of PersistentVolume are deprecated but still available. +If you are using these volume types except for `flexVolume`, `cephfs` and `rbd`, +please install corresponding CSI drivers. + +* [`awsElasticBlockStore`](/docs/concepts/storage/volumes/#awselasticblockstore) - AWS Elastic Block Store (EBS) + (**migration on by default** starting v1.23) +* [`azureDisk`](/docs/concepts/storage/volumes/#azuredisk) - Azure Disk + (**migration on by default** starting v1.23) +* [`azureFile`](/docs/concepts/storage/volumes/#azurefile) - Azure File + (**migration on by default** starting v1.24) +* [`cinder`](/docs/concepts/storage/volumes/#cinder) - Cinder (OpenStack block storage) + (**migration on by default** starting v1.21) +* [`flexVolume`](/docs/concepts/storage/volumes/#flexvolume) - FlexVolume + (**deprecated** starting v1.23, no migration plan and no plan to remove support) +* [`gcePersistentDisk`](/docs/concepts/storage/volumes/#gcePersistentDisk) - GCE Persistent Disk + (**migration on by default** starting v1.23) +* [`portworxVolume`](/docs/concepts/storage/volumes/#portworxvolume) - Portworx volume + (**migration on by default** starting v1.31) +* [`vsphereVolume`](/docs/concepts/storage/volumes/#vspherevolume) - vSphere VMDK volume + (**migration on by default** starting v1.25) + +Older versions of Kubernetes also supported the following in-tree PersistentVolume types: + +* [`cephfs`](/docs/concepts/storage/volumes/#cephfs) + (**not available** starting v1.31) +* `flocker` - Flocker storage. + (**not available** starting v1.25) +* `glusterfs` - GlusterFS storage. + (**not available** starting v1.26) +* `photonPersistentDisk` - Photon controller persistent disk. + (**not available** starting v1.15) +* `quobyte` - Quobyte volume. + (**not available** starting v1.25) +* [`rbd`](/docs/concepts/storage/volumes/#rbd) - Rados Block Device (RBD) volume + (**not available** starting v1.31) +* `scaleIO` - ScaleIO volume. + (**not available** starting v1.21) +* `storageos` - StorageOS volume. + (**not available** starting v1.25) + +## Persistent Volumes + +Each PV contains a spec and status, which is the specification and status of the volume. +The name of a PersistentVolume object must be a valid +[DNS subdomain name](/docs/concepts/overview/working-with-objects/names#dns-subdomain-names). + +```yaml +apiVersion: v1 +kind: PersistentVolume +metadata: + name: pv0003 +spec: + capacity: + storage: 5Gi + volumeMode: Filesystem + accessModes: + - ReadWriteOnce + persistentVolumeReclaimPolicy: Recycle + storageClassName: slow + mountOptions: + - hard + - nfsvers=4.1 + nfs: + path: /tmp + server: 172.17.0.2 +``` + +{{< note >}} +Helper programs relating to the volume type may be required for consumption of +a PersistentVolume within a cluster. In this example, the PersistentVolume is +of type NFS and the helper program /sbin/mount.nfs is required to support the +mounting of NFS filesystems. +{{< /note >}} + +### Capacity + +Generally, a PV will have a specific storage capacity. This is set using the PV's +`capacity` attribute which is a {{< glossary_tooltip term_id="quantity" >}} value. + +Currently, storage size is the only resource that can be set or requested. +Future attributes may include IOPS, throughput, etc. + +### Volume Mode + +{{< feature-state for_k8s_version="v1.18" state="stable" >}} + +Kubernetes supports two `volumeModes` of PersistentVolumes: `Filesystem` and `Block`. + +`volumeMode` is an optional API parameter. +`Filesystem` is the default mode used when `volumeMode` parameter is omitted. + +A volume with `volumeMode: Filesystem` is *mounted* into Pods into a directory. If the volume +is backed by a block device and the device is empty, Kubernetes creates a filesystem +on the device before mounting it for the first time. + +You can set the value of `volumeMode` to `Block` to use a volume as a raw block device. +Such volume is presented into a Pod as a block device, without any filesystem on it. +This mode is useful to provide a Pod the fastest possible way to access a volume, without +any filesystem layer between the Pod and the volume. On the other hand, the application +running in the Pod must know how to handle a raw block device. +See [Raw Block Volume Support](#raw-block-volume-support) +for an example on how to use a volume with `volumeMode: Block` in a Pod. + +### Access Modes + +A PersistentVolume can be mounted on a host in any way supported by the resource +provider. As shown in the table below, providers will have different capabilities +and each PV's access modes are set to the specific modes supported by that particular +volume. For example, NFS can support multiple read/write clients, but a specific +NFS PV might be exported on the server as read-only. Each PV gets its own set of +access modes describing that specific PV's capabilities. + +The access modes are: + +`ReadWriteOnce` +: the volume can be mounted as read-write by a single node. ReadWriteOnce access + mode still can allow multiple pods to access (read from or write to) that volume when the pods are + running on the same node. For single pod access, please see ReadWriteOncePod. + +`ReadOnlyMany` +: the volume can be mounted as read-only by many nodes. + +`ReadWriteMany` +: the volume can be mounted as read-write by many nodes. + + `ReadWriteOncePod` +: {{< feature-state for_k8s_version="v1.29" state="stable" >}} + the volume can be mounted as read-write by a single Pod. Use ReadWriteOncePod + access mode if you want to ensure that only one pod across the whole cluster can + read that PVC or write to it. + +{{< note >}} +The `ReadWriteOncePod` access mode is only supported for +{{< glossary_tooltip text="CSI" term_id="csi" >}} volumes and Kubernetes version +1.22+. To use this feature you will need to update the following +[CSI sidecars](https://kubernetes-csi.github.io/docs/sidecar-containers.html) +to these versions or greater: + +* [csi-provisioner:v3.0.0+](https://github.com/kubernetes-csi/external-provisioner/releases/tag/v3.0.0) +* [csi-attacher:v3.3.0+](https://github.com/kubernetes-csi/external-attacher/releases/tag/v3.3.0) +* [csi-resizer:v1.3.0+](https://github.com/kubernetes-csi/external-resizer/releases/tag/v1.3.0) +{{< /note >}} + +In the CLI, the access modes are abbreviated to: + +* RWO - ReadWriteOnce +* ROX - ReadOnlyMany +* RWX - ReadWriteMany +* RWOP - ReadWriteOncePod + +{{< note >}} +Kubernetes uses volume access modes to match PersistentVolumeClaims and PersistentVolumes. +In some cases, the volume access modes also constrain where the PersistentVolume can be mounted. +Volume access modes do **not** enforce write protection once the storage has been mounted. +Even if the access modes are specified as ReadWriteOnce, ReadOnlyMany, or ReadWriteMany, +they don't set any constraints on the volume. For example, even if a PersistentVolume is +created as ReadOnlyMany, it is no guarantee that it will be read-only. If the access modes +are specified as ReadWriteOncePod, the volume is constrained and can be mounted on only a single Pod. +{{< /note >}} + +> __Important!__ A volume can only be mounted using one access mode at a time, +> even if it supports many. + +| Volume Plugin | ReadWriteOnce | ReadOnlyMany | ReadWriteMany | ReadWriteOncePod | +| :--- | :---: | :---: | :---: | - | +| AzureFile | ✓ | ✓ | ✓ | - | +| CephFS | ✓ | ✓ | ✓ | - | +| CSI | depends on the driver | depends on the driver | depends on the driver | depends on the driver | +| FC | ✓ | ✓ | - | - | +| FlexVolume | ✓ | ✓ | depends on the driver | - | +| HostPath | ✓ | - | - | - | +| iSCSI | ✓ | ✓ | - | - | +| NFS | ✓ | ✓ | ✓ | - | +| RBD | ✓ | ✓ | - | - | +| VsphereVolume | ✓ | - | - (works when Pods are collocated) | - | +| PortworxVolume | ✓ | - | ✓ | - | - | + +### Class + +A PV can have a class, which is specified by setting the +`storageClassName` attribute to the name of a +[StorageClass](/docs/concepts/storage/storage-classes/). +A PV of a particular class can only be bound to PVCs requesting +that class. A PV with no `storageClassName` has no class and can only be bound +to PVCs that request no particular class. + +In the past, the annotation `volume.beta.kubernetes.io/storage-class` was used instead +of the `storageClassName` attribute. This annotation is still working; however, +it will become fully deprecated in a future Kubernetes release. + +### Reclaim Policy + +Current reclaim policies are: + +* Retain -- manual reclamation +* Recycle -- basic scrub (`rm -rf /thevolume/*`) +* Delete -- delete the volume + +For Kubernetes {{< skew currentVersion >}}, only `nfs` and `hostPath` volume types support recycling. + +### Mount Options + +A Kubernetes administrator can specify additional mount options for when a +Persistent Volume is mounted on a node. + +{{< note >}} +Not all Persistent Volume types support mount options. +{{< /note >}} + +The following volume types support mount options: + +* `csi` (including CSI migrated volume types) +* `iscsi` +* `nfs` + +Mount options are not validated. If a mount option is invalid, the mount fails. + +In the past, the annotation `volume.beta.kubernetes.io/mount-options` was used instead +of the `mountOptions` attribute. This annotation is still working; however, +it will become fully deprecated in a future Kubernetes release. + +### Node Affinity + +{{< note >}} +For most volume types, you do not need to set this field. +You need to explicitly set this for [local](/docs/concepts/storage/volumes/#local) volumes. +{{< /note >}} + +A PV can specify node affinity to define constraints that limit what nodes this +volume can be accessed from. Pods that use a PV will only be scheduled to nodes +that are selected by the node affinity. To specify node affinity, set +`nodeAffinity` in the `.spec` of a PV. The +[PersistentVolume](/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-v1/#PersistentVolumeSpec) +API reference has more details on this field. + +### Phase + +A PersistentVolume will be in one of the following phases: + +`Available` +: a free resource that is not yet bound to a claim + +`Bound` +: the volume is bound to a claim + +`Released` +: the claim has been deleted, but the associated storage resource is not yet reclaimed by the cluster + +`Failed` +: the volume has failed its (automated) reclamation + +You can see the name of the PVC bound to the PV using `kubectl describe persistentvolume `. + +#### Phase transition timestamp + +{{< feature-state feature_gate_name="PersistentVolumeLastPhaseTransitionTime" >}} + +The `.status` field for a PersistentVolume can include an alpha `lastPhaseTransitionTime` field. This field records +the timestamp of when the volume last transitioned its phase. For newly created +volumes the phase is set to `Pending` and `lastPhaseTransitionTime` is set to +the current time. + +## PersistentVolumeClaims + +Each PVC contains a spec and status, which is the specification and status of the claim. +The name of a PersistentVolumeClaim object must be a valid +[DNS subdomain name](/docs/concepts/overview/working-with-objects/names#dns-subdomain-names). + +```yaml +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: myclaim +spec: + accessModes: + - ReadWriteOnce + volumeMode: Filesystem + resources: + requests: + storage: 8Gi + storageClassName: slow + selector: + matchLabels: + release: "stable" + matchExpressions: + - {key: environment, operator: In, values: [dev]} +``` + +### Access Modes + +Claims use [the same conventions as volumes](#access-modes) when requesting +storage with specific access modes. + +### Volume Modes + +Claims use [the same convention as volumes](#volume-mode) to indicate the +consumption of the volume as either a filesystem or block device. + +### Volume Name + +Claims can use the `volumeName` field to explicitly bind to a specific PersistentVolume. You can also leave +`volumeName` unset, indicating that you'd like Kubernetes to set up a new PersistentVolume +that matches the claim. +If the specified PV is already bound to another PVC, the binding will be stuck +in a pending state. + +### Resources + +Claims, like Pods, can request specific quantities of a resource. In this case, +the request is for storage. The same +[resource model](https://git.k8s.io/design-proposals-archive/scheduling/resources.md) +applies to both volumes and claims. + +{{< note >}} +For `Filesystem` volumes, the storage request refers to the "outer" volume size +(i.e. the allocated size from the storage backend). +This means that the writeable size may be slightly lower for providers that +build a filesystem on top of a block device, due to filesystem overhead. +This is especially visible with XFS, where many metadata features are enabled by default. +{{< /note >}} + +### Selector + +Claims can specify a +[label selector](/docs/concepts/overview/working-with-objects/labels/#label-selectors) +to further filter the set of volumes. +Only the volumes whose labels match the selector can be bound to the claim. +The selector can consist of two fields: + +* `matchLabels` - the volume must have a label with this value +* `matchExpressions` - a list of requirements made by specifying key, list of values, + and operator that relates the key and values. + Valid operators include `In`, `NotIn`, `Exists`, and `DoesNotExist`. + +All of the requirements, from both `matchLabels` and `matchExpressions`, are +ANDed together – they must all be satisfied in order to match. + +### Class + +A claim can request a particular class by specifying the name of a +[StorageClass](/docs/concepts/storage/storage-classes/) +using the attribute `storageClassName`. +Only PVs of the requested class, ones with the same `storageClassName` as the PVC, +can be bound to the PVC. + +PVCs don't necessarily have to request a class. A PVC with its `storageClassName` set +equal to `""` is always interpreted to be requesting a PV with no class, so it +can only be bound to PVs with no class (no annotation or one set equal to `""`). +A PVC with no `storageClassName` is not quite the same and is treated differently +by the cluster, depending on whether the +[`DefaultStorageClass` admission plugin](/docs/reference/access-authn-authz/admission-controllers/#defaultstorageclass) +is turned on. + +* If the admission plugin is turned on, the administrator may specify a default StorageClass. + All PVCs that have no `storageClassName` can be bound only to PVs of that default. + Specifying a default StorageClass is done by setting the annotation + `storageclass.kubernetes.io/is-default-class` equal to `true` in a StorageClass object. + If the administrator does not specify a default, the cluster responds to PVC creation + as if the admission plugin were turned off. + If more than one default StorageClass is specified, the newest default is used when + the PVC is dynamically provisioned. +* If the admission plugin is turned off, there is no notion of a default StorageClass. + All PVCs that have `storageClassName` set to `""` can be bound only to PVs + that have `storageClassName` also set to `""`. + However, PVCs with missing `storageClassName` can be updated later once default StorageClass becomes available. + If the PVC gets updated it will no longer bind to PVs that have `storageClassName` also set to `""`. + +See [retroactive default StorageClass assignment](#retroactive-default-storageclass-assignment) for more details. + +Depending on installation method, a default StorageClass may be deployed +to a Kubernetes cluster by addon manager during installation. + +When a PVC specifies a `selector` in addition to requesting a StorageClass, +the requirements are ANDed together: only a PV of the requested class and with +the requested labels may be bound to the PVC. + +{{< note >}} +Currently, a PVC with a non-empty `selector` can't have a PV dynamically provisioned for it. +{{< /note >}} + +In the past, the annotation `volume.beta.kubernetes.io/storage-class` was used instead +of `storageClassName` attribute. This annotation is still working; however, +it won't be supported in a future Kubernetes release. + +#### Retroactive default StorageClass assignment + +{{< feature-state for_k8s_version="v1.28" state="stable" >}} + +You can create a PersistentVolumeClaim without specifying a `storageClassName` +for the new PVC, and you can do so even when no default StorageClass exists +in your cluster. In this case, the new PVC creates as you defined it, and the +`storageClassName` of that PVC remains unset until default becomes available. + +When a default StorageClass becomes available, the control plane identifies any +existing PVCs without `storageClassName`. For the PVCs that either have an empty +value for `storageClassName` or do not have this key, the control plane then +updates those PVCs to set `storageClassName` to match the new default StorageClass. +If you have an existing PVC where the `storageClassName` is `""`, and you configure +a default StorageClass, then this PVC will not get updated. + +In order to keep binding to PVs with `storageClassName` set to `""` +(while a default StorageClass is present), you need to set the `storageClassName` +of the associated PVC to `""`. + +This behavior helps administrators change default StorageClass by removing the +old one first and then creating or setting another one. This brief window while +there is no default causes PVCs without `storageClassName` created at that time +to not have any default, but due to the retroactive default StorageClass +assignment this way of changing defaults is safe. + +## Claims As Volumes + +Pods access storage by using the claim as a volume. Claims must exist in the +same namespace as the Pod using the claim. The cluster finds the claim in the +Pod's namespace and uses it to get the PersistentVolume backing the claim. +The volume is then mounted to the host and into the Pod. + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: mypod +spec: + containers: + - name: myfrontend + image: nginx + volumeMounts: + - mountPath: "/var/www/html" + name: mypd + volumes: + - name: mypd + persistentVolumeClaim: + claimName: myclaim +``` + +### A Note on Namespaces + +PersistentVolumes binds are exclusive, and since PersistentVolumeClaims are +namespaced objects, mounting claims with "Many" modes (`ROX`, `RWX`) is only +possible within one namespace. + +### PersistentVolumes typed `hostPath` + +A `hostPath` PersistentVolume uses a file or directory on the Node to emulate +network-attached storage. See +[an example of `hostPath` typed volume](/docs/tasks/configure-pod-container/configure-persistent-volume-storage/#create-a-persistentvolume). + +## Raw Block Volume Support + +{{< feature-state for_k8s_version="v1.18" state="stable" >}} + +The following volume plugins support raw block volumes, including dynamic provisioning where +applicable: + +* CSI (including some CSI migrated volume types) +* FC (Fibre Channel) +* iSCSI +* Local volume + +### PersistentVolume using a Raw Block Volume {#persistent-volume-using-a-raw-block-volume} + +```yaml +apiVersion: v1 +kind: PersistentVolume +metadata: + name: block-pv +spec: + capacity: + storage: 10Gi + accessModes: + - ReadWriteOnce + volumeMode: Block + persistentVolumeReclaimPolicy: Retain + fc: + targetWWNs: ["50060e801049cfd1"] + lun: 0 + readOnly: false +``` + +### PersistentVolumeClaim requesting a Raw Block Volume {#persistent-volume-claim-requesting-a-raw-block-volume} + +```yaml +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: block-pvc +spec: + accessModes: + - ReadWriteOnce + volumeMode: Block + resources: + requests: + storage: 10Gi +``` + +### Pod specification adding Raw Block Device path in container + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: pod-with-block-volume +spec: + containers: + - name: fc-container + image: fedora:26 + command: ["/bin/sh", "-c"] + args: [ "tail -f /dev/null" ] + volumeDevices: + - name: data + devicePath: /dev/xvda + volumes: + - name: data + persistentVolumeClaim: + claimName: block-pvc +``` + +{{< note >}} +When adding a raw block device for a Pod, you specify the device path in the +container instead of a mount path. +{{< /note >}} + +### Binding Block Volumes + +If a user requests a raw block volume by indicating this using the `volumeMode` +field in the PersistentVolumeClaim spec, the binding rules differ slightly from +previous releases that didn't consider this mode as part of the spec. +Listed is a table of possible combinations the user and admin might specify for +requesting a raw block device. The table indicates if the volume will be bound or +not given the combinations: Volume binding matrix for statically provisioned volumes: + +| PV volumeMode | PVC volumeMode | Result | +| --------------|:---------------:| ----------------:| +| unspecified | unspecified | BIND | +| unspecified | Block | NO BIND | +| unspecified | Filesystem | BIND | +| Block | unspecified | NO BIND | +| Block | Block | BIND | +| Block | Filesystem | NO BIND | +| Filesystem | Filesystem | BIND | +| Filesystem | Block | NO BIND | +| Filesystem | unspecified | BIND | + +{{< note >}} +Only statically provisioned volumes are supported for alpha release. Administrators +should take care to consider these values when working with raw block devices. +{{< /note >}} + +## Volume Snapshot and Restore Volume from Snapshot Support + +{{< feature-state for_k8s_version="v1.20" state="stable" >}} + +Volume snapshots only support the out-of-tree CSI volume plugins. +For details, see [Volume Snapshots](/docs/concepts/storage/volume-snapshots/). +In-tree volume plugins are deprecated. You can read about the deprecated volume +plugins in the +[Volume Plugin FAQ](https://github.com/kubernetes/community/blob/master/sig-storage/volume-plugin-faq.md). + +### Create a PersistentVolumeClaim from a Volume Snapshot {#create-persistent-volume-claim-from-volume-snapshot} + +```yaml +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: restore-pvc +spec: + storageClassName: csi-hostpath-sc + dataSource: + name: new-snapshot-test + kind: VolumeSnapshot + apiGroup: snapshot.storage.k8s.io + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi +``` + +## Volume Cloning + +[Volume Cloning](/docs/concepts/storage/volume-pvc-datasource/) +only available for CSI volume plugins. + +### Create PersistentVolumeClaim from an existing PVC {#create-persistent-volume-claim-from-an-existing-pvc} + +```yaml +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: cloned-pvc +spec: + storageClassName: my-csi-plugin + dataSource: + name: existing-src-pvc-name + kind: PersistentVolumeClaim + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi +``` + +## Volume populators and data sources + +{{< feature-state for_k8s_version="v1.24" state="beta" >}} + +Kubernetes supports custom volume populators. +To use custom volume populators, you must enable the `AnyVolumeDataSource` +[feature gate](/docs/reference/command-line-tools-reference/feature-gates/) for +the kube-apiserver and kube-controller-manager. + +Volume populators take advantage of a PVC spec field called `dataSourceRef`. Unlike the +`dataSource` field, which can only contain either a reference to another PersistentVolumeClaim +or to a VolumeSnapshot, the `dataSourceRef` field can contain a reference to any object in the +same namespace, except for core objects other than PVCs. For clusters that have the feature +gate enabled, use of the `dataSourceRef` is preferred over `dataSource`. + +## Cross namespace data sources + +{{< feature-state for_k8s_version="v1.26" state="alpha" >}} + +Kubernetes supports cross namespace volume data sources. +To use cross namespace volume data sources, you must enable the `AnyVolumeDataSource` +and `CrossNamespaceVolumeDataSource` +[feature gates](/docs/reference/command-line-tools-reference/feature-gates/) for +the kube-apiserver and kube-controller-manager. +Also, you must enable the `CrossNamespaceVolumeDataSource` feature gate for the csi-provisioner. + +Enabling the `CrossNamespaceVolumeDataSource` feature gate allows you to specify +a namespace in the dataSourceRef field. + +{{< note >}} +When you specify a namespace for a volume data source, Kubernetes checks for a +ReferenceGrant in the other namespace before accepting the reference. +ReferenceGrant is part of the `gateway.networking.k8s.io` extension APIs. +See [ReferenceGrant](https://gateway-api.sigs.k8s.io/api-types/referencegrant/) +in the Gateway API documentation for details. +This means that you must extend your Kubernetes cluster with at least ReferenceGrant from the +Gateway API before you can use this mechanism. +{{< /note >}} + +## Data source references + +The `dataSourceRef` field behaves almost the same as the `dataSource` field. If one is +specified while the other is not, the API server will give both fields the same value. Neither +field can be changed after creation, and attempting to specify different values for the two +fields will result in a validation error. Therefore the two fields will always have the same +contents. + +There are two differences between the `dataSourceRef` field and the `dataSource` field that +users should be aware of: + +* The `dataSource` field ignores invalid values (as if the field was blank) while the + `dataSourceRef` field never ignores values and will cause an error if an invalid value is + used. Invalid values are any core object (objects with no apiGroup) except for PVCs. +* The `dataSourceRef` field may contain different types of objects, while the `dataSource` field + only allows PVCs and VolumeSnapshots. + +When the `CrossNamespaceVolumeDataSource` feature is enabled, there are additional differences: + +* The `dataSource` field only allows local objects, while the `dataSourceRef` field allows + objects in any namespaces. +* When namespace is specified, `dataSource` and `dataSourceRef` are not synced. + +Users should always use `dataSourceRef` on clusters that have the feature gate enabled, and +fall back to `dataSource` on clusters that do not. It is not necessary to look at both fields +under any circumstance. The duplicated values with slightly different semantics exist only for +backwards compatibility. In particular, a mixture of older and newer controllers are able to +interoperate because the fields are the same. + +### Using volume populators + +Volume populators are {{< glossary_tooltip text="controllers" term_id="controller" >}} that can +create non-empty volumes, where the contents of the volume are determined by a Custom Resource. +Users create a populated volume by referring to a Custom Resource using the `dataSourceRef` field: + +```yaml +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: populated-pvc +spec: + dataSourceRef: + name: example-name + kind: ExampleDataSource + apiGroup: example.storage.k8s.io + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi +``` + +Because volume populators are external components, attempts to create a PVC that uses one +can fail if not all the correct components are installed. External controllers should generate +events on the PVC to provide feedback on the status of the creation, including warnings if +the PVC cannot be created due to some missing component. + +You can install the alpha [volume data source validator](https://github.com/kubernetes-csi/volume-data-source-validator) +controller into your cluster. That controller generates warning Events on a PVC in the case that no populator +is registered to handle that kind of data source. When a suitable populator is installed for a PVC, it's the +responsibility of that populator controller to report Events that relate to volume creation and issues during +the process. + +### Using a cross-namespace volume data source + +{{< feature-state for_k8s_version="v1.26" state="alpha" >}} + +Create a ReferenceGrant to allow the namespace owner to accept the reference. +You define a populated volume by specifying a cross namespace volume data source +using the `dataSourceRef` field. You must already have a valid ReferenceGrant +in the source namespace: + + ```yaml + apiVersion: gateway.networking.k8s.io/v1beta1 + kind: ReferenceGrant + metadata: + name: allow-ns1-pvc + namespace: default + spec: + from: + - group: "" + kind: PersistentVolumeClaim + namespace: ns1 + to: + - group: snapshot.storage.k8s.io + kind: VolumeSnapshot + name: new-snapshot-demo + ``` + + ```yaml + apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: foo-pvc + namespace: ns1 + spec: + storageClassName: example + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + dataSourceRef: + apiGroup: snapshot.storage.k8s.io + kind: VolumeSnapshot + name: new-snapshot-demo + namespace: default + volumeMode: Filesystem + ``` + +## Writing Portable Configuration + +If you're writing configuration templates or examples that run on a wide range of clusters +and need persistent storage, it is recommended that you use the following pattern: + +- Include PersistentVolumeClaim objects in your bundle of config (alongside + Deployments, ConfigMaps, etc). +- Do not include PersistentVolume objects in the config, since the user instantiating + the config may not have permission to create PersistentVolumes. +- Give the user the option of providing a storage class name when instantiating + the template. + - If the user provides a storage class name, put that value into the + `persistentVolumeClaim.storageClassName` field. + This will cause the PVC to match the right storage + class if the cluster has StorageClasses enabled by the admin. + - If the user does not provide a storage class name, leave the + `persistentVolumeClaim.storageClassName` field as nil. This will cause a + PV to be automatically provisioned for the user with the default StorageClass + in the cluster. Many cluster environments have a default StorageClass installed, + or administrators can create their own default StorageClass. +- In your tooling, watch for PVCs that are not getting bound after some time + and surface this to the user, as this may indicate that the cluster has no + dynamic storage support (in which case the user should create a matching PV) + or the cluster has no storage system (in which case the user cannot deploy + config requiring PVCs). + +## {{% heading "whatsnext" %}} + +* Learn more about [Creating a PersistentVolume](/docs/tasks/configure-pod-container/configure-persistent-volume-storage/#create-a-persistentvolume). +* Learn more about [Creating a PersistentVolumeClaim](/docs/tasks/configure-pod-container/configure-persistent-volume-storage/#create-a-persistentvolumeclaim). +* Read the [Persistent Storage design document](https://git.k8s.io/design-proposals-archive/storage/persistent-storage.md). + +### API references {#reference} + +Read about the APIs described in this page: + +* [`PersistentVolume`](/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-v1/) +* [`PersistentVolumeClaim`](/docs/reference/kubernetes-api/config-and-storage-resources/persistent-volume-claim-v1/) diff --git a/content/fa/docs/concepts/workloads/_index.md b/content/fa/docs/concepts/workloads/_index.md new file mode 100644 index 0000000000000..2d9c17c6cad85 --- /dev/null +++ b/content/fa/docs/concepts/workloads/_index.md @@ -0,0 +1,92 @@ +--- +title: "بارکاری" +weight: 55 +description: > + پادها، کوچکترین شیء محاسباتی قابل استقرار در کوبرنتیز، و انتزاع‌های سطح بالاتری که به شما در اجرای آنها کمک می‌کنند را درک کنید. +no_list: true +card: + title: بارکاری و پادها + name: concepts + weight: 60 +--- + +{{< glossary_definition term_id="workload" length="short" >}} +چه وظیفه شما یک مؤلفه واحد باشد یا چندین مؤلفه که با هم کار می‌کنند، در کوبرنتیز آن را +درون مجموعه‌ای از [_Pods_](/docs/concepts/workloads/pods) اجرا می‌کنید. +در کوبرنتیز، یک Pod نمایانگر مجموعه‌ای از +{{< glossary_tooltip text="Containers" term_id="container" >}} +در حال اجرا روی خوشه شماست. + +Pods در کوبرنتیز یک [چرخه عمر تعریف‌شده](/docs/concepts/workloads/pods/pod-lifecycle/) دارند. +برای مثال، وقتی یک Pod در خوشه شما در حال اجراست، یک خطای بحرانی در +{{< glossary_tooltip text="Node" term_id="node" >}} +که آن Pod روی آن اجرا می‌شود، به معنای از کار افتادن همه Podهای آن Node است. +کوبرنتیز این سطح از خطا را نهایی در نظر می‌گیرد: برای بازیابی باید یک Pod جدید ایجاد کنید، +حتی اگر آن Node بعداً سالم شود. + +با این حال، برای ساده‌تر شدن کار، نیازی نیست هر Pod را مستقیماً مدیریت کنید. +در عوض می‌توانید از _Workload resources_ استفاده کنید که مجموعه‌ای از Pods را به نمایندگی از شما مدیریت می‌کنند. +این منابع {{< glossary_tooltip term_id="controller" text="Controllers" >}} +را پیکربندی می‌کنند تا مطمئن شوند تعداد مناسب و نوع صحیح Pod در حال اجرا باشد، +مطابق با حالتی که شما مشخص کرده‌اید. + +کوبرنتیز چند منبع پیش‌فرض برای Workload فراهم می‌کند: + +* [Deployment](/docs/concepts/workloads/controllers/deployment/) و [ReplicaSet](/docs/concepts/workloads/controllers/replicaset/) + (جایگزین منبع قدیمی + {{< glossary_tooltip text="ReplicationController" term_id="replication-controller" >}}). + Deployment برای مدیریت یک بار کاری بدون وضعیت (stateless) در خوشه شما مناسب است، + جایی که هر Pod در این Deployment قابل تعویض بوده و در صورت لزوم می‌توان آن را جایگزین کرد. + +* [StatefulSet](/docs/concepts/workloads/controllers/statefulset/) + به شما اجازه می‌دهد یک یا چند Pod مرتبط که به نوعی وضعیت (state) را دنبال می‌کنند، اجرا کنید. + برای مثال، اگر بار کاری شما داده‌ها را به‌صورت مداوم ثبت می‌کند، می‌توانید یک StatefulSet + اجرا کنید که هر Pod را به یک + [PersistentVolume](/docs/concepts/storage/persistent-volumes/) + اختصاص دهد. کد شما، که در Pods متعلق به آن StatefulSet اجرا می‌شود، می‌تواند داده‌ها را + بین سایر Pods در همان StatefulSet تکرار کند تا مقاومت کلی افزایش یابد. + +* [DaemonSet](/docs/concepts/workloads/controllers/daemonset/) + Pods‌ای را تعریف می‌کند که خدمات محلی (local) به هر Node ارائه می‌دهند. + هر بار که یک Node جدید به خوشه شما اضافه شود و با مشخصات یک DaemonSet مطابقت داشته باشد، + کنترل‌پلن یک Pod از آن DaemonSet را روی Node جدید زمان‌بندی می‌کند. + هر Pod در یک DaemonSet کاری شبیه یک سرویس سیستم (system daemon) در سرورهای کلاسیک Unix/POSIX انجام می‌دهد. + یک DaemonSet ممکن است برای عملکرد خوشه شما اساسی باشد، مانند افزونه‌ای برای اجرای + [شبکه‌بندی خوشه](/docs/concepts/cluster-administration/networking/#how-to-implement-the-kubernetes-network-model)، + یا ممکن است به مدیریت Node کمک کند، یا رفتاری اختیاری فراهم کند که پلتفرم کانتینری شما را بهبود دهد. + +* [Job](/docs/concepts/workloads/controllers/job/) و + [CronJob](/docs/concepts/workloads/controllers/cron-jobs/) + روش‌های متفاوتی برای تعریف وظایفی فراهم می‌کنند که تا پایان اجرا شده و سپس متوقف می‌شوند. + می‌توانید از [Job](/docs/concepts/workloads/controllers/job/) + برای تعریف یک وظیفه که یک بار و تا پایان اجرا شود استفاده کنید. + می‌توانید از [CronJob](/docs/concepts/workloads/controllers/cron-jobs/) + برای اجرای مکرر همان Job طبق یک زمان‌بندی مشخص استفاده کنید. + +در بن‌سازه گسترده‌تر کوبرنتیز، می‌توانید منابع workload شخص ثالث را بیابید که رفتارهای اضافی ارائه می‌دهند. +با استفاده از یک +[Custom Resource Definition](/docs/concepts/extend-kubernetes/api-extension/custom-resources/)، +می‌توانید منبع workload شخص ثالثی اضافه کنید اگر به رفتار خاصی نیاز دارید که در هسته کوبرنتیز موجود نیست. +برای مثال، اگر می‌خواستید گروهی از Pods را برای برنامه‌تان اجرا کنید اما کار را تا زمانی که _همه_ Pods در دسترس نباشند متوقف کنید +(شاید برای بعضی کارهای توزیع‌شده با توان بالا)، +می‌توانید افزونه‌ای پیاده‌سازی یا نصب کنید که آن ویژگی را فراهم آورد. + +## {{% heading "whatsnext" %}} + +هم‌چنین علاوه بر مطالعه هر نوع API برای مدیریت Workload، می‌توانید یاد بگیرید چگونه کارهای خاص را انجام دهید: + +* [اجرای یک برنامه بدون وضعیت با استفاده از Deployment](/docs/tasks/run-application/run-stateless-application-deployment/) +* اجرای یک برنامه با وضعیت به‌صورت [یک نمونه واحد](/docs/tasks/run-application/run-single-instance-stateful-application/) + یا به‌صورت [مجموعه تکرارشده](/docs/tasks/run-application/run-replicated-stateful-application/) +* [اجرای وظایف خودکار با CronJob](/docs/tasks/job/automated-tasks-with-cron-jobs/) + +برای آشنایی با مکانیزم‌های کوبرنتیز برای جدا کردن کد از پیکربندی، به [Configuration](/docs/concepts/configuration/) مراجعه کنید. + +دو مفهوم پشتیبان وجود دارند که زمینه نحوه مدیریت Pods برای برنامه‌ها توسط کوبرنتیز را توضیح می‌دهند: +* [Garbage collection](/docs/concepts/architecture/garbage-collection/) اشیاء را پس از حذف _منبع مالک_ آن‌ها از بین می‌برد. +* [_time-to-live after finished_ controller](/docs/concepts/workloads/controllers/ttlafterfinished/) + پس از گذشت زمان مشخصی از تکمیل Jobs، آن‌ها را حذف می‌کند. + +پس از اجرای برنامه شما، ممکن است بخواهید آن را به‌صورت یک [Service](/docs/concepts/services-networking/service/) +در اینترنت در دسترس قرار دهید یا برای برنامه‌های وب فقط با استفاده از یک [Ingress](/docs/concepts/services-networking/ingress/) منتشر کنید. + diff --git a/content/fa/docs/concepts/workloads/autoscaling.md b/content/fa/docs/concepts/workloads/autoscaling.md new file mode 100644 index 0000000000000..6e3e28e1457c8 --- /dev/null +++ b/content/fa/docs/concepts/workloads/autoscaling.md @@ -0,0 +1,129 @@ +--- +title: مقیاس‌بندی خودکار بارهای کاری +description: >- + با مقیاس‌بندی خودکار، می‌توانید بارهای کاری خود را به طور خودکار به یک روش یا روش دیگر به‌روزرسانی کنید. این به خوشه شما اجازه می‌دهد تا به تغییرات در تقاضای منابع، انعطاف‌پذیرتر و کارآمدتر واکنش نشان دهد. +content_type: concept +weight: 40 +--- + + + +در Kubernetes، می‌توانید بسته به تقاضای فعلی منابع، حجم کار را _مقیاس_ کنید. + +این به خوشه شما اجازه می‌دهد تا به تغییرات در تقاضای منابع، انعطاف‌پذیرتر و کارآمدتر واکنش نشان دهد. + +هنگامی که یک حجم کار را مقیاس‌بندی می‌کنید، می‌توانید تعداد کپی‌های مدیریت‌شده توسط حجم کار را افزایش یا کاهش دهید، یا منابع موجود برای کپی‌های موجود را تنظیم کنید. + +رویکرد اول به عنوان _مقیاس‌بندی افقی_ و رویکرد دوم به عنوان _مقیاس‌بندی عمودی_ شناخته می‌شود. + +بسته به مورد استفاده شما، روش‌های دستی و خودکار برای مقیاس‌بندی حجم کار شما وجود دارد. + + + +## مقیاس‌بندی دستی بارهای کاری + +کوبرنتیز از _مقیاس‌بندی دستی_ بارهای کاری پشتیبانی می‌کند. مقیاس‌بندی افقی را می‌توانید +با استفاده از ابزار `kubectl` انجام دهید. +برای مقیاس‌بندی عمودی، باید تعریف منبع بار کاری خود را _patch_ کنید. + +مثال هر دو استراتژی را در ادامه ببینید: + +- **مقیاس‌بندی افقی**: [اجرای چند نمونه از برنامه شما](/docs/tutorials/kubernetes-basics/scale/scale-intro/) +- **مقیاس‌بندی عمودی**: [تغییر اندازه منابع CPU و حافظه اختصاص‌یافته به کانتینرها](/docs/tasks/configure-pod-container/resize-container-resources) + +## مقیاس‌بندی خودکار بارهای کاری + +کوبرنتیز همچنین از _مقیاس‌بندی خودکار_ بارهای کاری پشتیبانی می‌کند که موضوع این صفحه است. + +مفهوم _Autoscaling_ در کوبرنتیز به توانایی به‌روزرسانی خودکار یک +شیٔی که مجموعه‌ای از Pods را مدیریت می‌کند (برای مثال +{{< glossary_tooltip text="Deployment" term_id="deployment" >}}) اشاره دارد. + +### مقیاس‌بندی بارهای کاری به‌صورت افقی + +در کوبرنتیز، می‌توانید به‌صورت خودکار بار کاری را به‌صورت افقی با استفاده از _HorizontalPodAutoscaler_ مقیاس‌بندی کنید. + +این قابلیت به‌عنوان یک منبع API کوبرنتیز و یک {{< glossary_tooltip text="controller" term_id="controller" >}} پیاده‌سازی شده و به‌طور دوره‌ای تعداد {{< glossary_tooltip text="replicas" term_id="replica" >}} را در یک بار کاری تنظیم می‌کند تا با مصرف منابع مشاهده‌شده مانند استفاده از CPU یا حافظه هم‌خوانی داشته باشد. + +یک [آموزش گام‌به‌گام](/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough) برای پیکربندی _HorizontalPodAutoscaler_ برای یک Deployment وجود دارد. + +### مقیاس‌بندی بارهای کاری به‌صورت عمودی + +{{< feature-state for_k8s_version="v1.25" state="stable" >}} + +می‌توانید به‌صورت خودکار بار کاری را به‌صورت عمودی با استفاده از _VerticalPodAutoscaler_ مقیاس‌بندی کنید. بر خلاف HPA، VPA به‌طور پیش‌فرض همراه کوبرنتیز عرضه نمی‌شود، بلکه یک پروژه مستقل است که در [GitHub](https://github.com/kubernetes/autoscaler/tree/9f87b78df0f1d6e142234bb32e8acbd71295585a/vertical-pod-autoscaler) در دسترس قرار دارد. + +پس از نصب، می‌توانید برای بارهای کاری خود {{< glossary_tooltip text="CustomResourceDefinitions" term_id="customresourcedefinition" >}} (CRD) ایجاد کنید که تعریف می‌کنند _چگونه_ و _چه زمانی_ منابع نسخه‌های مدیریت‌شده را مقیاس‌بندی کنند. + +{{< note >}} +برای کارکرد VPA نیاز است که [Metrics Server](https://github.com/kubernetes-sigs/metrics-server) در خوشه شما نصب شده باشد. +{{< /note >}} + +در حال حاضر، VPA می‌تواند در چهار حالت مختلف کار کند: + +{{< table caption="حالت‌های مختلف VPA" >}} +حالت | توضیحات +:----|:----------- +`Auto` | در حال حاضر `Recreate`. ممکن است در آینده به به‌روزرسانی درجا (in-place) تغییر یابد. +`Recreate` | VPA درخواست‌های منابع را هنگام ایجاد پاد تنظیم می‌کند و همچنین با بیرون‌کردن پادهای موجود، آن‌ها را به‌روزرسانی می‌کند وقتی درخواست منابع به‌طور قابل توجهی با پیشنهاد جدید متفاوت باشد. +`Initial` | VPA تنها هنگام ایجاد پاد درخواست‌های منابع را تنظیم می‌کند و پس از آن هرگز آن‌ها را تغییر نمی‌دهد. +`Off` | VPA به‌صورت خودکار نیازمندی‌های منابع پادها را تغییر نمی‌دهد. پیشنهادها محاسبه می‌شوند و می‌توان آن‌ها را در شی VPA بررسی کرد. +{{< /table >}} + +#### مقیاس‌بندی عمودی پاد درجا + +{{< feature-state feature_gate_name="InPlacePodVerticalScaling" >}} + +از زمان Kubernetes {{< skew currentVersion >}}، VPA از تغییر اندازه پادها درجا پشتیبانی نمی‌کند، اما این ادغام در دست کار است. +برای تغییر اندازه دستی پادها درجا، به [Resize Container Resources In-Place](/docs/tasks/configure-pod-container/resize-container-resources/) مراجعه کنید. + +### مقیاس‌بندی خودکار بر اساس اندازه خوشه + +برای بارهای کاری که نیاز به مقیاس‌بندی بر اساس اندازه خوشه دارند (برای مثال `cluster-dns` یا سایر اجزای سیستمی)، می‌توانید از +[_Cluster Proportional Autoscaler_](https://github.com/kubernetes-sigs/cluster-proportional-autoscaler) استفاده کنید. +مانند VPA، این ابزار بخشی از هسته کوبرنتیز نیست و به‌صورت یک پروژه مستقل در GitHub میزبانی می‌شود. + +Cluster Proportional Autoscaler تعداد {{< glossary_tooltip text="Nodes" term_id="node" >}} قابل زمان‌بندی و هسته‌ها را پایش کرده و +تعداد Replicaهای بار کاری هدف را بر همان اساس تنظیم می‌کند. + +اگر قرار است تعداد Replicaها ثابت بماند، می‌توانید بارهای کاری خود را به‌صورت عمودی بر اساس اندازه خوشه مقیاس دهید +با استفاده از [_Cluster Proportional Vertical Autoscaler_](https://github.com/kubernetes-sigs/cluster-proportional-vertical-autoscaler). +این پروژه **در حال حاضر در مرحله بتا** قرار دارد و در GitHub در دسترس است. + +در حالی که Cluster Proportional Autoscaler تعداد Replicaهای یک بار کاری را مقیاس می‌دهد، +Cluster Proportional Vertical Autoscaler درخواست‌های منابع (برای مثال در یک Deployment یا DaemonSet) را +بر اساس تعداد Nodes و/یا هسته‌ها در خوشه تنظیم می‌کند. + +### مقیاس‌بندی خودکار مبتنی بر رویداد + +همچنین امکان مقیاس‌بندی بارهای کاری بر اساس رویدادها وجود دارد، برای مثال با استفاده از +[_Kubernetes Event Driven Autoscaler_ (**KEDA**)](https://keda.sh/). + +KEDA یک پروژه فارغ‌التحصیل‌شده از CNCF است که به شما امکان می‌دهد بارهای کاری خود را +بر اساس تعداد رویدادهای قابل پردازش—مثلاً تعداد پیام‌ها در یک صف—مقیاس دهید. +برای منابع رویداد مختلف، آداپتورهای متنوعی در دسترس هستند. + +### مقیاس‌بندی خودکار بر اساس زمان‌بندی‌ها + +استراتژی دیگری برای مقیاس‌بندی بارهای کاری شما این است که عملیات مقیاس‌بندی را **زمان‌بندی** کنید، برای مثال جهت کاهش مصرف منابع در ساعات کم‌بار. + +مشابه مقیاس‌بندی خودکار مبتنی بر رویداد، این رفتار را می‌توان با استفاده از KEDA همراه با +[`Cron` scaler](https://keda.sh/docs/latest/scalers/cron/) +دستیابی کرد. +`Cron` scaler به شما امکان می‌دهد زمان‌بندی‌ها (و مناطق زمانی) را برای مقیاس دادن بارهای کاری خود به داخل یا خارج تعریف کنید. + +## مقیاس‌بندی زیرساخت خوشه + +اگر مقیاس‌بندی بارهای کاری برای رفع نیازهای شما کافی نیست، می‌توانید زیرساخت خوشه خود را نیز مقیاس دهید. + +مقیاس‌بندی زیرساخت خوشه به‌طور معمول افزودن یا حذف {{< glossary_tooltip text="nodes" term_id="node" >}} را شامل می‌شود. +برای اطلاعات بیشتر، [Node autoscaling](/docs/concepts/cluster-administration/node-autoscaling/) را ببینید. + +## {{% heading "whatsnext" %}} + +- یادگیری بیشتر درباره مقیاس‌بندی افقی + - [مقیاس یک StatefulSet](/docs/tasks/run-application/scale-stateful-set/) + - [آموزش گام‌به‌گام HorizontalPodAutoscaler](/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/) +- [تغییر اندازه منابع کانتینر به‌صورت درجا](/docs/tasks/configure-pod-container/resize-container-resources/) +- [مقیاس‌بندی خودکار سرویس DNS در خوشه](/docs/tasks/administer-cluster/dns-horizontal-autoscaling/) +- آشنایی با [Node autoscaling](/docs/concepts/cluster-administration/node-autoscaling/) diff --git a/content/fa/docs/concepts/workloads/controllers/deployment.md b/content/fa/docs/concepts/workloads/controllers/deployment.md new file mode 100644 index 0000000000000..c312037f23dde --- /dev/null +++ b/content/fa/docs/concepts/workloads/controllers/deployment.md @@ -0,0 +1,1367 @@ +--- +reviewers: +- xirehat +title: Deployments +api_metadata: +- apiVersion: "apps/v1" + kind: "Deployment" +feature: + title: انتشار و انتشار مجدد خودکار + description: > + کوبرنتیز به تدریج تغییرات را در برنامه یا پیکربندی آن اعمال می‌کند، ضمن اینکه سلامت برنامه را رصد می‌کند تا مطمئن شود که همه نمونه‌های شما را به طور همزمان از بین نمی‌برد. اگر مشکلی پیش بیاید، کوبرنتیز تغییر را برای شما به حالت اولیه برمی‌گرداند. از یک بن‌سازه رو به رشد از راه‌حل‌های استقرار بهره‌مند شوید. +description: >- + یک Deployment مجموعه‌ای از Podها را برای اجرای یک بار کاری برنامه مدیریت می‌کند، که معمولاً برنامه‌ای است که وضعیت (state) را حفظ نمی‌کند. +content_type: concept +weight: 10 +hide_summary: true # Listed separately in section index +--- + + + +A _Deployment_ provides declarative updates for {{< glossary_tooltip text="Pods" term_id="pod" >}} and +{{< glossary_tooltip term_id="replica-set" text="ReplicaSets" >}}. + +You describe a _desired state_ in a Deployment, and the Deployment {{< glossary_tooltip term_id="controller" >}} changes the actual state to the desired state at a controlled rate. You can define Deployments to create new ReplicaSets, or to remove existing Deployments and adopt all their resources with new Deployments. + +{{< note >}} +Do not manage ReplicaSets owned by a Deployment. Consider opening an issue in the main Kubernetes repository if your use case is not covered below. +{{< /note >}} + + + +## Use Case + +The following are typical use cases for Deployments: + +* [Create a Deployment to rollout a ReplicaSet](#creating-a-deployment). The ReplicaSet creates Pods in the background. Check the status of the rollout to see if it succeeds or not. +* [Declare the new state of the Pods](#updating-a-deployment) by updating the PodTemplateSpec of the Deployment. A new ReplicaSet is created and the Deployment manages moving the Pods from the old ReplicaSet to the new one at a controlled rate. Each new ReplicaSet updates the revision of the Deployment. +* [Rollback to an earlier Deployment revision](#rolling-back-a-deployment) if the current state of the Deployment is not stable. Each rollback updates the revision of the Deployment. +* [Scale up the Deployment to facilitate more load](#scaling-a-deployment). +* [Pause the rollout of a Deployment](#pausing-and-resuming-a-deployment) to apply multiple fixes to its PodTemplateSpec and then resume it to start a new rollout. +* [Use the status of the Deployment](#deployment-status) as an indicator that a rollout has stuck. +* [Clean up older ReplicaSets](#clean-up-policy) that you don't need anymore. + +## Creating a Deployment + +The following is an example of a Deployment. It creates a ReplicaSet to bring up three `nginx` Pods: + +{{% code_sample file="controllers/nginx-deployment.yaml" %}} + +In this example: + +* A Deployment named `nginx-deployment` is created, indicated by the + `.metadata.name` field. This name will become the basis for the ReplicaSets + and Pods which are created later. See [Writing a Deployment Spec](#writing-a-deployment-spec) + for more details. +* The Deployment creates a ReplicaSet that creates three replicated Pods, indicated by the `.spec.replicas` field. +* The `.spec.selector` field defines how the created ReplicaSet finds which Pods to manage. + In this case, you select a label that is defined in the Pod template (`app: nginx`). + However, more sophisticated selection rules are possible, + as long as the Pod template itself satisfies the rule. + + {{< note >}} + The `.spec.selector.matchLabels` field is a map of {key,value} pairs. + A single {key,value} in the `matchLabels` map is equivalent to an element of `matchExpressions`, + whose `key` field is "key", the `operator` is "In", and the `values` array contains only "value". + All of the requirements, from both `matchLabels` and `matchExpressions`, must be satisfied in order to match. + {{< /note >}} + +* The `.spec.template` field contains the following sub-fields: + * The Pods are labeled `app: nginx`using the `.metadata.labels` field. + * The Pod template's specification, or `.spec` field, indicates that + the Pods run one container, `nginx`, which runs the `nginx` + [Docker Hub](https://hub.docker.com/) image at version 1.14.2. + * Create one container and name it `nginx` using the `.spec.containers[0].name` field. + +Before you begin, make sure your Kubernetes cluster is up and running. +Follow the steps given below to create the above Deployment: + +1. Create the Deployment by running the following command: + + ```shell + kubectl apply -f https://k8s.io/examples/controllers/nginx-deployment.yaml + ``` + +2. Run `kubectl get deployments` to check if the Deployment was created. + + If the Deployment is still being created, the output is similar to the following: + ``` + NAME READY UP-TO-DATE AVAILABLE AGE + nginx-deployment 0/3 0 0 1s + ``` + When you inspect the Deployments in your cluster, the following fields are displayed: + * `NAME` lists the names of the Deployments in the namespace. + * `READY` displays how many replicas of the application are available to your users. It follows the pattern ready/desired. + * `UP-TO-DATE` displays the number of replicas that have been updated to achieve the desired state. + * `AVAILABLE` displays how many replicas of the application are available to your users. + * `AGE` displays the amount of time that the application has been running. + + Notice how the number of desired replicas is 3 according to `.spec.replicas` field. + +3. To see the Deployment rollout status, run `kubectl rollout status deployment/nginx-deployment`. + + The output is similar to: + ``` + Waiting for rollout to finish: 2 out of 3 new replicas have been updated... + deployment "nginx-deployment" successfully rolled out + ``` + +4. Run the `kubectl get deployments` again a few seconds later. + The output is similar to this: + ``` + NAME READY UP-TO-DATE AVAILABLE AGE + nginx-deployment 3/3 3 3 18s + ``` + Notice that the Deployment has created all three replicas, and all replicas are up-to-date (they contain the latest Pod template) and available. + +5. To see the ReplicaSet (`rs`) created by the Deployment, run `kubectl get rs`. The output is similar to this: + ``` + NAME DESIRED CURRENT READY AGE + nginx-deployment-75675f5897 3 3 3 18s + ``` + ReplicaSet output shows the following fields: + + * `NAME` lists the names of the ReplicaSets in the namespace. + * `DESIRED` displays the desired number of _replicas_ of the application, which you define when you create the Deployment. This is the _desired state_. + * `CURRENT` displays how many replicas are currently running. + * `READY` displays how many replicas of the application are available to your users. + * `AGE` displays the amount of time that the application has been running. + + Notice that the name of the ReplicaSet is always formatted as + `[DEPLOYMENT-NAME]-[HASH]`. This name will become the basis for the Pods + which are created. + + The `HASH` string is the same as the `pod-template-hash` label on the ReplicaSet. + +6. To see the labels automatically generated for each Pod, run `kubectl get pods --show-labels`. + The output is similar to: + ``` + NAME READY STATUS RESTARTS AGE LABELS + nginx-deployment-75675f5897-7ci7o 1/1 Running 0 18s app=nginx,pod-template-hash=75675f5897 + nginx-deployment-75675f5897-kzszj 1/1 Running 0 18s app=nginx,pod-template-hash=75675f5897 + nginx-deployment-75675f5897-qqcnn 1/1 Running 0 18s app=nginx,pod-template-hash=75675f5897 + ``` + The created ReplicaSet ensures that there are three `nginx` Pods. + +{{< note >}} +You must specify an appropriate selector and Pod template labels in a Deployment +(in this case, `app: nginx`). + +Do not overlap labels or selectors with other controllers (including other Deployments and StatefulSets). Kubernetes doesn't stop you from overlapping, and if multiple controllers have overlapping selectors those controllers might conflict and behave unexpectedly. +{{< /note >}} + +### Pod-template-hash label + +{{< caution >}} +Do not change this label. +{{< /caution >}} + +The `pod-template-hash` label is added by the Deployment controller to every ReplicaSet that a Deployment creates or adopts. + +This label ensures that child ReplicaSets of a Deployment do not overlap. It is generated by hashing the `PodTemplate` of the ReplicaSet and using the resulting hash as the label value that is added to the ReplicaSet selector, Pod template labels, +and in any existing Pods that the ReplicaSet might have. + +## Updating a Deployment + +{{< note >}} +A Deployment's rollout is triggered if and only if the Deployment's Pod template (that is, `.spec.template`) +is changed, for example if the labels or container images of the template are updated. Other updates, such as scaling the Deployment, do not trigger a rollout. +{{< /note >}} + +Follow the steps given below to update your Deployment: + +1. Let's update the nginx Pods to use the `nginx:1.16.1` image instead of the `nginx:1.14.2` image. + + ```shell + kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.16.1 + ``` + + or use the following command: + + ```shell + kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1 + ``` + where `deployment/nginx-deployment` indicates the Deployment, + `nginx` indicates the Container the update will take place and + `nginx:1.16.1` indicates the new image and its tag. + + + The output is similar to: + + ``` + deployment.apps/nginx-deployment image updated + ``` + + Alternatively, you can `edit` the Deployment and change `.spec.template.spec.containers[0].image` from `nginx:1.14.2` to `nginx:1.16.1`: + + ```shell + kubectl edit deployment/nginx-deployment + ``` + + The output is similar to: + + ``` + deployment.apps/nginx-deployment edited + ``` + +2. To see the rollout status, run: + + ```shell + kubectl rollout status deployment/nginx-deployment + ``` + + The output is similar to this: + + ``` + Waiting for rollout to finish: 2 out of 3 new replicas have been updated... + ``` + + or + + ``` + deployment "nginx-deployment" successfully rolled out + ``` + +Get more details on your updated Deployment: + +* After the rollout succeeds, you can view the Deployment by running `kubectl get deployments`. + The output is similar to this: + + ``` + NAME READY UP-TO-DATE AVAILABLE AGE + nginx-deployment 3/3 3 3 36s + ``` + +* Run `kubectl get rs` to see that the Deployment updated the Pods by creating a new ReplicaSet and scaling it +up to 3 replicas, as well as scaling down the old ReplicaSet to 0 replicas. + + ```shell + kubectl get rs + ``` + + The output is similar to this: + ``` + NAME DESIRED CURRENT READY AGE + nginx-deployment-1564180365 3 3 3 6s + nginx-deployment-2035384211 0 0 0 36s + ``` + +* Running `get pods` should now show only the new Pods: + + ```shell + kubectl get pods + ``` + + The output is similar to this: + ``` + NAME READY STATUS RESTARTS AGE + nginx-deployment-1564180365-khku8 1/1 Running 0 14s + nginx-deployment-1564180365-nacti 1/1 Running 0 14s + nginx-deployment-1564180365-z9gth 1/1 Running 0 14s + ``` + + Next time you want to update these Pods, you only need to update the Deployment's Pod template again. + + Deployment ensures that only a certain number of Pods are down while they are being updated. By default, + it ensures that at least 75% of the desired number of Pods are up (25% max unavailable). + + Deployment also ensures that only a certain number of Pods are created above the desired number of Pods. + By default, it ensures that at most 125% of the desired number of Pods are up (25% max surge). + + For example, if you look at the above Deployment closely, you will see that it first creates a new Pod, + then deletes an old Pod, and creates another new one. It does not kill old Pods until a sufficient number of + new Pods have come up, and does not create new Pods until a sufficient number of old Pods have been killed. + It makes sure that at least 3 Pods are available and that at max 4 Pods in total are available. In case of + a Deployment with 4 replicas, the number of Pods would be between 3 and 5. + +* Get details of your Deployment: + ```shell + kubectl describe deployments + ``` + The output is similar to this: + ``` + Name: nginx-deployment + Namespace: default + CreationTimestamp: Thu, 30 Nov 2017 10:56:25 +0000 + Labels: app=nginx + Annotations: deployment.kubernetes.io/revision=2 + Selector: app=nginx + Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable + StrategyType: RollingUpdate + MinReadySeconds: 0 + RollingUpdateStrategy: 25% max unavailable, 25% max surge + Pod Template: + Labels: app=nginx + Containers: + nginx: + Image: nginx:1.16.1 + Port: 80/TCP + Environment: + Mounts: + Volumes: + Conditions: + Type Status Reason + ---- ------ ------ + Available True MinimumReplicasAvailable + Progressing True NewReplicaSetAvailable + OldReplicaSets: + NewReplicaSet: nginx-deployment-1564180365 (3/3 replicas created) + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal ScalingReplicaSet 2m deployment-controller Scaled up replica set nginx-deployment-2035384211 to 3 + Normal ScalingReplicaSet 24s deployment-controller Scaled up replica set nginx-deployment-1564180365 to 1 + Normal ScalingReplicaSet 22s deployment-controller Scaled down replica set nginx-deployment-2035384211 to 2 + Normal ScalingReplicaSet 22s deployment-controller Scaled up replica set nginx-deployment-1564180365 to 2 + Normal ScalingReplicaSet 19s deployment-controller Scaled down replica set nginx-deployment-2035384211 to 1 + Normal ScalingReplicaSet 19s deployment-controller Scaled up replica set nginx-deployment-1564180365 to 3 + Normal ScalingReplicaSet 14s deployment-controller Scaled down replica set nginx-deployment-2035384211 to 0 + ``` + Here you see that when you first created the Deployment, it created a ReplicaSet (nginx-deployment-2035384211) + and scaled it up to 3 replicas directly. When you updated the Deployment, it created a new ReplicaSet + (nginx-deployment-1564180365) and scaled it up to 1 and waited for it to come up. Then it scaled down the old ReplicaSet + to 2 and scaled up the new ReplicaSet to 2 so that at least 3 Pods were available and at most 4 Pods were created at all times. + It then continued scaling up and down the new and the old ReplicaSet, with the same rolling update strategy. + Finally, you'll have 3 available replicas in the new ReplicaSet, and the old ReplicaSet is scaled down to 0. + +{{< note >}} +Kubernetes doesn't count terminating Pods when calculating the number of `availableReplicas`, which must be between +`replicas - maxUnavailable` and `replicas + maxSurge`. As a result, you might notice that there are more Pods than +expected during a rollout, and that the total resources consumed by the Deployment is more than `replicas + maxSurge` +until the `terminationGracePeriodSeconds` of the terminating Pods expires. +{{< /note >}} + +### Rollover (aka multiple updates in-flight) + +Each time a new Deployment is observed by the Deployment controller, a ReplicaSet is created to bring up +the desired Pods. If the Deployment is updated, the existing ReplicaSet that controls Pods whose labels +match `.spec.selector` but whose template does not match `.spec.template` are scaled down. Eventually, the new +ReplicaSet is scaled to `.spec.replicas` and all old ReplicaSets is scaled to 0. + +If you update a Deployment while an existing rollout is in progress, the Deployment creates a new ReplicaSet +as per the update and start scaling that up, and rolls over the ReplicaSet that it was scaling up previously +-- it will add it to its list of old ReplicaSets and start scaling it down. + +For example, suppose you create a Deployment to create 5 replicas of `nginx:1.14.2`, +but then update the Deployment to create 5 replicas of `nginx:1.16.1`, when only 3 +replicas of `nginx:1.14.2` had been created. In that case, the Deployment immediately starts +killing the 3 `nginx:1.14.2` Pods that it had created, and starts creating +`nginx:1.16.1` Pods. It does not wait for the 5 replicas of `nginx:1.14.2` to be created +before changing course. + +### Label selector updates + +It is generally discouraged to make label selector updates and it is suggested to plan your selectors up front. +In any case, if you need to perform a label selector update, exercise great caution and make sure you have grasped +all of the implications. + +{{< note >}} +In API version `apps/v1`, a Deployment's label selector is immutable after it gets created. +{{< /note >}} + +* Selector additions require the Pod template labels in the Deployment spec to be updated with the new label too, +otherwise a validation error is returned. This change is a non-overlapping one, meaning that the new selector does +not select ReplicaSets and Pods created with the old selector, resulting in orphaning all old ReplicaSets and +creating a new ReplicaSet. +* Selector updates changes the existing value in a selector key -- result in the same behavior as additions. +* Selector removals removes an existing key from the Deployment selector -- do not require any changes in the +Pod template labels. Existing ReplicaSets are not orphaned, and a new ReplicaSet is not created, but note that the +removed label still exists in any existing Pods and ReplicaSets. + +## Rolling Back a Deployment + +Sometimes, you may want to rollback a Deployment; for example, when the Deployment is not stable, such as crash looping. +By default, all of the Deployment's rollout history is kept in the system so that you can rollback anytime you want +(you can change that by modifying revision history limit). + +{{< note >}} +A Deployment's revision is created when a Deployment's rollout is triggered. This means that the +new revision is created if and only if the Deployment's Pod template (`.spec.template`) is changed, +for example if you update the labels or container images of the template. Other updates, such as scaling the Deployment, +do not create a Deployment revision, so that you can facilitate simultaneous manual- or auto-scaling. +This means that when you roll back to an earlier revision, only the Deployment's Pod template part is +rolled back. +{{< /note >}} + +* Suppose that you made a typo while updating the Deployment, by putting the image name as `nginx:1.161` instead of `nginx:1.16.1`: + + ```shell + kubectl set image deployment/nginx-deployment nginx=nginx:1.161 + ``` + + The output is similar to this: + ``` + deployment.apps/nginx-deployment image updated + ``` + +* The rollout gets stuck. You can verify it by checking the rollout status: + + ```shell + kubectl rollout status deployment/nginx-deployment + ``` + + The output is similar to this: + ``` + Waiting for rollout to finish: 1 out of 3 new replicas have been updated... + ``` + +* Press Ctrl-C to stop the above rollout status watch. For more information on stuck rollouts, +[read more here](#deployment-status). + +* You see that the number of old replicas (adding the replica count from + `nginx-deployment-1564180365` and `nginx-deployment-2035384211`) is 3, and the number of + new replicas (from `nginx-deployment-3066724191`) is 1. + + ```shell + kubectl get rs + ``` + + The output is similar to this: + ``` + NAME DESIRED CURRENT READY AGE + nginx-deployment-1564180365 3 3 3 25s + nginx-deployment-2035384211 0 0 0 36s + nginx-deployment-3066724191 1 1 0 6s + ``` + +* Looking at the Pods created, you see that 1 Pod created by new ReplicaSet is stuck in an image pull loop. + + ```shell + kubectl get pods + ``` + + The output is similar to this: + ``` + NAME READY STATUS RESTARTS AGE + nginx-deployment-1564180365-70iae 1/1 Running 0 25s + nginx-deployment-1564180365-jbqqo 1/1 Running 0 25s + nginx-deployment-1564180365-hysrc 1/1 Running 0 25s + nginx-deployment-3066724191-08mng 0/1 ImagePullBackOff 0 6s + ``` + + {{< note >}} + The Deployment controller stops the bad rollout automatically, and stops scaling up the new ReplicaSet. This depends on the rollingUpdate parameters (`maxUnavailable` specifically) that you have specified. Kubernetes by default sets the value to 25%. + {{< /note >}} + +* Get the description of the Deployment: + ```shell + kubectl describe deployment + ``` + + The output is similar to this: + ``` + Name: nginx-deployment + Namespace: default + CreationTimestamp: Tue, 15 Mar 2016 14:48:04 -0700 + Labels: app=nginx + Selector: app=nginx + Replicas: 3 desired | 1 updated | 4 total | 3 available | 1 unavailable + StrategyType: RollingUpdate + MinReadySeconds: 0 + RollingUpdateStrategy: 25% max unavailable, 25% max surge + Pod Template: + Labels: app=nginx + Containers: + nginx: + Image: nginx:1.161 + Port: 80/TCP + Host Port: 0/TCP + Environment: + Mounts: + Volumes: + Conditions: + Type Status Reason + ---- ------ ------ + Available True MinimumReplicasAvailable + Progressing True ReplicaSetUpdated + OldReplicaSets: nginx-deployment-1564180365 (3/3 replicas created) + NewReplicaSet: nginx-deployment-3066724191 (1/1 replicas created) + Events: + FirstSeen LastSeen Count From SubObjectPath Type Reason Message + --------- -------- ----- ---- ------------- -------- ------ ------- + 1m 1m 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-2035384211 to 3 + 22s 22s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 1 + 22s 22s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 2 + 22s 22s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 2 + 21s 21s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 1 + 21s 21s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-1564180365 to 3 + 13s 13s 1 {deployment-controller } Normal ScalingReplicaSet Scaled down replica set nginx-deployment-2035384211 to 0 + 13s 13s 1 {deployment-controller } Normal ScalingReplicaSet Scaled up replica set nginx-deployment-3066724191 to 1 + ``` + + To fix this, you need to rollback to a previous revision of Deployment that is stable. + +### Checking Rollout History of a Deployment + +Follow the steps given below to check the rollout history: + +1. First, check the revisions of this Deployment: + ```shell + kubectl rollout history deployment/nginx-deployment + ``` + The output is similar to this: + ``` + deployments "nginx-deployment" + REVISION CHANGE-CAUSE + 1 kubectl apply --filename=https://k8s.io/examples/controllers/nginx-deployment.yaml + 2 kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1 + 3 kubectl set image deployment/nginx-deployment nginx=nginx:1.161 + ``` + + `CHANGE-CAUSE` is copied from the Deployment annotation `kubernetes.io/change-cause` to its revisions upon creation. You can specify the`CHANGE-CAUSE` message by: + + * Annotating the Deployment with `kubectl annotate deployment/nginx-deployment kubernetes.io/change-cause="image updated to 1.16.1"` + * Manually editing the manifest of the resource. + +2. To see the details of each revision, run: + ```shell + kubectl rollout history deployment/nginx-deployment --revision=2 + ``` + + The output is similar to this: + ``` + deployments "nginx-deployment" revision 2 + Labels: app=nginx + pod-template-hash=1159050644 + Annotations: kubernetes.io/change-cause=kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1 + Containers: + nginx: + Image: nginx:1.16.1 + Port: 80/TCP + QoS Tier: + cpu: BestEffort + memory: BestEffort + Environment Variables: + No volumes. + ``` + +### Rolling Back to a Previous Revision +Follow the steps given below to rollback the Deployment from the current version to the previous version, which is version 2. + +1. Now you've decided to undo the current rollout and rollback to the previous revision: + ```shell + kubectl rollout undo deployment/nginx-deployment + ``` + + The output is similar to this: + ``` + deployment.apps/nginx-deployment rolled back + ``` + Alternatively, you can rollback to a specific revision by specifying it with `--to-revision`: + + ```shell + kubectl rollout undo deployment/nginx-deployment --to-revision=2 + ``` + + The output is similar to this: + ``` + deployment.apps/nginx-deployment rolled back + ``` + + For more details about rollout related commands, read [`kubectl rollout`](/docs/reference/generated/kubectl/kubectl-commands#rollout). + + The Deployment is now rolled back to a previous stable revision. As you can see, a `DeploymentRollback` event + for rolling back to revision 2 is generated from Deployment controller. + +2. Check if the rollback was successful and the Deployment is running as expected, run: + ```shell + kubectl get deployment nginx-deployment + ``` + + The output is similar to this: + ``` + NAME READY UP-TO-DATE AVAILABLE AGE + nginx-deployment 3/3 3 3 30m + ``` +3. Get the description of the Deployment: + ```shell + kubectl describe deployment nginx-deployment + ``` + The output is similar to this: + ``` + Name: nginx-deployment + Namespace: default + CreationTimestamp: Sun, 02 Sep 2018 18:17:55 -0500 + Labels: app=nginx + Annotations: deployment.kubernetes.io/revision=4 + kubernetes.io/change-cause=kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1 + Selector: app=nginx + Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable + StrategyType: RollingUpdate + MinReadySeconds: 0 + RollingUpdateStrategy: 25% max unavailable, 25% max surge + Pod Template: + Labels: app=nginx + Containers: + nginx: + Image: nginx:1.16.1 + Port: 80/TCP + Host Port: 0/TCP + Environment: + Mounts: + Volumes: + Conditions: + Type Status Reason + ---- ------ ------ + Available True MinimumReplicasAvailable + Progressing True NewReplicaSetAvailable + OldReplicaSets: + NewReplicaSet: nginx-deployment-c4747d96c (3/3 replicas created) + Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal ScalingReplicaSet 12m deployment-controller Scaled up replica set nginx-deployment-75675f5897 to 3 + Normal ScalingReplicaSet 11m deployment-controller Scaled up replica set nginx-deployment-c4747d96c to 1 + Normal ScalingReplicaSet 11m deployment-controller Scaled down replica set nginx-deployment-75675f5897 to 2 + Normal ScalingReplicaSet 11m deployment-controller Scaled up replica set nginx-deployment-c4747d96c to 2 + Normal ScalingReplicaSet 11m deployment-controller Scaled down replica set nginx-deployment-75675f5897 to 1 + Normal ScalingReplicaSet 11m deployment-controller Scaled up replica set nginx-deployment-c4747d96c to 3 + Normal ScalingReplicaSet 11m deployment-controller Scaled down replica set nginx-deployment-75675f5897 to 0 + Normal ScalingReplicaSet 11m deployment-controller Scaled up replica set nginx-deployment-595696685f to 1 + Normal DeploymentRollback 15s deployment-controller Rolled back deployment "nginx-deployment" to revision 2 + Normal ScalingReplicaSet 15s deployment-controller Scaled down replica set nginx-deployment-595696685f to 0 + ``` + +## Scaling a Deployment + +You can scale a Deployment by using the following command: + +```shell +kubectl scale deployment/nginx-deployment --replicas=10 +``` +The output is similar to this: +``` +deployment.apps/nginx-deployment scaled +``` + +Assuming [horizontal Pod autoscaling](/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/) is enabled +in your cluster, you can set up an autoscaler for your Deployment and choose the minimum and maximum number of +Pods you want to run based on the CPU utilization of your existing Pods. + +```shell +kubectl autoscale deployment/nginx-deployment --min=10 --max=15 --cpu-percent=80 +``` +The output is similar to this: +``` +deployment.apps/nginx-deployment scaled +``` + +### Proportional scaling + +RollingUpdate Deployments support running multiple versions of an application at the same time. When you +or an autoscaler scales a RollingUpdate Deployment that is in the middle of a rollout (either in progress +or paused), the Deployment controller balances the additional replicas in the existing active +ReplicaSets (ReplicaSets with Pods) in order to mitigate risk. This is called *proportional scaling*. + +For example, you are running a Deployment with 10 replicas, [maxSurge](#max-surge)=3, and [maxUnavailable](#max-unavailable)=2. + +* Ensure that the 10 replicas in your Deployment are running. + ```shell + kubectl get deploy + ``` + The output is similar to this: + + ``` + NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE + nginx-deployment 10 10 10 10 50s + ``` + +* You update to a new image which happens to be unresolvable from inside the cluster. + ```shell + kubectl set image deployment/nginx-deployment nginx=nginx:sometag + ``` + + The output is similar to this: + ``` + deployment.apps/nginx-deployment image updated + ``` + +* The image update starts a new rollout with ReplicaSet nginx-deployment-1989198191, but it's blocked due to the +`maxUnavailable` requirement that you mentioned above. Check out the rollout status: + ```shell + kubectl get rs + ``` + The output is similar to this: + ``` + NAME DESIRED CURRENT READY AGE + nginx-deployment-1989198191 5 5 0 9s + nginx-deployment-618515232 8 8 8 1m + ``` + +* Then a new scaling request for the Deployment comes along. The autoscaler increments the Deployment replicas +to 15. The Deployment controller needs to decide where to add these new 5 replicas. If you weren't using +proportional scaling, all 5 of them would be added in the new ReplicaSet. With proportional scaling, you +spread the additional replicas across all ReplicaSets. Bigger proportions go to the ReplicaSets with the +most replicas and lower proportions go to ReplicaSets with less replicas. Any leftovers are added to the +ReplicaSet with the most replicas. ReplicaSets with zero replicas are not scaled up. + +In our example above, 3 replicas are added to the old ReplicaSet and 2 replicas are added to the +new ReplicaSet. The rollout process should eventually move all replicas to the new ReplicaSet, assuming +the new replicas become healthy. To confirm this, run: + +```shell +kubectl get deploy +``` + +The output is similar to this: +``` +NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE +nginx-deployment 15 18 7 8 7m +``` +The rollout status confirms how the replicas were added to each ReplicaSet. +```shell +kubectl get rs +``` + +The output is similar to this: +``` +NAME DESIRED CURRENT READY AGE +nginx-deployment-1989198191 7 7 0 7m +nginx-deployment-618515232 11 11 11 7m +``` + +## Pausing and Resuming a rollout of a Deployment {#pausing-and-resuming-a-deployment} + +When you update a Deployment, or plan to, you can pause rollouts +for that Deployment before you trigger one or more updates. When +you're ready to apply those changes, you resume rollouts for the +Deployment. This approach allows you to +apply multiple fixes in between pausing and resuming without triggering unnecessary rollouts. + +* For example, with a Deployment that was created: + + Get the Deployment details: + ```shell + kubectl get deploy + ``` + The output is similar to this: + ``` + NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE + nginx 3 3 3 3 1m + ``` + Get the rollout status: + ```shell + kubectl get rs + ``` + The output is similar to this: + ``` + NAME DESIRED CURRENT READY AGE + nginx-2142116321 3 3 3 1m + ``` + +* Pause by running the following command: + ```shell + kubectl rollout pause deployment/nginx-deployment + ``` + + The output is similar to this: + ``` + deployment.apps/nginx-deployment paused + ``` + +* Then update the image of the Deployment: + ```shell + kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1 + ``` + + The output is similar to this: + ``` + deployment.apps/nginx-deployment image updated + ``` + +* Notice that no new rollout started: + ```shell + kubectl rollout history deployment/nginx-deployment + ``` + + The output is similar to this: + ``` + deployments "nginx" + REVISION CHANGE-CAUSE + 1 + ``` +* Get the rollout status to verify that the existing ReplicaSet has not changed: + ```shell + kubectl get rs + ``` + + The output is similar to this: + ``` + NAME DESIRED CURRENT READY AGE + nginx-2142116321 3 3 3 2m + ``` + +* You can make as many updates as you wish, for example, update the resources that will be used: + ```shell + kubectl set resources deployment/nginx-deployment -c=nginx --limits=cpu=200m,memory=512Mi + ``` + + The output is similar to this: + ``` + deployment.apps/nginx-deployment resource requirements updated + ``` + + The initial state of the Deployment prior to pausing its rollout will continue its function, but new updates to + the Deployment will not have any effect as long as the Deployment rollout is paused. + +* Eventually, resume the Deployment rollout and observe a new ReplicaSet coming up with all the new updates: + ```shell + kubectl rollout resume deployment/nginx-deployment + ``` + + The output is similar to this: + ``` + deployment.apps/nginx-deployment resumed + ``` +* {{< glossary_tooltip text="Watch" term_id="watch" >}} the status of the rollout until it's done. + ```shell + kubectl get rs --watch + ``` + + The output is similar to this: + ``` + NAME DESIRED CURRENT READY AGE + nginx-2142116321 2 2 2 2m + nginx-3926361531 2 2 0 6s + nginx-3926361531 2 2 1 18s + nginx-2142116321 1 2 2 2m + nginx-2142116321 1 2 2 2m + nginx-3926361531 3 2 1 18s + nginx-3926361531 3 2 1 18s + nginx-2142116321 1 1 1 2m + nginx-3926361531 3 3 1 18s + nginx-3926361531 3 3 2 19s + nginx-2142116321 0 1 1 2m + nginx-2142116321 0 1 1 2m + nginx-2142116321 0 0 0 2m + nginx-3926361531 3 3 3 20s + ``` +* Get the status of the latest rollout: + ```shell + kubectl get rs + ``` + + The output is similar to this: + ``` + NAME DESIRED CURRENT READY AGE + nginx-2142116321 0 0 0 2m + nginx-3926361531 3 3 3 28s + ``` +{{< note >}} +You cannot rollback a paused Deployment until you resume it. +{{< /note >}} + +## Deployment status + +A Deployment enters various states during its lifecycle. It can be [progressing](#progressing-deployment) while +rolling out a new ReplicaSet, it can be [complete](#complete-deployment), or it can [fail to progress](#failed-deployment). + +### Progressing Deployment + +Kubernetes marks a Deployment as _progressing_ when one of the following tasks is performed: + +* The Deployment creates a new ReplicaSet. +* The Deployment is scaling up its newest ReplicaSet. +* The Deployment is scaling down its older ReplicaSet(s). +* New Pods become ready or available (ready for at least [MinReadySeconds](#min-ready-seconds)). + +When the rollout becomes “progressing”, the Deployment controller adds a condition with the following +attributes to the Deployment's `.status.conditions`: + +* `type: Progressing` +* `status: "True"` +* `reason: NewReplicaSetCreated` | `reason: FoundNewReplicaSet` | `reason: ReplicaSetUpdated` + +You can monitor the progress for a Deployment by using `kubectl rollout status`. + +### Complete Deployment + +Kubernetes marks a Deployment as _complete_ when it has the following characteristics: + +* All of the replicas associated with the Deployment have been updated to the latest version you've specified, meaning any +updates you've requested have been completed. +* All of the replicas associated with the Deployment are available. +* No old replicas for the Deployment are running. + +When the rollout becomes “complete”, the Deployment controller sets a condition with the following +attributes to the Deployment's `.status.conditions`: + +* `type: Progressing` +* `status: "True"` +* `reason: NewReplicaSetAvailable` + +This `Progressing` condition will retain a status value of `"True"` until a new rollout +is initiated. The condition holds even when availability of replicas changes (which +does instead affect the `Available` condition). + +You can check if a Deployment has completed by using `kubectl rollout status`. If the rollout completed +successfully, `kubectl rollout status` returns a zero exit code. + +```shell +kubectl rollout status deployment/nginx-deployment +``` +The output is similar to this: +``` +Waiting for rollout to finish: 2 of 3 updated replicas are available... +deployment "nginx-deployment" successfully rolled out +``` +and the exit status from `kubectl rollout` is 0 (success): +```shell +echo $? +``` +``` +0 +``` + +### Failed Deployment + +Your Deployment may get stuck trying to deploy its newest ReplicaSet without ever completing. This can occur +due to some of the following factors: + +* Insufficient quota +* Readiness probe failures +* Image pull errors +* Insufficient permissions +* Limit ranges +* Application runtime misconfiguration + +One way you can detect this condition is to specify a deadline parameter in your Deployment spec: +([`.spec.progressDeadlineSeconds`](#progress-deadline-seconds)). `.spec.progressDeadlineSeconds` denotes the +number of seconds the Deployment controller waits before indicating (in the Deployment status) that the +Deployment progress has stalled. + +The following `kubectl` command sets the spec with `progressDeadlineSeconds` to make the controller report +lack of progress of a rollout for a Deployment after 10 minutes: + +```shell +kubectl patch deployment/nginx-deployment -p '{"spec":{"progressDeadlineSeconds":600}}' +``` +The output is similar to this: +``` +deployment.apps/nginx-deployment patched +``` +Once the deadline has been exceeded, the Deployment controller adds a DeploymentCondition with the following +attributes to the Deployment's `.status.conditions`: + +* `type: Progressing` +* `status: "False"` +* `reason: ProgressDeadlineExceeded` + +This condition can also fail early and is then set to status value of `"False"` due to reasons as `ReplicaSetCreateError`. +Also, the deadline is not taken into account anymore once the Deployment rollout completes. + +See the [Kubernetes API conventions](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties) for more information on status conditions. + +{{< note >}} +Kubernetes takes no action on a stalled Deployment other than to report a status condition with +`reason: ProgressDeadlineExceeded`. Higher level orchestrators can take advantage of it and act accordingly, for +example, rollback the Deployment to its previous version. +{{< /note >}} + +{{< note >}} +If you pause a Deployment rollout, Kubernetes does not check progress against your specified deadline. +You can safely pause a Deployment rollout in the middle of a rollout and resume without triggering +the condition for exceeding the deadline. +{{< /note >}} + +You may experience transient errors with your Deployments, either due to a low timeout that you have set or +due to any other kind of error that can be treated as transient. For example, let's suppose you have +insufficient quota. If you describe the Deployment you will notice the following section: + +```shell +kubectl describe deployment nginx-deployment +``` +The output is similar to this: +``` +<...> +Conditions: + Type Status Reason + ---- ------ ------ + Available True MinimumReplicasAvailable + Progressing True ReplicaSetUpdated + ReplicaFailure True FailedCreate +<...> +``` + +If you run `kubectl get deployment nginx-deployment -o yaml`, the Deployment status is similar to this: + +``` +status: + availableReplicas: 2 + conditions: + - lastTransitionTime: 2016-10-04T12:25:39Z + lastUpdateTime: 2016-10-04T12:25:39Z + message: Replica set "nginx-deployment-4262182780" is progressing. + reason: ReplicaSetUpdated + status: "True" + type: Progressing + - lastTransitionTime: 2016-10-04T12:25:42Z + lastUpdateTime: 2016-10-04T12:25:42Z + message: Deployment has minimum availability. + reason: MinimumReplicasAvailable + status: "True" + type: Available + - lastTransitionTime: 2016-10-04T12:25:39Z + lastUpdateTime: 2016-10-04T12:25:39Z + message: 'Error creating: pods "nginx-deployment-4262182780-" is forbidden: exceeded quota: + object-counts, requested: pods=1, used: pods=3, limited: pods=2' + reason: FailedCreate + status: "True" + type: ReplicaFailure + observedGeneration: 3 + replicas: 2 + unavailableReplicas: 2 +``` + +Eventually, once the Deployment progress deadline is exceeded, Kubernetes updates the status and the +reason for the Progressing condition: + +``` +Conditions: + Type Status Reason + ---- ------ ------ + Available True MinimumReplicasAvailable + Progressing False ProgressDeadlineExceeded + ReplicaFailure True FailedCreate +``` + +You can address an issue of insufficient quota by scaling down your Deployment, by scaling down other +controllers you may be running, or by increasing quota in your namespace. If you satisfy the quota +conditions and the Deployment controller then completes the Deployment rollout, you'll see the +Deployment's status update with a successful condition (`status: "True"` and `reason: NewReplicaSetAvailable`). + +``` +Conditions: + Type Status Reason + ---- ------ ------ + Available True MinimumReplicasAvailable + Progressing True NewReplicaSetAvailable +``` + +`type: Available` with `status: "True"` means that your Deployment has minimum availability. Minimum availability is dictated +by the parameters specified in the deployment strategy. `type: Progressing` with `status: "True"` means that your Deployment +is either in the middle of a rollout and it is progressing or that it has successfully completed its progress and the minimum +required new replicas are available (see the Reason of the condition for the particulars - in our case +`reason: NewReplicaSetAvailable` means that the Deployment is complete). + +You can check if a Deployment has failed to progress by using `kubectl rollout status`. `kubectl rollout status` +returns a non-zero exit code if the Deployment has exceeded the progression deadline. + +```shell +kubectl rollout status deployment/nginx-deployment +``` +The output is similar to this: +``` +Waiting for rollout to finish: 2 out of 3 new replicas have been updated... +error: deployment "nginx" exceeded its progress deadline +``` +and the exit status from `kubectl rollout` is 1 (indicating an error): +```shell +echo $? +``` +``` +1 +``` + +### Operating on a failed deployment + +All actions that apply to a complete Deployment also apply to a failed Deployment. You can scale it up/down, roll back +to a previous revision, or even pause it if you need to apply multiple tweaks in the Deployment Pod template. + +## Clean up Policy + +You can set `.spec.revisionHistoryLimit` field in a Deployment to specify how many old ReplicaSets for +this Deployment you want to retain. The rest will be garbage-collected in the background. By default, +it is 10. + +{{< note >}} +Explicitly setting this field to 0, will result in cleaning up all the history of your Deployment +thus that Deployment will not be able to roll back. +{{< /note >}} + +The cleanup only starts **after** a Deployment reaches a +[complete state](/docs/concepts/workloads/controllers/deployment/#complete-deployment). +If you set `.spec.revisionHistoryLimit` to 0, any rollout nonetheless triggers creation of a new +ReplicaSet before Kubernetes removes the old one. + +Even with a non-zero revision history limit, you can have more ReplicaSets than the limit +you configure. For example, if pods are crash looping, and there are multiple rolling updates +events triggered over time, you might end up with more ReplicaSets than the +`.spec.revisionHistoryLimit` because the Deployment never reaches a complete state. + +## Canary Deployment + +If you want to roll out releases to a subset of users or servers using the Deployment, you +can create multiple Deployments, one for each release, following the canary pattern described in +[managing resources](/docs/concepts/workloads/management/#canary-deployments). + +## Writing a Deployment Spec + +As with all other Kubernetes configs, a Deployment needs `.apiVersion`, `.kind`, and `.metadata` fields. +For general information about working with config files, see +[deploying applications](/docs/tasks/run-application/run-stateless-application-deployment/), +configuring containers, and [using kubectl to manage resources](/docs/concepts/overview/working-with-objects/object-management/) documents. + +When the control plane creates new Pods for a Deployment, the `.metadata.name` of the +Deployment is part of the basis for naming those Pods. The name of a Deployment must be a valid +[DNS subdomain](/docs/concepts/overview/working-with-objects/names#dns-subdomain-names) +value, but this can produce unexpected results for the Pod hostnames. For best compatibility, +the name should follow the more restrictive rules for a +[DNS label](/docs/concepts/overview/working-with-objects/names#dns-label-names). + +A Deployment also needs a [`.spec` section](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status). + +### Pod Template + +The `.spec.template` and `.spec.selector` are the only required fields of the `.spec`. + +The `.spec.template` is a [Pod template](/docs/concepts/workloads/pods/#pod-templates). It has exactly the same schema as a {{< glossary_tooltip text="Pod" term_id="pod" >}}, except it is nested and does not have an `apiVersion` or `kind`. + +In addition to required fields for a Pod, a Pod template in a Deployment must specify appropriate +labels and an appropriate restart policy. For labels, make sure not to overlap with other controllers. See [selector](#selector). + +Only a [`.spec.template.spec.restartPolicy`](/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy) equal to `Always` is +allowed, which is the default if not specified. + +### Replicas + +`.spec.replicas` is an optional field that specifies the number of desired Pods. It defaults to 1. + +Should you manually scale a Deployment, example via `kubectl scale deployment +deployment --replicas=X`, and then you update that Deployment based on a manifest +(for example: by running `kubectl apply -f deployment.yaml`), +then applying that manifest overwrites the manual scaling that you previously did. + +If a [HorizontalPodAutoscaler](/docs/tasks/run-application/horizontal-pod-autoscale/) (or any +similar API for horizontal scaling) is managing scaling for a Deployment, don't set `.spec.replicas`. + +Instead, allow the Kubernetes +{{< glossary_tooltip text="control plane" term_id="control-plane" >}} to manage the +`.spec.replicas` field automatically. + +### Selector + +`.spec.selector` is a required field that specifies a [label selector](/docs/concepts/overview/working-with-objects/labels/) +for the Pods targeted by this Deployment. + +`.spec.selector` must match `.spec.template.metadata.labels`, or it will be rejected by the API. + +In API version `apps/v1`, `.spec.selector` and `.metadata.labels` do not default to `.spec.template.metadata.labels` if not set. So they must be set explicitly. Also note that `.spec.selector` is immutable after creation of the Deployment in `apps/v1`. + +A Deployment may terminate Pods whose labels match the selector if their template is different +from `.spec.template` or if the total number of such Pods exceeds `.spec.replicas`. It brings up new +Pods with `.spec.template` if the number of Pods is less than the desired number. + +{{< note >}} +You should not create other Pods whose labels match this selector, either directly, by creating +another Deployment, or by creating another controller such as a ReplicaSet or a ReplicationController. If you +do so, the first Deployment thinks that it created these other Pods. Kubernetes does not stop you from doing this. +{{< /note >}} + +If you have multiple controllers that have overlapping selectors, the controllers will fight with each +other and won't behave correctly. + +### Strategy + +`.spec.strategy` specifies the strategy used to replace old Pods by new ones. +`.spec.strategy.type` can be "Recreate" or "RollingUpdate". "RollingUpdate" is +the default value. + +#### Recreate Deployment + +All existing Pods are killed before new ones are created when `.spec.strategy.type==Recreate`. + +{{< note >}} +This will only guarantee Pod termination previous to creation for upgrades. If you upgrade a Deployment, all Pods +of the old revision will be terminated immediately. Successful removal is awaited before any Pod of the new +revision is created. If you manually delete a Pod, the lifecycle is controlled by the ReplicaSet and the +replacement will be created immediately (even if the old Pod is still in a Terminating state). If you need an +"at most" guarantee for your Pods, you should consider using a +[StatefulSet](/docs/concepts/workloads/controllers/statefulset/). +{{< /note >}} + +#### Rolling Update Deployment + +The Deployment updates Pods in a rolling update +fashion when `.spec.strategy.type==RollingUpdate`. You can specify `maxUnavailable` and `maxSurge` to control +the rolling update process. + +##### Max Unavailable + +`.spec.strategy.rollingUpdate.maxUnavailable` is an optional field that specifies the maximum number +of Pods that can be unavailable during the update process. The value can be an absolute number (for example, 5) +or a percentage of desired Pods (for example, 10%). The absolute number is calculated from percentage by +rounding down. The value cannot be 0 if `.spec.strategy.rollingUpdate.maxSurge` is 0. The default value is 25%. + +For example, when this value is set to 30%, the old ReplicaSet can be scaled down to 70% of desired +Pods immediately when the rolling update starts. Once new Pods are ready, old ReplicaSet can be scaled +down further, followed by scaling up the new ReplicaSet, ensuring that the total number of Pods available +at all times during the update is at least 70% of the desired Pods. + +##### Max Surge + +`.spec.strategy.rollingUpdate.maxSurge` is an optional field that specifies the maximum number of Pods +that can be created over the desired number of Pods. The value can be an absolute number (for example, 5) or a +percentage of desired Pods (for example, 10%). The value cannot be 0 if `MaxUnavailable` is 0. The absolute number +is calculated from the percentage by rounding up. The default value is 25%. + +For example, when this value is set to 30%, the new ReplicaSet can be scaled up immediately when the +rolling update starts, such that the total number of old and new Pods does not exceed 130% of desired +Pods. Once old Pods have been killed, the new ReplicaSet can be scaled up further, ensuring that the +total number of Pods running at any time during the update is at most 130% of desired Pods. + +Here are some Rolling Update Deployment examples that use the `maxUnavailable` and `maxSurge`: + +{{< tabs name="tab_with_md" >}} +{{% tab name="Max Unavailable" %}} + + ```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-deployment + labels: + app: nginx +spec: + replicas: 3 + selector: + matchLabels: + app: nginx + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx:1.14.2 + ports: + - containerPort: 80 + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 1 + ``` + +{{% /tab %}} +{{% tab name="Max Surge" %}} + + ```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-deployment + labels: + app: nginx +spec: + replicas: 3 + selector: + matchLabels: + app: nginx + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx:1.14.2 + ports: + - containerPort: 80 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + ``` + +{{% /tab %}} +{{% tab name="Hybrid" %}} + + ```yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-deployment + labels: + app: nginx +spec: + replicas: 3 + selector: + matchLabels: + app: nginx + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx:1.14.2 + ports: + - containerPort: 80 + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 1 + maxUnavailable: 1 + ``` + +{{% /tab %}} +{{< /tabs >}} + +### Progress Deadline Seconds + +`.spec.progressDeadlineSeconds` is an optional field that specifies the number of seconds you want +to wait for your Deployment to progress before the system reports back that the Deployment has +[failed progressing](#failed-deployment) - surfaced as a condition with `type: Progressing`, `status: "False"`. +and `reason: ProgressDeadlineExceeded` in the status of the resource. The Deployment controller will keep +retrying the Deployment. This defaults to 600. In the future, once automatic rollback will be implemented, the Deployment +controller will roll back a Deployment as soon as it observes such a condition. + +If specified, this field needs to be greater than `.spec.minReadySeconds`. + +### Min Ready Seconds + +`.spec.minReadySeconds` is an optional field that specifies the minimum number of seconds for which a newly +created Pod should be ready without any of its containers crashing, for it to be considered available. +This defaults to 0 (the Pod will be considered available as soon as it is ready). To learn more about when +a Pod is considered ready, see [Container Probes](/docs/concepts/workloads/pods/pod-lifecycle/#container-probes). + +### Terminating Pods + +{{< feature-state feature_gate_name="DeploymentReplicaSetTerminatingReplicas" >}} + +You can enable this feature it by setting the `DeploymentReplicaSetTerminatingReplicas` +[feature gate](/docs/reference/command-line-tools-reference/feature-gates/) +on the [API server](/docs/reference/command-line-tools-reference/kube-apiserver/) +and on the [kube-controller-manager](/docs/reference/command-line-tools-reference/kube-controller-manager/) + +Pods that become terminating due to deletion or scale down may take a long time to terminate, and may consume +additional resources during that period. As a result, the total number of all pods can temporarily exceed +`.spec.replicas`. Terminating pods can be tracked using the `.status.terminatingReplicas` field of the Deployment. + +### Revision History Limit + +A Deployment's revision history is stored in the ReplicaSets it controls. + +`.spec.revisionHistoryLimit` is an optional field that specifies the number of old ReplicaSets to retain +to allow rollback. These old ReplicaSets consume resources in `etcd` and crowd the output of `kubectl get rs`. The configuration of each Deployment revision is stored in its ReplicaSets; therefore, once an old ReplicaSet is deleted, you lose the ability to rollback to that revision of Deployment. By default, 10 old ReplicaSets will be kept, however its ideal value depends on the frequency and stability of new Deployments. + +More specifically, setting this field to zero means that all old ReplicaSets with 0 replicas will be cleaned up. +In this case, a new Deployment rollout cannot be undone, since its revision history is cleaned up. + +### Paused + +`.spec.paused` is an optional boolean field for pausing and resuming a Deployment. The only difference between +a paused Deployment and one that is not paused, is that any changes into the PodTemplateSpec of the paused +Deployment will not trigger new rollouts as long as it is paused. A Deployment is not paused by default when +it is created. + +## {{% heading "whatsnext" %}} + +* Learn more about [Pods](/docs/concepts/workloads/pods). +* [Run a stateless application using a Deployment](/docs/tasks/run-application/run-stateless-application-deployment/). +* Read the {{< api-reference page="workload-resources/deployment-v1" >}} to understand the Deployment API. +* Read about [PodDisruptionBudget](/docs/concepts/workloads/pods/disruptions/) and how + you can use it to manage application availability during disruptions. +* Use kubectl to [create a Deployment](/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/). diff --git a/content/fa/docs/concepts/workloads/controllers/job.md b/content/fa/docs/concepts/workloads/controllers/job.md new file mode 100644 index 0000000000000..bfe16c50523ca --- /dev/null +++ b/content/fa/docs/concepts/workloads/controllers/job.md @@ -0,0 +1,1216 @@ +--- +reviewers: +- xirehat +title: Jobs +api_metadata: +- apiVersion: "batch/v1" + kind: "Job" +content_type: concept +description: >- + کارها نمایانگر وظایف یک‌باره هستند که تا اتمام اجرا می‌شوند و سپس متوقف می‌شوند.. +feature: + title: اجرای دسته‌ای + description: > + علاوه بر سرویس‌ها، کوبرنتیز می‌تواند بارهای کاری دسته‌ای و CI شما را مدیریت کند و در صورت تمایل، کانتینرهایی را که از کار می‌افتند، جایگزین کند. +weight: 50 +hide_summary: true # Listed separately in section index +--- + + + +A Job creates one or more Pods and will continue to retry execution of the Pods until a specified number of them successfully terminate. +As pods successfully complete, the Job tracks the successful completions. When a specified number +of successful completions is reached, the task (ie, Job) is complete. Deleting a Job will clean up +the Pods it created. Suspending a Job will delete its active Pods until the Job +is resumed again. + +A simple case is to create one Job object in order to reliably run one Pod to completion. +The Job object will start a new Pod if the first Pod fails or is deleted (for example +due to a node hardware failure or a node reboot). + +You can also use a Job to run multiple Pods in parallel. + +If you want to run a Job (either a single task, or several in parallel) on a schedule, +see [CronJob](/docs/concepts/workloads/controllers/cron-jobs/). + + + +## Running an example Job + +Here is an example Job config. It computes π to 2000 places and prints it out. +It takes around 10s to complete. + +{{% code_sample file="controllers/job.yaml" %}} + +You can run the example with this command: + +```shell +kubectl apply -f https://kubernetes.io/examples/controllers/job.yaml +``` + +The output is similar to this: + +``` +job.batch/pi created +``` + +Check on the status of the Job with `kubectl`: + +{{< tabs name="Check status of Job" >}} +{{< tab name="kubectl describe job pi" codelang="bash" >}} +Name: pi +Namespace: default +Selector: batch.kubernetes.io/controller-uid=c9948307-e56d-4b5d-8302-ae2d7b7da67c +Labels: batch.kubernetes.io/controller-uid=c9948307-e56d-4b5d-8302-ae2d7b7da67c + batch.kubernetes.io/job-name=pi + ... +Annotations: batch.kubernetes.io/job-tracking: "" +Parallelism: 1 +Completions: 1 +Start Time: Mon, 02 Dec 2019 15:20:11 +0200 +Completed At: Mon, 02 Dec 2019 15:21:16 +0200 +Duration: 65s +Pods Statuses: 0 Running / 1 Succeeded / 0 Failed +Pod Template: + Labels: batch.kubernetes.io/controller-uid=c9948307-e56d-4b5d-8302-ae2d7b7da67c + batch.kubernetes.io/job-name=pi + Containers: + pi: + Image: perl:5.34.0 + Port: + Host Port: + Command: + perl + -Mbignum=bpi + -wle + print bpi(2000) + Environment: + Mounts: + Volumes: +Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal SuccessfulCreate 21s job-controller Created pod: pi-xf9p4 + Normal Completed 18s job-controller Job completed +{{< /tab >}} +{{< tab name="kubectl get job pi -o yaml" codelang="bash" >}} +apiVersion: batch/v1 +kind: Job +metadata: + annotations: batch.kubernetes.io/job-tracking: "" + ... + creationTimestamp: "2022-11-10T17:53:53Z" + generation: 1 + labels: + batch.kubernetes.io/controller-uid: 863452e6-270d-420e-9b94-53a54146c223 + batch.kubernetes.io/job-name: pi + name: pi + namespace: default + resourceVersion: "4751" + uid: 204fb678-040b-497f-9266-35ffa8716d14 +spec: + backoffLimit: 4 + completionMode: NonIndexed + completions: 1 + parallelism: 1 + selector: + matchLabels: + batch.kubernetes.io/controller-uid: 863452e6-270d-420e-9b94-53a54146c223 + suspend: false + template: + metadata: + creationTimestamp: null + labels: + batch.kubernetes.io/controller-uid: 863452e6-270d-420e-9b94-53a54146c223 + batch.kubernetes.io/job-name: pi + spec: + containers: + - command: + - perl + - -Mbignum=bpi + - -wle + - print bpi(2000) + image: perl:5.34.0 + imagePullPolicy: IfNotPresent + name: pi + resources: {} + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + dnsPolicy: ClusterFirst + restartPolicy: Never + schedulerName: default-scheduler + securityContext: {} + terminationGracePeriodSeconds: 30 +status: + active: 1 + ready: 0 + startTime: "2022-11-10T17:53:57Z" + uncountedTerminatedPods: {} +{{< /tab >}} +{{< /tabs >}} + +To view completed Pods of a Job, use `kubectl get pods`. + +To list all the Pods that belong to a Job in a machine readable form, you can use a command like this: + +```shell +pods=$(kubectl get pods --selector=batch.kubernetes.io/job-name=pi --output=jsonpath='{.items[*].metadata.name}') +echo $pods +``` + +The output is similar to this: + +``` +pi-5rwd7 +``` + +Here, the selector is the same as the selector for the Job. The `--output=jsonpath` option specifies an expression +with the name from each Pod in the returned list. + +View the standard output of one of the pods: + +```shell +kubectl logs $pods +``` + +Another way to view the logs of a Job: + +```shell +kubectl logs jobs/pi +``` + +The output is similar to this: + +``` +3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275901 +``` + +## Writing a Job spec + +As with all other Kubernetes config, a Job needs `apiVersion`, `kind`, and `metadata` fields. + +When the control plane creates new Pods for a Job, the `.metadata.name` of the +Job is part of the basis for naming those Pods. The name of a Job must be a valid +[DNS subdomain](/docs/concepts/overview/working-with-objects/names#dns-subdomain-names) +value, but this can produce unexpected results for the Pod hostnames. For best compatibility, +the name should follow the more restrictive rules for a +[DNS label](/docs/concepts/overview/working-with-objects/names#dns-label-names). +Even when the name is a DNS subdomain, the name must be no longer than 63 +characters. + +A Job also needs a [`.spec` section](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status). + +### Job Labels + +Job labels will have `batch.kubernetes.io/` prefix for `job-name` and `controller-uid`. + +### Pod Template + +The `.spec.template` is the only required field of the `.spec`. + +The `.spec.template` is a [pod template](/docs/concepts/workloads/pods/#pod-templates). +It has exactly the same schema as a {{< glossary_tooltip text="Pod" term_id="pod" >}}, +except it is nested and does not have an `apiVersion` or `kind`. + +In addition to required fields for a Pod, a pod template in a Job must specify appropriate +labels (see [pod selector](#pod-selector)) and an appropriate restart policy. + +Only a [`RestartPolicy`](/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy) +equal to `Never` or `OnFailure` is allowed. + +### Pod selector + +The `.spec.selector` field is optional. In almost all cases you should not specify it. +See section [specifying your own pod selector](#specifying-your-own-pod-selector). + +### Parallel execution for Jobs {#parallel-jobs} + +There are three main types of task suitable to run as a Job: + +1. Non-parallel Jobs + - normally, only one Pod is started, unless the Pod fails. + - the Job is complete as soon as its Pod terminates successfully. +1. Parallel Jobs with a *fixed completion count*: + - specify a non-zero positive value for `.spec.completions`. + - the Job represents the overall task, and is complete when there are `.spec.completions` successful Pods. + - when using `.spec.completionMode="Indexed"`, each Pod gets a different index in the range 0 to `.spec.completions-1`. +1. Parallel Jobs with a *work queue*: + - do not specify `.spec.completions`, default to `.spec.parallelism`. + - the Pods must coordinate amongst themselves or an external service to determine + what each should work on. For example, a Pod might fetch a batch of up to N items from the work queue. + - each Pod is independently capable of determining whether or not all its peers are done, + and thus that the entire Job is done. + - when _any_ Pod from the Job terminates with success, no new Pods are created. + - once at least one Pod has terminated with success and all Pods are terminated, + then the Job is completed with success. + - once any Pod has exited with success, no other Pod should still be doing any work + for this task or writing any output. They should all be in the process of exiting. + +For a _non-parallel_ Job, you can leave both `.spec.completions` and `.spec.parallelism` unset. +When both are unset, both are defaulted to 1. + +For a _fixed completion count_ Job, you should set `.spec.completions` to the number of completions needed. +You can set `.spec.parallelism`, or leave it unset and it will default to 1. + +For a _work queue_ Job, you must leave `.spec.completions` unset, and set `.spec.parallelism` to +a non-negative integer. + +For more information about how to make use of the different types of job, +see the [job patterns](#job-patterns) section. + +#### Controlling parallelism + +The requested parallelism (`.spec.parallelism`) can be set to any non-negative value. +If it is unspecified, it defaults to 1. +If it is specified as 0, then the Job is effectively paused until it is increased. + +Actual parallelism (number of pods running at any instant) may be more or less than requested +parallelism, for a variety of reasons: + +- For _fixed completion count_ Jobs, the actual number of pods running in parallel will not exceed the number of + remaining completions. Higher values of `.spec.parallelism` are effectively ignored. +- For _work queue_ Jobs, no new Pods are started after any Pod has succeeded -- remaining Pods are allowed to complete, however. +- If the Job {{< glossary_tooltip term_id="controller" >}} has not had time to react. +- If the Job controller failed to create Pods for any reason (lack of `ResourceQuota`, lack of permission, etc.), + then there may be fewer pods than requested. +- The Job controller may throttle new Pod creation due to excessive previous pod failures in the same Job. +- When a Pod is gracefully shut down, it takes time to stop. + +### Completion mode + +{{< feature-state for_k8s_version="v1.24" state="stable" >}} + +Jobs with _fixed completion count_ - that is, jobs that have non null +`.spec.completions` - can have a completion mode that is specified in `.spec.completionMode`: + +- `NonIndexed` (default): the Job is considered complete when there have been + `.spec.completions` successfully completed Pods. In other words, each Pod + completion is homologous to each other. Note that Jobs that have null + `.spec.completions` are implicitly `NonIndexed`. +- `Indexed`: the Pods of a Job get an associated completion index from 0 to + `.spec.completions-1`. The index is available through four mechanisms: + - The Pod annotation `batch.kubernetes.io/job-completion-index`. + - The Pod label `batch.kubernetes.io/job-completion-index` (for v1.28 and later). Note + the feature gate `PodIndexLabel` must be enabled to use this label, and it is enabled + by default. + - As part of the Pod hostname, following the pattern `$(job-name)-$(index)`. + When you use an Indexed Job in combination with a + {{< glossary_tooltip term_id="Service" >}}, Pods within the Job can use + the deterministic hostnames to address each other via DNS. For more information about + how to configure this, see [Job with Pod-to-Pod Communication](/docs/tasks/job/job-with-pod-to-pod-communication/). + - From the containerized task, in the environment variable `JOB_COMPLETION_INDEX`. + + The Job is considered complete when there is one successfully completed Pod + for each index. For more information about how to use this mode, see + [Indexed Job for Parallel Processing with Static Work Assignment](/docs/tasks/job/indexed-parallel-processing-static/). + +{{< note >}} +Although rare, more than one Pod could be started for the same index (due to various reasons such as node failures, +kubelet restarts, or Pod evictions). In this case, only the first Pod that completes successfully will +count towards the completion count and update the status of the Job. The other Pods that are running +or completed for the same index will be deleted by the Job controller once they are detected. +{{< /note >}} + +## Handling Pod and container failures + +A container in a Pod may fail for a number of reasons, such as because the process in it exited with +a non-zero exit code, or the container was killed for exceeding a memory limit, etc. If this +happens, and the `.spec.template.spec.restartPolicy = "OnFailure"`, then the Pod stays +on the node, but the container is re-run. Therefore, your program needs to handle the case when it is +restarted locally, or else specify `.spec.template.spec.restartPolicy = "Never"`. +See [pod lifecycle](/docs/concepts/workloads/pods/pod-lifecycle/#example-states) for more information on `restartPolicy`. + +An entire Pod can also fail, for a number of reasons, such as when the pod is kicked off the node +(node is upgraded, rebooted, deleted, etc.), or if a container of the Pod fails and the +`.spec.template.spec.restartPolicy = "Never"`. When a Pod fails, then the Job controller +starts a new Pod. This means that your application needs to handle the case when it is restarted in a new +pod. In particular, it needs to handle temporary files, locks, incomplete output and the like +caused by previous runs. + +By default, each pod failure is counted towards the `.spec.backoffLimit` limit, +see [pod backoff failure policy](#pod-backoff-failure-policy). However, you can +customize handling of pod failures by setting the Job's [pod failure policy](#pod-failure-policy). + +Additionally, you can choose to count the pod failures independently for each +index of an [Indexed](#completion-mode) Job by setting the `.spec.backoffLimitPerIndex` field +(for more information, see [backoff limit per index](#backoff-limit-per-index)). + +Note that even if you specify `.spec.parallelism = 1` and `.spec.completions = 1` and +`.spec.template.spec.restartPolicy = "Never"`, the same program may +sometimes be started twice. + +If you do specify `.spec.parallelism` and `.spec.completions` both greater than 1, then there may be +multiple pods running at once. Therefore, your pods must also be tolerant of concurrency. + +If you specify the `.spec.podFailurePolicy` field, the Job controller does not consider a terminating +Pod (a pod that has a `.metadata.deletionTimestamp` field set) as a failure until that Pod is +terminal (its `.status.phase` is `Failed` or `Succeeded`). However, the Job controller +creates a replacement Pod as soon as the termination becomes apparent. Once the +pod terminates, the Job controller evaluates `.backoffLimit` and `.podFailurePolicy` +for the relevant Job, taking this now-terminated Pod into consideration. + +If either of these requirements is not satisfied, the Job controller counts +a terminating Pod as an immediate failure, even if that Pod later terminates +with `phase: "Succeeded"`. + +### Pod backoff failure policy + +There are situations where you want to fail a Job after some amount of retries +due to a logical error in configuration etc. +To do so, set `.spec.backoffLimit` to specify the number of retries before +considering a Job as failed. + +The `.spec.backoffLimit` is set by default to 6, unless the +[backoff limit per index](#backoff-limit-per-index) (only Indexed Job) is specified. +When `.spec.backoffLimitPerIndex` is specified, then `.spec.backoffLimit` defaults +to 2147483647 (MaxInt32). + +Failed Pods associated with the Job are recreated by the Job controller with an +exponential back-off delay (10s, 20s, 40s ...) capped at six minutes. + +The number of retries is calculated in two ways: + +- The number of Pods with `.status.phase = "Failed"`. +- When using `restartPolicy = "OnFailure"`, the number of retries in all the + containers of Pods with `.status.phase` equal to `Pending` or `Running`. + +If either of the calculations reaches the `.spec.backoffLimit`, the Job is +considered failed. + +{{< note >}} +If your job has `restartPolicy = "OnFailure"`, keep in mind that your Pod running the Job +will be terminated once the job backoff limit has been reached. This can make debugging +the Job's executable more difficult. We suggest setting +`restartPolicy = "Never"` when debugging the Job or using a logging system to ensure output +from failed Jobs is not lost inadvertently. +{{< /note >}} + +### Backoff limit per index {#backoff-limit-per-index} + +{{< feature-state feature_gate_name="JobBackoffLimitPerIndex" >}} + +When you run an [indexed](#completion-mode) Job, you can choose to handle retries +for pod failures independently for each index. To do so, set the +`.spec.backoffLimitPerIndex` to specify the maximal number of pod failures +per index. + +When the per-index backoff limit is exceeded for an index, Kubernetes considers the index as failed and adds it to the +`.status.failedIndexes` field. The succeeded indexes, those with a successfully +executed pods, are recorded in the `.status.completedIndexes` field, regardless of whether you set +the `backoffLimitPerIndex` field. + +Note that a failing index does not interrupt execution of other indexes. +Once all indexes finish for a Job where you specified a backoff limit per index, +if at least one of those indexes did fail, the Job controller marks the overall +Job as failed, by setting the Failed condition in the status. The Job gets +marked as failed even if some, potentially nearly all, of the indexes were +processed successfully. + +You can additionally limit the maximal number of indexes marked failed by +setting the `.spec.maxFailedIndexes` field. +When the number of failed indexes exceeds the `maxFailedIndexes` field, the +Job controller triggers termination of all remaining running Pods for that Job. +Once all pods are terminated, the entire Job is marked failed by the Job +controller, by setting the Failed condition in the Job status. + +Here is an example manifest for a Job that defines a `backoffLimitPerIndex`: + +{{< code_sample file="/controllers/job-backoff-limit-per-index-example.yaml" >}} + +In the example above, the Job controller allows for one restart for each +of the indexes. When the total number of failed indexes exceeds 5, then +the entire Job is terminated. + +Once the job is finished, the Job status looks as follows: + +```sh +kubectl get -o yaml job job-backoff-limit-per-index-example +``` + +```yaml + status: + completedIndexes: 1,3,5,7,9 + failedIndexes: 0,2,4,6,8 + succeeded: 5 # 1 succeeded pod for each of 5 succeeded indexes + failed: 10 # 2 failed pods (1 retry) for each of 5 failed indexes + conditions: + - message: Job has failed indexes + reason: FailedIndexes + status: "True" + type: FailureTarget + - message: Job has failed indexes + reason: FailedIndexes + status: "True" + type: Failed +``` + +The Job controller adds the `FailureTarget` Job condition to trigger +[Job termination and cleanup](#job-termination-and-cleanup). When all of the +Job Pods are terminated, the Job controller adds the `Failed` condition +with the same values for `reason` and `message` as the `FailureTarget` Job +condition. For details, see [Termination of Job Pods](#termination-of-job-pods). + +Additionally, you may want to use the per-index backoff along with a +[pod failure policy](#pod-failure-policy). When using +per-index backoff, there is a new `FailIndex` action available which allows you to +avoid unnecessary retries within an index. + +### Pod failure policy {#pod-failure-policy} + +{{< feature-state feature_gate_name="JobPodFailurePolicy" >}} + +A Pod failure policy, defined with the `.spec.podFailurePolicy` field, enables +your cluster to handle Pod failures based on the container exit codes and the +Pod conditions. + +In some situations, you may want to have a better control when handling Pod +failures than the control provided by the [Pod backoff failure policy](#pod-backoff-failure-policy), +which is based on the Job's `.spec.backoffLimit`. These are some examples of use cases: + +* To optimize costs of running workloads by avoiding unnecessary Pod restarts, + you can terminate a Job as soon as one of its Pods fails with an exit code + indicating a software bug. +* To guarantee that your Job finishes even if there are disruptions, you can + ignore Pod failures caused by disruptions (such as {{< glossary_tooltip text="preemption" term_id="preemption" >}}, + {{< glossary_tooltip text="API-initiated eviction" term_id="api-eviction" >}} + or {{< glossary_tooltip text="taint" term_id="taint" >}}-based eviction) so + that they don't count towards the `.spec.backoffLimit` limit of retries. + +You can configure a Pod failure policy, in the `.spec.podFailurePolicy` field, +to meet the above use cases. This policy can handle Pod failures based on the +container exit codes and the Pod conditions. + +Here is a manifest for a Job that defines a `podFailurePolicy`: + +{{% code_sample file="/controllers/job-pod-failure-policy-example.yaml" %}} + +In the example above, the first rule of the Pod failure policy specifies that +the Job should be marked failed if the `main` container fails with the 42 exit +code. The following are the rules for the `main` container specifically: + +- an exit code of 0 means that the container succeeded +- an exit code of 42 means that the **entire Job** failed +- any other exit code represents that the container failed, and hence the entire + Pod. The Pod will be re-created if the total number of restarts is + below `backoffLimit`. If the `backoffLimit` is reached the **entire Job** failed. + +{{< note >}} +Because the Pod template specifies a `restartPolicy: Never`, +the kubelet does not restart the `main` container in that particular Pod. +{{< /note >}} + +The second rule of the Pod failure policy, specifying the `Ignore` action for +failed Pods with condition `DisruptionTarget` excludes Pod disruptions from +being counted towards the `.spec.backoffLimit` limit of retries. + +{{< note >}} +If the Job failed, either by the Pod failure policy or Pod backoff +failure policy, and the Job is running multiple Pods, Kubernetes terminates all +the Pods in that Job that are still Pending or Running. +{{< /note >}} + +These are some requirements and semantics of the API: + +- if you want to use a `.spec.podFailurePolicy` field for a Job, you must + also define that Job's pod template with `.spec.restartPolicy` set to `Never`. +- the Pod failure policy rules you specify under `spec.podFailurePolicy.rules` + are evaluated in order. Once a rule matches a Pod failure, the remaining rules + are ignored. When no rule matches the Pod failure, the default + handling applies. +- you may want to restrict a rule to a specific container by specifying its name + in`spec.podFailurePolicy.rules[*].onExitCodes.containerName`. When not specified the rule + applies to all containers. When specified, it should match one the container + or `initContainer` names in the Pod template. +- you may specify the action taken when a Pod failure policy is matched by + `spec.podFailurePolicy.rules[*].action`. Possible values are: + - `FailJob`: use to indicate that the Pod's job should be marked as Failed and + all running Pods should be terminated. + - `Ignore`: use to indicate that the counter towards the `.spec.backoffLimit` + should not be incremented and a replacement Pod should be created. + - `Count`: use to indicate that the Pod should be handled in the default way. + The counter towards the `.spec.backoffLimit` should be incremented. + - `FailIndex`: use this action along with [backoff limit per index](#backoff-limit-per-index) + to avoid unnecessary retries within the index of a failed pod. + +{{< note >}} +When you use a `podFailurePolicy`, the job controller only matches Pods in the +`Failed` phase. Pods with a deletion timestamp that are not in a terminal phase +(`Failed` or `Succeeded`) are considered still terminating. This implies that +terminating pods retain a [tracking finalizer](#job-tracking-with-finalizers) +until they reach a terminal phase. +Since Kubernetes 1.27, Kubelet transitions deleted pods to a terminal phase +(see: [Pod Phase](/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase)). This +ensures that deleted pods have their finalizers removed by the Job controller. +{{< /note >}} + +{{< note >}} +Starting with Kubernetes v1.28, when Pod failure policy is used, the Job controller recreates +terminating Pods only once these Pods reach the terminal `Failed` phase. This behavior is similar +to `podReplacementPolicy: Failed`. For more information, see [Pod replacement policy](#pod-replacement-policy). +{{< /note >}} + +When you use the `podFailurePolicy`, and the Job fails due to the pod +matching the rule with the `FailJob` action, then the Job controller triggers +the Job termination process by adding the `FailureTarget` condition. +For more details, see [Job termination and cleanup](#job-termination-and-cleanup). + +## Success policy {#success-policy} + +When creating an Indexed Job, you can define when a Job can be declared as succeeded using a `.spec.successPolicy`, +based on the pods that succeeded. + +By default, a Job succeeds when the number of succeeded Pods equals `.spec.completions`. +These are some situations where you might want additional control for declaring a Job succeeded: + +* When running simulations with different parameters, + you might not need all the simulations to succeed for the overall Job to be successful. +* When following a leader-worker pattern, only the success of the leader determines the success or + failure of a Job. Examples of this are frameworks like MPI and PyTorch etc. + +You can configure a success policy, in the `.spec.successPolicy` field, +to meet the above use cases. This policy can handle Job success based on the +succeeded pods. After the Job meets the success policy, the job controller terminates the lingering Pods. +A success policy is defined by rules. Each rule can take one of the following forms: + +* When you specify the `succeededIndexes` only, + once all indexes specified in the `succeededIndexes` succeed, the job controller marks the Job as succeeded. + The `succeededIndexes` must be a list of intervals between 0 and `.spec.completions-1`. +* When you specify the `succeededCount` only, + once the number of succeeded indexes reaches the `succeededCount`, the job controller marks the Job as succeeded. +* When you specify both `succeededIndexes` and `succeededCount`, + once the number of succeeded indexes from the subset of indexes specified in the `succeededIndexes` reaches the `succeededCount`, + the job controller marks the Job as succeeded. + +Note that when you specify multiple rules in the `.spec.successPolicy.rules`, +the job controller evaluates the rules in order. Once the Job meets a rule, the job controller ignores remaining rules. + +Here is a manifest for a Job with `successPolicy`: + +{{% code_sample file="/controllers/job-success-policy.yaml" %}} + +In the example above, both `succeededIndexes` and `succeededCount` have been specified. +Therefore, the job controller will mark the Job as succeeded and terminate the lingering Pods +when either of the specified indexes, 0, 2, or 3, succeed. +The Job that meets the success policy gets the `SuccessCriteriaMet` condition with a `SuccessPolicy` reason. +After the removal of the lingering Pods is issued, the Job gets the `Complete` condition. + +Note that the `succeededIndexes` is represented as intervals separated by a hyphen. +The number are listed in represented by the first and last element of the series, separated by a hyphen. + +{{< note >}} +When you specify both a success policy and some terminating policies such as `.spec.backoffLimit` and `.spec.podFailurePolicy`, +once the Job meets either policy, the job controller respects the terminating policy and ignores the success policy. +{{< /note >}} + +## Job termination and cleanup + +When a Job completes, no more Pods are created, but the Pods are [usually](#pod-backoff-failure-policy) not deleted either. +Keeping them around allows you to still view the logs of completed pods to check for errors, warnings, or other diagnostic output. +The job object also remains after it is completed so that you can view its status. It is up to the user to delete +old jobs after noting their status. Delete the job with `kubectl` (e.g. `kubectl delete jobs/pi` or `kubectl delete -f ./job.yaml`). +When you delete the job using `kubectl`, all the pods it created are deleted too. + +By default, a Job will run uninterrupted unless a Pod fails (`restartPolicy=Never`) +or a Container exits in error (`restartPolicy=OnFailure`), at which point the Job defers to the +`.spec.backoffLimit` described above. Once `.spec.backoffLimit` has been reached the Job will +be marked as failed and any running Pods will be terminated. + +Another way to terminate a Job is by setting an active deadline. +Do this by setting the `.spec.activeDeadlineSeconds` field of the Job to a number of seconds. +The `activeDeadlineSeconds` applies to the duration of the job, no matter how many Pods are created. +Once a Job reaches `activeDeadlineSeconds`, all of its running Pods are terminated and the Job status +will become `type: Failed` with `reason: DeadlineExceeded`. + +Note that a Job's `.spec.activeDeadlineSeconds` takes precedence over its `.spec.backoffLimit`. +Therefore, a Job that is retrying one or more failed Pods will not deploy additional Pods once +it reaches the time limit specified by `activeDeadlineSeconds`, even if the `backoffLimit` is not yet reached. + +Example: + +```yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: pi-with-timeout +spec: + backoffLimit: 5 + activeDeadlineSeconds: 100 + template: + spec: + containers: + - name: pi + image: perl:5.34.0 + command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"] + restartPolicy: Never +``` + +Note that both the Job spec and the [Pod template spec](/docs/concepts/workloads/pods/init-containers/#detailed-behavior) +within the Job have an `activeDeadlineSeconds` field. Ensure that you set this field at the proper level. + +Keep in mind that the `restartPolicy` applies to the Pod, and not to the Job itself: +there is no automatic Job restart once the Job status is `type: Failed`. +That is, the Job termination mechanisms activated with `.spec.activeDeadlineSeconds` +and `.spec.backoffLimit` result in a permanent Job failure that requires manual intervention to resolve. + +### Terminal Job conditions + +A Job has two possible terminal states, each of which has a corresponding Job +condition: +* Succeeded: Job condition `Complete` +* Failed: Job condition `Failed` + +Jobs fail for the following reasons: +- The number of Pod failures exceeded the specified `.spec.backoffLimit` in the Job + specification. For details, see [Pod backoff failure policy](#pod-backoff-failure-policy). +- The Job runtime exceeded the specified `.spec.activeDeadlineSeconds` +- An indexed Job that used `.spec.backoffLimitPerIndex` has failed indexes. + For details, see [Backoff limit per index](#backoff-limit-per-index). +- The number of failed indexes in the Job exceeded the specified + `spec.maxFailedIndexes`. For details, see [Backoff limit per index](#backoff-limit-per-index) +- A failed Pod matches a rule in `.spec.podFailurePolicy` that has the `FailJob` + action. For details about how Pod failure policy rules might affect failure + evaluation, see [Pod failure policy](#pod-failure-policy). + +Jobs succeed for the following reasons: +- The number of succeeded Pods reached the specified `.spec.completions` +- The criteria specified in `.spec.successPolicy` are met. For details, see + [Success policy](#success-policy). + +In Kubernetes v1.31 and later the Job controller delays the addition of the +terminal conditions,`Failed` or `Complete`, until all of the Job Pods are terminated. + +In Kubernetes v1.30 and earlier, the Job controller added the `Complete` or the +`Failed` Job terminal conditions as soon as the Job termination process was +triggered and all Pod finalizers were removed. However, some Pods would still +be running or terminating at the moment that the terminal condition was added. + +In Kubernetes v1.31 and later, the controller only adds the Job terminal conditions +_after_ all of the Pods are terminated. You can control this behavior by using the +`JobManagedBy` and the `JobPodReplacementPolicy` (both enabled by default) +[feature gates](/docs/reference/command-line-tools-reference/feature-gates/). + +### Termination of Job pods + +The Job controller adds the `FailureTarget` condition or the `SuccessCriteriaMet` +condition to the Job to trigger Pod termination after a Job meets either the +success or failure criteria. + +Factors like `terminationGracePeriodSeconds` might increase the amount of time +from the moment that the Job controller adds the `FailureTarget` condition or the +`SuccessCriteriaMet` condition to the moment that all of the Job Pods terminate +and the Job controller adds a [terminal condition](#terminal-job-conditions) +(`Failed` or `Complete`). + +You can use the `FailureTarget` or the `SuccessCriteriaMet` condition to evaluate +whether the Job has failed or succeeded without having to wait for the controller +to add a terminal condition. + +For example, you might want to decide when to create a replacement Job +that replaces a failed Job. If you replace the failed Job when the `FailureTarget` +condition appears, your replacement Job runs sooner, but could result in Pods +from the failed and the replacement Job running at the same time, using +extra compute resources. + +Alternatively, if your cluster has limited resource capacity, you could choose to +wait until the `Failed` condition appears on the Job, which would delay your +replacement Job but would ensure that you conserve resources by waiting +until all of the failed Pods are removed. + +## Clean up finished jobs automatically + +Finished Jobs are usually no longer needed in the system. Keeping them around in +the system will put pressure on the API server. If the Jobs are managed directly +by a higher level controller, such as +[CronJobs](/docs/concepts/workloads/controllers/cron-jobs/), the Jobs can be +cleaned up by CronJobs based on the specified capacity-based cleanup policy. + +### TTL mechanism for finished Jobs + +{{< feature-state for_k8s_version="v1.23" state="stable" >}} + +Another way to clean up finished Jobs (either `Complete` or `Failed`) +automatically is to use a TTL mechanism provided by a +[TTL controller](/docs/concepts/workloads/controllers/ttlafterfinished/) for +finished resources, by specifying the `.spec.ttlSecondsAfterFinished` field of +the Job. + +When the TTL controller cleans up the Job, it will delete the Job cascadingly, +i.e. delete its dependent objects, such as Pods, together with the Job. Note +that when the Job is deleted, its lifecycle guarantees, such as finalizers, will +be honored. + +For example: + +```yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: pi-with-ttl +spec: + ttlSecondsAfterFinished: 100 + template: + spec: + containers: + - name: pi + image: perl:5.34.0 + command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"] + restartPolicy: Never +``` + +The Job `pi-with-ttl` will be eligible to be automatically deleted, `100` +seconds after it finishes. + +If the field is set to `0`, the Job will be eligible to be automatically deleted +immediately after it finishes. If the field is unset, this Job won't be cleaned +up by the TTL controller after it finishes. + +{{< note >}} +It is recommended to set `ttlSecondsAfterFinished` field because unmanaged jobs +(Jobs that you created directly, and not indirectly through other workload APIs +such as CronJob) have a default deletion +policy of `orphanDependents` causing Pods created by an unmanaged Job to be left around +after that Job is fully deleted. +Even though the {{< glossary_tooltip text="control plane" term_id="control-plane" >}} eventually +[garbage collects](/docs/concepts/workloads/pods/pod-lifecycle/#pod-garbage-collection) +the Pods from a deleted Job after they either fail or complete, sometimes those +lingering pods may cause cluster performance degradation or in worst case cause the +cluster to go offline due to this degradation. + +You can use [LimitRanges](/docs/concepts/policy/limit-range/) and +[ResourceQuotas](/docs/concepts/policy/resource-quotas/) to place a +cap on the amount of resources that a particular namespace can +consume. +{{< /note >}} + +## Job patterns + +The Job object can be used to process a set of independent but related *work items*. +These might be emails to be sent, frames to be rendered, files to be transcoded, +ranges of keys in a NoSQL database to scan, and so on. + +In a complex system, there may be multiple different sets of work items. Here we are just +considering one set of work items that the user wants to manage together — a *batch job*. + +There are several different patterns for parallel computation, each with strengths and weaknesses. +The tradeoffs are: + +- One Job object for each work item, versus a single Job object for all work items. + One Job per work item creates some overhead for the user and for the system to manage + large numbers of Job objects. + A single Job for all work items is better for large numbers of items. +- Number of Pods created equals number of work items, versus each Pod can process multiple work items. + When the number of Pods equals the number of work items, the Pods typically + requires less modification to existing code and containers. Having each Pod + process multiple work items is better for large numbers of items. +- Several approaches use a work queue. This requires running a queue service, + and modifications to the existing program or container to make it use the work queue. + Other approaches are easier to adapt to an existing containerised application. +- When the Job is associated with a + [headless Service](/docs/concepts/services-networking/service/#headless-services), + you can enable the Pods within a Job to communicate with each other to + collaborate in a computation. + +The tradeoffs are summarized here, with columns 2 to 4 corresponding to the above tradeoffs. +The pattern names are also links to examples and more detailed description. + +| Pattern | Single Job object | Fewer pods than work items? | Use app unmodified? | +| ----------------------------------------------- |:-----------------:|:---------------------------:|:-------------------:| +| [Queue with Pod Per Work Item] | ✓ | | sometimes | +| [Queue with Variable Pod Count] | ✓ | ✓ | | +| [Indexed Job with Static Work Assignment] | ✓ | | ✓ | +| [Job with Pod-to-Pod Communication] | ✓ | sometimes | sometimes | +| [Job Template Expansion] | | | ✓ | + +When you specify completions with `.spec.completions`, each Pod created by the Job controller +has an identical [`spec`](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status). +This means that all pods for a task will have the same command line and the same +image, the same volumes, and (almost) the same environment variables. These patterns +are different ways to arrange for pods to work on different things. + +This table shows the required settings for `.spec.parallelism` and `.spec.completions` for each of the patterns. +Here, `W` is the number of work items. + +| Pattern | `.spec.completions` | `.spec.parallelism` | +| ----------------------------------------------- |:-------------------:|:--------------------:| +| [Queue with Pod Per Work Item] | W | any | +| [Queue with Variable Pod Count] | null | any | +| [Indexed Job with Static Work Assignment] | W | any | +| [Job with Pod-to-Pod Communication] | W | W | +| [Job Template Expansion] | 1 | should be 1 | + +[Queue with Pod Per Work Item]: /docs/tasks/job/coarse-parallel-processing-work-queue/ +[Queue with Variable Pod Count]: /docs/tasks/job/fine-parallel-processing-work-queue/ +[Indexed Job with Static Work Assignment]: /docs/tasks/job/indexed-parallel-processing-static/ +[Job with Pod-to-Pod Communication]: /docs/tasks/job/job-with-pod-to-pod-communication/ +[Job Template Expansion]: /docs/tasks/job/parallel-processing-expansion/ + +## Advanced usage + +### Suspending a Job + +{{< feature-state for_k8s_version="v1.24" state="stable" >}} + +When a Job is created, the Job controller will immediately begin creating Pods +to satisfy the Job's requirements and will continue to do so until the Job is +complete. However, you may want to temporarily suspend a Job's execution and +resume it later, or start Jobs in suspended state and have a custom controller +decide later when to start them. + +To suspend a Job, you can update the `.spec.suspend` field of +the Job to true; later, when you want to resume it again, update it to false. +Creating a Job with `.spec.suspend` set to true will create it in the suspended +state. + +When a Job is resumed from suspension, its `.status.startTime` field will be +reset to the current time. This means that the `.spec.activeDeadlineSeconds` +timer will be stopped and reset when a Job is suspended and resumed. + +When you suspend a Job, any running Pods that don't have a status of `Completed` +will be [terminated](/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination) +with a SIGTERM signal. The Pod's graceful termination period will be honored and +your Pod must handle this signal in this period. This may involve saving +progress for later or undoing changes. Pods terminated this way will not count +towards the Job's `completions` count. + +An example Job definition in the suspended state can be like so: + +```shell +kubectl get job myjob -o yaml +``` + +```yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: myjob +spec: + suspend: true + parallelism: 1 + completions: 5 + template: + spec: + ... +``` + +You can also toggle Job suspension by patching the Job using the command line. + +Suspend an active Job: + +```shell +kubectl patch job/myjob --type=strategic --patch '{"spec":{"suspend":true}}' +``` + +Resume a suspended Job: + +```shell +kubectl patch job/myjob --type=strategic --patch '{"spec":{"suspend":false}}' +``` + +The Job's status can be used to determine if a Job is suspended or has been +suspended in the past: + +```shell +kubectl get jobs/myjob -o yaml +``` + +```yaml +apiVersion: batch/v1 +kind: Job +# .metadata and .spec omitted +status: + conditions: + - lastProbeTime: "2021-02-05T13:14:33Z" + lastTransitionTime: "2021-02-05T13:14:33Z" + status: "True" + type: Suspended + startTime: "2021-02-05T13:13:48Z" +``` + +The Job condition of type "Suspended" with status "True" means the Job is +suspended; the `lastTransitionTime` field can be used to determine how long the +Job has been suspended for. If the status of that condition is "False", then the +Job was previously suspended and is now running. If such a condition does not +exist in the Job's status, the Job has never been stopped. + +Events are also created when the Job is suspended and resumed: + +```shell +kubectl describe jobs/myjob +``` + +``` +Name: myjob +... +Events: + Type Reason Age From Message + ---- ------ ---- ---- ------- + Normal SuccessfulCreate 12m job-controller Created pod: myjob-hlrpl + Normal SuccessfulDelete 11m job-controller Deleted pod: myjob-hlrpl + Normal Suspended 11m job-controller Job suspended + Normal SuccessfulCreate 3s job-controller Created pod: myjob-jvb44 + Normal Resumed 3s job-controller Job resumed +``` + +The last four events, particularly the "Suspended" and "Resumed" events, are +directly a result of toggling the `.spec.suspend` field. In the time between +these two events, we see that no Pods were created, but Pod creation restarted +as soon as the Job was resumed. + +### Mutable Scheduling Directives + +{{< feature-state for_k8s_version="v1.27" state="stable" >}} + +In most cases, a parallel job will want the pods to run with constraints, +like all in the same zone, or all either on GPU model x or y but not a mix of both. + +The [suspend](#suspending-a-job) field is the first step towards achieving those semantics. Suspend allows a +custom queue controller to decide when a job should start; However, once a job is unsuspended, +a custom queue controller has no influence on where the pods of a job will actually land. + +This feature allows updating a Job's scheduling directives before it starts, which gives custom queue +controllers the ability to influence pod placement while at the same time offloading actual +pod-to-node assignment to kube-scheduler. This is allowed only for suspended Jobs that have never +been unsuspended before. + +The fields in a Job's pod template that can be updated are node affinity, node selector, +tolerations, labels, annotations and [scheduling gates](/docs/concepts/scheduling-eviction/pod-scheduling-readiness/). + +### Specifying your own Pod selector + +Normally, when you create a Job object, you do not specify `.spec.selector`. +The system defaulting logic adds this field when the Job is created. +It picks a selector value that will not overlap with any other jobs. + +However, in some cases, you might need to override this automatically set selector. +To do this, you can specify the `.spec.selector` of the Job. + +Be very careful when doing this. If you specify a label selector which is not +unique to the pods of that Job, and which matches unrelated Pods, then pods of the unrelated +job may be deleted, or this Job may count other Pods as completing it, or one or both +Jobs may refuse to create Pods or run to completion. If a non-unique selector is +chosen, then other controllers (e.g. ReplicationController) and their Pods may behave +in unpredictable ways too. Kubernetes will not stop you from making a mistake when +specifying `.spec.selector`. + +Here is an example of a case when you might want to use this feature. + +Say Job `old` is already running. You want existing Pods +to keep running, but you want the rest of the Pods it creates +to use a different pod template and for the Job to have a new name. +You cannot update the Job because these fields are not updatable. +Therefore, you delete Job `old` but _leave its pods +running_, using `kubectl delete jobs/old --cascade=orphan`. +Before deleting it, you make a note of what selector it uses: + +```shell +kubectl get job old -o yaml +``` + +The output is similar to this: + +```yaml +kind: Job +metadata: + name: old + ... +spec: + selector: + matchLabels: + batch.kubernetes.io/controller-uid: a8f3d00d-c6d2-11e5-9f87-42010af00002 + ... +``` + +Then you create a new Job with name `new` and you explicitly specify the same selector. +Since the existing Pods have label `batch.kubernetes.io/controller-uid=a8f3d00d-c6d2-11e5-9f87-42010af00002`, +they are controlled by Job `new` as well. + +You need to specify `manualSelector: true` in the new Job since you are not using +the selector that the system normally generates for you automatically. + +```yaml +kind: Job +metadata: + name: new + ... +spec: + manualSelector: true + selector: + matchLabels: + batch.kubernetes.io/controller-uid: a8f3d00d-c6d2-11e5-9f87-42010af00002 + ... +``` + +The new Job itself will have a different uid from `a8f3d00d-c6d2-11e5-9f87-42010af00002`. Setting +`manualSelector: true` tells the system that you know what you are doing and to allow this +mismatch. + +### Job tracking with finalizers + +{{< feature-state for_k8s_version="v1.26" state="stable" >}} + +The control plane keeps track of the Pods that belong to any Job and notices if +any such Pod is removed from the API server. To do that, the Job controller +creates Pods with the finalizer `batch.kubernetes.io/job-tracking`. The +controller removes the finalizer only after the Pod has been accounted for in +the Job status, allowing the Pod to be removed by other controllers or users. + +{{< note >}} +See [My pod stays terminating](/docs/tasks/debug/debug-application/debug-pods/) if you +observe that pods from a Job are stuck with the tracking finalizer. +{{< /note >}} + +### Elastic Indexed Jobs + +{{< feature-state feature_gate_name="ElasticIndexedJob" >}} + +You can scale Indexed Jobs up or down by mutating both `.spec.parallelism` +and `.spec.completions` together such that `.spec.parallelism == .spec.completions`. +When scaling down, Kubernetes removes the Pods with higher indexes. + +Use cases for elastic Indexed Jobs include batch workloads which require +scaling an indexed Job, such as MPI, Horovod, Ray, and PyTorch training jobs. + +### Delayed creation of replacement pods {#pod-replacement-policy} + +{{< feature-state for_k8s_version="v1.29" state="beta" >}} + +{{< note >}} +You can only set `podReplacementPolicy` on Jobs if you enable the `JobPodReplacementPolicy` +[feature gate](/docs/reference/command-line-tools-reference/feature-gates/) +(enabled by default). +{{< /note >}} + +By default, the Job controller recreates Pods as soon they either fail or are terminating (have a deletion timestamp). +This means that, at a given time, when some of the Pods are terminating, the number of running Pods for a Job +can be greater than `parallelism` or greater than one Pod per index (if you are using an Indexed Job). + +You may choose to create replacement Pods only when the terminating Pod is fully terminal (has `status.phase: Failed`). +To do this, set the `.spec.podReplacementPolicy: Failed`. +The default replacement policy depends on whether the Job has a `podFailurePolicy` set. +With no Pod failure policy defined for a Job, omitting the `podReplacementPolicy` field selects the +`TerminatingOrFailed` replacement policy: +the control plane creates replacement Pods immediately upon Pod deletion +(as soon as the control plane sees that a Pod for this Job has `deletionTimestamp` set). +For Jobs with a Pod failure policy set, the default `podReplacementPolicy` is `Failed`, and no other +value is permitted. +See [Pod failure policy](#pod-failure-policy) to learn more about Pod failure policies for Jobs. + +```yaml +kind: Job +metadata: + name: new + ... +spec: + podReplacementPolicy: Failed + ... +``` + +Provided your cluster has the feature gate enabled, you can inspect the `.status.terminating` field of a Job. +The value of the field is the number of Pods owned by the Job that are currently terminating. + +```shell +kubectl get jobs/myjob -o yaml +``` + +```yaml +apiVersion: batch/v1 +kind: Job +# .metadata and .spec omitted +status: + terminating: 3 # three Pods are terminating and have not yet reached the Failed phase +``` + +### Delegation of managing a Job object to external controller + +{{< feature-state feature_gate_name="JobManagedBy" >}} + +{{< note >}} +You can only set the `managedBy` field on Jobs if you enable the `JobManagedBy` +[feature gate](/docs/reference/command-line-tools-reference/feature-gates/) +(enabled by default). +{{< /note >}} + +This feature allows you to disable the built-in Job controller, for a specific +Job, and delegate reconciliation of the Job to an external controller. + +You indicate the controller that reconciles the Job by setting a custom value +for the `spec.managedBy` field - any value +other than `kubernetes.io/job-controller`. The value of the field is immutable. + +{{< note >}} +When using this feature, make sure the controller indicated by the field is +installed, otherwise the Job may not be reconciled at all. +{{< /note >}} + +{{< note >}} +When developing an external Job controller be aware that your controller needs +to operate in a fashion conformant with the definitions of the API spec and +status fields of the Job object. + +Please review these in detail in the [Job API](/docs/reference/kubernetes-api/workload-resources/job-v1/). +We also recommend that you run the e2e conformance tests for the Job object to +verify your implementation. + +Finally, when developing an external Job controller make sure it does not use the +`batch.kubernetes.io/job-tracking` finalizer, reserved for the built-in controller. +{{< /note >}} + +{{< warning >}} +If you are considering to disable the `JobManagedBy` feature gate, or to +downgrade the cluster to a version without the feature gate enabled, check if +there are jobs with a custom value of the `spec.managedBy` field. If there +are such jobs, there is a risk that they might be reconciled by two controllers +after the operation: the built-in Job controller and the external controller +indicated by the field value. +{{< /warning >}} + +## Alternatives + +### Bare Pods + +When the node that a Pod is running on reboots or fails, the pod is terminated +and will not be restarted. However, a Job will create new Pods to replace terminated ones. +For this reason, we recommend that you use a Job rather than a bare Pod, even if your application +requires only a single Pod. + +### Replication Controller + +Jobs are complementary to [Replication Controllers](/docs/concepts/workloads/controllers/replicationcontroller/). +A Replication Controller manages Pods which are not expected to terminate (e.g. web servers), and a Job +manages Pods that are expected to terminate (e.g. batch tasks). + +As discussed in [Pod Lifecycle](/docs/concepts/workloads/pods/pod-lifecycle/), `Job` is *only* appropriate +for pods with `RestartPolicy` equal to `OnFailure` or `Never`. +(Note: If `RestartPolicy` is not set, the default value is `Always`.) + +### Single Job starts controller Pod + +Another pattern is for a single Job to create a Pod which then creates other Pods, acting as a sort +of custom controller for those Pods. This allows the most flexibility, but may be somewhat +complicated to get started with and offers less integration with Kubernetes. + +One example of this pattern would be a Job which starts a Pod which runs a script that in turn +starts a Spark master controller (see [spark example](https://github.com/kubernetes/examples/tree/master/staging/spark/README.md)), +runs a spark driver, and then cleans up. + +An advantage of this approach is that the overall process gets the completion guarantee of a Job +object, but maintains complete control over what Pods are created and how work is assigned to them. + +## {{% heading "whatsnext" %}} + +* Learn about [Pods](/docs/concepts/workloads/pods). +* Read about different ways of running Jobs: + * [Coarse Parallel Processing Using a Work Queue](/docs/tasks/job/coarse-parallel-processing-work-queue/) + * [Fine Parallel Processing Using a Work Queue](/docs/tasks/job/fine-parallel-processing-work-queue/) + * Use an [indexed Job for parallel processing with static work assignment](/docs/tasks/job/indexed-parallel-processing-static/) + * Create multiple Jobs based on a template: [Parallel Processing using Expansions](/docs/tasks/job/parallel-processing-expansion/) +* Follow the links within [Clean up finished jobs automatically](#clean-up-finished-jobs-automatically) + to learn more about how your cluster can clean up completed and / or failed tasks. +* `Job` is part of the Kubernetes REST API. + Read the {{< api-reference page="workload-resources/job-v1" >}} + object definition to understand the API for jobs. +* Read about [`CronJob`](/docs/concepts/workloads/controllers/cron-jobs/), which you + can use to define a series of Jobs that will run based on a schedule, similar to + the UNIX tool `cron`. +* Practice how to configure handling of retriable and non-retriable pod failures + using `podFailurePolicy`, based on the step-by-step [examples](/docs/tasks/job/pod-failure-policy/). diff --git a/content/fa/docs/concepts/workloads/management.md b/content/fa/docs/concepts/workloads/management.md new file mode 100644 index 0000000000000..0e063f7f5c993 --- /dev/null +++ b/content/fa/docs/concepts/workloads/management.md @@ -0,0 +1,439 @@ +--- +title: مدیریت بارکاری +content_type: concept +reviewers: +- xirehat +weight: 40 +--- + + + +شما برنامه خود را مستقر کرده و از طریق یک سرویس آن را در معرض نمایش قرار داده‌اید. حالا چه باید کرد؟ کوبرنتیز ابزارهای متعددی را برای کمک به شما در مدیریت استقرار برنامه، از جمله مقیاس‌بندی و به‌روزرسانی، ارائه می‌دهد. + + + +## سازمان‌دهی پیکربندی منابع + +بسیاری از برنامه‌ها نیاز به ایجاد چندین منبع دارند، مانند یک Deployment همراه با یک Service. +مدیریت چندین منبع را می‌توان با گروه‌بندی آن‌ها در یک فایل واحد (جداشده با `---` در YAML) ساده کرد. برای مثال: + +{{% code_sample file="application/nginx-app.yaml" %}} + +می‌توان چندین منبع را به همان روشی که یک منبع واحد ایجاد می‌شود، ساخت: + +```shell +kubectl apply -f https://k8s.io/examples/application/nginx-app.yaml +``` + +```none +service/my-nginx-svc created +deployment.apps/my-nginx created +``` + +منابع به ترتیبی که در فایل manifest ظاهر می‌شوند ایجاد می‌شوند. بنابراین بهتر است ابتدا Service را مشخص کنید، زیرا این کار اطمینان می‌دهد که زمان‌بندی‌کننده بتواند پادهای مرتبط با آن Service را هنگام ایجاد توسط کنترلرها (مانند Deployment) پخش کند. + +`kubectl apply` همچنین چندین آرگومان `-f` را می‌پذیرد: + +```shell +kubectl apply -f https://k8s.io/examples/application/nginx/nginx-svc.yaml \ + -f https://k8s.io/examples/application/nginx/nginx-deployment.yaml +``` + + +توصیه می‌شود منابع مربوط به یک میکروسرویس یا لایه برنامه را در یک فایل قرار دهید و تمام فایل‌های مرتبط با برنامه خود را در یک دایرکتوری گروه‌بندی کنید. اگر لایه‌های برنامه شما با استفاده از DNS به یکدیگر متصل شوند، می‌توانید تمام اجزای پشته خود را با هم مستقر کنید. + +همچنین می‌توان یک URL را به عنوان منبع پیکربندی مشخص کرد که برای استقرار مستقیم از مانیفست‌ها در سیستم کنترل منبع شما مفید است: + +```shell +kubectl apply -f https://k8s.io/examples/application/nginx/nginx-deployment.yaml +``` + +```none +deployment.apps/my-nginx created +``` + +اگر نیاز باشد تا مانیفست‌های بیشتری تعریف کنید، مانند افزودن یک ConfigMap، می‌توانید این کار را نیز انجام دهید. + +### ابزارهای خارجی + +در این بخش فقط رایج‌ترین ابزارهای مورد استفاده برای مدیریت بارکاری‌ها در کوبرنتیز فهرست شده‌اند. برای مشاهده فهرست کامل‌تر، قسمت [تعریف برنامه و ساخت تصویر](https://landscape.cncf.io/guide#app-definition-and-development--application-definition-image-build) در منظره {{< glossary_tooltip text="CNCF" term_id="cncf" >}} را ببینید. + +#### Helm {#external-tool-helm} + +{{% thirdparty-content single="true" %}} + +[Helm](https://helm.sh/) ابزاری برای مدیریت بسته‌های منابع از پیش‌پیکربندی‌شده‌ی کوبرنتیز است. این بسته‌ها به عنوان _Helm charts_ شناخته می‌شوند. + +#### Kustomize {#external-tool-kustomize} + +[Kustomize](https://kustomize.io/) یک مانیفست کوبرنتیز را پیمایش می‌کند تا گزینه‌های پیکربندی را اضافه، حذف یا به‌روزرسانی کند. این ابزار هم به صورت یک باینری مستقل و هم به عنوان یک [ویژگی بومی](/docs/tasks/manage-kubernetes-objects/kustomization/) در kubectl در دسترس است. + +## عملیات دسته جمعی در kubectl + +ایجاد منابع تنها عملیاتی نیست که `kubectl` می‌تواند به صورت دسته جمعی انجام دهد. همچنین می‌تواند نام منابع را از فایل‌های پیکربندی استخراج کند تا عملیات دیگری را انجام دهد، به ویژه برای حذف همان منابعی که ایجاد کرده‌اید: + +```shell +kubectl delete -f https://k8s.io/examples/application/nginx-app.yaml +``` + +```none +deployment.apps "my-nginx" deleted +service "my-nginx-svc" deleted +``` + +در مورد دو منبع، می‌توانید هر دو منبع را در خط فرمان با استفاده از سینتکس resource/name مشخص کنید: + +```shell +kubectl delete deployments/my-nginx services/my-nginx-svc +``` + +برای تعداد بیشتری از منابع، مشخص کردن انتخابگر (پرس و جوی برچسب) که با استفاده از `-l` یا `--selector` مشخص می‌شود، برای فیلتر کردن منابع بر اساس برچسب‌هایشان، آسان‌تر خواهد بود: + +```shell +kubectl delete deployment,services -l app=nginx +``` + +```none +deployment.apps "my-nginx" deleted +service "my-nginx-svc" deleted +``` + +### زنجیره‌سازی و فیلتر کردن + +از آنجا که `kubectl` نام منابع را با همان سینتکس پذیرفته شده خود نمایش می‌دهد، می‌توانید عملیات را زنجیره‌ای کنید +با استفاده از `$()` یا `xargs`: + +```shell +kubectl get $(kubectl create -f docs/concepts/cluster-administration/nginx/ -o name | grep service/ ) +kubectl create -f docs/concepts/cluster-administration/nginx/ -o name | grep service/ | xargs -i kubectl get '{}' +``` + +خروجی ممکن است مشابه زیر باشد: + +```none +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +my-nginx-svc LoadBalancer 10.0.0.208 80/TCP 0s +``` + +با استفاده از دستورات بالا، ابتدا منابع را زیر مسیر `examples/application/nginx/` ایجاد می‌کنید و با قالب خروجی `-o name` (هر منبع به صورت resource/name) آن‌ها را نمایش می‌دهید. سپس فقط سرویس‌ها را با `grep` فیلتر کرده و با دستور [`kubectl get`](/docs/reference/kubectl/generated/kubectl_get/) نمایش می‌دهید. + +### عملیات بازگشتی روی فایل‌های محلی + +اگر فایل‌های منبع خود را در چند زیرشاخه درون یک پوشه سازمان‌دهی کرده باشید، می‌توانید عملیات را به‌صورت بازگشتی روی زیرشاخه‌ها نیز انجام دهید، با اضافه کردن گزینه‌ی `--recursive` یا `-R` همراه با آرگومان `--filename`/`-f`. + +برای مثال، فرض کنید پوشه‌ای به نام `project/k8s/development` وجود دارد که تمام {{< glossary_tooltip text="manifست‌ها" term_id="manifest" >}} مورد نیاز برای محیط توسعه را بر اساس نوع منبع سازمان‌دهی کرده است: + +```none +project/k8s/development +├── configmap +│   └── my-configmap.yaml +├── deployment +│   └── my-deployment.yaml +└── pvc + └── my-pvc.yaml +``` + +به طور پیش‌فرض، انجام یک عملیات دسته‌ای در `project/k8s/development` در سطح اول دایرکتوری متوقف می‌شود و هیچ زیردایرکتوری را پردازش نمی‌کند. اگر سعی می‌کردید منابع را در این دایرکتوری با استفاده از دستور زیر ایجاد کنید، با خطا مواجه می‌شدیم: + +```shell +kubectl apply -f project/k8s/development +``` + +```none +error: you must provide one or more resources by argument or filename (.json|.yaml|.yml|stdin) +``` + +در عوض، آرگومان خط فرمان `--recursive` یا `-R` را به همراه آرگومان `--filename`/`-f` مشخص کنید: + +```shell +kubectl apply -f project/k8s/development --recursive +``` + +```none +configmap/my-config created +deployment.apps/my-deployment created +persistentvolumeclaim/my-pvc created +``` + +گزینه‌ی `--recursive` با هر عملیاتی که آرگومان `--filename`/`-f` را قبول می‌کند کار می‌کند، مانند: `kubectl create`، `kubectl get`، `kubectl delete`، `kubectl describe` یا حتی `kubectl rollout`. + +گزینه‌ی `--recursive` زمانی که چندین آرگومان `-f` ارائه شود نیز کار می‌کند: + +```shell +kubectl apply -f project/k8s/namespaces -f project/k8s/development --recursive +``` + +```none +namespace/development created +namespace/staging created +configmap/my-config created +deployment.apps/my-deployment created +persistentvolumeclaim/my-pvc created +``` + +اگر علاقه‌مندید درباره‌ی `kubectl` بیشتر بدانید، به سراغ مطالعه‌ی [ابزار خط فرمان (kubectl)](/docs/reference/kubectl/) بروید. + +## به‌روزرسانی برنامه بدون قطعی + +در مقطعی لازم است برنامه‌ی مستقر شما به‌روزرسانی شود، معمولاً با مشخص کردن +یک ایمیج یا تگ جدید. `kubectl` چندین عملیات به‌روزرسانی را پشتیبانی می‌کند که +هر کدام برای سناریوهای مختلف کاربرد دارد. + +می‌توانید چند نسخه از برنامه‌ی خود را اجرا کنید و از _rollout_ +برای انتقال تدریجی ترافیک به پادهای سالم جدید استفاده کنید. در نهایت، +همه‌ی پادهای اجراشده نرم‌افزار جدید را خواهند داشت. + +این بخش از صفحه راهنمای شما برای ایجاد و به‌روزرسانی برنامه‌ها با استفاده از Deployment‌هاست. + +فرض کنید شما در حال اجرای نسخه‌ی 1.14.2 از nginx بودید: + +```shell +kubectl create deployment my-nginx --image=nginx:1.14.2 +``` + +```none +deployment.apps/my-nginx created +``` + +مطمئن شوید که ۱ کپی وجود دارد: + +```shell +kubectl scale --replicas 1 deployments/my-nginx --subresource='scale' --type='merge' -p '{"spec":{"replicas": 1}}' +``` + +```none +deployment.apps/my-nginx scaled +``` + +و با تنظیم حداکثر افزایش ناگهانی (surge maximum) روی ۱۰۰٪، به کوبرنتیز اجازه دهید در طول یک انتشار، کپی‌های موقت بیشتری اضافه کند: + +```shell +kubectl patch --type='merge' -p '{"spec":{"strategy":{"rollingUpdate":{"maxSurge": "100%" }}}}' +``` + +```none +deployment.apps/my-nginx patched +``` + +برای به‌روزرسانی به نسخه 1.16.1، با استفاده از `kubectl edit`، `.spec.template.spec.containers[0].image` را از `nginx:1.14.2` به `nginx:1.16.1` تغییر دهید: + +```shell +kubectl edit deployment/my-nginx +# مانیفست را تغییر دهید تا از تصویر کانتینر جدیدتر استفاده کند، سپس تغییرات خود را ذخیره کنید +``` + +همین بود! Deployment به‌صورت بیانی (declarative) برنامه‌ی nginx مستقر را به‌تدریج در پس‌زمینه به‌روزرسانی می‌کند. این کار تضمین می‌کند که در حین به‌روزرسانی تنها تعدادی مشخص از نسخه‌های قدیمی ممکن است از دسترس خارج شوند و تنها تعداد مشخصی از نسخه‌های جدید بالاتر از تعداد مطلوب پادها ایجاد شوند. برای آگاهی از جزئیات بیشتر درباره‌ی نحوه‌ی انجام این عملیات، به [Deployment](/docs/concepts/workloads/controllers/deployment/) مراجعه کنید. + +می‌توانید از rollout با DaemonSetها، Deploymentها یا StatefulSetها استفاده کنید. + +### مدیریت rolloutها + +می‌توانید از دستور [`kubectl rollout`](/docs/reference/kubectl/generated/kubectl_rollout/) برای مدیریت به‌روزرسانی تدریجی برنامه‌ی موجود بهره ببرید. + +برای مثال: + +```shell +kubectl apply -f my-deployment.yaml + +# منتظر بمانید تا انتشار به پایان برسد +kubectl rollout status deployment/my-deployment --timeout 10m # تایم اوت ۱۰ دقیقه‌ای +``` + +or + +```shell +kubectl apply -f backing-stateful-component.yaml + +# منتظر پایان انتشار نباشید، فقط وضعیت را بررسی کنید +kubectl rollout status statefulsets/backing-stateful-component --watch=false +``` + +می‌توانید rollout را متوقف (`pause`)، ادامه (`resume`) یا لغو (`cancel`) کنید. +برای کسب اطلاعات بیشتر به [`kubectl rollout`](/docs/reference/kubectl/generated/kubectl_rollout/) مراجعه کنید. + +## استقرارهای Canary + + + +سناریوی دیگری که به چند برچسب نیاز دارد، تمایز بین استقرارهای نسخه‌ها یا پیکربندی‌های مختلف از یک مؤلفه مشابه است. معمولاً نسخه‌ای آزمایشی (*canary*) از انتشار جدید یک برنامه (مشخص‌شده از طریق تگ ایمیج در قالب پاد) کنار نسخه‌ی قبلی مستقر می‌شود تا انتشار جدید بتواند ترافیک تولید زنده را قبل از استقرار کامل دریافت کند. + +برای مثال، می‌توانید از برچسب `track` برای تمایز انتشارهای مختلف استفاده کنید. + +انتشار اصلی و پایدار دارای برچسب `track` با مقدار `stable` خواهد بود: + +```none +name: frontend +replicas: 3 +... +labels: + app: guestbook + tier: frontend + track: stable +... +image: gb-frontend:v3 +``` + +و سپس می‌توانید یک نسخه جدید از frontend guestbook ایجاد کنید که برچسب `track` را با مقدار متفاوت (مثلاً `canary`) داشته باشد، به طوری که دو مجموعه از podها با هم همپوشانی نداشته باشند: + +```none +name: frontend-canary +replicas: 1 +... +labels: + app: guestbook + tier: frontend + track: canary +... +image: gb-frontend:v4 +``` + +سرویس frontend با انتخاب زیرمجموعه مشترک برچسب‌های هر دو مجموعه کپی (replica) (یعنی حذف برچسب `track`) آنها، هر دو مجموعه را پوشش می‌دهد، به طوری که ترافیک به هر دو برنامه هدایت شود: + +```yaml +selector: + app: guestbook + tier: frontend +``` + +شما می‌توانید تعداد کپی‌های نسخه‌های پایدار و قناری را تغییر دهید تا نسبت هر نسخه‌ای که ترافیک تولید زنده را دریافت می‌کند (در این مورد، ۳:۱) را تعیین کنید. + +پس از اطمینان، می‌توانید مسیر پایدار را با نسخه جدید برنامه به‌روزرسانی کرده و مسیر قناری را حذف کنید. + +## به‌روزرسانی حاشیه‌نویسی‌ها + +گاهی اوقات می‌خواهید حاشیه‌نویسی‌ها را به منابع پیوست کنید. حاشیه‌نویسی‌ها، فراداده‌های دلخواه و غیرشناسایی هستند که برای بازیابی توسط کلاینت‌های API مانند ابزارها یا کتابخانه‌ها استفاده می‌شوند. + +این کار را می‌توان با `kubectl annotate` انجام داد. به عنوان مثال: + +```shell +kubectl annotate pods my-nginx-v4-9gw19 description='my frontend running nginx' +kubectl get pods my-nginx-v4-9gw19 -o yaml +``` + +```shell +apiVersion: v1 +kind: pod +metadata: + annotations: + description: my frontend running nginx +... +``` + +برای اطلاعات بیشتر، به [annotations](/docs/concepts/overview/working-with-objects/annotations/) +و [kubectl annotate](/docs/reference/kubectl/generated/kubectl_annotate/) مراجعه کنید. + +## مقیاس‌دهی برنامه شما + +وقتی بار روی برنامه شما افزایش یا کاهش می‌یابد، از `kubectl` برای مقیاس‌دهی برنامه خود استفاده کنید. +برای مثال، برای کاهش تعداد replica‌های nginx از ۳ به ۱، دستور زیر را اجرا کنید: + +```shell +kubectl scale deployment/my-nginx --replicas=1 +``` + +```none +deployment.apps/my-nginx scaled +``` + +حالا شما فقط یک پاد دارید که توسط استقرار مدیریت می‌شود. + +```shell +kubectl get pods -l app=nginx +``` + +```none +NAME READY STATUS RESTARTS AGE +my-nginx-2035384211-j5fhi 1/1 Running 0 30m +``` + +برای اینکه سیستم به طور خودکار تعداد کپی‌های nginx مورد نیاز را از ۱ تا ۳ انتخاب کند، مراحل زیر را انجام دهید: + +```shell +# این امر مستلزم وجود منبع موجود از معیارهای کانتینر و پاد است. +kubectl autoscale deployment/my-nginx --min=1 --max=3 +``` + +```none +horizontalpodautoscaler.autoscaling/my-nginx autoscaled +``` + +اکنون replica‌های nginx شما به‌طور خودکار بر اساس نیاز بالا و پایین مقیاس‌دهی خواهند شد. + +برای اطلاعات بیشتر، لطفاً به مستندات +[kubectl scale](/docs/reference/kubectl/generated/kubectl_scale/) +[kubectl autoscale](/docs/reference/kubectl/generated/kubectl_autoscale/) +و [horizontal pod autoscaler](/docs/tasks/run-application/horizontal-pod-autoscale/) مراجعه کنید. + +## به‌روزرسانی منابع در محل + +گاهی لازم است به‌روزرسانی‌های جزئی و غیرمخرب روی منابعی که ایجاد کرده‌اید انجام دهید. + +### kubectl apply + +پیشنهاد می‌شود مجموعه‌ای از فایل‌های پیکربندی را در کنترل نسخه نگه دارید +(برای اطلاعات بیشتر نگاه کنید به [configuration as code](https://martinfowler.com/bliki/InfrastructureAsCode.html)) +تا بتوان آن‌ها را همراه با کد منابع‌شان نگهداری و نسخه‌بندی کرد. +سپس می‌توانید از [`kubectl apply`](/docs/reference/kubectl/generated/kubectl_apply/) +برای اعمال تغییرات پیکربندی خود به خوشه استفاده کنید. + +این دستور نسخه‌ی پیکربندی ارسالی شما را با نسخه‌ی قبلی مقایسه کرده و تغییراتی را که اعمال کرده‌اید به‌کار می‌گیرد، +بدون آنکه تغییرات خودکار روی ویژگی‌هایی که مشخص نکرده‌اید را بازنویسی کند. + +```shell +kubectl apply -f https://k8s.io/examples/application/nginx/nginx-deployment.yaml +``` + +```none +deployment.apps/my-nginx configured +``` + +برای آشنایی بیشتر با مکانیزم زیرساخت، [server-side apply](/docs/reference/using-api/server-side-apply/) را بخوانید. + +### kubectl edit + +به‌علاوه، می‌توانید منابع را با دستور [`kubectl edit`](/docs/reference/kubectl/generated/kubectl_edit/) نیز به‌روزرسانی کنید: + +```shell +kubectl edit deployment/my-nginx +``` + +این معادل این است که ابتدا منبع را با `get` دریافت کنید، آن را در ویرایشگر متن ویرایش کنید و سپس با نسخه به‌روزرسانی‌شده، منبع را با `apply` اعمال نمایید: + +```shell +kubectl get deployment my-nginx -o yaml > /tmp/nginx.yaml +vi /tmp/nginx.yaml +# کمی ویرایش انجام دهید و سپس فایل را ذخیره کنید + +kubectl apply -f /tmp/nginx.yaml +deployment.apps/my-nginx configured + +rm /tmp/nginx.yaml +``` + +این امکان را فراهم می‌کند تا تغییرات بزرگ‌تر را با سهولت بیشتری انجام دهید. توجه کنید که می‌توانید ویرایشگر را با متغیرهای محیطی `EDITOR` یا `KUBE_EDITOR` مشخص کنید. + +برای اطلاعات بیشتر، لطفاً [kubectl edit](/docs/reference/kubectl/generated/kubectl_edit/) را ببینید. + +### kubectl patch + +می‌توانید با استفاده از دستور [`kubectl patch`](/docs/reference/kubectl/generated/kubectl_patch/) اشیاء API را در محل به‌روزرسانی کنید. این زیر‌دستور از JSON patch، JSON merge patch و strategic merge patch پشتیبانی می‌کند. + +برای جزئیات بیشتر، به [به‌روزرسانی اشیاء API در محل با استفاده از kubectl patch](/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/) مراجعه کنید. + +## به‌روزرسانی‌های مخرب + +در برخی موارد، ممکن است نیاز باشد فیلدهای منبعی را که پس از مقداردهی اولیه قابل به‌روزرسانی نیستند، تغییر دهید، یا بخواهید بلافاصله تغییر بازگشتی انجام دهید، مثلاً برای اصلاح پادهای شکسته ایجادشده توسط یک Deployment. برای تغییر چنین فیلدهایی، از `replace --force` استفاده کنید که منبع را حذف کرده و مجدداً ایجاد می‌کند. در این حالت، می‌توانید فایل پیکربندی اصلی خود را ویرایش کنید: + +```shell +kubectl replace -f https://k8s.io/examples/application/nginx/nginx-deployment.yaml --force +``` + +```none +deployment.apps/my-nginx deleted +deployment.apps/my-nginx replaced +``` + + +## {{% heading "whatsnext" %}} + +- درباره‌ی [نحوه استفاده از `kubectl` برای بازرسی و اشکال‌زدایی برنامه](/docs/tasks/debug/debug-application/debug-running-pod/) بیاموزید. diff --git a/content/fa/docs/contribute/_index.md b/content/fa/docs/contribute/_index.md new file mode 100644 index 0000000000000..35953d9c4d5c5 --- /dev/null +++ b/content/fa/docs/contribute/_index.md @@ -0,0 +1,33 @@ +--- +content_type: concept +title: مشارکت در کوبرنتیز +linkTitle: مشارکت +main_menu: true +no_list: true +weight: 80 +card: + name: contribute + weight: 10 + title: مشارکت در کوبرنتیز +--- + +. + +راه‌های زیادی برای مشارکت در کوبرنتیز وجود دارد. می‌توانید روی طراحی قابلیت‌های جدید کار کنید، +کد موجود را مستند کنید یا برای [وب نوشت‌های ما](/docs/contribute/blog/) بنویسید. +بیش از این‌ها: می‌توانید آن قابلیت‌های جدید را پیاده‌سازی کرده یا باگ‌ها را رفع کنید. +می‌توانید به افراد برای پیوستن به جامعه مشارکت‌کنندگان کمک کنید یا از مشارکت‌کنندگان فعلی پشتیبانی کنید. + +با وجود این همه روش برای تأثیرگذاری بر پروژه، ما – کوبرنتیز – یک تارنما اختصاصی ساخته‌ایم: +https://k8s.dev. می‌توانید به آنجا بروید تا بیشتر درباره +مشارکت در کوبرنتیز بدانید. + +اگر به طور خاص می‌خواهید درباره مشارکت در مستندات یا بخش‌های دیگر _این_ تارنما یاد بگیرید، +[مشارکت در مستندات کوبرنتیز](/docs/contribute/docs/) را مطالعه کنید. +اگر به طور خاص می‌خواهید در وب نوشت‌های رسمی کوبرنتیز کمک کنید، +[مشارکت در وب نوشت‌های کوبرنتیز](/docs/contribute/blog/) را بخوانید. + +همچنین می‌توانید صفحه +[مشارکت‌کنندگان](https://contribute.cncf.io/contributors/projects/#kubernetes) +{{< glossary_tooltip text="CNCF" term_id="cncf" >}} +درباره مشارکت در کوبرنتیز را مطالعه کنید. diff --git a/content/fa/docs/contribute/analytics.md b/content/fa/docs/contribute/analytics.md new file mode 100644 index 0000000000000..f7dc59a547966 --- /dev/null +++ b/content/fa/docs/contribute/analytics.md @@ -0,0 +1,24 @@ +--- +title: مشاهده تجزیه و تحلیل سایت +content_type: concept +weight: 120 +card: + name: contribute + weight: 100 +--- + + + +این صفحه حاوی اطلاعاتی در مورد داشبورد تحلیلی kubernetes.io است. + + + +[مشاهده داشبورد](https://lookerstudio.google.com/u/0/reporting/fe615dc5-59b0-4db5-8504-ef9eacb663a9/page/4VDGB/). + +این داشبورد با استفاده از [Google Looker Studio](https://lookerstudio.google.com/overview) ساخته شده است و اطلاعات جمع‌آوری‌شده در kubernetes.io را با استفاده از Google Analytics 4 از آگوست 2022 نشان می‌دهد. + +### استفاده از داشبورد + +به طور پیش‌فرض، داشبورد تمام تجزیه و تحلیل‌های جمع‌آوری‌شده برای ۳۰ روز گذشته را نشان می‌دهد. از انتخابگر تاریخ برای مشاهده داده‌ها از محدوده تاریخی متفاوت استفاده کنید. سایر گزینه‌های فیلتر به شما امکان می‌دهند داده‌ها را بر اساس موقعیت مکانی کاربر، دستگاه مورد استفاده برای دسترسی به سایت، ترجمه اسناد مورد استفاده و موارد دیگر مشاهده کنید. + + اگر متوجه مشکلی در این داشبورد شدید یا مایل به درخواست هرگونه بهبود هستید، لطفاً [یک مشکل را باز کنید](https://github.com/kubernetes/website/issues/new/choose). diff --git a/content/fa/docs/contribute/blog/_index.md b/content/fa/docs/contribute/blog/_index.md new file mode 100644 index 0000000000000..741ba9af62d0e --- /dev/null +++ b/content/fa/docs/contribute/blog/_index.md @@ -0,0 +1,61 @@ +--- +title: مشارکت در وب نوشت‌های کوبرنتیز +slug: blog-contribution +content_type: concept +weight: 15 +simple_list: true +--- + + + +دو وب نوشت رسمی کوبرنتیز وجود دارد و CNCF نیز [وب نوشت اختصاصی خودش](https://www.cncf.io/blog/) را دارد که می‌توانید در آن نیز درباره کوبرنتیز بنویسید. +برای وب نوشت اصلی کوبرنتیز ما (پروژه کوبرنتیز) علاقه داریم مقالاتی با دیدگاه‌های گوناگون و تمرکزهای ویژه منتشر کنیم که به‌نوعی با کوبرنتیز در ارتباط باشند. + +به‌جز چند استثنای خاص، ما فقط محتوایی را منتشر می‌کنیم که پیش‌تر در هیچ جای دیگری ارسال یا منتشر نشده باشد. + +برای اطلاعات بیشتر در این باره، [راهنمای وب نوشت](/docs/contribute/blog/guidelines/#what-we-publish) را مطالعه کنید. + +## وب نوشت‌های رسمی کوبرنتیز + +### وب نوشت اصلی + +وب نوشت اصلی [کوبرنتیز](/blog/)توسط پروژه برای اطلاع‌رسانی درباره قابلیت‌های جدید، گزارش‌های جامعه و هر خبر مرتبط با جامعه کوبرنتیز استفاده می‌شود. این جامعه شامل کاربران نهایی و توسعه‌دهندگان است. بیش‌تر محتوای وب نوشت درباره رویدادهایی است که در هسته پروژه رخ می‌دهد؛ با این حال، پروژه کوبرنتیز شما را تشویق می‌کند که درباره اتفاقات دیگر در بن‌سازه نیز مطلب ارسال کنید! + +هر کسی می‌تواند یک مطلب وب نوشتی بنویسد و آن را برای انتشار ارسال کند. به‌جز چند استثنای خاص، ما فقط محتوایی را منتشر می‌کنیم که پیش‌تر در هیچ جای دیگری ارسال یا منتشر نشده باشد. + +### وب نوشت مشارکت‌کنندگان + +[وب نوشت مشارکت‌کنندگان کوبرنتیز](https://k8s.dev/blog/) برای مخاطبانی است که بیشتر **بر روی** کوبرنتیز کار می‌کنند تا افرادی که **با** کوبرنتیز کار می‌کنند. +پروژه کوبرنتیز عمداً برخی مقالات را در هر دو وبلاگ منتشر می‌کند. + +هر کسی می‌تواند یک مطلب وب نوشتی بنویسد و آن را برای بازبینی ارسال کند. + +## به‌روزرسانی و نگهداری مقاله {#maintenance} + +پروژه کوبرنتیز مقالات قدیمی وب نوشت‌های خود را نگه‌داری نمی‌کند. این بدان معناست که هر +مقاله منتشرشده‌ای که بیش از یک سال از انتشارش گذشته باشد، معمولاً برای دریافت مسئله +یا درخواست ادغام جهت اعمال تغییرات **واجد شرایط نیست**. برای جلوگیری از ایجاد رویه، حتی +درخواست ادغام‌های فنی و درست هم به احتمال زیاد رد می‌شوند. + +بااین‌حال، استثناهایی وجود دارند؛ مانند: + +* (به‌روزرسانی‌های) مقالاتی که به‌عنوان [همیشه‌سبز](#maintenance-evergreen) علامت خورده‌اند +* حذف یا اصلاح مقالاتی که اکنون توصیه‌های نادرست و خطرناک ارائه می‌دهند +* رفع خطاها برای اطمینان از این‌که یک مقاله موجود هنوز به‌درستی نمایش داده می‌شود + +برای هر مقاله‌ای که بیش از یک سال از انتشارش گذشته و به‌عنوان _evergreen_ علامت نخورده +است، تارنما به‌طور خودکار پیامی را نمایش می‌دهد مبنی بر این‌که محتوا ممکن است قدیمی باشد. + +### مقالات همیشه سبز {#maintenance-evergreen} + +می‌توانید با قرار دادن `evergreen: true` در مقدمه، یک مقاله را به‌عنوان همیشه‌سبز علامت‌گذاری کنید. + +ما فقط زمانی مقالات وب نوشت را به‌عنوان نگه‌داری‌شده (`evergreen: true` در مقدمه) علامت می‌زنیم که پروژه کوبرنتیز بتواند متعهد شود آن‌ها را برای همیشه نگه‌داری کند. برخی مقالات وب نوشت بدون تردید شایسته این هستند؛ برای نمونه، تیم ارتباطات انتشار همواره اعلان‌های رسمی را به‌عنوان همیشه‌سبز علامت می‌زند. + +## {{% heading "whatsnext" %}} + +* وب نوشت‌های رسمی را بخوانید: + * [وب نوشت کوبرنتیز](/blog/) + * [وب نوشت مشارکت‌کنندگان کوبرنتیز](https://k8s.dev/blog/) + +* درباره [درخواست ادغام بررسی وب نوشت](/docs/contribute/review/reviewing-prs/#blog) بخوانید. diff --git a/content/fa/docs/contribute/blog/buddying.md b/content/fa/docs/contribute/blog/buddying.md new file mode 100644 index 0000000000000..2c856a7d76fc5 --- /dev/null +++ b/content/fa/docs/contribute/blog/buddying.md @@ -0,0 +1,80 @@ +--- +title: کمک به‌عنوان همراه نگارش وبلاگ +slug: writing-buddy +content_type: concept +weight: 70 +--- + + + +دو وبلاگ رسمی Kubernetes وجود دارد و بنیاد CNCF نیز وبلاگ خودش را دارد که در آن می‌توانید درباره Kubernetes بنویسید. برای آشنایی با این دو وبلاگ، [مشارکت در وبلاگ‌های Kubernetes](/docs/contribute/blog/) را بخوانید. + +وقتی افراد به‌عنوان نویسنده در هر یک از این وبلاگ‌ها مشارکت می‌کنند، پروژه Kubernetes نویسندگان را به‌عنوان _همراه نگارش_ جفت می‌کند. این صفحه توضیح می‌دهد که چگونه این نقش را انجام دهید. + +قبل از ادامه مطالعه این صفحه، اطمینان حاصل کنید که دست‌کم خلاصه [ارسال مقاله](/docs/contribute/blog/submission/) را خوانده‌اید. + + + +## مسئولیت‌های همراه نگارش + +به‌عنوان یک همراه نگارش، شما: + +* به تیم وبلاگ کمک می‌کنید تا مقالات آماده ادغام و انتشار شوند +* از همراه خود پشتیبانی می‌کنید تا محتوایی قابل ادغام تولید کند +* یک بازبینی بر مقاله‌ای که همراه‌تان نوشته است ارائه می‌دهید + +وقتی تیم شما را با نویسنده دیگری جفت می‌کند، ایده این است که هر دو با بازبینی پیش‌نویس مقاله یکدیگر از هم پشتیبانی کنید. بیشتر خوانندگان وبلاگ Kubernetes متخصص نیستند؛ محتوا باید برای آن مخاطب قابل درک باشد، یا دست‌کم از خوانندگان غیرمتخصص به‌درستی پشتیبانی کند. + +تیم وبلاگ نیز در مسیر پیش‌نویس تا انتشار به هر دوی شما کمک می‌کند. آن‌ها یا مستقیماً می‌توانند مقاله شما را برای انتشار تأیید کنند، یا ترتیبی می‌دهند تا تأیید انجام شود. + +## پشتیبانی از تیم وبلاگ + +مسئولیت اصلی شما این است که درباره ظرفیت، در دسترس بودن و پیشرفت خود در یک بازه زمانی معقول اطلاع‌رسانی کنید. اگر هفته‌ها بگذرد و همراه شما خبری از شما نداشته باشد، کل کار زمان بیشتری می‌برد. + +## پشتیبانی از همراه خود + +این فرایند دو بخش دارد + +{{< tabs name="buddy_support" >}} +{{% tab name="ویرایش مشارکتی" %}} +**(این گزینه پیشنهادی است)** + +تیم وبلاگ پیشنهاد می‌کند که نویسنده اصلی برای مقاله، ویرایش مشارکتی را با استفاده از Google Doc یا HackMD (به انتخاب خودش) راه‌اندازی کند. سپس نویسنده اصلی آن سند را با افراد زیر به‌اشتراک می‌گذارد: + + * هر نویسنده همکار + * شما (همراه نگارش) + * ترجیحاً یک نفر از تیم وبلاگ + +به‌عنوان همراه نگارش، پیش‌نویس متن را می‌خوانید و یا مستقیماً پیشنهاد اعمال می‌کنید یا به شیوه دیگری بازخورد می‌دهید. نویسنده وبلاگ معمولاً **همراه نگارش شما** نیز هست، بنابراین آن‌ها همان نوع بازخورد را بر پیش‌نویس مقاله وبلاگ شما ارائه می‌دهند. + +نقش شما این است که کمترین مجموعه تغییرات لازم را پیشنهاد دهید تا مقاله برای انتشار خوب به‌نظر برسد. اگر نموداری واقعاً نامفهوم است یا متن واقعاً نامشخص است: بازخورد بدهید. اگر فقط اختلاف جزئی درباره واژه‌گزینی یا نقطه‌گذاری دارید، از آن صرف‌نظر کنید. بگذارید نویسنده(ها) در سبک خودشان بنویسند، به شرطی که با [راهنمای وبلاگ](/docs/contribute/blog/guidelines/) هم‌خوان باشند. + +پس از آماده شدن پیش‌نویس، نویسنده اصلی یک Pull Request باز می‌کند و مقاله را با Markdown ارسال می‌نماید. سپس شما یک [بازبینی](#pull-request-review) ارائه می‌دهید. +{{% /tab %}} +{{% tab name="ویرایش Markdown / Git" %}} +برخی نویسندگان ترجیح می‌دهند با +[ویرایش مشارکتی](#buddy-support-0) شروع کنند؛ برخی دیگر دوست دارند مستقیم وارد GitHub شوند. + +هر مسیری که انتخاب کنند، نقش شما ارائه بازخوردی است که به تیم وبلاگ اجازه دهد تأیید ساده‌ای انجام دهد و مقاله به‌عنوان پیش‌نویس ادغام شود. آنچه نویسندگان باید انجام دهند را در +[ارسال مقاله به وبلاگ‌های Kubernetes](/docs/contribute/blog/submission/) ببینید. + +برای اشاره به تغییرات لازم، از پیشنهادهای GitHub استفاده کنید. + +وقتی Markdown و سایر محتوا (مانند تصاویر) درست به‌نظر می‌رسد، یک +[بازبینی](#pull-request-review) رسمی ارائه می‌دهید. +{{% /tab %}} +{{< /tabs >}} + +## بازبینی Pull Request + +بخش [وبلاگ](/docs/contribute/review/reviewing-prs/#blog) از _بازبینی Pull Requestها_ را دنبال کنید. + +وقتی فکر می‌کنید Pull Request وبلاگ باز شده به‌اندازه کافی خوب است که ادغام شود، نظر `/lgtm` را در Pull Request اضافه کنید. + +این فرمان به ابزار اتوماسیون مخزن (Prow) نشان می‌دهد که محتوا «از نظر من خوب به‌نظر می‌رسد». Prow کارها را پیش می‌برد. دستور `/lgtm` به شما اجازه می‌دهد صرف‌نظر از این‌که رسماً عضو پروژه Kubernetes هستید یا نه، نظر خود را ثبت کنید. + +یا شما یا نویسنده(ها) باید به تیم وبلاگ اطلاع دهید که مقاله‌ای برای تأیید نهایی آماده است. همان‌گونه که در راهنمای ارسال توضیح داده شده، باید از قبل در front matter با `draft: true` علامت‌گذاری شده باشد. + +## مراحل بعدی + +برای شما به‌عنوان همراه نگارش، **مرحله چهارمی وجود ندارد**. وقتی Pull Request آماده ادغام بود، تیم وبلاگ (یا برای سایت Contributors، تیم ارتباطات مشارکت‌کنندگان) از آنجا به بعد را مدیریت می‌کند. ممکن است لازم باشد بر اساس بازخورد به مرحله قبلی برگردید، اما معمولاً می‌توانید انتظار داشته باشید که کار شما به‌عنوان همراه نگارش تمام شده است. diff --git a/content/fa/docs/contribute/blog/guidelines.md b/content/fa/docs/contribute/blog/guidelines.md new file mode 100644 index 0000000000000..2d2388b1c8163 --- /dev/null +++ b/content/fa/docs/contribute/blog/guidelines.md @@ -0,0 +1,134 @@ +--- +title: راهنمای وبلاگ +content_type: concept +weight: 40 +--- + + + +این دستورالعمل‌ها وبلاگ اصلی Kubernetes و وبلاگ مشارکت‌کنندگان Kubernetes را پوشش می‌دهد. + +تمام محتوای وبلاگ باید با سیاست کلی موجود در +[راهنمای محتوا](/docs/contribute/style/content-guide/) نیز هم‌خوانی داشته باشد. + +# {{% heading "prerequisites" %}} + +اطمینان حاصل کنید که با بخش‌های مقدمه +[مشارکت در وبلاگ‌های Kubernetes](/docs/contribute/blog/) +آشنا هستید؛ نه‌تنها برای آشنایی با دو وبلاگ رسمی و تفاوت‌های آن‌ها،‌ بلکه برای دریافت نمایی کلی از فرایند. + +## محتوای اصلی + +پروژه Kubernetes **فقط محتوای اصلی** را می‌پذیرد و محتوا باید به زبان انگلیسی باشد. + +{{< note >}} +اگر محتوایی پیش‌تر خارج از پروژه Kubernetes ارسال یا منتشر شده باشد، پروژه Kubernetes نمی‌تواند آن را برای وبلاگ بپذیرد. + +وبلاگ‌های رسمی مکانی برای بازنشر محتوای موجود از هر شخص ثالث به‌عنوان محتوای تازه نیستند. +{{< /note >}} + +این محدودیت حتی شامل تبلیغ سایر پروژه‌های بنیاد لینوکس و CNCF نیز می‌شود. +بسیاری از پروژه‌های CNCF وبلاگ خود را دارند و این وبلاگ‌ها اغلب گزینه بهتری برای پست‌هایی درباره یک پروژه مشخص هستند، حتی اگر آن پروژه برای کار با Kubernetes (یا لینوکس و غیره) طراحی شده باشد. + +## محتوای مرتبط + +مقالات باید حاوی محتوایی باشند که به‌طور گسترده برای جامعه Kubernetes کاربرد دارد. برای مثال، یک +ارسال باید بر روی Kubernetes بالادست تمرکز داشته باشد نه پیکربندی‌های خاص فروشنده‌ها. +برای مقالات ارسال‌شده به وبلاگ اصلی که +[مقالات آینه‌شده](/docs/contribute/blog/mirroring/) نیستند، لینک‌های موجود در مقاله معمولاً باید +به مستندات رسمی Kubernetes اشاره کنند. هنگام ایجاد ارجاعات خارجی، لینک‌ها باید متنوع باشند؛ به‌عنوان مثال، یک ارسال نباید فقط شامل لینک به وبلاگ یک شرکت واحد باشد. + +وبلاگ‌های رسمی Kubernetes **جایی برای تبلیغات فروشنده‌ها یا مقالاتی که یک راهکار خاص خارج از Kubernetes را ترویج می‌دهند نیستند.** + +گاهی یافتن تعادل در این زمینه حساس است. در Slack ([#sig-docs-blog](https://kubernetes.slack.com/archives/CJDHVD54J)) می‌توانید راهنمایی بگیرید که آیا پستی برای وبلاگ Kubernetes یا وبلاگ مشارکت‌کنندگان مناسب است یا خیر—در پرسیدن تردید نکنید. + +[راهنمای محتوا](/docs/contribute/style/content-guide/) بدون قید و شرط برای مقالات وبلاگ و Pull Requestهایی که آن‌ها را اضافه می‌کنند اعمال می‌شود. به خاطر داشته باشید که برخی محدودیت‌های ذکرشده در راهنما فقط به مستندات مربوط می‌شوند؛ این محدودیت‌های علامت‌گذاری‌شده بر مقالات وبلاگ اعمال نمی‌شوند. + +## بومی‌سازی + +وب‌سایت به زبان‌های زیادی بومی‌سازی شده است؛ انگلیسی «نسخه بالادست» برای سایر بومی‌سازی‌ها است. حتی اگر زبان دیگری می‌دانید و مایلید بومی‌سازی ارائه دهید، باید این کار را در یک Pull Request جداگانه انجام دهید (نگاه کنید به [زبان‌ها در هر PR](/docs/contribute/new-content/#languages-per-pr)). + +## کپی‌رایت و استفاده مجدد + +باید [محتوای اصلی](#original-content) بنویسید و باید اجازه داشته باشید آن محتوا را تحت مجوز Cloud Native Computing Foundation ارائه دهید (تا پروژه Kubernetes بتواند آن را به‌طور قانونی منتشر کند). +این بدان معناست که نه‌تنها سرقت ادبی مستقیم ممنوع است، بلکه اگر اجازه ندارید شرایط مجوز کپی‌رایت CNCF را رعایت کنید (برای مثال، اگر کارفرمای شما سیاستی درباره مالکیت فکری دارد که شما را محدود می‌کند)، نمی‌توانید مقاله بنویسید. + +[مجوز](https://github.com/kubernetes/website/blob/main/LICENSE) وبلاگ استفاده تجاری از محتوا را برای اهداف تجاری مجاز می‌کند، اما عکس آن صادق نیست. + +## گروه‌های علایق ویژه و گروه‌های کاری + +موضوعات مرتبط با مشارکت در یا نتایج فعالیت SIGهای Kubernetes همیشه در موضوع قرار دارند (برای پشتیبانی از این پست‌ها، کار تیم [ارتباطات مشارکت‌کنندگان](https://github.com/kubernetes/community/blob/master/communication/contributor-comms/blogging-resources/blog-guidelines.md#contributor-comms-blog-guidelines) را ببینید). + +پروژه معمولاً این مقالات را به هر دو وبلاگ [آینه می‌کند](/docs/contribute/blog/mirroring/). + +## محدودیت‌های ملی بر محتوا + +وب‌سایت Kubernetes دارای مجوز ارائه‌دهنده محتوای اینترنت (ICP) از دولت چین است. اگرچه به احتمال زیاد مشکلی ایجاد نمی‌شود، Kubernetes نمی‌تواند مقالاتی را منتشر کند که توسط فیلترینگ رسمی دولت چین مسدود خواهند شد. + +## راهنمای محتوای ویژه وبلاگ {#what-we-publish} + +علاوه بر [راهنمای سبک عمومی](/docs/contribute/style/style-guide/)، مقالات وبلاگ بهتر است (لزومی ندارد) با +[توصیه‌های سبک ویژه وبلاگ](/docs/contribute/blog/article-submission/#article-content) هم‌سو باشند. + +بقیه این صفحه راهنمای تکمیلی است؛ این‌ها قوانین سختگیرانه نیستند که مقالات باید از آن‌ها پیروی کنند، اما بازبین‌ها احتمالاً (و باید) درخواست ویرایش برای مقالاتی دهند که آشکارا با این توصیه‌ها همخوانی ندارند. + +### نمودارها و تصاویر {#illustrations} + +برای [تصاویر](/docs/contribute/blog/article-submission/#illustrations)—از جمله نمودارها یا چارت‌ها—در صورت امکان از +[شورتکد figure](https://gohugo.io/content-management/shortcodes/#figure) +استفاده کنید. برای دسترس‌پذیری، باید ویژگی `alt` را تنظیم کنید. + +برای تصاویر، نمودارهای فنی و گرافیک‌های مشابه از تصاویر برداری استفاده کنید؛ فرمت SVG به‌شدت توصیه می‌شود. + +مقالاتی که از تصاویر رستری برای نمودارها استفاده می‌کنند دشوارتر نگه‌داری می‌شوند و در برخی موارد تیم وبلاگ ممکن است از نویسندگان بخواهد پیش از انتشار مقاله را بازبینی کنند. + +### بی‌زمانی + +پست‌های وبلاگ باید تلاش کنند برای آینده نیز معتبر بمانند. + +- با توجه به سرعت توسعه پروژه، SIG Docs نوشتار _بی‌زمان_ را ترجیح می‌دهد: محتوایی که برای دقیق ماندن نیاز به به‌روزرسانی نداشته باشد. +- گاهی افزودن یک آموزش یا به‌روزرسانی مستندات رسمی انتخاب بهتری است تا نوشتن یک مرور سطح بالا به‌صورت پست وبلاگ. +- در نظر بگیرید محتوای فنی طولانی را به‌عنوان فراخوان اقدام در پست وبلاگ متمرکز کنید و بر فضای مسئله یا دلیل اهمیت آن برای خوانندگان تمرکز نمایید. + +### نمونه‌های محتوا + +در این‌جا نمونه‌هایی از محتوایی که برای +[وبلاگ اصلی Kubernetes](/docs/contribute/blog/#main-blog) +مناسب است آورده شده است: + +* اعلانات درباره قابلیت‌های جدید Kubernetes +* توضیحاتی درباره چگونگی دستیابی به یک نتیجه با استفاده از Kubernetes؛ مثلاً، درباره بهبود کاهش زحمت در ایده پایه یک استقرار غلتان بگویید +* مقایسه چند گزینه نرم‌افزاری مختلف که به Kubernetes و فضای ابری بومی مرتبط هستند. داشتن لینک به یکی از این گزینه‌ها ایرادی ندارد به شرط آنکه تضاد منافع / رابطه خود را کاملاً افشا کنید. +* داستان‌هایی درباره مشکلات یا حوادث و نحوه حل آن‌ها +* مقالات درباره ساخت یک پلتفرم cloud native برای موارد استفاده خاص +* نظر شما درباره نقاط قوت یا ضعف Kubernetes +* اعلانات و داستان‌ها درباره Kubernetes غیرهسته‌ای، مانند Gateway API +* [اعلانات پس از انتشار و به‌روزرسانی‌ها](#post-release-comms) +* پیام‌هایی درباره آسیب‌پذیری‌های امنیتی مهم Kubernetes +* به‌روزرسانی‌های پروژه‌های Kubernetes +* آموزش‌ها و راهنماها +* رهبری فکری پیرامون Kubernetes و cloud native +* اجزای Kubernetes عمداً ماژولار هستند، بنابراین نوشتن درباره نقاط یکپارچه‌سازی موجود مانند CNI و CSI در موضوع است. به شرط آنکه تبلیغ فروشنده‌ای نباشد، می‌توانید درباره آنچه در انتهای دیگر این یکپارچه‌سازی‌ها قرار دارد نیز بنویسید. + +در این‌جا نمونه‌هایی از محتوایی که برای +[وبلاگ مشارکت‌کنندگان Kubernetes](/docs/contribute/blog/#contributor-blog) +مناسب است آورده شده است: + +* مقالاتی درباره چگونگی آزمایش تغییرات کد Kubernetes +* محتوایی پیرامون مشارکت غیرکدی +* مباحث درباره ویژگی‌های آلفا که طراحی آن‌ها هنوز در دست بحث است +* مقالات «آشنایی با تیم» درباره گروه‌های کاری، گروه‌های علایق ویژه و غیره +* راهنمایی درباره نحوه نوشتن کد امنی که بخشی از خود Kubernetes خواهد شد +* مقالات درباره گردهمایی‌های نگه‌دارندگان (Maintainer Summit) و نتایج آن گردهمایی‌ها + +### نمونه‌هایی از محتوایی که پذیرفته نمی‌شوند {#what-we-do-not-publish} + +با این حال، پروژه مقالات زیر را منتشر نخواهد کرد: + +* تبلیغات فروشنده +* مقاله‌ای که در جای دیگری منتشر کرده‌اید، حتی اگر فقط در وبلاگ کم‌ترافیک خودتان باشد +* بخش‌های بزرگ کد منبع نمونه با توضیح حداقلی +* به‌روزرسانی درباره پروژه‌ای خارجی که با یا بر پایه Kubernetes کار می‌کند (این دست پست‌ها را در وبلاگ خود پروژه خارجی منتشر کنید) +* مقالات درباره استفاده از Kubernetes با یک ارائه‌دهنده ابر خاص +* مقالاتی که اشخاص، گروه‌ها یا کسب‌وکارهای خاص را نقد می‌کنند +* مقالاتی که اشتباهات فنی مهم یا جزئیات گمراه‌کننده دارند (برای مثال: اگر توصیه می‌کنید یک کنترل امنیتی مهم را در خوشه‌های تولید برای راحتی خاموش کنید، پروژه Kubernetes احتمالاً مقاله را رد خواهد کرد). diff --git a/content/fa/docs/contribute/blog/mirroring.md b/content/fa/docs/contribute/blog/mirroring.md new file mode 100644 index 0000000000000..d2dccf4c428fb --- /dev/null +++ b/content/fa/docs/contribute/blog/mirroring.md @@ -0,0 +1,75 @@ +--- +title: آینه‌سازی مقالات وبلاگ +slug: article-mirroring +content_type: concept +weight: 50 +--- + + + +دو وبلاگ رسمی Kubernetes وجود دارد و بنیاد CNCF نیز وبلاگ خودش را دارد که در آن می‌توانید درباره Kubernetes بنویسید. +برای وبلاگ اصلی Kubernetes، ما (پروژه Kubernetes) ترجیح می‌دهیم مقالاتی با دیدگاه‌ها و تمرکزهای ویژه متفاوت منتشر کنیم که پیوندی به Kubernetes داشته باشند. + +برخی مقالات در هر دو وبلاگ ظاهر می‌شوند: یک نسخه اصلی از مقاله وجود دارد و +یک _مقاله آینه‌ای_ در وبلاگ دیگر. + +این صفحه معیارهای آینه‌سازی، انگیزه آن و +اقداماتی را که باید انجام دهید تا مقاله روی هر دو وبلاگ منتشر شود توضیح می‌دهد. + +# {{% heading "prerequisites" %}} + +اطمینان حاصل کنید که با بخش‌های مقدمه +[مشارکت در وبلاگ‌های Kubernetes](/docs/contribute/blog/) آشنا هستید؛ نه‌تنها برای شناخت +دو وبلاگ رسمی و تفاوت‌های میان آن‌ها، بلکه برای دریافت نمایی کلی از فرایند. + + + +## چرا آینه می‌کنیم + +تقریباً همیشه آینه‌سازی از وبلاگ مشارکت‌کنندگان به وبلاگ اصلی انجام می‌شود. پروژه این کار را +برای مقالاتی انجام می‌دهد که درباره جامعه مشارکت‌کنندگان یا بخشی از آن هستند، اما برای خوانندگان +وسیع‌تر وبلاگ اصلی Kubernetes نیز مرتبط‌اند. + +به‌عنوان نویسنده (یا بازبین)، مخاطب هدف را در نظر بگیرید و اینکه آیا پست وبلاگ برای +[وبلاگ اصلی](/docs/contribute/blog/#main-blog) مناسب است یا خیر. +برای نمونه: اگر مخاطبان هدف فقط مشارکت‌کنندگان Kubernetes هستند، در این صورت +[وبلاگ مشارکت‌کنندگان](/docs/contribute/blog/#contributor-blog) +مناسب‌تر است؛ +اگر پست وبلاگ درباره متن‌باز به‌طور کلی است، شاید انتشار آن در سایتی خارج از پروژه Kubernetes مناسب‌تر باشد. + +این توجه به مخاطب هدف، برای مقالات اصلی و آینه‌ای به‌یکسان صدق می‌کند. + +پروژه Kubernetes مایل است هر مقاله وبلاگی که در https://kubernetes.dev/blog/ +(وبلاگ مشارکت‌کنندگان) منتشر شده را آینه کند، به‌شرط اینکه تمام معیارهای زیر رعایت شده باشد: + +- مقاله آینه‌ای همان تاریخ انتشار با نسخه اصلی داشته باشد (بهتر است زمان انتشار نیز یکسان باشد، + ولی در موارد خاص می‌توانید برچسب زمانی تا ۱۲ ساعت بعد را تنظیم کنید) + +- برای Pull Requestهایی که **پس از** ادغام مقاله اصلی در وبلاگ مشارکت‌کنندگان، مقاله آینه‌ای را به وبلاگ اصلی اضافه می‌کنند، حتماً همه موارد زیر رعایت شوند: + + - پس از انتشار مقاله اصلی در وبلاگ مشارکت‌کنندگان، هیچ مقاله‌ای در وبلاگ اصلی منتشر نشده باشد. + - بین زمان انتشار مقاله اصلی و زمان انتشار مقاله آینه‌ای، هیچ مقاله‌ای برای انتشار در وبلاگ اصلی زمان‌بندی نشده باشد. + + دلیل این است که پروژه Kubernetes نمی‌خواهد مقاله‌ای را به خوراک (مثل RSS) افراد اضافه کند، مگر در انتهای فید آنان. + +- مقاله اصلی هیچ‌یک از دستورالعمل‌های بازبینی به‌شدت توصیه‌شده یا هنجارهای جامعه را نقض نکند + +- مقاله آینه‌ای در + [front matter](https://gohugo.io/content-management/front-matter/) + مقدار `canonicalUrl` را به‌درستی تنظیم کرده باشد + +- مخاطبان مقاله اصلی آن را مرتبط بدانند + +- محتوای مقاله برای وبلاگی که در آن به‌صورت آینه‌ای منتشر می‌شود خارج از موضوع نباشد + +آینه‌سازی از وبلاگ اصلی به وبلاگ مشارکت‌کنندگان نادر است، اما ممکن است انجام شود. + +## چگونه آینه کنیم + +یک Pull Request بر روی مخزن Git دیگر (معمولاً +[https://github.com/kubernetes/website](https://github.com/kubernetes/website)) ایجاد کنید که +مقاله را اضافه می‌کند. این کار را _پیش از_ ادغام مقالات انجام دهید. + +به‌عنوان نویسنده مقاله، باید URL قانونی (canonical) را برای مقاله آینه‌ای تنظیم کنید؛ این URL همان نشانی مقاله اصلی است +(می‌توانید از پیش‌نمایش برای پیش‌بینی URL استفاده کنید و آن را پیش از انتشار واقعی وارد کنید). از فیلد `canonicalUrl` +در [front matter](https://gohugo.io/content-management/front-matter/) برای این منظور بهره ببرید. diff --git a/content/fa/docs/contribute/blog/release-comms.md b/content/fa/docs/contribute/blog/release-comms.md new file mode 100644 index 0000000000000..d05cfc30c84e5 --- /dev/null +++ b/content/fa/docs/contribute/blog/release-comms.md @@ -0,0 +1,89 @@ +--- +title: ارتباطات پس از انتشار +content_type: concept +weight: 60 +--- + + + +تیم _Release Comms_ Kubernetes (بخشی از +[SIG Release](https://github.com/kubernetes/community/tree/master/sig-release)) +مسئول اعلان‌های انتشار است که در +[وبلاگ اصلی پروژه](/docs/contribute/blog/#main-blog) منتشر می‌شوند. + +پس از هر انتشار، تیم Release Comms برای مدتی کنترل وبلاگ اصلی را در دست می‌گیرد +و مجموعه‌ای از مقالات تکمیلی را برای توضیح یا اعلام تغییرات مرتبط با آن نسخه منتشر می‌کند. +به این مقالات اضافی _ارتباطات پس از انتشار_ گفته می‌شود. + +# {{% heading "prerequisites" %}} + +اطمینان حاصل کنید که با بخش‌های مقدمه +[مشارکت در وبلاگ‌های Kubernetes](/docs/contribute/blog/) +آشنا هستید؛ نه‌تنها برای شناخت دو وبلاگ رسمی و تفاوت‌های میان آن‌ها، بلکه برای به‌دست آوردن +نمایی کلی از فرایند. + + + +## انتخاب ارتباطات پس از انتشار {#opt-in} + +در طول یک چرخه انتشار، به‌عنوان یک مشارکت‌کننده، می‌توانید برای انتشار تغییر آتی Kubernetes +در ارتباطات پس از انتشار ثبت‌نام کنید. + +برای ثبت‌نام، یک [Pull Request](https://www.k8s.dev/docs/guide/pull-requests/) +پیش‌نویس _جای‌نگهدار_ باز می‌کنید و آن را علیه مخزن +[k/website](https://github.com/kubernetes/website) ایجاد می‌کنید. در ابتدا این می‌تواند +یک کامیت خالی باشد. در توضیحات PR جای‌نگهدار، به issue مربوط به KEP یا دیگر issueهای بهبود +Kubernetes اشاره کنید. + +هنگام ایجاد این **پیش‌نویس**‌، آن را با شاخه پایه _main_ و نه شاخه +`dev-{{< skew nextMinorVersion >}}` باز می‌کنید. این روند با +[فرایند](/docs/contribute/new-content/new-features/#open-a-placeholder-pr) +ویژگی‌ها و تغییرات نسخه آینده متفاوت است. + +همچنین باید در issue مربوطه در مخزن +[kubernetes/enhancements](https://github.com/kubernetes/enhancements) +لینک PR جای‌نگهدار خود را به‌صورت کامنت بگذارید تا تیم Release Comms این نسخه متوجه شود +که تغییر به اعلام نیاز دارد و SIG شما ثبت‌نام کرده است. + +علاوه بر این، ایدئال است که از طریق Slack و کانال +[`#release-comms`](https://kubernetes.slack.com/archives/CNT9Y603D) +با تیم Release Comms تماس بگیرید و اطلاع دهید که این کار را انجام داده‌اید و مایلید ثبت‌نام کنید. + +## آماده‌سازی محتوای مقاله {#preparation} + +برای تبدیل PR جای‌نگهدار به چیزی آماده بازبینی، باید فرایند +[ارسال مقاله](/docs/contribute/blog/article-submission/) +را دنبال کنید. با این حال، برای ارتباطات پس از انتشار ممکن است +**همراه نگارش** نداشته باشید؛ در عوض، تیم Release Comms ممکن است یکی از اعضای خود را +برای راهنمایی شما اختصاص دهد. + +باید کامیت‌های Pull Request خود را +[اسکوآش](https://www.k8s.dev/docs/guide/pull-requests/#squashing) +کنید؛ اگر مطمئن نیستید چگونه، کاملاً قابل قبول است که از Release Comms یا تیم وبلاگ کمک بخواهید. + +تا زمانی که مقاله شما در +[front matter](https://gohugo.io/content-management/front-matter/) +با `draft: true` علامت‌گذاری شده باشد، PR می‌تواند در هر زمانی از چرخه انتشار ادغام شود. + +## انتشار + +پیش از انتشار واقعی، تیم Release Comms بررسی می‌کند چه محتوایی آماده است +(اگر تا ضرب‌الاجل آماده نباشد و استثنایی هم نگرفته باشید، اعلان گنجانده نخواهد شد). +آن‌ها برنامه انتشار مقالات را می‌سازند و Pull Requestهای جدیدی برای تبدیل آن مقالات +از پیش‌نویس به منتشرشده باز می‌کنند. + +{{< caution >}} +تمام این Pull Requestهایی که واقعاً مقالات پس از انتشار را منتشر می‌کنند **باید** +با فرمان Prow `/hold` نگه داشته شوند تا زمانی که انتشار واقعاً انجام شود. +{{< /caution >}} + +تأییدکنندگان تیم وبلاگ همچنان تأیید نهایی را برای ارتقای محتوا از پیش‌نویس +به منتشرشده ارائه می‌دهند. پیش از روز انتشار، PR (یا PRهای) مربوط به انتشار این +اعلان‌ها باید برچسب‌های LGTM («به‌نظر من خوب است») و approved را همراه با برچسب +**do-not-merge/hold** داشته باشد تا اطمینان حاصل شود PR بیش از حد زود ادغام نشود. + +سپس تیم Release Comms / تیم انتشار می‌تواند به‌محض آن‌که مخزن Git وب‌سایت پس از انتشار +از حالت انجماد خارج شد، آن PR (یا مجموعه PRها) را _unhold_ کند. + +در روزی که هر مقاله زمان‌بندی شده تا منتشر شود، اتوماسیون یک بیلد سایت را +راه‌اندازی می‌کند و آن مقاله قابل مشاهده می‌شود. diff --git a/content/fa/docs/contribute/blog/submission.md b/content/fa/docs/contribute/blog/submission.md new file mode 100644 index 0000000000000..94382b2a23706 --- /dev/null +++ b/content/fa/docs/contribute/blog/submission.md @@ -0,0 +1,217 @@ +--- +title: ارسال مقاله به وبلاگ‌های Kubernetes +slug: article-submission +content_type: concept +weight: 30 +--- + + + +دو وبلاگ رسمی Kubernetes وجود دارد و بنیاد CNCF نیز وبلاگ خودش را دارد که می‌توانید در آن درباره Kubernetes بنویسید. +برای [وبلاگ اصلی Kubernetes](/docs/contribute/blog/) ما (پروژه Kubernetes) دوست داریم مقالاتی با دیدگاه‌ها و تمرکزهای متفاوت که پیوندی به Kubernetes دارند منتشر کنیم. + +به‌جز چند استثنای خاص، فقط محتوایی را منتشر می‌کنیم که در هیچ‌جای دیگری ارسال یا منتشر نشده باشد. + + + +## نوشتن برای وبلاگ‌های Kubernetes + +به‌عنوان نویسنده، سه مسیر برای انتشار پیشِ‌رو دارید. + +### مسیر پیشنهادی {#route-1} + +رویکرد پیشنهادی پروژه Kubernetes این است که ایده مقاله خود را با تماس با تیم وبلاگ مطرح کنید. می‌توانید این کار را از طریق Slack Kubernetes ([#sig-docs-blog](https://kubernetes.slack.com/archives/CJDHVD54J)) انجام دهید. +برای مقالاتی که فقط می‌خواهید در وبلاگ مشارکت‌کنندگان منتشر شوند، می‌توانید به‌طور مستقیم به +[SIG ContribEx comms](https://kubernetes.slack.com/archives/C03KT3SUJ20) پیام دهید. + + +اگر مشکلی در ارسال شما وجود نداشته باشد، تیم وبلاگ / SIG ContribEx شما را با این افراد جفت می‌کند: + +* یک _ویراستار وبلاگ_ +* _همراه نگارش_ شما (یک نویسنده دیگر وبلاگ) + +وقتی تیم شما را با نویسنده دیگری جفت می‌کند، ایده این است که هر دو با بازبینی پیش‌نویس مقاله یکدیگر از هم پشتیبانی کنید. نیازی نیست متخصص موضوع باشید؛ بیشتر افرادی که مقاله را می‌خوانند نیز متخصص نیستند. ما، تیم وبلاگ Kubernetes، به نویسنده دیگر «همراه نگارش» می‌گوییم. + +ویراستار در مسیر پیش‌نویس تا انتشار به شما کمک می‌کند و یا مستقیماً قادر است مقاله شما را برای انتشار تأیید کند یا ترتیب تأیید را می‌دهد. + +برای آشنایی بیش‌تر با این فرایند، [تألیف مقاله وبلاگ](#authoring) را بخوانید. + +### شروع با Pull Request {#route-2} + +مسیر دوم برای نوشتن در وبلاگ‌های ما این است که مستقیماً با یک Pull Request در GitHub آغاز کنید. تیم وبلاگ در واقع این روش را توصیه نمی‌کند؛ GitHub برای همکاری روی کد عالی است، اما برای متن نثر ایده‌آل نیست. + +می‌توانید یک Pull Request جای‌نگهدار با یک کامیت خالی باز کنید و سپس در جایی دیگر کار کنید و بعد به PR جای‌نگهدار خود برگردید. + +مشابه [مسیر پیشنهادی](#route-1)، تلاش می‌کنیم شما را با یک همراه نگارش و یک ویراستار وبلاگ جفت کنیم. آن‌ها به شما کمک می‌کنند مقاله را برای انتشار آماده کنید. + +### فرایند مقاله پس از انتشار {#route-3-post-release-comms} + +مسیر سوم برای مقالاتی است که درباره تغییرات Kubernetes مرتبط با یک انتشار هستند. هر بار که نسخه‌ای منتشر می‌شود، تیم Release Comms برنامه انتشار وبلاگ را در دست می‌گیرد. افرادی که ویژگی‌ای به نسخه می‌افزایند یا تغییرات دیگری را برنامه‌ریزی می‌کنند که پروژه باید اعلام کند، می‌توانند با Release Comms هماهنگ شوند تا مقاله خود را برنامه‌ریزی، پیش‌نویس، ویرایش و در نهایت منتشر کنند. + +## زمان‌بندی مقالات + +برای وبلاگ Kubernetes، تیم وبلاگ معمولاً مقالات را برای انتشار در روزهای هفته زمان‌بندی می‌کند (تقویم گریگوری، همان‌طور که در ایالات متحده و سایر کشورها استفاده می‌شود). اگر انتشار در یک تاریخ خاص که در آخر هفته می‌افتد اهمیت دارد، تیم وبلاگ سعی می‌کند آن را در نظر بگیرد. + +بخش [تألیف مقاله وبلاگ](#authoring) توضیح می‌دهد که چه باید کرد: + +* در ابتدا، تاریخ مقاله را مشخص نکنید. +* اما مقاله را به‌صورت پیش‌نویس تنظیم کنید (عبارت `draft: true` را در front matter قرار دهید). + +وقتی ربات Prow PR شما را ادغام می‌کند، مقاله به‌صورت پیش‌نویس باقی می‌ماند و برای انتشار تنظیم نمی‌شود. +یک مشارکت‌کننده Kubernetes (شما، همراه نگارش یا یکی از اعضای تیم وبلاگ) سپس یک PR کوچک پیگیری باز می‌کند که آن را برای انتشار علامت‌گذاری می‌کند. ادغام آن PR دوم، مقاله پیش‌نویس را آزاد می‌کند تا به‌طور خودکار منتشر شود. + +در روزی که مقاله زمان‌بندی شده برای انتشار است، اتوماسیون یک بیلد وب‌سایت اجرا می‌کند و مقاله شما قابل مشاهده می‌شود. + +## تألیف مقاله {#authoring} + +پس از مطرح کردن ایده، شما را تشویق می‌کنیم از HackMD (ویرایشگر وب Markdown) یا Google Doc برای به‌اشتراک‌گذاری نسخه قابل ویرایش متن استفاده کنید. همراه نگارش شما می‌تواند پیش‌نویس را بخواند و یا مستقیماً پیشنهادات ارائه دهد یا بازخورد دیگری بدهد. آن‌ها همچنین باید به شما اطلاع دهند اگر آنچه می‌نویسید با +[راهنمای وبلاگ](/docs/contribute/blog/guidelines/) +ناسازگار است. + +هم‌زمان، معمولاً شما **همراه نگارش آن‌ها** نیز هستید و می‌توانید از +[راهنما](/docs/contribute/blog/writing-buddy/) +برای پشتیبانی از کارشان پیروی کنید. + +### گام‌های اداری اولیه + +اگر هنوز این کار را نکرده‌اید، باید +[CLA را امضا](/docs/contribute/new-content/#contributing-basics) +کنید. بهتر است این کار را زود آغاز کنید؛ اگر به‌عنوان بخشی از شغل خود می‌نویسید، شاید نیاز باشد با تیم حقوقی شرکت یا مدیر خود هماهنگ کنید تا مطمئن شوید اجازه امضا دارید. + +### پیش‌نویس اولیه + +تیم وبلاگ توصیه می‌کند برای آماده‌سازی و اشتراک نسخه اولیه قابل ویرایش متن مقاله، از HackMD یا Google Doc استفاده کنید. + +{{< note >}} +اگر Google Docs را انتخاب می‌کنید، می‌توانید سند خود را در حالت Markdown قرار دهید. +{{< /note >}} + +همراه نگارش شما می‌تواند برای پیش‌نویس شما نظر یا بازخورد بگذارد و باید بررسی کند که با دستورالعمل‌ها هماهنگ باشد. هم‌زمان، شما همراه نگارش او خواهید بود و می‌توانید +[راهنما](/docs/contribute/blog/editing/#writing-buddies) +را دنبال کنید که توضیح می‌دهد چگونه از کار او پشتیبانی خواهید کرد. + +در این مرحله زیاد نگران نباشید که قالب‌بندی Markdown دقیق باشد. + +اگر تصویر دارید، می‌توانید یک نسخه بیت‌مپ را برای بازخورد اولیه جای‌گذاری کنید. تیم وبلاگ می‌تواند در ادامه فرایند به شما کمک کند تا تصاویر را برای انتشار نهایی آماده کنید. + +### Markdown برای انتشار + +قالب Markdown برای پست‌های وبلاگ موجود را در مخزن +[وب‌سایت](https://github.com/kubernetes/website/tree/master/content/en/blog/_posts) +در GitHub ببینید. + +اگر با آن آشنا نیستید، [مبانی مشارکت](/docs/contribute/new-content/#contributing-basics) را بخوانید. +این بخش فرض می‌کند مخزن فورک‌شده را به‌صورت محلی شبیه‌سازی نکرده‌اید و در رابط وب GitHub کار می‌کنید. +اگر هنوز این کار را نکرده‌اید، باید یک فورک از مخزن وب‌سایت ایجاد کنید. + +در مخزن GitHub روی دکمه **Create new file** کلیک کنید. محتوای موجود خود را از HackMD یا Google Docs کپی کرده و در ویرایشگر جای‌گذاری کنید. +جزئیات بیش‌تر در ادامه بخش آمده است که چه چیزی در آن فایل قرار می‌گیرد. +نام فایل را مطابق عنوان پیشنهادی پست وبلاگ بگذارید، اما تاریخ را در نام فایل نیاورید. +بازبین‌های وبلاگ با شما همکاری خواهند کرد تا نام نهایی فایل و تاریخ انتشار مقاله را تعیین کنید. + +1. هنگام ذخیره فایل، GitHub شما را در فرایند Pull Request هدایت می‌کند. + +1. همراه نگارش شما می‌تواند ارسال شما را بازبینی کرده و در بازخورد و جزئیات نهایی با شما همکاری کند. + یک ویراستار وبلاگ Pull Request شما را برای ادغام (به‌عنوان پیش‌نویس برنامه‌ریزی‌نشده) تأیید می‌کند. + + +#### Front matter + +The Markdown file you write should use YAML-format Hugo +[front matter](https://gohugo.io/content-management/front-matter/). + +Here's an example: + +فایلی که به صورت Markdown می‌نویسید باید از [front matter](https://gohugo.io/content-management/front-matter/) Hugo با قالب YAML استفاده کند. + +در این‌جا یک مثال آمده است: + + +```yaml +--- +layout: blog +title: "Your Title Here" +draft: true # will be changed to date: YYYY-MM-DD before publication +slug: lowercase-text-for-link-goes-here-no-spaces # optional +author: > + Author-1 (Affiliation), + Author-2 (Affiliation), + Author-3 (Affiliation) +--- +``` + +* در ابتدا، تاریخ مقاله را مشخص نکنید +* اما مقاله را به‌صورت پیش‌نویس تنظیم کنید (عبارت `draft: true` را در + [front matter](https://gohugo.io/content-management/front-matter/) مقاله قرار دهید) + +#### محتوای مقاله + +اطمینان حاصل کنید که از سرفصل‌های سطح دوم Markdown (`##` نه `#`) به‌عنوان بالاترین سطح سرفصل در +مقاله استفاده کنید. `title` که در front matter تنظیم کرده‌اید تبدیل به سرفصل سطح اول آن +صفحه می‌شود. + +باید از [راهنمای سبک](https://kubernetes.io/docs/contribute/style/style-guide/) پیروی کنید، +اما با استثناهای زیر: + +- مشکلی نیست نویسندگان مقاله را با سبک نوشتاری خودشان بنویسند، به‌شرطی که بیشتر خوانندگان + بتوانند منظور را دنبال کنند. +- استفاده از «ما» در مقاله وبلاگی که چند نویسنده دارد یا جایی که مقدمه مقاله به‌وضوح نشان می‌دهد + نویسنده از طرف یک گروه خاص می‌نویسد، مجاز است. همان‌طور که در این بخش می‌بینید، با این‌که در + مستندات [از «ما» اجتناب می‌کنیم](/docs/contribute/style/style-guide/#avoid-using-we)، + ایجاد استثناهای موجه در این‌جا پذیرفتنی است. +- از شورتکدهای Kubernetes برای فراخوان (مانند `{{}}`) استفاده نمی‌کنیم؛ زیرا این فراخوان‌ها + برای خوانندگان مستندات طراحی شده‌اند و مقالات وبلاگ مستندات نیستند. +- اظهارات درباره آینده مجاز است، هرچند در اعلان‌های رسمی به نمایندگی از Kubernetes با دقت استفاده می‌کنیم. +- نمونه‌کدهای به‌کاررفته در مقالات وبلاگ نیازی به شورتکد `{{}}` ندارند و اغلب + بهتر (نگه‌داری آسان‌تر) است که از آن استفاده نکنند. + +#### نمودارها و تصاویر {#illustrations} + +برای تصاویر، نمودارها یا چارت‌ها، در صورت امکان از +[شورتکد figure](https://gohugo.io/content-management/shortcodes/#figure) استفاده کنید. برای دسترس‌پذیری باید ویژگی `alt` را تنظیم کنید. + +برای تصاویر و نمودارهای فنی، سعی کنید از گرافیک برداری استفاده کنید. تیم وبلاگ فرمت SVG را +به فرمت‌های رستری (بیت‌مپ / پیکسلی) و همچنین به Mermaid ترجیح می‌دهد (می‌توانید منبع Mermaid +را در یک کامنت ذخیره کنید). +ترجیح SVG بر Mermaid به این دلیل است که زمانی که نگه‌دارندگان Mermaid را ارتقا می‌دهند یا در +رندر نمودار تغییراتی ایجاد می‌کنند، ممکن است راه آسانی برای تماس با نویسنده اصلی مقاله وجود +نداشته باشد تا مطمئن شوند تغییرات بدون مشکل است. + +[راهنمای نمودارها](/docs/contribute/style/diagram-guide/) برای مستندات Kubernetes نوشته شده است، +نه مقالات وبلاگ. همچنان خوب است با آن هماهنگ باشید ولی: +- نیازی به زیرنویس «شکل ۱، شکل ۲» برای نمودارها نیست. + +الزام به تصاویر برداری فرایند را برای افرادی که کمتر آشنا هستند دشوارتر می‌کند؛ SIG Docs +Kubernetes همچنان به‌دنبال راه‌هایی برای کاهش این مانع است. +اگر ایده‌ای برای پایین آوردن این سد دارید، لطفاً داوطلب شوید. + + + +برای تصاویر دیگر (مانند عکس‌ها)، تیم وبلاگ به‌شدت توصیه می‌کند از ویژگی `alt` استفاده کنید. +استفاده از ویژگی `alt` خالی مجاز است اگر نرم‌افزار دسترس‌پذیری نباید تصویر را ذکر کند، اما +این حالت به‌ندرت پیش می‌آید. + +#### پیام‌های کامیت + +زمانی که Pull Request خود را برای بازبینی آماده می‌کنید، هر پیام کامیت باید خلاصه‌ای کوتاه +از کاری باشد که انجام شده است. اولین پیام کامیت باید به‌عنوان توضیح کلی پست وبلاگ معنی‌دار باشد. + +نمونه یک پیام کامیت خوب: + +- _Add blog post on the foo kubernetes feature_ +- _blog: foobar announcement_ + +نمونه پیام‌های کامیت بد: + +- _Placeholder commit for announcement about foo_ +- _Add blog post_ +- _asdf_ +- _initial commit_ +- _draft post_ + +#### اسکوآش کردن کامیت + +زمانی که فکر می‌کنید مقاله آماده ادغام است، باید کامیت‌های Pull Request خود را +[اسکوآش (squash)](https://www.k8s.dev/docs/guide/pull-requests/#squashing) کنید؛ اگر مطمئن نیستید چگونه، +کاملاً پذیرفتنی است که از تیم وبلاگ کمک بخواهید. diff --git a/content/fa/docs/contribute/docs.md b/content/fa/docs/contribute/docs.md new file mode 100644 index 0000000000000..7ccc7d6eeb2ea --- /dev/null +++ b/content/fa/docs/contribute/docs.md @@ -0,0 +1,125 @@ +--- +content_type: concept +title: مشارکت در مستندات کوبرنتیز +weight: 09 +card: + name: contribute + weight: 11 + title: مشارکت در مستندات +--- + +این تارنما توسط [Kubernetes SIG Docs](/docs/contribute/#get-involved-with-sig-docs) نگه‌داری می‌شود. +پروژه کوبرنتیز از کمک همه مشارکت‌کنندگان، چه تازه‌کار و چه باتجربه، استقبال می‌کند! + +مشارکت‌کنندگان مستندات کوبرنتیز: + +- بهبود محتوای موجود +- ایجاد محتوای جدید +- ترجمه مستندات +- مدیریت و انتشار بخش‌های مستندات در چرخه انتشار کوبرنتیز + +تیم وب نوشت، که بخشی از SIG Docs است، به مدیریت وب نوشت‌های رسمی کمک می‌کند. برای کسب اطلاعات بیشتر، +[مشارکت در وب نوشت‌های کوبرنتیز](/docs/contribute/blog/) را بخوانید. + +--- + +{{< note >}} +برای کسب اطلاعات بیشتر درباره مشارکت در کوبرنتیز به‌طور کلی، به تارنما +[مستندات مشارکت‌کنندگان](https://www.kubernetes.dev/docs/) مراجعه کنید. +{{< /note >}} + + + + +## شروع کنید + +هر کسی می‌تواند برای مستندات یک مسئله باز کند یا تغییری را با یک +درخواست ادغام (PR) به +[مخزن GitHub `kubernetes/website`](https://github.com/kubernetes/website) ارائه کند. +برای کار مؤثر در جامعه کوبرنتیز لازم است با +[git](https://git-scm.com/) و +[GitHub](https://skills.github.com/) +آشنایی کافی داشته باشید. + +برای مشارکت در مستندات: + +1. توافق‌نامه مجوز مشارکت‌کنندگان CNCF را امضا کنید: + [Contributor License Agreement](https://github.com/kubernetes/community/blob/master/CLA.md). +2. با [مخزن مستندات](https://github.com/kubernetes/website) + و [مولد سایت ایستای](https://gohugo.io) این تارنما آشنا شوید. +3. اطمینان حاصل کنید که فرآیندهای پایه برای + [باز کردن یک درخواست ادغام](/docs/contribute/new-content/open-a-pr/) و + [بازبینی تغییرات](/docs/contribute/review/reviewing-prs/) را می‌دانید. + + + + +قدم ۱. شروع به کار برای یک مشارکت‌کننده جدید. + +قدم ۱ یک نقشه راه برای مشارکت‌کنندگان تازه‌وارد ترسیم می‌کند. می‌توانید برخی یا همه مراحل «ثبت‌نام» (`Sign up`) و «بازبینی» (`Review`) را دنبال کنید. اکنون آماده‌اید تا PRهایی را باز کنید که اهداف مشارکت شما را برآورده سازند؛ برخی از این اهداف در بخش «ایجاد PR» (`Open PR`) فهرست شده‌اند. باز هم، پرسش‌ها همیشه خوش‌آمدند! + +برخی کارها به اعتماد و دسترسی بیشتری در سازمان کوبرنتیز نیاز دارند. برای جزئیات بیشتر درباره نقش‌ها و سطح دسترسی، [مشارکت در SIG Docs](/docs/contribute/participate/) را ببینید. + + +## اولین مشارکت شما + +شما می‌توانید با مرور چندین مرحله از قبل، برای اولین مشارکت خود آماده شوید. + +قدم ۲ مراحل و جزئیات بعدی را شرح می‌دهد. + + + + +قدم ۲. آماده‌سازی برای نخستین مشارکت شما. + +- برای آشنایی با روش‌های گوناگون مشارکت، [نمای کلی مشارکت](/docs/contribute/new-content/) را بخوانید. +- فهرست مسائل [`kubernetes/website`](https://github.com/kubernetes/website/issues/) را بررسی کنید تا سرنخ‌های مناسبی برای شروع بیابید. +- با [باز کردن یک درخواست ادغام با استفاده از GitHub](/docs/contribute/new-content/open-a-pr/#changes-using-github) برای مستندات موجود، با نحوه ثبت Issue در GitHub بیشتر آشنا شوید. +- [درخواست ادغام‌ها](/docs/contribute/review/reviewing-prs/)ی سایر اعضای جامعه کوبرنتیز را از نظر درستی و نگارش بازبینی کنید. +- راهنماهای [محتوا](/docs/contribute/style/content-guide/) و [سبک](/docs/contribute/style/style-guide/) کوبرنتیز را مطالعه کنید تا بتوانید دیدگاه‌های آگاهانه ارائه دهید. +- درباره [انواع محتوای صفحه](/docs/contribute/style/page-content-types/) و [کدهای کوتاه Hugo](/docs/contribute/style/hugo-shortcodes/) بیشتر بیاموزید. + + +## هنگام مشارکت کمک بگیرید + +ارائه نخستین مشارکت می‌تواند دلهره‌آور باشد. +[سفیران مشارکت‌کنندگان جدید](https://github.com/kubernetes/website#new-contributor-ambassadors) +برای همراهی شما در انجام چند مشارکت اول حضور دارند. می‌توانید از طریق +[Slack کوبرنتیز](https://slack.k8s.io/) و ترجیحاً در کانال `#sig-docs` با آن‌ها ارتباط بگیرید. +همچنین تماس [آشنایی و خوشامدگویی به مشارکت‌کنندگان جدید](https://www.kubernetes.dev/resources/calendar/) +در اولین سه‌شنبه هر ماه برگزار می‌شود. در آنجا می‌توانید با سفیران مشارکت‌کنندگان جدید تعامل کرده +و پرسش‌های خود را مطرح کنید. + + +## قدم‌های بعدی + + +- یاد بگیرید چگونه با [یک clone محلی مخزن](/docs/contribute/new-content/open-a-pr/#fork-the-repo) کار کنید. +- قابلیت‌های یک نسخه را [مستند کنید](/docs/contribute/new-content/new-features/). +- در [SIG Docs](/docs/contribute/participate/) مشارکت کنید و [عضو یا بازبین](/docs/contribute/participate/roles-and-responsibilities/) شوید. +- یک [بومی‌سازی](/docs/contribute/localization/) را آغاز کنید یا در آن کمک کنید. + + +## با SIG Docs همراه شوید + +[SIG Docs](/docs/contribute/participate/) گروهی از مشارکت‌کنندگان است که مستندات کوبرنتیز و تارنما آن را منتشر و نگه‌داری می‌کنند. درگیر شدن با SIG Docs راهی عالی برای مشارکت‌کنندگان کوبرنتیز (چه توسعه‌دهندگان قابلیت‌ها و چه سایر افراد) است تا تأثیر بزرگی بر پروژه کوبرنتیز بگذارند. + +SIG Docs با روش‌های مختلفی ارتباط برقرار می‌کند: + +- [به کانال `#sig-docs` در Slack کوبرنتیز بپیوندید](https://slack.k8s.io/). حتماً خودتان را معرفی کنید! +- به [لیست‌پستی `kubernetes-sig-docs`](https://groups.google.com/forum/#!forum/kubernetes-sig-docs) ملحق شوید؛ مباحث گسترده‌تر در اینجا انجام می‌شود و تصمیم‌های رسمی ثبت می‌شوند. +- در [جلسه ویدئویی SIG Docs](https://github.com/kubernetes/community/tree/master/sig-docs) که هر دو هفته یک‌بار برگزار می‌شود شرکت کنید. این جلسات همیشه در `#sig-docs` اعلام شده و به [تقویم جلسات جامعه کوبرنتیز](https://calendar.google.com/calendar/embed?src=cgnt364vd8s86hr2phapfjc6uk%40group.calendar.google.com&ctz=America/Los_Angeles) افزوده می‌شوند. لازم است [Zoom client](https://zoom.us/download) را نصب کنید یا از طریق تلفن وارد شوید. +- در هفته‌هایی که جلسه حضوری Zoom برگزار نمی‌شود، در جلسه ایستای غیرهمزمان (Async Stand-up) SIG Docs در Slack شرکت کنید. این جلسات نیز همیشه در `#sig-docs` اعلام می‌شوند. تا ۲۴ ساعت پس از اعلام جلسه می‌توانید در یکی از رشته‌ها مشارکت کنید. + + +## راه‌های دیگر برای مشارکت کردن + +- به [تارنما جامعه کوبرنتیز](/community/) سر بزنید. در توییتر یا Stack Overflow مشارکت کنید، + درباره گردهمایی‌ها و رویدادهای محلی کوبرنتیز و موارد دیگر مطلع شوید. +- [برگه تقلب مشارکت‌کنندگان](https://www.kubernetes.dev/docs/contributor-cheatsheet/) را بخوانید + تا در توسعه قابلیت‌های کوبرنتیز مشارکت کنید. +- از تارنما مشارکت‌کنندگان دیدن کنید تا درباره [مشارکت‌کنندگان کوبرنتیز](https://www.kubernetes.dev/) + و [منابع اضافی مشارکت‌کنندگان](https://www.kubernetes.dev/resources/) بیشتر بدانید. +- بیاموزید چگونه در [وب نوشت‌های رسمی مشارکت کنید](/docs/contribute/blog/) +- یک [مطالعه موردی](/docs/contribute/new-content/case-studies/) ارسال کنید + diff --git a/content/fa/docs/contribute/localization.md b/content/fa/docs/contribute/localization.md new file mode 100644 index 0000000000000..1dc06b329f28e --- /dev/null +++ b/content/fa/docs/contribute/localization.md @@ -0,0 +1,377 @@ +--- +title: بومی‌سازی مستندات کوبرنتیز +content_type: concept +approvers: +- moh0ps +weight: 50 +card: + name: contribute + weight: 50 + title: بومی‌سازی اسناد +--- + + + +این صفحه به شما نشان می‌دهد که چگونه مستندات را برای زبان‌های مختلف [بومی‌سازی](https://blog.mozilla.org/l10n/2011/12/14/i18n-vs-l10n-whats-the-diff/) کنید. + + + +## کمک به محلی سازی موجود + +شما می‌توانید به افزودن یا بهبود محتوای یک محلی‌سازی موجود کمک کنید. در [Kubernetes Slack](https://slack.k8s.io/)، می‌توانید برای هر محلی‌سازی یک کانال پیدا کنید. همچنین یک کانال عمومی [SIG Docs Localizations Slack](https://kubernetes.slack.com/messages/sig-docs-localizations) وجود دارد که می‌توانید در آن سلام کنید. + +{{< note >}} +برای جزئیات بیشتر در مورد نحوه مشارکت در یک بومی‌سازی خاص، به دنبال نسخه بومی‌سازی‌شده این صفحه باشید. +{{< /note >}} + +### کد دو حرفی زبان خود را پیدا کنید + +ابتدا، برای یافتن کد دو حرفی زبان محلی‌سازی خود، به استاندارد [ISO 639-1] (https://www.loc.gov/standards/iso639-2/php/code_list.php) مراجعه کنید. برای مثال، کد دو حرفی زبان کره‌ای «ko» است. + +برخی از زبان‌ها از نسخه کوچک کد کشور که توسط ISO-3166 تعریف شده است، همراه با کدهای زبان خود استفاده می‌کنند. برای مثال، کد زبان پرتغالی برزیلی «pt-br» است. + +### مخزن را Fork و شبیه سازی کنید + +ابتدا، [شاخه‌ی خودتان را ایجاد کنید](/docs/contribute/new-content/open-a-pr/#fork-the-repo) از مخزن [kubernetes/website](https://github.com/kubernetes/website). + +سپس، fork خود را شبیه سازی کنید و `cd` (تغییر پوشه) دهید: + +```shell +git clone https://github.com//website +cd website +``` + +پوشه محتوای وب‌سایت شامل زیرپوشه هایی برای هر زبان است. محلی‌سازی که می‌خواهید به آن کمک کنید، درون `content/` قرار دارد. + +### پیشنهاد تغییرات + +صفحه بومی‌سازی‌شده‌ی انتخابی خود را بر اساس نسخه انگلیسی آن ایجاد یا به‌روزرسانی کنید. برای جزئیات بیشتر به [بومی‌سازی محتوا](#localize-content) مراجعه کنید. + +اگر متوجه یک بی‌دقتی فنی یا مشکل دیگری در مستندات بالادستی (انگلیسی) شدید، ابتدا باید مستندات بالادستی را اصلاح کنید و سپس با به‌روزرسانی بومی‌سازی که روی آن کار می‌کنید، اصلاح معادل را تکرار کنید. + +تغییرات در یک درخواست ادغام را به یک محلی‌سازی واحد محدود کنید. بررسی درخواست‌های ادغام که محتوا را در چندین محلی‌سازی تغییر می‌دهند، مشکل‌ساز است. + +برای پیشنهاد تغییرات در آن بومی‌سازی، از [پیشنهاد بهبود محتوا](/docs/contribute/suggesting-improvements/) پیروی کنید. این فرآیند مشابه پیشنهاد تغییرات در محتوای بالادستی (انگلیسی) است. + +## شروع یک محلی‌سازی جدید + +اگر می‌خواهید مستندات کوبرنتیز به یک زبان جدید بومی‌سازی شود، مراحل زیر را باید انجام دهید. + +از آنجا که مشارکت‌کنندگان نمی‌توانند درخواست‌های ادغام خود را تأیید کنند، برای شروع بومی‌سازی حداقل به دو مشارکت‌کننده نیاز دارید. + +همه تیم‌های محلی‌سازی باید خودکفا باشند. وب‌سایت کوبرنتیز خوشحال است که میزبان کار شما باشد، اما ترجمه آن و به‌روز نگه داشتن محتوای محلی‌سازی شده موجود به عهده شماست. + +شما باید کد دو حرفی زبان خود را بدانید. برای یافتن کد دو حرفی زبان محلی خود، به استاندارد [ISO 639-1] (https://www.loc.gov/standards/iso639-2/php/code_list.php) مراجعه کنید. برای مثال، کد دو حرفی زبان کره‌ای «ko» است. + +اگر زبانی که می‌خواهید بومی‌سازی آن را شروع کنید، در مکان‌های مختلفی صحبت می‌شود و تفاوت‌های قابل توجهی بین گونه‌های مختلف آن وجود دارد، ممکن است منطقی باشد که کد کشور ISO-3166 با حروف کوچک را با کد دو حرفی آن زبان ترکیب کنید. به عنوان مثال، پرتغالی برزیلی به صورت «pt-br» بومی‌سازی شده است. + +وقتی محلی‌سازی جدیدی را شروع می‌کنید، باید قبل از اینکه پروژه کوبرنتیز بتواند تغییرات شما را در وب‌سایت زنده منتشر کند، تمام [حداقل محتوای مورد نیاز](#حداقل-محتوای-مورد نیاز) را محلی‌سازی کنید. + +اسناد SIG می‌توانند به شما کمک کنند تا روی یک شاخه جداگانه کار کنید تا بتوانید به تدریج به سمت آن هدف حرکت کنید. + +### پیدا کردن جامعه + +به کوبرنتیز SIG اسناد اطلاع دهید که به ایجاد محلی‌سازی علاقه‌مند هستید! به [کانال SIG Docs Slack](https://kubernetes.slack.com/messages/sig-docs) و [کانال SIG Docs Localizations Slack](https://kubernetes.slack.com/messages/sig-docs-localizations) بپیوندید. سایر تیم‌های محلی‌سازی خوشحال می‌شوند که در شروع کار به شما کمک کنند و به سوالات شما پاسخ دهند. + +لطفاً شرکت در [جلسه زیرگروه محلی‌سازی اسناد SIG] (https://github.com/kubernetes/community/tree/master/sig-docs) را نیز در نظر بگیرید. ماموریت زیرگروه محلی‌سازی اسناد SIG، همکاری در تیم‌های محلی‌سازی اسناد SIG برای همکاری در تعریف و مستندسازی فرآیندهای ایجاد راهنماهای مشارکتی محلی‌سازی شده است. علاوه بر این، زیرگروه محلی‌سازی اسناد SIG به دنبال فرصت‌هایی برای ایجاد و اشتراک‌گذاری ابزارهای مشترک در بین تیم‌های محلی‌سازی و شناسایی الزامات جدید برای تیم رهبری اسناد SIG است. اگر در مورد این جلسه سؤالی دارید، لطفاً در [کانال محلی‌سازی اسناد SIG] (https://kubernetes.slack.com/messages/sig-docs-localizations) سوال کنید. + +همچنین می‌توانید یک کانال Slack برای محلی‌سازی خود در مخزن `kubernetes/community` ایجاد کنید. برای مثالی از اضافه کردن یک کانال Slack، به درخواست ادغام مربوط به [اضافه کردن یک کانال برای زبان فارسی] (https://github.com/kubernetes/community/pull/4980) مراجعه کنید. + +### به سازمان گیت هاب کوبرنتیز بپیوندید + +وقتی یک درخواست ادغام محلی‌سازی باز کردید، می‌توانید عضو سازمان گیت هاب کوبرنتیز شوید. هر فرد در تیم باید درخواست عضویت سازمان خود را (https://github.com/kubernetes/org/issues/new/choose) در مخزن `kubernetes/org` ایجاد کند. + +### تیم محلی‌سازی خود را در گیت‌هاب اضافه کنید + +در مرحله بعد، تیم محلی‌سازی کوبرنتیز خود را به [`sig-docs/teams.yaml`](https://github.com/kubernetes/org/blob/main/config/kubernetes/sig-docs/teams.yaml) اضافه کنید. برای مثالی از اضافه کردن یک تیم محلی‌سازی، به درخواست ادغام برای اضافه کردن [تیم محلی‌سازی اسپانیایی](https://github.com/kubernetes/org/pull/685) مراجعه کنید. + +اعضای «@kubernetes/sig-docs-**-owners» می‌توانند درخواست ادغام هایی را تأیید کنند که محتوا را در پوشه محلی‌سازی شما (و فقط در داخل) تغییر می‌دهد: «/content/**/». برای هر محلی‌سازی، تیم `@Kubernetes/sig-docs-**-reviews` تکالیف بررسی PRهای جدید را خودکار می‌کند. اعضای `@kubernetes/website-maintainers` می‌توانند شاخه‌های محلی‌سازی جدیدی برای هماهنگی تلاش‌های ترجمه ایجاد کنند. اعضای `@kubernetes/website-milestone-maintainers` می‌توانند از `/milestone` +[دستور Prow](https://prow.k8s.io/command-help) برای اختصاص یک نقطه عطف به مسائل یا PRها استفاده کنند. + +### پیکربندی گردش کار + +در مرحله بعد، یک برچسب GitHub برای محلی‌سازی خود در مخزن `kubernetes/test-infra` اضافه کنید. یک برچسب به شما امکان می‌دهد مشکلات را فیلتر کرده و درخواست‌ها را برای زبان خاص خود دریافت کنید. + +برای مثالی از افزودن برچسب، به درخواست ادغام مربوط به افزودن برچسب زبان ایتالیایی مراجعه کنید (https://github.com/kubernetes/test-infra/pull/11316). + +### تغییر پیکربندی سایت + +وب‌سایت کوبرنتیز از Hugo به عنوان چارچوب وب خود استفاده می‌کند. پیکربندی Hugo این وب‌سایت در پرونده [`hugo.toml`](https://github.com/kubernetes/website/tree/main/hugo.toml) قرار دارد. برای پشتیبانی از محلی‌سازی جدید، باید `hugo.toml` را تغییر دهید. + +یک بلوک پیکربندی برای زبان جدید به `hugo.toml` زیر بلوک `[languages]` موجود اضافه کنید. برای مثال، بلوک زبان آلمانی به شکل زیر خواهد بود: + +```toml +[languages.de] +title = "Kubernetes" +languageName = "Deutsch (German)" +weight = 5 +contentDir = "content/de" +languagedirection = "ltr" + +[languages.de.params] +time_format_blog = "02.01.2006" +language_alternatives = ["en"] +description = "Produktionsreife Container-Orchestrierung" +languageNameLatinScript = "Deutsch" +``` + +نوار انتخاب زبان، مقدار مربوط به `languageName` را فهرست می‌کند. "نام زبان به خط بومی و زبان (نام زبان انگلیسی به خط لاتین)" را به `languageName` اختصاص دهید. برای مثال، `languageName = "한국어 (کره‌ای)"` یا `languageName = "Deutsch (آلمانی)"`. + +می‌توان از `languageNameLatinScript` برای دسترسی به نام زبان به خط لاتین و استفاده از آن در قالب استفاده کرد. "نام زبان به خط لاتین" را به `languageNameLatinScript` اختصاص دهید. برای مثال، `languageNameLatinScript ="Korean"` یا `languageNameLatinScript ="Deutsch"`. + +پارامتر «وزن» ترتیب زبان‌ها را در نوار انتخاب زبان تعیین می‌کند. وزن کمتر اولویت دارد و در نتیجه زبان اول ظاهر می‌شود. هنگام اختصاص پارامتر «وزن»، بررسی بلوک زبان‌های موجود و تنظیم وزن آنها برای اطمینان از اینکه نسبت به همه زبان‌ها، از جمله هر زبان جدید اضافه شده، به ترتیب مرتب شده‌اند، مهم است. + +برای اطلاعات بیشتر در مورد پشتیبانی چند زبانه هوگو، به "[حالت چند زبانه](https://gohugo.io/content-management/multilingual/)" مراجعه کنید. + +### یک پوشه محلی‌سازی جدید اضافه کنید + +یک زیرشاخه مختص به زبان مورد نظر را به پوشه [`content`](https://github.com/kubernetes/website/tree/main/content) در مخزن اضافه کنید. برای مثال، کد دو حرفی برای زبان آلمانی `de` است: + +```shell +mkdir content/de +``` + +شما همچنین باید یک پوشه در داخل «i18n» برای ایجاد کنید +[رشته های محلی شده] (#site-strings-in-i18n); برای مثال به localization های موجود نگاه کنید. + +برای مثال، برای زبان آلمانی، رشته‌ها در `i18n/de/de.toml` قرار دارند. + +### بومی‌سازی ضوابط رفتاری جامعه + +برای اضافه کردن اصول اخلاقی به زبان خودتان، یک PR در مخزن [`cncf/foundation`](https://github.com/cncf/foundation/tree/main/code-of-conduct-languages) باز کنید. + +### پرونده‌های OWNERS را تنظیم کنید + +برای تنظیم نقش‌های هر کاربر که در بومی‌سازی مشارکت دارند، یک پرونده `OWNERS` در زیرشاخه‌ی زبان مربوطه با کد زیر ایجاد کنید: + +- **بازبین‌ها**: فهرستی از تیم‌های کوبرنتیز با نقش‌های بازبین، در این مورد، +- تیم `sig-docs-**-reviews` که در [افزودن تیم محلی‌سازی خود در گیت‌هاب](#add-your-localization-team-in-github) ایجاد شده است. +- **تأییدکنندگان**: فهرستی از تیم‌های کوبرنتیز با نقش‌های تأییدکننده، در این مورد، +- تیم `sig-docs-**-owners` که در [افزودن تیم محلی‌سازی خود در گیت‌هاب](#add-your-localization-team-in-github) ایجاد شده است. +- **برچسب‌ها**: فهرستی از برچسب‌های گیت‌هاب که به‌طور خودکار به یک PR اعمال می‌شوند، در این مورد، برچسب زبانی که در [Configure the workflow](#configure-the-workflow) ایجاد شده است. + +اطلاعات بیشتر در مورد پرونده `OWNERS` را می‌توانید در [go.k8s.io/owners](https://go.k8s.io/owners) بیابید. + +پرونده [پرونده OWNERS اسپانیایی](https://git.k8s.io/website/content/es/OWNERS) با کد زبان `es`، به این شکل است: + +```yaml +# برای مشاهده اسناد مربوط به مالکین به نشانی https://go.k8s.io/owners مراجعه کنید. + +# این پروژه محلی‌سازی زبان اسپانیایی است. +# تیم‌ها و اعضا در نشانی https://github.com/orgs/kubernetes/teams قابل مشاهده هستند. + +reviewers: +- sig-docs-es-reviews + +approvers: +- sig-docs-es-owners + +labels: +- area/localization +- language/es +``` + +پس از افزودن پرونده `OWNERS` مختص زبان، پرونده [root`OWNERS_ALIASES`](https://git.k8s.io/website/OWNERS_ALIASES) را با تیم‌های جدید کوبرنتیز برای محلی‌سازی، `sig-docs-**-owners` و `sig-docs-**-reviews` به‌روزرسانی کنید. + +برای هر تیم، لیست کاربران گیت‌هاب درخواستی را به ترتیب حروف الفبا در [اضافه کردن تیم محلی‌سازی خود در گیت‌هاب](#add-your-localization-team-in-github) اضافه کنید. + +```diff +--- a/OWNERS_ALIASES ++++ b/OWNERS_ALIASES +@@ -48,6 +48,14 @@ aliases: + - stewart-yu + - xiangpengzhao + - zhangxiaoyu-zidif ++ sig-docs-es-owners: # Admins for Spanish content ++ - alexbrand ++ - raelga ++ sig-docs-es-reviews: # PR reviews for Spanish content ++ - alexbrand ++ - electrocucaracha ++ - glo-pena ++ - raelga + sig-docs-fr-owners: # Admins for French content + - perriea + - remyleone +``` + +### درخواست ادغام را باز کنید + +در مرحله بعد، [یک درخواست ادغام را باز کنید](/docs/contribute/new-content/open-a-pr/#open-a-pr) (PR) برای افزودن محلی سازی به مخزن «kubernetes/website». درخواست ادغام قبل از تأیید باید شامل همه [حداقل محتوای مورد نیاز] (#حداقل-نیازی-محتوا) باشد. + +برای مثالی از افزودن یک محلی‌سازی جدید، به PR برای فعال‌سازی [مستندات به زبان فرانسوی] (https://github.com/kubernetes/website/pull/12548) مراجعه کنید. + +### یک پرونده README محلی اضافه کنید + +برای راهنمایی سایر مشارکت‌کنندگان محلی‌سازی، یک پرونده جدید [`README-**.md`](https://help.github.com/articles/about-readmes/) به بالاترین سطح [kubernetes/website](https://github.com/kubernetes/website/) اضافه کنید، که در آن `**` کد دو حرفی زبان است. برای مثال، یک پرونده README آلمانی به صورت `README-de.md` خواهد بود. + +مشارکت کنندگان بومی سازی را در پرونده «README-**.md» بومی سازی شده راهنمایی کنید. همان اطلاعات موجود در «README.md» و همچنین شامل موارد زیر باشد: + +- نقطه تماس برای پروژه بومی‌سازی +- هرگونه اطلاعات خاص مربوط به محلی‌سازی + +پس از ایجاد پرونده README محلی، لینکی از پرونده اصلی انگلیسی «README.md» به پرونده اضافه کنید و اطلاعات تماس را به زبان انگلیسی در آن قرار دهید. می‌توانید شناسه گیت‌هاب، نشانی رایانامه، [کانال Slack](https://slack.com/) یا روش دیگری برای تماس ارائه دهید. همچنین باید لینکی به آیین‌نامه رفتار انجمن محلی خود ارائه دهید. + +### محلی‌سازی جدید خود را راه‌اندازی کنید + +وقتی محلی‌سازی الزامات گردش کار و حداقل خروجی را برآورده می‌کند، SIG اسناد موارد زیر را انجام می‌دهد: + +- انتخاب زبان را در وب‌سایت فعال می‌کند. +- در دسترس بودن محلی‌سازی را از طریق کانال‌های [بنیاد رایانش ابری بومی](https://www.cncf.io/about/)(CNCF)، از جمله [وب نوشت کوبرنتیز](/blog/) منتشر می‌کند. + +## بومی‌سازی محتوا + +بومی‌سازی *تمام* مستندات کوبرنتیز کار بسیار بزرگی است. اشکالی ندارد که از مقیاس کوچک شروع کنید و به مرور زمان آن را گسترش دهید. + +### حداقل محتوای مورد نیاز + +حداقل، تمام بومی‌سازی‌ها باید شامل موارد زیر باشند: + +توضیحات | نشانی‌های اینترنتی +-----|----- +خانه | [همه نشانی‌های اینترنتی (URL) عنوان و زیرعنوان](/docs/home/) +نصب | [همه نشانی‌های اینترنتی (URL) عنوان و زیرعنوان](/docs/setup/) +آموزش‌ها | [مبانی کوبرنتیز](/docs/tutorials/kubernetes-basics/), [سلام Minikube](/docs/tutorials/hello-minikube/) +رشته‌های سایت | [تمام رشته‌های سایت](#site-strings-in-i18n) in a new localized TOML file +انتشارات | [همه نشانی‌های اینترنتی (URL) عنوان و زیرعنوان](/releases) + +اسناد ترجمه شده باید در زیرشاخه `content/**/` خود قرار گیرند، اما در غیر این صورت، همان مسیر URL منبع انگلیسی را دنبال کنند. به عنوان مثال، برای تهیه آموزش [Kubernetes Basics](/docs/tutorials/kubernetes-basics/) برای ترجمه به آلمانی، یک زیرشاخه در زیر شاخه `content/de/` ایجاد کنید و منبع یا پوشه انگلیسی را کپی کنید: + +```shell +mkdir -p content/de/docs/tutorials +cp -ra content/en/docs/tutorials/kubernetes-basics/ content/de/docs/tutorials/ +``` + +ابزارهای ترجمه می‌توانند فرآیند ترجمه را سرعت بخشند. برای مثال، برخی از ویراستاران افزونه‌هایی را برای ترجمه سریع متن ارائه می‌دهند. + +{{< caution >}} +ترجمه ماشینی به خودی خود کافی نیست. بومی‌سازی نیازمند بررسی گسترده انسانی است تا حداقل استانداردهای کیفیت را رعایت کند. +{{< /caution >}} + +برای اطمینان از دقت دستور زبان و معنی، اعضای تیم محلی‌سازی شما باید قبل از انتشار، تمام ترجمه‌های تولید شده توسط ماشین را با دقت بررسی کنند. + +### بومی سازی تصاویر SVG + +پروژه کوبرنتیز توصیه می‌کند در صورت امکان از تصاویر برداری (SVG) استفاده کنید، زیرا ویرایش این تصاویر برای تیم محلی‌سازی بسیار آسان‌تر است. اگر یک تصویر شطرنجی پیدا کردید که نیاز به بومی سازی دارد، ابتدا نسخه انگلیسی را به صورت تصویر برداری مجدد ترسیم کنید و سپس آن را بومی سازی کنید. + +هنگام ترجمه متن درون تصاویر SVG (گرافیک برداری مقیاس‌پذیر)، پیروی از دستورالعمل‌های خاص برای اطمینان از دقت و حفظ سازگاری در نسخه‌های مختلف زبان ضروری است. تصاویر SVG معمولاً در مستندات کوبرنتیز برای نشان دادن مفاهیم، ​​گردش‌های کاری و نمودارها استفاده می‌شوند. + +1. **شناسایی متن قابل ترجمه**: با شناسایی عناصر متنی درون تصویر SVG که نیاز به ترجمه دارند، شروع کنید. این عناصر معمولاً شامل برچسب‌ها، زیرنویس‌ها، حاشیه‌نویسی‌ها یا هر متنی هستند که اطلاعات را منتقل می‌کند. + +1. **ویرایش پرونده‌های SVG**: پرونده های SVG مبتنی بر XML هستند، به این معنی که می‌توان آن‌ها را با استفاده از یک ویرایشگر متن ویرایش کرد. با این حال، توجه به این نکته مهم است که اکثر تصاویر مستندات در کوبرنتیز از قبل متن را به منحنی تبدیل می‌کنند تا از مشکلات سازگاری فونت جلوگیری شود. در چنین مواردی، توصیه می‌شود از نرم‌افزارهای تخصصی ویرایش SVG مانند Inkscape برای ویرایش استفاده کنید، پرونده SVG را باز کنید و عناصر متنی را که نیاز به ترجمه دارند، پیدا کنید. + +1. **ترجمه متن**: متن اصلی را با نسخه ترجمه شده به زبان مورد نظر جایگزین کنید. مطمئن شوید که متن ترجمه شده به طور دقیق معنای مورد نظر را منتقل می‌کند و در فضای موجود در تصویر جای می‌گیرد. هنگام کار با زبان‌هایی که از الفبای لاتین استفاده می‌کنند، باید از خانواده فونت Open Sans استفاده شود. می‌توانید فونت Open Sans را از اینجا دانلود کنید: [Open Sans Typeface](https://fonts.google.com/specimen/Open+Sans). + +1. **تبدیل متن به منحنی**: همانطور که قبلاً ذکر شد، برای رفع مشکلات سازگاری فونت، توصیه می‌شود متن ترجمه شده را به منحنی یا مسیر تبدیل کنید. تبدیل متن به منحنی تضمین می‌کند که تصویر نهایی متن ترجمه شده را به درستی نمایش می‌دهد، حتی اگر سیستم کاربر فونت دقیق استفاده شده در SVG اصلی را نداشته باشد. + +1. **بررسی و آزمایش**: پس از انجام ترجمه‌های لازم و تبدیل متن به منحنی، تصویر SVG به‌روزرسانی‌شده را ذخیره و بررسی کنید تا از نمایش و ترازبندی صحیح متن اطمینان حاصل شود. [پیش‌نمایش تغییرات محلی](/docs/contribute/new-content/open-a-pr/#preview-locally) را بررسی کنید. + +### پرونده های منبع + +بومی‌سازی‌ها باید بر اساس پرونده های انگلیسی از یک نسخه خاص که توسط تیم بومی‌سازی هدف‌گذاری شده است، انجام شوند. هر تیم بومی‌سازی می‌تواند تصمیم بگیرد که کدام نسخه را هدف قرار دهد، که در زیر به آن _نسخه هدف_ گفته می‌شود. + +برای یافتن پرونده های منبع برای نسخه هدف خود: + +1. به مخزن وب‌سایت کوبرنتیز در نشانی https://github.com/kubernetes/website بروید. + +1. یک شاخه برای نسخه هدف خود از جدول زیر انتخاب کنید: + +نسخه هدف | شاخه +-----|----- +آخرین نسخه | [`main`](https://github.com/kubernetes/website/tree/main) +نسخه قبلی | [`release-{{< skew prevMinorVersion >}}`](https://github.com/kubernetes/website/tree/release-{{< skew prevMinorVersion >}}) +نسخه بعدی | [`dev-{{< skew nextMinorVersion >}}`](https://github.com/kubernetes/website/tree/dev-{{< skew nextMinorVersion >}}) + +شاخه‌ی «اصلی» محتوای نسخه فعلی `{{< latest-version >}}` را در خود جای داده است. تیم انتشار، قبل از انتشار نسخه بعدی، یک شاخه `{{< release-branch >}}` ایجاد می‌کند: v{{< skew nextMinorVersion >}}. + +### رشته‌های سایت در i18n + +محلی‌سازی‌ها باید شامل محتویات ‎[`i18n/en/en.toml`](https://github.com/kubernetes/website/blob/main/i18n/en/en.toml)‎ +در یک پرونده جدید مختص زبان باشند. به عنوان مثال، از زبان آلمانی استفاده می‌کنیم: +`i18n/de/de.toml`. + +یک پوشه و پرونده محلی‌سازی جدید به `i18n/` اضافه کنید. برای مثال، با زبان آلمانی (`de`): + +```bash +mkdir -p i18n/de +cp i18n/en/en.toml i18n/de/de.toml +``` + +توضیحات بالای پرونده را متناسب با محلی‌سازی خود اصلاح کنید، سپس مقدار هر رشته را ترجمه کنید. برای مثال، این متن جایگزین به زبان آلمانی برای فرم جستجو است: + +```toml +[ui_search] +other = "Suchen" +``` + +بومی‌سازی رشته‌های سایت به شما امکان می‌دهد متن و ویژگی‌های کل سایت را سفارشی کنید: برای مثال، متن حق نشر قانونی در پاورقی هر صفحه. + +### راهنمای محلی‌سازی مختص زبان + +به عنوان یک تیم محلی‌سازی، می‌توانید با ایجاد یک راهنمای محلی‌سازی مختص هر زبان، بهترین شیوه‌هایی را که تیمتان دنبال می‌کند، رسمی کنید. + +برای مثال، به [راهنمای محلی‌سازی زبان کره‌ای](/ko/docs/contribute/localization_ko/) مراجعه کنید که شامل مطالبی در مورد موضوعات زیر است: + +- آهنگ سرعت و انتشار +- راهبرد شاخه +- گردش کار درخواست ادغام +- راهنمای شیوه +- واژه‌نامه اصطلاحات بومی‌سازی‌شده و غیربومی‌سازی‌شده +- قراردادهای نشانه‌گذاری +- اصطلاحات شیء کوبرنتیز API + +### جلسات زوم مخصوص زبان‌های مختلف + +اگر پروژه محلی‌سازی به زمان جلسه جداگانه‌ای نیاز دارد، با یکی از اعضای SIG Docs یا سرپرست فنی تماس بگیرید تا یک جلسه زوم جدید و دعوتنامه تقویمی ایجاد کنید. این کار فقط زمانی لازم است که تیم به اندازه کافی بزرگ باشد که بتواند از پس آن برآید و به یک جلسه جداگانه نیاز داشته باشد. + +طبق سیاست CNCF، تیم‌های محلی‌سازی باید جلسات خود را در لیست پخش یوتیوب SIG Docs آپلود کنند. یکی از روسای مشترک یا سرپرست فنی SIG Docs می‌تواند تا زمان خودکارسازی این فرآیند توسط SIG Docs به آنها کمک کند. + +## راهبرد شاخه + +از آنجا که پروژه‌های محلی‌سازی، تلاش‌هایی بسیار مشارکتی هستند، ما تیم‌ها را تشویق می‌کنیم که در شاخه‌های محلی‌سازی مشترک کار کنند - به خصوص هنگام شروع کار و زمانی که محلی‌سازی هنوز فعال نشده است. + +برای همکاری در یک شاخه محلی‌سازی: + +1. یکی از اعضای تیم [@kubernetes/website-maintainers](https://github.com/orgs/kubernetes/teams/website-maintainers) +یک شاخه محلی‌سازی از شاخه منبع در +https://github.com/kubernetes/website باز می‌کند. + + تأییدکنندگان تیم شما زمانی به تیم `@kubernetes/website-maintainers` پیوستند که شما تیم محلی‌سازی خود را به مخزن [`kubernetes/org`](https://github.com/kubernetes/org) اضافه کردید. + + ما طرح نامگذاری شاخه زیر را توصیه می‌کنیم: + + `dev--.` + + برای مثال، یک تأییدکننده در یک تیم محلی‌سازی آلمانی، شاخه محلی‌سازی `dev-1.12-de.1` را مستقیماً در مخزن `kubernetes/website`، بر اساس شاخه منبع برای کوبرنتیز نسخه ۱.۱۲، باز می‌کند. + +1. مشارکت‌کنندگان انفرادی، شاخه‌های ویژگی را بر اساس شاخه محلی‌سازی باز می‌کنند. + + برای مثال، یک مشارکت‌کننده آلمانی یک درخواست ادغام با تغییرات در `kubernetes:dev-1.12-de.1` از `username:local-branch-name` باز می‌کند. + +1. تأییدکنندگان، شاخه‌های ویژگی را بررسی و در شاخه محلی‌سازی ادغام می‌کنند. + +1. به صورت دوره‌ای، یک تأییدکننده با باز کردن و تأیید یک درخواست ادغام جدید، شاخه محلی‌سازی را با شاخه منبع خود ادغام می‌کند. قبل از تأیید درخواست ادغام، حتماً commitها را حذف کنید. + +مراحل ۱ تا ۴ را در صورت نیاز تا زمان تکمیل بومی‌سازی تکرار کنید. برای مثال، شاخه‌های بومی‌سازی بعدی آلمانی عبارتند از: `dev-1.12-de.2`، `dev-1.12-de.3` و غیره. + +تیم‌ها باید محتوای بومی‌سازی‌شده را در همان شاخه‌ای که محتوا از آن تهیه شده است، ادغام کنند. برای مثال: + +- یک شاخه محلی‌سازی که از شاخه «main» منبع‌گیری شده است، باید در شاخه «main» ادغام شود. +- یک شاخه محلی‌سازی که از `release-{{% skew "prevMinorVersion" %}}` منبع‌گیری شده است، باید در `release-{{% skew "prevMinorVersion" %}}` ادغام شود. + +{{< note >}} +اگر شاخه محلی‌سازی شما از شاخه `main` ایجاد شده باشد، اما قبل از ایجاد شاخه انتشار جدید `{{< release-branch >}}` با `main` ادغام نشده باشد، آن را هم در `main` و هم در شاخه انتشار جدید `{{< release-branch >}}` ادغام کنید. برای ادغام شاخه محلی‌سازی خود در شاخه انتشار جدید `{{< release-branch >}}`، باید شاخه بالادستی شاخه محلی‌سازی خود را به `{{< release-branch >}}` تغییر دهید. +{{< /note >}} + +در ابتدای هر مرحله از مراحل پیشرفت تیم، باز کردن یک مسئله برای مقایسه تغییرات بالادستی بین شاخه محلی‌سازی قبلی و شاخه محلی‌سازی فعلی مفید است. دو اسکریپت برای مقایسه تغییرات بالادستی وجود دارد. + +- [`upstream_changes.py`](https://github.com/kubernetes/website/tree/main/scripts#upstream_changespy) برای بررسی تغییرات اعمال شده در یک پرونده خاص مفید است. و +- [`diff_l10n_branches.py`](https://github.com/kubernetes/website/tree/main/scripts#diff_l10n_branchespy) برای ایجاد لیستی از پرونده ‌های منسوخ شده برای یک شاخه محلی‌سازی خاص مفید است. + +در حالی که فقط تأییدکنندگان می‌توانند یک شاخه محلی‌سازی جدید باز کنند و درخواست‌های ادغام را ادغام کنند، هر کسی می‌تواند یک درخواست ادغام برای یک شاخه محلی‌سازی جدید باز کند. هیچ مجوز خاصی لازم نیست. + +برای اطلاعات بیشتر در مورد کار از طریق فورک‌ها یا مستقیماً از مخزن، به ["fork and clone the repo"](#fork-and-clone-the-repo) مراجعه کنید. + +## مشارکت‌های بالادستی + +SIG Docs از مشارکت‌ها و اصلاحات بالادستی در منبع انگلیسی استقبال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/contribute/new-content/_index.md b/content/fa/docs/contribute/new-content/_index.md new file mode 100644 index 0000000000000..ae91fbaabb4df --- /dev/null +++ b/content/fa/docs/contribute/new-content/_index.md @@ -0,0 +1,106 @@ +--- +title: مشارکت در محتوای جدید +content_type: concept +main_menu: true +weight: 25 +simple_list: true # for whatsnext section +--- + + + + + +این بخش شامل اطلاعاتی است که باید قبل از ارسال محتوای جدید بدانید. + +همچنین صفحات اختصاصی در مورد ارسال [مطالعات موردی](/docs/contribute/new-content/case-studies) و [مقالات وب نوشت](/docs/contribute/blog/) وجود دارد. + + + +## جریان وظیفه محتوای جدید + + + +{{< mermaid >}} +flowchart LR + subgraph second[Before you begin] + direction TB + S[ ] -.- + A[Sign the CNCF CLA] --> B[Choose Git branch] + B --> C[One language per PR] + C --> F[Check out
contributor tools] + end + subgraph first[Contributing Basics] + direction TB + T[ ] -.- + D[Write docs in markdown
and build site with Hugo] --- E[source in GitHub] + E --- G['/content/../docs' folder contains docs
for multiple languages] + G --- H[Review Hugo page content
types and shortcodes] + end + + + first ----> second + + +classDef grey fill:#dddddd,stroke:#ffffff,stroke-width:px,color:#000000, font-size:15px; +classDef white fill:#ffffff,stroke:#000,stroke-width:px,color:#000,font-weight:bold +classDef spacewhite fill:#ffffff,stroke:#fff,stroke-width:0px,color:#000 +class A,B,C,D,E,F,G,H grey +class S,T spacewhite +class first,second white +{{}} + +***Figure - Contributing new content preparation*** + +شکل بالا اطلاعاتی را که باید قبل از ارسال محتوای جدید بدانید، نشان می‌دهد. جزئیات اطلاعات در ادامه آمده است. + + + + + +## اصول اولیه مشارکت + +- مستندات کوبرنتیز را در قالب بندی ساده بنویسید و سایت کوبرنتیز را با استفاده از [هوگو](https://gohugo.io/) بسازید. +- مستندات کوبرنتیز از [CommonMark](https://commonmark.org/) به عنوان چاشنی قالب بندی ساده خود استفاده می‌کند. +- منبع در [گیت هاب](https://github.com/kubernetes/website) است. می‌توانید مستندات کوبرنتیز را در `/content/en/docs/` پیدا کنید. برخی از مستندات مرجع به طور خودکار از اسکریپت‌های موجود در پوشه `update-imported-docs/` تولید می‌شوند. +- [انواع محتوای صفحه](/docs/contribute/style/page-content-types/) نحوه‌ی نمایش محتوای مستندات در هوگو را شرح می‌دهد. +- شما می‌توانید از [کدهای کوتاه Docsy](https://www.docsy.dev/docs/adding-content/shortcodes/) یا [کدهای کوتاه سفارشی هوگو](/docs/contribute/style/hugo-shortcodes/) برای مشارکت در مستندات کوبرنتیز استفاده کنید. +- علاوه بر کدهای کوتاه استاندارد هوگو، ما از تعدادی از [کدهای کوتاه سفارشی هوگو](/docs/contribute/style/hugo-shortcodes/) در مستندات خود برای کنترل ارائه محتوا استفاده می‌کنیم. +- منبع مستندات به چندین زبان در `/content/` موجود است. هر زبان پوشه مخصوص به خود را با کد دو حرفی دارد که توسط [استاندارد ISO 639-1] (https://www.loc.gov/standards/iso639-2/php/code_list.php) تعیین می‌شود. به عنوان مثال، منبع مستندات انگلیسی در `/content/en/docs/` ذخیره می‌شود. +- برای اطلاعات بیشتر در مورد مشارکت در مستندسازی به زبان‌های مختلف یا شروع یک ترجمه جدید، به [بومی‌سازی](/docs/contribute/localization) مراجعه کنید.. + +## قبل از اینکه شروع کنید {#before-you-begin} + +### قرارداد CNCF CLA را امضا کنید {#sign-the-cla} + +همه مشارکت‌کنندگان کوبرنتیز **باید** راهنمای مشارکت‌کننده (https://github.com/kubernetes/community/blob/master/contributors/guide/README.md) را مطالعه کنند و [توافقنامه مجوز مشارکت‌کننده (CLA) را امضا کنند] (https://github.com/kubernetes/community/blob/master/CLA.md). + +درخواست‌های ادغام از مشارکت‌کنندگانی که CLA را امضا نکرده‌اند، در تست‌های خودکار رد می‌شوند. نام و ایمیلی که ارائه می‌دهید باید با نام و ایمیل موجود در `git config` شما مطابقت داشته باشد، و نام و ایمیل گیت شما باید با نام و ایمیل استفاده شده برای `CNCF CLA` مطابقت داشته باشد. + +### انتخاب کنید که از کدام شاخه گیت استفاده کنید + +هنگام باز کردن یک درخواست ادغام، باید از قبل بدانید که کار خود را بر اساس کدام شاخه (branch) انجام خواهید داد. + +سناریو | شاخه +:---------|:------------ +محتوای انگلیسی موجود یا جدید برای نسخه فعلی | `main` +محتوای مربوط به انتشار تغییر ویژگی | شاخه‌ای که با نسخه اصلی و فرعی که تغییر ویژگی در آن قرار دارد، مطابقت دارد، با استفاده از الگوی `dev-`. برای مثال، اگر یک ویژگی در نسخه `v{{< skew nextMinorVersion >}}` تغییر کند، تغییرات مستندات را به شاخه `dev-{{< skew nextMinorVersion >}}`` اضافه کنید. +محتوا به زبان‌های دیگر (بومی‌سازی‌ها) | از قرارداد محلی‌سازی استفاده کنید. برای اطلاعات بیشتر به [استراتژی شاخه‌بندی محلی‌سازی](/docs/contribute/localization/#branch-strategy) مراجعه کنید. + +اگر هنوز مطمئن نیستید کدام شاخه را انتخاب کنید، در `#sig-docs` در Slack سوال کنید. + +{{< note >}} + اگر قبلاً درخواست ادغام خود را ارسال کرده‌اید و می‌دانید که شاخه پایه اشتباه بوده است، شما (و فقط شما، به عنوان ارسال‌کننده) می‌توانید آن را تغییر دهید. +{{< /note >}} + +### زبان‌ها به ازای هر درخواست ادغام + +درخواست‌های ادغام را به یک زبان برای هر درخواست ادغام محدود کنید. اگر نیاز دارید یک تغییر یکسان را در یک نمونه کد در چندین زبان ایجاد کنید، برای هر زبان یک درخواست ادغام جداگانه باز کنید. + +## ابزارهایی برای مشارکت‌کنندگان + +پوشه [ابزارهای مشارکت‌کنندگان در اسناد](https://github.com/kubernetes/website/tree/main/content/en/docs/doc-contributor-tools) در مخزن `kubernetes/website` شامل ابزارهایی است که به شما کمک می‌کند روند مشارکت خود را روان‌تر پیش ببرید. + +## {{% heading "What's next?" %}} + + +* درباره ارسال [مقالات وب نوشت](/docs/contribute/blog/article-submission/) مطالعه کنید. diff --git a/content/fa/docs/contribute/new-content/case-studies.md b/content/fa/docs/contribute/new-content/case-studies.md new file mode 100644 index 0000000000000..fd0e1d02c17d9 --- /dev/null +++ b/content/fa/docs/contribute/new-content/case-studies.md @@ -0,0 +1,21 @@ +--- +title: ارائه مطالعات موردی +linktitle: Case studies +slug: case-studies +content_type: concept +weight: 30 +--- + + + +مطالعات موردی نشان می‌دهد که چگونه سازمان‌ها از کوبرنتیز برای حل مشکلات دنیای واقعی استفاده می‌کنند. تیم بازاریابی کوبرنتیز و اعضای {{< glossary_tooltip text="CNCF" term_id="cncf" >}} در تمام مطالعات موردی با شما همکاری می‌کنند. + +مطالعات موردی قبل از تأیید نیاز به بررسی گسترده دارند. + + + +## ارسال مطالعه موردی + +نگاهی به منبع [مطالعات موردی موجود] (https://github.com/kubernetes/website/tree/main/content/en/case-studies) بیندازید. + +به [دستورالعمل‌های مطالعه موردی](https://github.com/cncf/foundation/blob/master/case-study-guidelines.md) مراجعه کنید و درخواست خود را طبق دستورالعمل‌های ذکر شده ارسال کنید. diff --git a/content/fa/docs/contribute/new-content/new-features.md b/content/fa/docs/contribute/new-content/new-features.md new file mode 100644 index 0000000000000..b1d3af0ec8df2 --- /dev/null +++ b/content/fa/docs/contribute/new-content/new-features.md @@ -0,0 +1,113 @@ +--- +title: مستندسازی یک ویژگی برای انتشار +linktitle: Documenting for a release +content_type: concept +main_menu: true +weight: 20 +card: + name: contribute + weight: 45 + title: مستندسازی یک ویژگی برای انتشار +--- + + +هر نسخه اصلی کوبرنتیز ویژگی‌های جدیدی را معرفی می‌کند که نیاز به مستندسازی دارند. نسخه‌های جدید همچنین به‌روزرسانی‌هایی را برای ویژگی‌ها و مستندات موجود (مانند ارتقاء یک ویژگی از آلفا به بتا) به همراه دارند. + +به‌طورکلی، SIG مسئول یک ویژگی، پیش‌نویس مستندات آن ویژگی را به‌عنوان یک درخواست ادغام به شاخه توسعه مربوطه در مخزن `kubernetes/website` ارسال می‌کند و شخصی در تیم SIG Docs بازخورد ویرایشی ارائه می‌دهد یا مستقیماً پیش‌نویس را ویرایش می‌کند. این بخش، قراردادهای شاخه‌بندی و فرآیند مورد استفاده در طول انتشار توسط هر دو گروه را پوشش می‌دهد. + +برای کسب اطلاعات بیشتر در مورد اعلام ویژگی‌ها در وب نوشت، [ارتباطات پس از انتشار](/docs/contribute/blog/release-comms/) را مطالعه کنید. + + +## برای مشارکت‌کنندگان در مستندسازی + +به‌طورکلی، مشارکت‌کنندگان در مستندسازی، محتوا را از ابتدا برای انتشار نمی‌نویسند. در عوض، آن‌ها با SIG همکاری می‌کنند تا یک ویژگی جدید ایجاد کنند تا پیش‌نویس مستندسازی را اصلاح کرده و آن را برای انتشار آماده کنند. + +پس از اینکه یک ویژگی را برای مستندسازی یا کمک انتخاب کردید، در کانال Slack با عنوان `#sig-docs`، در جلسه هفتگی SIG Docs یا مستقیماً در درخواست ادغام ثبت شده توسط SIG ویژگی، در مورد آن سوال کنید. اگر اجازه داده شد، می‌توانید با استفاده از یکی از تکنیک‌های شرح داده شده در [تغییر در درخواست ادغام شخص دیگر](/docs/contribute/review/for-approvers/#commit-into-another-person-s-pr) درخواست ادغام را ویرایش کنید. + +### درباره ویژگی های آینده اطلاعات کسب کنید + +برای اطلاع از ویژگی‌های آینده، در جلسه هفتگی انتشار SIG شرکت کنید (برای جلسات آینده به صفحه [انجمن](/community/) مراجعه کنید) و مستندات مربوط به انتشار را در مخزن [kubernetes/sig-release](https://github.com/kubernetes/sig-release/) بررسی کنید. هر انتشار دارای یک زیرشاخه در پوشه [/sig-release/tree/master/releases/](https://github.com/kubernetes/sig-release/tree/master/releases) است. این زیرشاخه شامل یک برنامه انتشار، پیش‌نویس یادداشت‌های انتشار و سندی است که هر فرد در تیم انتشار را فهرست می‌کند. + +برنامه انتشار شامل پیوندهایی به سایر اسناد، جلسات، صورتجلسات و مراحل مهم مربوط به انتشار است. همچنین شامل اطلاعاتی در مورد اهداف و جدول زمانی انتشار و هرگونه فرآیند ویژه برای این انتشار است. در نزدیکی پایین سند، چندین اصطلاح مرتبط با انتشار تعریف شده‌اند. + +این سند همچنین حاوی پیوندی به **برگه ردیابی ویژگی‌ها** است که روش رسمی برای اطلاع از تمام ویژگی‌های جدیدی است که قرار است در نسخه جدید گنجانده شوند. + +سند تیم انتشار، مسئول هر نقش انتشار را فهرست می‌کند. اگر مشخص نیست که در مورد یک ویژگی خاص یا سوالی که دارید با چه کسی صحبت کنید، یا در جلسه انتشار شرکت کنید تا سوال خود را بپرسید، یا با سرپرست انتشار تماس بگیرید تا بتوانند شما را به مسیر دیگری هدایت کنند. + +پیش‌نویس یادداشت‌های انتشار، جای خوبی برای کسب اطلاعات در مورد ویژگی‌های خاص، تغییرات، منسوخ شدن‌ها و موارد دیگر در مورد انتشار است. محتوا تا اواخر چرخه انتشار نهایی نمی‌شود، بنابراین احتیاط کنید. + +### برگه ردیابی ویژگی + +برگه ردیابی ویژگی [برای یک نسخه کوبرنتیز مشخص](https://github.com/kubernetes/sig-release/tree/master/releases) هر ویژگی را که برای انتشار برنامه‌ریزی شده است، فهرست می‌کند. هر مورد شامل نام ویژگی، پیوندی به شماره اصلی گیت هاب آن ویژگی، سطح پایداری آن (آلفا، بتا یا پایدار)، SIG و فرد مسئول پیاده‌سازی آن، اینکه آیا به مستندات نیاز دارد یا خیر، یک یادداشت انتشار پیش‌نویس برای ویژگی و اینکه آیا ادغام شده است یا خیر، می‌شود. موارد زیر را در نظر داشته باشید: + +- ویژگی‌های بتا و پایدار معمولاً اولویت مستندسازی بالاتری نسبت به ویژگی‌های آلفا دارند. +- آزمایش (و بنابراین مستندسازی) یک ویژگی که ادغام نشده است، یا حداقل در درخواست ادغام خود از نظر ویژگی کامل در نظر گرفته نشده است، دشوار است. +- تعیین اینکه آیا یک ویژگی به مستندات نیاز دارد یا خیر، یک فرآیند دستی است. حتی اگر یک ویژگی به عنوان نیازمند مستندات علامت‌گذاری نشده باشد، ممکن است لازم باشد آن ویژگی را مستندسازی کنید. + +## برای توسعه‌دهندگان یا سایر اعضای SIG + +این بخش اطلاعاتی برای اعضای سایر گروه‌های SIG کوبرنتیز است که ویژگی‌های جدید را برای انتشار مستند می‌کنند. + +اگر عضوی از یک SIG هستید که در حال توسعه یک ویژگی جدید برای کوبرنتیز هستید، باید با SIG Docs همکاری کنید تا مطمئن شوید که ویژگی شما به موقع برای انتشار مستند شده است. برای تأیید جزئیات زمان‌بندی و مهلت‌ها، به [صفحه گسترده ردیابی ویژگی] (https://github.com/kubernetes/sig-release/tree/master/releases) مراجعه کنید یا کانال کوبرنتیز Slack با آدرس `#sig-release` را بررسی کنید. + +### باز کردن یک مکان‌نما برای درخواست ادغام + +1. یک درخواست ادغام **پیش‌نویس** در شاخه‌ی `dev-{{< skew nextMinorVersion >}}` در مخزن `kubernetes/website` باز کنید، با یک تغییر کوچک که بعداً آن را اصلاح خواهید کرد. برای ایجاد یک درخواست ادغام پیش‌نویس، از منوی کشویی **ایجاد درخواست ادغام** استفاده کنید و **ایجاد درخواست ادغام پیش‌نویس** را انتخاب کنید، سپس روی **درخواست ادغام پیش‌نویس** کلیک کنید. +1. توضیحات درخواست ادغام را ویرایش کنید تا پیوندهایی به [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) درخواست های ادغام و [کوبرنتیز/پیشرفت ها](https://github.com/kubernetes/enhancements) داشته باشد. +1. در مورد مشکل مرتبط [کوبرنتیز/پیشرفت ها](https://github.com/kubernetes/enhancements) نظر خود را با لینکی به درخواست ادغام بنویسید تا به مسئول مستندات که این نسخه را مدیریت می‌کند، اطلاع دهید که مستندات ویژگی‌ها در حال انتشار هستند و باید برای انتشار پیگیری شوند. + +اگر ویژگی شما نیازی به تغییر اسناد ندارد، مطمئن شوید که تیم sig-release با ذکر آن در کانال Slack «#sig-release» این را می‌داند. اگر ویژگی به مستندات نیاز دارد اما درخواست ادغام ایجاد نشده است، ممکن است ویژگی از مرحله‌ی مهم حذف شود. + +### درخواست ادغام آماده برای بررسی + +وقتی آماده شدید، درخواست ادغام خود را با مستندات ویژگی پر کنید و وضعیت درخواست ادغام را از پیش‌نویس به **آماده برای بررسی** تغییر دهید. برای علامت‌گذاری یک درخواست ادغام به عنوان آماده برای بررسی، به کادر ادغام بروید و روی **آماده برای بررسی** کلیک کنید. + +تمام تلاش خود را بکنید تا ویژگی خود و نحوه استفاده از آن را شرح دهید. اگر در ساختار مستندات خود به کمک نیاز دارید، در کانال Slack با شناسه `#sig-docs` سوال کنید. + +وقتی محتوای خود را تکمیل می‌کنید، مسئول مستندسازی که به ویژگی شما اختصاص داده شده است، آن را بررسی می‌کند. برای اطمینان از دقت فنی، ممکن است محتوا نیاز به بررسی فنی از SIG(های) مربوطه نیز داشته باشد. از پیشنهادات آنها برای رساندن محتوا به حالت آماده انتشار استفاده کنید. + +اگر ویژگی شما نیاز به مستندسازی داشته باشد و اولین پیش‌نویس محتوا دریافت نشود، ممکن است ویژگی از مرحله‌ی مهم حذف شود. + +#### دروازه ویژگی {#ready-for-review-feature-gates} + +اگر ویژگی شما یک ویژگی آلفا یا بتا است و پشت یک دروازه ویژگی قرار دارد، به یک پوشه feature gate برای آن در `content/en/docs/reference/command-line-tools-reference/feature-gates/` نیاز دارید. نام پوشه باید نام feature gate با پسوند `.md` باشد. می‌توانید برای راهنمایی در مورد ظاهر پوشه خود، به پوشه های دیگری که از قبل در همان پرونده هستند، نگاهی بیندازید. معمولاً یک پاراگراف کافی است. برای توضیحات طولانی‌تر، مستندات را در جای دیگری اضافه کنید و به آن لینک دهید. + +همچنین، برای اطمینان از اینکه feature gate شما در جدول [Alpha/Beta Feature gates](/docs/reference/command-line-tools-reference/feature-gates/#feature-gates-for-alpha-or-beta-features) ظاهر می‌شود، جزئیات زیر را در [پیش گفتار](https://gohugo.io/content-management/front-matter/) پرونده توضیحات خود وارد کنید: + +```yaml +stages: + - stage: # مرحله توسعه دروازه ویژگی را مشخص کنید + defaultValue: # اگر به طور پیش‌فرض فعال باشد، روی true و در غیر این صورت روی false تنظیم کنید. + fromVersion: # نسخه ای که دروازه ویژگی از آن در دسترس است + toVersion: # (اختیاری) نسخه ای که تا آن دروازه ویژگی در دسترس است +``` + +با دروازه‌های ویژگی جدید، توضیح جداگانه‌ای از دروازه ویژگی نیز مورد نیاز است؛ یک پوشه با قالب بندی ساده جدید در داخل `content/en/docs/reference/command-line-tools-reference/feature-gates/` ایجاد کنید (از پرونده‌های دیگر به عنوان الگو استفاده کنید). + +وقتی یک دروازه ویژگی را از حالت پیش‌فرض غیرفعال به حالت پیش‌فرض فعال تغییر می‌دهید، ممکن است لازم باشد سایر مستندات (نه فقط لیست دروازه‌های ویژگی) را نیز تغییر دهید. مراقب عباراتی مانند «بخش `exampleSetting` یک بخش بتا است و به طور پیش‌فرض غیرفعال است. می‌توانید با فعال کردن دروازه ویژگی `ProcessExampleThings` آن را فعال کنید.» باشید. + +اگر ویژگی شما آماده تولید است یا منسوخ شده است، یک ورودی اضافی به نام `stage` در بلوک `stages` در پوشه توضیحات اضافه کنید. مطمئن شوید که مراحل آلفا و بتا دست نخورده باقی می‌مانند. این مرحله، دروازه ویژگی را از جدول [Feature gates for Alpha/Beta](/docs/reference/command-line-tools-reference/feature-gates/#feature-gates-for-alpha-or-beta-features) به جدول [Feature gates for Graduated or deprecated features](/docs/reference/command-line-tools-reference/feature-gates/#feature-gates-for-graduated-or-deprecated-features) منتقل می‌کند. برای مثال: + +{{< highlight yaml "linenos=false,hl_lines=10-17" >}} +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.12" + toVersion: "1.12" + - stage: beta + defaultValue: true + fromVersion: "1.13" + # Added a `toVersion` to the previous stage. + toVersion: "1.18" + # Added 'stable' stage block to existing stages. + - stage: stable + defaultValue: true + fromVersion: "1.19" + toVersion: "1.27" +{{< / highlight >}} + +در نهایت، کوبرنتیز دیگر شامل feature gate نخواهد بود. برای نشان دادن حذف یک feature gate، عبارت `removed: true` را در ابتدای پرونده توضیحات مربوطه قرار دهید. ایجاد این تغییر به این معنی است که اطلاعات feature gate از بخش [Feature gates for Graduated or deprecated features](/docs/reference/command-line-tools-reference/feature-gates-removed/#feature-gates-that-are-removed) به صفحه‌ای اختصاصی با عنوان [Feature Gates (removed)](/docs/reference/command-line-tools-reference/feature-gates-removed/) منتقل می‌شود، که شامل توضیحات آن نیز می‌شود. + +### همه درخواست های ادغام بررسی شده و آماده ترکیب هستند + +اگر درخواست ادغام شما هنوز تا مهلت انتشار در شاخه `dev-{{< skew nextMinorVersion >}}` ادغام نشده است، با مسئول مستندات که مدیریت انتشار را بر عهده دارد، همکاری کنید تا آن را تا مهلت مقرر وارد کنید. اگر ویژگی شما به مستندات نیاز دارد و مستندات آماده نیستند، ممکن است ویژگی از مرحله مهم حذف شود. \ No newline at end of file diff --git a/content/fa/docs/contribute/new-content/open-a-pr.md b/content/fa/docs/contribute/new-content/open-a-pr.md new file mode 100644 index 0000000000000..cad83d2383e6b --- /dev/null +++ b/content/fa/docs/contribute/new-content/open-a-pr.md @@ -0,0 +1,575 @@ +--- +title: باز کردن یک درخواست ادغام +content_type: concept +weight: 10 +card: + name: contribute + weight: 40 +--- + + + +{{< note >}} +**توسعه‌دهندگان کد**: اگر در حال مستندسازی یک ویژگی جدید برای نسخه آتی کوبرنتیز هستید، به [مستندسازی یک ویژگی جدید](/docs/contribute/new-content/new-features/) مراجعه کنید. +{{< /note >}} + +برای مشارکت در صفحات محتوای جدید یا بهبود صفحات محتوای موجود، یک درخواست ادغام باز کنید. مطمئن شوید که تمام الزامات موجود در بخش [قبل از شروع](/docs/contribute/new-content/) را رعایت می‌کنید. + +اگر تغییر شما کوچک است، یا با گیت آشنا نیستید، برای یادگیری نحوه ویرایش یک صفحه، [تغییرات با استفاده از گیت‌هاب](#changes-using-github) را مطالعه کنید. + +اگر تغییرات شما بزرگ است، برای یادگیری نحوه ایجاد تغییرات به صورت محلی در رایانه خود، [کار از یک انشعاب محلی](#fork-the-repo) را مطالعه کنید. + + + +## تغییرات با استفاده از گیت‌هاب + +اگر تجربه کمتری در کار با گردش‌های کاری گیت دارید، در اینجا روش آسان‌تری برای باز کردن یک درخواست ادغام ارائه شده است. شکل ۱ مراحل و جزئیات بعدی را شرح می‌دهد. + + + + +{{< mermaid >}} +flowchart LR +A([fa:fa-user New
Contributor]) --- id1[(kubernetes/website
GitHub)] +subgraph tasks[Changes using GitHub] +direction TB + 0[ ] -.- + 1[1. Edit this page] --> 2[2. Use GitHub markdown
editor to make changes] + 2 --> 3[3. fill in Propose file change] + +end +subgraph tasks2[ ] +direction TB +4[4. select Propose file change] --> 5[5. select Create pull request] --> 6[6. fill in Open a pull request] +6 --> 7[7. select Create pull request] +end + +id1 --> tasks --> tasks2 + +classDef grey fill:#dddddd,stroke:#ffffff,stroke-width:px,color:#000000, font-size:15px; +classDef white fill:#ffffff,stroke:#000,stroke-width:px,color:#000,font-weight:bold +classDef k8s fill:#326ce5,stroke:#fff,stroke-width:1px,color:#fff; +classDef spacewhite fill:#ffffff,stroke:#fff,stroke-width:0px,color:#000 +class A,1,2,3,4,5,6,7 grey +class 0 spacewhite +class tasks,tasks2 white +class id1 k8s +{{}} + +شکل ۱. مراحل باز کردن یک درخواست ادغام با استفاده از گیت هاب. +1. در صفحه‌ای که مشکل را مشاهده می‌کنید، گزینه **ویرایش این صفحه** را در پنل ناوبری سمت راست انتخاب کنید. + +1. تغییرات خود را در ویرایشگر نشانه‌گذاری گیت هاب اعمال کنید. + +1. در پایین ویرایشگر، فرم **پیشنهاد تغییر پرونده** را پر کنید. در بخش اول، پیام commit خود را عنوان کنید. در بخش دوم، توضیحی ارائه دهید. + + {{< note >}} + از هیچ [کلید واژه‌های گیت هاب] (https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword) در پیام commit خود استفاده نکنید. می‌توانید بعداً آنها را به توضیحات درخواست ادغام اضافه کنید. + {{< /note >}} + +1. گزینه **پیشنهاد تغییر پرونده** را انتخاب کنید. + +1. **ایجاد درخواست ادغام** را انتخاب کنید. + +1. صفحه **باز کردن درخواست ادغام** ظاهر می‌شود. فرم را پر کنید: + + - بخش **موضوع** درخواست ادغام به طور پیش فرض خلاصه commit است. در صورت نیاز می‌توانید آن را تغییر دهید. + - بدنه‌ی اصلی شامل پیام commit توسعه‌یافته‌ی شما، در صورت وجود، و مقداری متن الگو است. جزئیاتی را که متن الگو درخواست می‌کند اضافه کنید، سپس متن الگوی اضافی را حذف کنید. + - کادر انتخاب **اجازه ویرایش به نگهدارنده‌ها** را علامت بزنید. + + {{< note >}} + توضیحات درخواست ادغام راهی عالی برای کمک به بررسی‌کنندگان در درک تغییر شما است. برای اطلاعات بیشتر، به [بازکردن درخواست ادغام](#open-a-pr) مراجعه کنید. + {{}} + +1. گزینه **ایجاد درخواست ادغام** را انتخاب کنید. + +### رسیدگی به بازخوردها در گیت‌هاب + +قبل از ترکیب کردن یک درخواست ادغام، اعضای جامعه کوبرنتیز آن را بررسی و تأیید می‌کنند. ربات k8s-ci-robot بر اساس نزدیکترین مالک ذکر شده در صفحات، بررسی‌کنندگان را پیشنهاد می‌دهد. اگر شخص خاصی را مد نظر دارید، در قسمت نظرات، نام کاربری گیت هاب او را بنویسید. + +اگر یک داور از شما بخواهد تغییراتی ایجاد کنید: + +1. به برگه ** پرونده های تغییر یافته ** بروید. +1. روی هر پرونده ای که توسط درخواست ادغام تغییر داده شده، آیکون مداد (ویرایش) را انتخاب کنید. +1. تغییرات درخواستی را اعمال کنید. +1. تغییرات را اعمال کنید. + +اگر منتظر یک داور هستید، هر ۷ روز یکبار با او تماس بگیرید. همچنین می‌توانید در کانال اسلک با شناسه‌ی `#sig-docs` پیام ارسال کنید. + +وقتی بررسی شما کامل شد، یک بررسی‌کننده درخواست ادغام شما را ترکیب می‌کند و تغییرات شما چند دقیقه بعد اعمال می‌شوند. + +## کار از یک انشعاب محلی {#fork-the-repo} + +اگر در استفاده از گیت تجربه بیشتری دارید، یا اگر تغییرات شما بزرگتر از چند خط است، از یک انشعاب محلی استفاده کنید. + +مطمئن شوید که [گیت](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) را روی رایانه خود نصب کرده‌اید. همچنین می‌توانید از یک برنامه رابط کاربری گیت استفاده کنید. + +شکل ۲ مراحلی را که باید هنگام کار از یک انشعاب محلی دنبال کنید نشان می‌دهد. جزئیات هر مرحله در ادامه آمده است. + + + + +{{< mermaid >}} +flowchart LR +1[Fork the kubernetes/website
repository] --> 2[Create local clone
and set upstream] +subgraph changes[Your changes] +direction TB +S[ ] -.- +3[Create a branch
example: my_new_branch] --> 3a[Make changes using
text editor] --> 4["Preview your changes
locally using Hugo
(localhost:1313)
or build container image"] +end +subgraph changes2[Commit / Push] +direction TB +T[ ] -.- +5[Commit your changes] --> 6[Push commit to
origin/my_new_branch] +end + +2 --> changes --> changes2 + +classDef grey fill:#dddddd,stroke:#ffffff,stroke-width:px,color:#000000, font-size:15px; +classDef white fill:#ffffff,stroke:#000,stroke-width:px,color:#000,font-weight:bold +classDef k8s fill:#326ce5,stroke:#fff,stroke-width:1px,color:#fff; +classDef spacewhite fill:#ffffff,stroke:#fff,stroke-width:0px,color:#000 +class 1,2,3,3a,4,5,6 grey +class S,T spacewhite +class changes,changes2 white +{{}} + +شکل ۲. کار کردن از یک انشعاب محلی برای اعمال تغییرات شما. + +### مخزن kubernetes/website را انشعاب کنید + +1. به مخزن [`kubernetes/website`](https://github.com/kubernetes/website/) بروید. +1. **انشعاب** را انتخاب کنید. + +### یک نسخه مشابه محلی ایجاد کنید و جریان بالادست را تنظیم کنید + +1. در یک پنجره خط فرمان، انشعاب خود را رونوشت کرده و [قالب Docsy هوگو](https://github.com/google/docsy#readme) را به‌روزرسانی کنید: + + ```shell + git clone git@github.com:/website + cd website + ``` + +1. به پوشه جدید `website` بروید. مخزن `kubernetes/website` را به عنوان راه دور `upstream` تنظیم کنید: + + ```shell + cd website + + git remote add upstream https://github.com/kubernetes/website.git + ``` + +1. مخازن «origin» و «upstream» خود را تأیید کنید: + + ```shell + git remote -v + ``` + + خروجی مشابه زیر است: + + ```none + origin git@github.com:/website.git (fetch) + origin git@github.com:/website.git (push) + upstream https://github.com/kubernetes/website.git (fetch) + upstream https://github.com/kubernetes/website.git (push) + ``` + +1. تغییرات را از انشعاب خود دریافت کنید + + ```shell + git fetch origin + git fetch upstream + ``` + + این کار باعث می‌شود قبل از شروع تغییرات، مخزن محلی شما به‌روز باشد. + + {{< note >}} + این گردش کار با [گردش کار گیت‌هاب انجمن کوبرنتیز](https://github.com/kubernetes/community/blob/master/contributors/guide/github-workflow.md) متفاوت است. لازم نیست قبل از ارسال به‌روزرسانی‌ها به شاخه خود، رونوشت محلی `main` خود را با `upstream/main` ادغام کنید. + {{< /note >}} + +### ایجاد شاخه + +1. تصمیم بگیرید که کار خود را بر اساس کدام شاخه انجام دهید: + + - برای بهبود محتوای موجود، از `upstream/main` استفاده کنید. + - برای محتوای جدید در مورد ویژگی‌های موجود، از `upstream/main` استفاده کنید. + - برای محتوای محلی‌سازی شده، از قراردادهای محلی‌سازی استفاده کنید. برای اطلاعات بیشتر، به [مستندات محلی‌سازی کوبرنتیز](/docs/contribute/localization/) مراجعه کنید. + - برای ویژگی‌های جدید در نسخه آتی کوبرنتیز، از شاخه ویژگی‌ها استفاده کنید. برای اطلاعات بیشتر، به [مستندسازی برای انتشار](/docs/contribute/new-content/new-features/) مراجعه کنید. + - برای تلاش‌های طولانی‌مدتی که چندین مشارکت‌کننده‌ی SIG Docs در آن همکاری می‌کنند، مانند سازماندهی مجدد محتوا، از یک شاخه‌ی ویژگی خاص که برای آن تلاش ایجاد شده است، استفاده کنید. + + اگر در انتخاب شعبه به کمک نیاز دارید، در کانال Slack با شناسه `#sig-docs` سوال کنید. + +1. بر اساس شاخه‌ای که در مرحله ۱ شناسایی کردید، یک شاخه جدید ایجاد کنید. این مثال فرض می‌کند که شاخه پایه «upstream/main» است: + + ```shell + git checkout -b upstream/main + ``` + +1. تغییرات خود را با استفاده از یک ویرایشگر متن انجام دهید. + +در هر زمانی، از دستور `git status` برای مشاهده پرونده‌هایی که تغییر داده‌اید، استفاده کنید. + +### تغییرات خود را اعمال کنید + +وقتی آماده ارسال درخواست ادغام شدید، تغییرات خود را اعمال کنید. + +1. در مخزن محلی خود، بررسی کنید که کدام پرونده ها را باید commit کنید: + + ```shell + git status + ``` + + خروجی مشابه زیر است: + + ```none + On branch + Your branch is up to date with 'origin/'. + + Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git checkout -- ..." to discard changes in working directory) + + modified: content/en/docs/contribute/new-content/contributing-content.md + + no changes added to commit (use "git add" and/or "git commit -a") + ``` + +1. پرونده های فهرست شده در قسمت **تغییرات که برای commit مرحله بندی نشده اند** را به commit اضافه کنید: + + ```shell + git add + ``` + + این کار را برای هر پرونده تکرار کنید. + +1. پپس از اضافه کردن تمام پرونده ها، یک commit ایجاد کنید: + + ```shell + git commit -m "Your commit message" + ``` + + {{< note >}} + از هیچ [کلمات کلیدی گیت‌هاب](https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword) در پیام commit خود استفاده نکنید. می‌توانید بعداً آنها را به توضیحات درخواست ادغام اضافه کنید. + {{< /note >}} + +1. شاخه محلی و تغییرات جدید آن را به شاخه راه دور خود ارسال کنید: + + ```shell + git push origin + ``` + +### پیش نمایش تغییرات خود به صورت محلی {#preview-locally} + +ایده خوبی است که قبل از اعمال تغییرات یا باز کردن درخواست ادغام، آنها را به صورت محلی پیش‌نمایش کنید. پیش‌نمایش به شما امکان می‌دهد خطاهای ساخت یا مشکلات قالب‌بندی را متوجه شوید. + +شما می‌توانید image کانتینر وب‌سایت را بسازید یا هوگو را به صورت محلی اجرا کنید. ساخت image کانتینر کندتر است اما [کدهای کوتاه هوگو](/docs/contribute/style/hugo-shortcodes/) را نمایش می‌دهد که می‌تواند برای اشکال‌زدایی مفید باشد. + +{{< tabs name="tab_with_hugo" >}} +{{% tab name="هوگو در یک کانتینر" %}} + +{{< note >}} +دستورات زیر از داکر به عنوان موتور کانتینر پیش‌فرض استفاده می‌کنند. متغیر محیطی `CONTAINER_ENGINE` را طوری تنظیم کنید که این رفتار را لغو کند. +{{< /note >}} + +1. ساخت image کانتینر به صورت محلی +_فقط در صورتی به این مرحله نیاز دارید که در حال آزمایش تغییری در خود ابزار هوگو باشید_ + + ```shell + # Run this in a terminal (if required) + make container-image + ``` + +1. وابستگی‌های زیرماژول را در مخزن محلی خود دریافت کنید: + + ```shell + # Run this in a terminal + make module-init + ``` + +1. هوگو را در یک کانتینر اجرا کنید: + + ```shell + # Run this in a terminal + make container-serve + ``` + +1. در یک مرورگر وب، به نشانی `http://localhost:1313` بروید. هوگو تغییرات را مشاهده می‌کند و در صورت نیاز سایت را بازسازی می‌کند. + +1. برای متوقف کردن نمونه محلی هوگو، به خط فرمان برگردید و `Ctrl+C` را تایپ کنید، یا پنجره خط فرمان را ببندید. + +{{% /tab %}} +{{% tab name="هوگو در خط فرمان" %}} + +روش دیگر، نصب و استفاده از دستور `hugo` برروی رایانه شماست: + +1. نسخه‌های [هوگو (نسخه توسعه‌یافته)](https://gohugo.io/getting-started/installing/) و [Node](https://nodejs.org/en) مشخص شده در [`website/netlify.toml`](https://raw.githubusercontent.com/kubernetes/website/main/netlify.toml) را نصب کنید. + +1. هرگونه وابستگی را نصب کنید: + + ```shell + npm ci + ``` + +1. در یک خط فرمان، به مخزن وب‌سایت کوبرنتیز خود بروید و سرور هوگو را اجرا کنید: + + ```shell + cd /website + make serve + ``` + اگر از ویندوز استفاده می‌کنید یا نمی‌توانید دستور make را اجرا کنید، از دستور زیر استفاده کنید: + + ``` + hugo server --buildFuture + ``` + +1. در یک مرورگر وب، به نشانی `http://localhost:1313` بروید. هوگو تغییرات را مشاهده می‌کند و در صورت نیاز سایت را بازسازی می‌کند. + +1. برای متوقف کردن نمونه محلی هوگو، به خط فرمان برگردید و `Ctrl+C` را تایپ کنید، یا پنجره خط فرمان را ببندید. + +{{% /tab %}} +{{< /tabs >}} + +### یک درخواست ادغام از انشعاب خود به kubernetes/website {#open-a-pr} باز کنید. + +شکل ۳ مراحل باز کردن یک درخواست ادغام از انشعاب شما به [kubernetes/website](https://github.com/kubernetes/website) را نشان می‌دهد. جزئیات در ادامه آمده است. + +لطفاً توجه داشته باشید که مشارکت‌کنندگان می‌توانند `kubernetes/website` را به صورت `k/website` ذکر کنند. + + + + +{{< mermaid >}} +flowchart LR +subgraph first[ ] +direction TB +1[1. Go to kubernetes/website repository] --> 2[2. Select New Pull Request] +2 --> 3[3. Select compare across forks] +3 --> 4[4. Select your fork from
head repository drop-down menu] +end +subgraph second [ ] +direction TB +5[5. Select your branch from
the compare drop-down menu] --> 6[6. Select Create Pull Request] +6 --> 7[7. Add a description
to your PR] +7 --> 8[8. Select Create pull request] +end + +first --> second + +classDef grey fill:#dddddd,stroke:#ffffff,stroke-width:px,color:#000000, font-size:15px; +classDef white fill:#ffffff,stroke:#000,stroke-width:px,color:#000,font-weight:bold +class 1,2,3,4,5,6,7,8 grey +class first,second white +{{}} + +شکل ۳. مراحل باز کردن یک درخواست ادغام از انشعاب شما به [kubernetes/website](https://github.com/kubernetes/website). + +1. در یک مرورگر وب، به مخزن [`kubernetes/website`](https://github.com/kubernetes/website/) بروید. +1. **درخواست ادغام جدید** را انتخاب کنید. +1. گزینه **مقایسه بین شاخه‌ها** را انتخاب کنید. +1. از منوی کشویی **مخزن اصلی**، شاخه‌ی خود را انتخاب کنید. +1. از منوی کشویی **مقایسه** شاخه خود را انتخاب کنید. +1. گزینه **ایجاد درخواست ادغام** را انتخاب کنید. +1. توضیحی برای درخواست ادغام خود اضافه کنید: + + - **عنوان** (۵۰ کاراکتر یا کمتر): خلاصه‌ای از هدف تغییر را بیان کنید. + - **شرح**: تغییر را با جزئیات بیشتری شرح دهید. + + - اگر مشکل مرتبطی در گیت‌هاب وجود دارد، عبارت‌های «رفع مشکلات #12345» یا «بستن مشکلات #12345» را در توضیحات ذکر کنید. خودکارسازی گیت‌هاب پس از ترکیب درخواست ادغام (در صورت استفاده) مشکل ذکر شده را می‌بندد. اگر درخواست های ادغام مرتبط دیگری وجود دارد، آنها را نیز لینک کنید. + - اگر در مورد موضوع خاصی به مشاوره نیاز دارید، هر سوالی را که می‌خواهید داوران در مورد آن فکر کنند، در توضیحات خود ذکر کنید. + +1. دکمه‌ی **ایجاد درخواست ادغام** را انتخاب کنید. + +تبریک! درخواست ادغام شما در [درخواست های ادغام] (https://github.com/kubernetes/website/pulls) در دسترس است. + +پس از باز کردن یک درخواست ادغام، گیت‌هاب تست‌های خودکار را اجرا می‌کند و سعی می‌کند پیش‌نمایشی را با استفاده از [Netlify](https://www.netlify.com/) اجرا کند. + +- اگر ساخت Netlify با شکست مواجه شد، برای اطلاعات بیشتر **جزئیات** را انتخاب کنید. +- اگر ساخت Netlify با موفقیت انجام شود، با انتخاب **جزئیات** نسخه‌ای مرحله‌بندی‌شده از وب‌سایت کوبرنتیز با تغییرات اعمال‌شده شما باز می‌شود. اینگونه است که بررسی‌کنندگان تغییرات شما را بررسی می‌کنند. + +گیت‌هاب همچنین به طور خودکار برچسب‌هایی را به یک درخواست ادغام اختصاص می‌دهد تا به بررسی‌کنندگان کمک کند. در صورت نیاز، می‌توانید آنها را نیز اضافه کنید. برای اطلاعات بیشتر، به [افزودن و حذف برچسب‌های مسئله](/docs/contribute/review/for-approvers/#adding-and-removing-issue-labels) مراجعه کنید. + +### رسیدگی به بازخوردها به صورت محلی + +1. پس از انجام تغییرات، commit قبلی خود را اصلاح کنید: + + ```shell + git commit -a --amend + ``` + + - `-a`: commits all changes + - `--amend`: amends the previous commit, rather than creating a new one + +1. در صورت نیاز پیام commit خود را به روزرسانی کنید. + +1. از دستور `git push origin ` برای اعمال تغییرات و اجرای مجدد تست‌های Netlify استفاده کنید. + + {{< note >}} + اگر به جای اصلاح از `git commit -m` استفاده می‌کنید، باید قبل از ادغام، [commitهای خود را فشرده کنید](#squashing-commits). + {{< /note >}} + +#### تغییرات از نظر داوران + +گاهی اوقات داوران درخواست ادغام شما را تغییر میدهند. قبل از اعمال هرگونه تغییر دیگر، آن تغییرات را اعمال کنید. + +1. تغییرات را از انشعاب راه دور خود دریافت کنید و شاخه کاری خود را مجدداً پایه گذاری کنید: + + ```shell + git fetch origin + git rebase origin/ + ``` + +1. پس از پایه گذاری مجدد، تغییرات جدید را به انشعاب خود ارسال (force-push) کنید: + + ```shell + git push --force-with-lease origin + ``` + +#### ادغام تضادها و پایه گذاری مجدد + +{{< note >}} +برای اطلاعات بیشتر، به [شاخه‌بندی گیت - شاخه‌بندی و ادغام مقدماتی](https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging#_basic_merge_conflicts)، [ادغام پیشرفته](https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging) مراجعه کنید، یا در کانال Slack `#sig-docs` درخواست کمک کنید. +{{< /note >}} + +اگر مشارکت‌کننده‌ی دیگری تغییراتی را در همان پرونده در یک درخواست ادغام دیگر اعمال کند، می‌تواند باعث ایجاد تداخل ادغام شود. شما باید تمام تداخل‌های ادغام را در درخواست ادغام خود حل کنید. + +1. انشعاب خود را به روز کنید و شاخه محلی خود را مجدداً پایه گذاری کنید: + + ```shell + git fetch origin + git rebase origin/ + ``` + + سپس تغییرات را به انشعاب خود ارسال (force-push) کنید: + + ```shell + git push --force-with-lease origin + ``` + +1. تغییرات را از `kubernetes/website` در `upstream/main` دریافت کنید و شاخه خود را تغییر دهید: + + ```shell + git fetch upstream + git rebase upstream/main + ``` + +1. نتایج پایه گذاری مجدد را بررسی کنید: + + ```shell + git status + ``` + + این منجر به تعدادی پوشه می‌شود که به عنوان مغایرت علامت‌گذاری شده‌اند. + +1. هر پوشه دارای تداخل را باز کنید و به دنبال نشانگرهای تداخل بگردید: `>>>`، `<<<` و `===`. تداخل را برطرف کرده و نشانگر تداخل را حذف کنید. + + {{< note >}} + برای اطلاعات بیشتر، به [نحوه نمایش تداخل‌ها](https://git-scm.com/docs/git-merge#_how_conflicts_are_presented) مراجعه کنید. + {{< /note >}} + +1. پوشه‌ها را به مجموعه تغییرات اضافه کنید: + + ```shell + git add + ``` + +1. پایه گذاری مجدد را ادامه دهيد: + + ```shell + git rebase --continue + ``` + +1. در صورت نیاز مراحل ۲ تا ۵ را تکرار کنید. + + پس از اعمال تمام تغییرات، دستور `git status` نشان می‌دهد که عملیات پایه گذاری مجدد کامل شده است. + +1. شاخه را به انشعاب خود ارسال کنید + + ```shell + git push --force-with-lease origin + ``` + + درخواست ادغام دیگر هیچ تداخلی را نشان نمی‌دهد. + +### فشرده‌سازی تغییرات‌ + +{{< note >}} +برای اطلاعات بیشتر، به [ابزارهای گیت - تاریخچه بازنویسی](https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History) مراجعه کنید، یا در کانال Slack با شناسه `#sig-docs` درخواست کمک کنید. +{{< /note >}} + +اگر درخواست ادغام شما چندین تغییر دارد، قبل از ترکیب درخواست ادغام خود، باید آنها را در یک commit واحد ترکیب کنید. می‌توانید تعداد تغییرات را در بخش **Commits** PR خود یا با اجرای دستور `git log` به صورت محلی بررسی کنید. + +{{< note >}} +این مبحث، «vim» را به عنوان ویرایشگر متن خط فرمان فرض می‌کند. +{{< /note >}} + +1. شروع یک پایه گذاری مجدد تعاملی: + + ```shell + git rebase -i HEAD~ + ``` + + فشرده کردن تغییرات نوعی پایه گذاری مجدد است. سوئیچ `-i` به گیت می‌گوید که می‌خواهید به صورت تعاملی پایه گذاری کنید. `HEAD~}} + برای اطلاعات بیشتر، به [حالت تعاملی](https://git-scm.com/docs/git-rebase#_interactive_mode) مراجعه کنید. + {{< /note >}} + +1. شروع به ویرایش پرونده کنید. + + متن اصلی را تغییر دهید: + + ```none + pick d875112ca Original commit + pick 4fa167b80 Address feedback 1 + pick 7d54e15ee Address feedback 2 + ``` + + To: + + ```none + pick d875112ca Original commit + squash 4fa167b80 Address feedback 1 + squash 7d54e15ee Address feedback 2 + ``` + + این دستور، تغییرات «4fa167b80 Address feedback 1» و «7d54e15ee Address feedback 2» را در «d875112ca Original commit» فشرده می‌کند و فقط «d875112ca Original commit» را به عنوان بخشی از جدول زمانی باقی می‌گذارد. + +1. پرونده خود را ذخیره کرده و از آن خارج شوید. + +1. تغییرات فشرده‌شده‌ی خود را ارسال کنید: + + ```shell + git push --force-with-lease origin + ``` + +## در مخازن دیگر مشارکت کنید + +پروژه کوبرنتیز (https://github.com/kubernetes) شامل بیش از ۵۰ مخزن است. بسیاری از این مخازن حاوی مستنداتی مانند متن راهنمای کاربر، پیام‌های خطا، ارجاعات API یا نظرات مربوط به کد هستند. + +اگر متنی را مشاهده کردید که می‌خواهید آن را بهبود دهید، از گیت هاب برای جستجوی تمام مخازن موجود در سازمان کوبرنتیز استفاده کنید. این می‌تواند به شما کمک کند تا بفهمید مشکل یا درخواست ادغام خود را کجا ارسال کنید. + +هر مخزن فرآیندها و رویه‌های خاص خود را دارد. قبل از اینکه مشکلی را ثبت کنید یا درخواست ادغام ارسال کنید، در صورت وجود، «README.md»، «CONTRIBUTING.md» و «code-of-conduct.md» آن مخزن را مطالعه کنید. + +اکثر مخازن از قالب های مسئله و درخواست ادغام استفاده می کنند. نگاهی به برخی از مسائل و درخواست های ادغام باز بیندازید تا با فرآیندهای آن تیم آشنا شوید. هنگام ثبت مسائل یا درخواست های ادغام، حتماً قالب‌ها را با حداکثر جزئیات ممکن پر کنید. + +## {{% heading "What's next?" %}} + +- برای کسب اطلاعات بیشتر در مورد فرآیند بررسی، [بازبینی](/docs/contribute/review/reviewing-prs) را مطالعه کنید. + diff --git a/content/fa/docs/contribute/participate/_index.md b/content/fa/docs/contribute/participate/_index.md new file mode 100644 index 0000000000000..72928480ddf44 --- /dev/null +++ b/content/fa/docs/contribute/participate/_index.md @@ -0,0 +1,76 @@ +--- +title: شرکت در اسناد SIG +content_type: concept +weight: 60 +card: + name: contribute + weight: 60 +--- + + + +SIG اسناد یکی از [گروه‌های علاقه‌مندی ویژه](https://github.com/kubernetes/community/blob/master/sig-list.md) در پروژه کوبرنتیز است که بر نوشتن، به‌روزرسانی و نگهداری مستندات کوبرنتیز به طور کلی تمرکز دارد. برای اطلاعات بیشتر در مورد SIG به [SIG Docs از مخزن گیت‌هاب انجمن](https://github.com/kubernetes/community/tree/master/sig-docs) مراجعه کنید. + +SIG اسناد از محتوا و نقد و بررسی‌های همه مشارکت‌کنندگان استقبال می‌کند. هر کسی می‌تواند یک درخواست ادغام باز کند و هر کسی می‌تواند در مورد محتوا مشکل ایجاد کند یا در مورد درخواست‌های ادغام در حال انجام نظر دهد. + +شما همچنین می‌توانید به عنوان [عضو](/docs/contribute/participate/roles-and- responsibilitys/#members)، [بازبین](/docs/contribute/participate/roles-and- responsibilitys/#reviewers) یا [تأییدکننده](/docs/contribute/participate/roles-and- responsibilitys/#approvers) فعالیت کنید. این نقش‌ها نیاز به دسترسی بیشتری دارند و مسئولیت‌های خاصی را برای تأیید و اعمال تغییرات به همراه دارند. برای اطلاعات بیشتر در مورد نحوه‌ی عضویت در جامعه‌ی کوبرنتیز، به [عضویت در جامعه](https://github.com/kubernetes/community/blob/master/community-membership.md) مراجعه کنید. + +ادامه‌ی این سند، برخی از روش‌های منحصر به فرد عملکرد این نقش‌ها را در SIG اسناد شرح می‌دهد، که مسئول حفظ یکی از عمومی‌ترین جنبه‌های کوبرنتیز - وب‌سایت و مستندات کوبرنتیز - است. + + + +## رئیس اسناد SIG + +هر SIG، شامل SIG اسناد، یک یا چند عضو SIG را به عنوان رئیس انتخاب می‌کند. اینها نقاط تماس بین SIG اسناد و سایر بخش‌های سازمان کوبرنتیز هستند. آنها نیاز به دانش گسترده در مورد ساختار پروژه کوبرنتیز به طور کلی و نحوه عملکرد SIGاسناد در آن دارند. برای مشاهده لیست فعلی روسای هیئت مدیره، به [رهبری](https://github.com/kubernetes/community/tree/master/sig-docs#leadership) مراجعه کنید. + +## تیم‌ها و اتوماسیون اسناد SIG + +اتوماسیون در SIG اسناد به دو سازوکار مختلف متکی است: تیم‌های گیت هاب و پوشه‌های OWNERS. + +### تیم‌های گیت‌هاب + +دو دسته از تیم‌های SIG اسناد(https://github.com/orgs/kubernetes/teams?query=sig-docs) در گیت‌هاب وجود دارد: + +- `@sig-docs-{language}-owners` تاییدکننده و پیشرو هستند +- `@sig-docs-{language}-reviews` بازبین هستند + +برای ارتباط با همه افراد آن گروه، می‌توان به هر کدام از آنها با `@name` در نظرات گیت‌هاب اشاره کرد. + +گاهی اوقات تیم‌های Prow و گیت هاب بدون تطابق دقیق، همپوشانی دارند. برای تخصیص مسائل، درخواست‌های ادغام و پشتیبانی از تأییدیه‌های درخواست ادغام، اتوماسیون از اطلاعات پوشه‌های `OWNERS` استفاده می‌کند. + +### پرونده‌های مالکین و مطالب اولیه + +پروژه کوبرنتیز از یک ابزار اتوماسیون به نام prow برای اتوماسیون مربوط به مسائل گیت هاب و درخواست‌های ادغام استفاده می‌کند. +[مخزن وب‌سایت Kubernetes](https://github.com/kubernetes/website) از دو [افزونه prow](https://github.com/kubernetes-sigs/prow/tree/main/pkg/plugins) استفاده می‌کند: + +- blunderbuss +- approve + +این دو افزونه از پوشه‌های [مالکان](https://github.com/kubernetes/website/blob/main/OWNERS) و [نام‌های مستعار مالک](https://github.com/kubernetes/website/blob/main/OWNERS_ALIASES) در سطح بالای مخزن گیت‌هاب `kubernetes/website` برای کنترل نحوه عملکرد prow در مخزن استفاده می‌کنند. + +یک پوشه مالکان شامل فهرستی از افرادی است که بررسی‌کننده و تأییدکننده SIG اسناد هستند. پوشه‌های مالکان همچنین می‌توانند در زیرشاخه‌ها وجود داشته باشند و می‌توانند افرادی را که می‌توانند به عنوان بررسی‌کننده یا تأییدکننده پوشه ها در آن زیرشاخه و زیرمجموعه‌های آن عمل کنند، لغو کنند. برای اطلاعات بیشتر در مورد پوشه‌های مالکان به طور کلی، به [مالکان](https://github.com/kubernetes/community/blob/master/contributors/guide/owners.md) مراجعه کنید. + +علاوه بر این، یک پوشه با قالب بندی ساده می‌تواند فهرستی از داوران و تأییدکنندگان را در بخش اصلی خود، چه با فهرست کردن نام‌های کاربری گیت هاب و چه با فهرست کردن گروه‌های گیت هاب، ارائه دهد. + +ترکیب پوشه‌های مالکان و مطالب اولیه در پوشه‌ها با قالب بندی ساده، تعیین‌کننده‌ی توصیه‌ای است که صاحبان درخواست ادغام از اتوماسیون در مورد اینکه از چه کسی برای بررسی فنی و ویرایشی درخواست های ادغام خود درخواست کنند، دریافت می‌کنند. + +## ادغام چگونه کار می کند + +وقتی یک درخواست ادغام به شاخه‌ای که برای انتشار محتوا استفاده می‌شود، ترکیب می‌شود، آن محتوا در https://kubernetes.io منتشر می‌شود. تا اطمینان حاصل شود که +کیفیت محتوای منتشر شده ما بالا است، ما ترکیب درخواست‌های ادغام را به تأییدکنندگان SIG اسناد محدود می‌کنیم. در اینجا نحوه کار آن آمده است. + +- وقتی یک درخواست ادغام هر دو برچسب `lgtm` و `aprov` را داشته باشد، برچسب `hold` نداشته باشد و همه تست‌ها با موفقیت انجام شوند، درخواست ادغام به طور خودکار ترکیب می‌شود. +- اعضای سازمان کوبرنتیز و تأییدکنندگان SIG اسناد می‌توانند برای جلوگیری از ترکیب خودکار یک درخواست ادغام مشخص، نظراتی اضافه کنند (با اضافه کردن یک نظر `/hold` یا خودداری از ارسال نظر `/lgtm`). +- هر عضو کوبرنتیز می‌تواند با اضافه کردن یک کامنت `/lgtm`، برچسب `lgtm` را اضافه کند. +- فقط تأییدکنندگان SIG اسناد می‌توانند با اضافه کردن یک نظر `/approve` یک درخواست ادغام را ترکیب کنند. برخی از تأییدکنندگان نقش‌های خاص دیگری نیز ایفا می‌کنند، مانند [مسئول درخواست ادغام](/docs/contribute/participate/pr-wranglers/) یا [رئیس اسناد SIG](#sig-docs-chairperson). + + + +## {{% heading "What's next?" %}} + + +برای اطلاعات بیشتر در مورد مشارکت در مستندات کوبرنتیز، به لینک زیر مراجعه کنید: + +- [مشارکت کردن در محتوای جدید](/docs/contribute/new-content/) +- [بررسی محتوا](/docs/contribute/review/reviewing-prs) +- [راهنمای شیوه مستندسازی](/docs/contribute/style/) diff --git a/content/fa/docs/contribute/participate/issue-wrangler.md b/content/fa/docs/contribute/participate/issue-wrangler.md new file mode 100644 index 0000000000000..10075fcfac6be --- /dev/null +++ b/content/fa/docs/contribute/participate/issue-wrangler.md @@ -0,0 +1,81 @@ +--- +title: مسئولان مسئله +content_type: concept +weight: 20 +--- + + + +در کنار [مسئول درخواست ادغام](/docs/contribute/participate/pr-wranglers)، تأییدکنندگان رسمی، بررسی‌کنندگان و اعضای SIG Docs شیفت‌های یک هفته‌ای [رده‌بندی و دسته‌بندی مسائل](/docs/contribute/review/for-approvers/#triage-and-categorize-issues) را برای مخزن انجام می‌دهند. + + + +## وظایف + +هر روز در یک شیفت هفتگی، کارشناس رسیدگی به مشکلات، مسئول موارد زیر خواهد بود: + +- دسته‌بندی و برچسب‌گذاری روزانه‌ی مسائل ورودی. برای راهنمایی در مورد نحوه‌ی استفاده‌ی SIG Docs از فراداده‌ها، به [دسته‌بندی و دسته‌بندی مسائل](/docs/contribute/review/for-approvers/#triage-and-categorize-issues) مراجعه کنید. +- نظارت بر مشکلات قدیمی و از کار افتاده در مخزن kubernetes/website. +- نگهداری از [تابلوی مشکلات](https://github.com/orgs/kubernetes/projects/72/views/1). + +## نیازمندی ها + +- باید عضو فعال سازمان Kubernetes باشد. +- حداقل ۱۵ مشارکت [مهم](https://www.kubernetes.dev/docs/guide/pull-requests/#trivial-edits) در کوبرنتیز (که مقدار مشخصی از آن باید به kubernetes/website اختصاص داده شود). +- همین الان هم به صورت غیررسمی این نقش را ایفا می‌کند. + +## دستورات مفید Prow برای مسئولان + +در زیر برخی از دستورات رایج برای حل مشکلات برای مسئولان مسئله آمده است: + +```bash +# بازگشایی یک مسئله +/reopen + +# مسائلی که در مخزن k/website جا نمی‌شوند را به مخزن دیگری منتقل می کند +/transfer[-issue] + +# وضعیت مسائل قدیمی را تغییر می دهد +/remove-lifecycle rotten + +# تغییر وضعیت مسائل کهنه +/remove-lifecycle stale + +# اختصاص SIG به یک مسئله +/sig + +# اضافه کردن ناحیه خاص +/area + +# برای مسائل مبتدی پسند +/good-first-issue + +# مسائلی که نیاز به کمک دارند +/help wanted + +# مشکل برچسب‌گذاری به عنوان پشتیبانی خاص +/kind support + +# پذیرش اولویت‌بندی برای یک مسئله +/triage accepted + +# بستن مشکلی که روی آن کار نخواهیم کرد و هنوز آن را حل نکرده‌ایم +/close not-planned +``` + +برای یافتن دستورات بیشتر Prow، به مستندات [راهنمای دستورات](https://prow.k8s.io/command-help) مراجعه کنید. + +## چه زمانی باید بخش مشکلات را ببندیم؟ + +برای موفقیت یک پروژه متن‌باز، مدیریت خوب مسائل بسیار مهم است. اما حل مشکلات به منظور حفظ مخزن و برقراری ارتباط شفاف با مشارکت‌کنندگان و کاربران نیز بسیار مهم است. + +مسائل را ببندید وقتی که: + +- یک مشکل مشابه بیش از یک بار گزارش شده است. ابتدا باید آن را با برچسب `/trigage duplicate` مشخص کنید؛ آن را به مشکل اصلی پیوند دهید و سپس آن را ببندید. همچنین توصیه می‌شود کاربران را به مشکل اصلی هدایت کنید. +- درک و رسیدگی به مشکل مطرح‌شده توسط نویسنده با اطلاعات ارائه‌شده بسیار دشوار است. با این حال، کاربر را تشویق کنید تا جزئیات بیشتری ارائه دهد یا اگر می‌تواند بعداً مشکل را دوباره مطرح کند، آن را دوباره مطرح کند. +- همین قابلیت در جای دیگری نیز پیاده‌سازی شده است. می‌توان این مشکل را بست و کاربر را به محل مناسب هدایت کرد. +- مشکل گزارش‌شده در حال حاضر برنامه‌ریزی‌شده یا با اهداف پروژه همسو نیست. +- اگر مشکل به نظر هرزنامه می‌آید و به وضوح نامرتبط است. +- اگر مسئله مربوط به یک محدودیت یا وابستگی خارجی باشد و خارج از کنترل پروژه باشد. + +برای بستن یک مشکل، یک نظر با علامت `/close` در مورد آن مشکل بگذارید. diff --git a/content/fa/docs/contribute/participate/pr-wranglers.md b/content/fa/docs/contribute/participate/pr-wranglers.md new file mode 100644 index 0000000000000..448d7fdc27b85 --- /dev/null +++ b/content/fa/docs/contribute/participate/pr-wranglers.md @@ -0,0 +1,93 @@ +--- +title: درخواست ادغام wranglers +content_type: concept +weight: 20 +--- + + + +SIG Docs [تأییدکنندگان](/docs/contribute/participate/roles-and- responsibilitys/#approvers) شیفت‌های یک هفته‌ای را برای [مدیریت درخواست‌های ادغام](https://github.com/kubernetes/website/wiki/PR-Wranglers) برای مخزن انجام می‌دهند. + +این بخش وظایف یک بررسی‌کننده‌ی درخواست‌های ادغام را پوشش می‌دهد. برای اطلاعات بیشتر در مورد ارائه‌ی نظرات خوب، به [بررسی تغییرات](/docs/contribute/review/) مراجعه کنید. + + + +## وظایف + +هر روز در یک شیفت یک هفته‌ای به عنوان مسئول درخواست ادغام: + +- [درخواست‌های ادغام باز](https://github.com/kubernetes/website/pulls) را برای کیفیت و پایبندی به راهنمای [شیوه](/docs/contribute/style/style-guide/) و [محتوا](/docs/contribute/style/content-guide/) مرور کنید. + - ابتدا با کوچکترین درخواست ادغام (سایز/XS) شروع کنید و با بزرگترین (سایز/XXL) به پایان برسانید. تا جایی که می‌توانید درخواست ادغام های بیشتری را مرور کنید. +- مطمئن شوید که مشارکت‌کنندگان درخواست ادغام [CLA] (https://github.com/kubernetes/community/blob/master/CLA.md) را امضا کنند. + - مطمئن شوید که مشارکت‌کنندگان درخواست ادغام اسکریپت [CLA](https://Use [this](https://github.com/zparnold/k8s-docs-pr-botherer) را امضا می‌کنند تا به مشارکت‌کنندگانی که CLA را امضا نکرده‌اند یادآوری شود که این کار را انجام دهند. +- در مورد تغییرات بازخورد ارائه دهید و از اعضای سایر SIG ها درخواست بررسی فنی کنید. + - برای تغییرات محتوای پیشنهادی، پیشنهادات درون خطی در درخواست ادغام ارائه دهید. + - اگر نیاز به تأیید محتوا دارید، در بخش درخواست ادغام نظر دهید و جزئیات بیشتری درخواست کنید. + - برچسب (های) مربوط به `sig/` را اختصاص دهید. + - در صورت نیاز، از بلوک «reviewers:» در ابتدای پرونده، داوران را تعیین کنید. + - همچنین می‌توانید با ارسال کامنت `@kubernetes/-pr-reviews` در درخواست ادغام، یک [SIG](https://github.com/kubernetes/community/blob/master/sig-list.md) را برای دریافت نقد و بررسی تگ کنید. +- از کامنت `/approve` برای تایید ترکیب یک درخواست ادغام استفاده کنید. وقتی آماده شد، درخواست ادغام را ترکیب کنید. + - درخواست ادغام باید قبل از ترکیب، نظر `/lgtm` یکی دیگر از اعضا را داشته باشند. + - پذیرش محتوای دقیق از نظر فنی که با [دستورالعمل‌های سبک](/docs/contribute/style/style-guide/) مطابقت ندارد را در نظر بگیرید. پس از تأیید تغییر، یک مسئله جدید برای رسیدگی به مشکل سبک باز کنید. معمولاً می‌توانید این مشکلات اصلاح سبک را به عنوان [مسائل خوب اول](https://kubernetes.dev/docs/guide/help-wanted/#good-first-issue) بنویسید. + - استفاده از اصلاحات سبک به عنوان اولین مسائل خوب، راه خوبی برای اطمینان از وجود وظایف آسان‌تر برای کمک به مشارکت‌کنندگان جدید است. +- همچنین درخواست‌های ادغام را در برابر کد [تولید کننده اسناد مرجع](https://github.com/kubernetes-sigs/reference-docs) کنترل کنید و آنها را بررسی کنید (یا از دیگران کمک بگیرید). +- از [بررسی‌کننده‌ی مسئله](/docs/contribute/participate/issue-wrangler/) برای اولویت‌بندی و برچسب‌گذاری روزانه‌ی مسائل دریافتی حمایت کنید. برای راهنمایی در مورد نحوه‌ی استفاده‌ی SIG Docs از فراداده‌ها، به [بررسی و دسته‌بندی مسائل](/docs/contribute/review/for-approvers/#triage-and-categorize-issues) مراجعه کنید. + +{{< note >}} +وظایف کارشناس درخواست ادغام شامل درخواست های ادغام محلی‌سازی (روابط عمومی‌های غیرانگلیسی) نمی‌شود. تیم‌های محلی‌سازی فرآیندها و تیم‌های خاص خود را برای بررسی درخواست های ادغام زبانی خود دارند. با این حال، اغلب مفید است که از برچسب‌گذاری صحیح درخواست های ادغام زبانی اطمینان حاصل شود، درخواست های ادغام کوچک غیرزبانی (مانند به‌روزرسانی لینک) بررسی شوند، یا تگ کردن داوران یا مشارکت‌کنندگان در درخواست‌های ادغام طولانی‌مدت (درخواست‌هایی که بیش از ۶ ماه پیش باز شده‌اند و در یک ماه یا بیشتر به‌روزرسانی نشده‌اند) اطمینان حاصل شود. +{{< /note >}} + +### پرس و جوهای مفید گیت هاب برای مشاجره گران + +پرس‌وجوهای زیر هنگام بررسی مفید هستند. پس از بررسی این پرس‌وجوها، فهرست درخواست های ادغام باقی‌مانده برای بررسی معمولاً کوچک است. این پرس‌وجوهادرخواست های ادغام محلی‌سازی را شامل نمی‌شوند. همه پرس‌وجوها به جز آخرین مورد، علیه شاخه اصلی هستند. + +- [بدون CLA، واجد شرایط ادغام نیست](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+label%3A%22cncf-cla%3A+no%22+-label%3A%22do-not-merge%2Fwork-in-progress%22+-label%3A%22do-not-merge%2Fhold%22+label%3Alanguage%2Fen): به مشارکت‌کننده یادآوری کنید که CLA را امضا کند. اگر هم ربات و هم یک انسان به او یادآوری کرده‌اند، درخواست ادغام را ببندید و به او یادآوری کنید که می‌تواند پس از امضای CLA آن را باز کند.**درخواست های ادغامی را که نویسندگانشان CLA را امضا نکرده‌اند، بررسی نکنید!** +- [نیازمند LGTM](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+-label%3A%22cncf-cla%3A+no%22+-label%3Ado-not-merge%2Fwork-in-progress+-label%3Ado-not-merge%2Fhold+label%3Alanguage%2Fen+-label%3Algtm): فهرستی از درخواست های ادغامی که به LGTM از یک عضو نیاز دارند. اگر درخواست ادغام نیاز به بررسی فنی دارد، یکی از داوران پیشنهاد شده توسط ربات را وارد کنید. اگر محتوا نیاز به کار دارد، پیشنهادات و بازخوردها را به صورت درون خطی اضافه کنید. +- [دارای LGTM است، نیاز به تأیید اسناد دارد](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+-label%3Ado-not-merge%2Fwork-in-progress+-label%3Ado-not-merge%2Fhold+label%3Alanguage%2Fen+label%3Algtm+): درخواست های ادغام را فهرست می‌کند که برای ترکیب به نظر `/approve` نیاز دارند. +- [پیروزی‌های سریع](https://github.com/kubernetes/website/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+base%3Amain+-label%3A%22do-not-merge%2Fwork-in-progress%22+-label%3A%22do-not-merge%2Fhold%22+label%3A%22cncf-cla%3A+yes%22+label%3A%22size%2FXS%22+label%3A%22language%2Fen%22): درخواست های ادغام را در مقابل شاخه اصلی بدون هیچ مسدودکننده مشخصی فهرست می‌کند. (هنگام کار بر روی درخواست های ادغام [XS، S، M، L، XL، XXL]، "XS" برچسب اندازه تغییر دهید.). +- [نه علیه شاخه اصلی](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+label%3Alanguage%2Fen+-base%3Amain): اگر درخواست ادغام علیه یک شاخه `dev-` باشد، برای یک نسخه آینده است. [مدیر انتشار اسناد] (https://github.com/kubernetes/sig-release/tree/master/release-team#kubernetes-release-team-roles) را با استفاده از دستور زیر تعیین کنید: `/assign @`. اگر درخواست ادغام علیه یک شاخه قدیمی است، به نویسنده کمک کنید تا بفهمد که آیا هدف آن بهترین شاخه است یا خیر. + +### دستورات مفید Prow برای wranglers + +``` +# add English label +/language en + +# add squash label to PR if more than one commit +/label tide/merge-method-squash + +# retitle a PR via Prow (such as a work-in-progress [WIP] or better detail of PR) +/retitle [WIP] +``` + +### چه زمانی درخواست‌های ادغام را ببندیم؟ + +بررسی‌ها و تأییدها یکی از ابزارهایی هستند که صف درخواست‌های ادغام ما را کوتاه و به‌روز نگه می‌دارند. ابزار دیگر، خاتمه (closure) است. + +درخواست های ادغام را در جایی ببندید که: + +- نویسنده دو هفته است که CLA را امضا نکرده است. + + نویسندگان می‌توانند پس از امضای CLA، درخواست ادغام را دوباره باز کنند. این یک روش کم‌خطر برای اطمینان از این است که هیچ چیز بدون CLA امضا شده ترکیب نمی‌شود. + +- نویسنده به مدت ۲ هفته یا بیشتر به نظرات یا بازخوردها پاسخ نداده است. + +از بستن درخواست‌های ادغام نترسید. مشارکت‌کنندگان می‌توانند به راحتی کارهای در حال انجام را دوباره باز کرده و از سر بگیرند. اغلب یک اخطار بسته شدن چیزی است که نویسنده را به از سرگیری و پایان دادن به مشارکت خود ترغیب می‌کند. + +برای بستن یک درخواست ادغام، یک کامنت با عنوان `/close` در درخواست ادغام بگذارید. + +{{< note >}} +ربات [`k8s-triage-robot`](https://github.com/k8s-triage-robot) پس از ۹۰ روز عدم فعالیت، مسائل را به عنوان قدیمی علامت‌گذاری می‌کند. بعد از 30 روز دیگر مسائل را به عنوان پوسیده علامت گذاری می کند و آنها را می بندد. مسئولین درخواست ادغام باید مسائل را پس از ۱۴ تا ۳۰ روز عدم فعالیت ببندند. +{{< /note >}} + +## برنامه سایه درخواست ادغام Wrangler + +در اواخر سال ۲۰۲۱، SIG Docs برنامه‌ی سایه‌ی Wrangler PR را معرفی کرد. این برنامه برای کمک به مشارکت‌کنندگان جدید در درک فرآیند بررسی درخواست ادغام معرفی شد. + +### تبدیل به یک سایه + +- اگر به عنوان کارشناس درخواست ادغام علاقه‌مند به فعالیت سایه‌وار هستید، لطفاً برای مشاهده برنامه بررسی درخواست ادغام امسال و ثبت نام، از صفحه ویکی کارشناسان درخواست ادغام (https://github.com/kubernetes/website/wiki/PR-Wranglers) دیدن کنید. + +- دیگران می‌توانند برای درخواست همکاری با یک کارشناس درخواست ادغام تعیین‌شده برای یک هفته خاص، از طریق کانال اسلک [#sig-docs] (https://kubernetes.slack.com/messages/sig-docs) اقدام کنند. در صورت تمایل می‌توانید با یکی از [همکاران/رهبران SIG Docs] (https://github.com/kubernetes/community/tree/master/sig-docs#leadership) تماس بگیرید. + +- پس از ثبت نام برای همکاری سایه به سایه با یک کارشناس درخواست ادغام، خود را در [کوبرنتیز Slack](https://slack.k8s.io) به کارشناس درخواست ادغام معرفی کنید. diff --git a/content/fa/docs/contribute/participate/roles-and-responsibilities.md b/content/fa/docs/contribute/participate/roles-and-responsibilities.md new file mode 100644 index 0000000000000..798727746ab53 --- /dev/null +++ b/content/fa/docs/contribute/participate/roles-and-responsibilities.md @@ -0,0 +1,184 @@ +--- +title: نقش‌ها و مسئولیت‌ها +content_type: concept +weight: 10 +--- + +<!-- overview --> + +هر کسی می‌تواند در کوبرنتیز مشارکت کند. با افزایش مشارکت شما در SIG Docs، می‌توانید برای سطوح مختلف عضویت در جامعه درخواست دهید. این نقش‌ها به شما امکان می‌دهند مسئولیت‌های بیشتری را در جامعه بر عهده بگیرید. هر نقش به زمان و تعهد بیشتری نیاز دارد. نقش‌ها عبارتند از: + +- همه: مشارکت‌کنندگان منظم در مستندات کوبرنتیز +- اعضا: می‌توانند مسائل را تعیین و اولویت‌بندی کنند و در مورد درخواست‌های ادغام، بررسی غیرالزام‌آوری ارائه دهند. +- بازبینان: می‌توانند در مورد درخواست‌های ادغام مستندات به بررسی بپردازند و کیفیت تغییر را تضمین کنند +- تأییدکنندگان: می‌توانند بررسی‌ها را در مورد مستندات رهبری کرده و تغییرات را ادغام کنند + +<!-- body --> + +## همه + +هر کسی که حساب گیت‌هاب داشته باشد می‌تواند در کوبرنتیز مشارکت کند. SIG Docs از همه مشارکت‌کنندگان جدید استقبال می‌کند! + +هر کسی می‌تواند: + +- یک مشکل را در هر مخزن [Kubernetes](https://github.com/kubernetes/)، از جمله [`kubernetes/website`](https://github.com/kubernetes/website) باز کنید. +- ارائه بازخورد غیر الزام‌آور در مورد یک درخواست ادغام +- مشارکت در بومی‌سازی +- پیشنهادهای بهبود را در [Slack](https://slack.k8s.io/) یا [لیست پستی اسناد SIG](https://groups.google.com/forum/#!forum/kubernetes-sig-docs) ارائه دهید. + +پس از [امضای CLA](https://github.com/kubernetes/community/blob/master/CLA.md)، هر کسی می‌تواند: + +- برای بهبود محتوای موجود، افزودن محتوای جدید یا نوشتن یک پست وب نوشت یا مطالعه موردی، یک درخواست ادغام باز کنید. +- نمودارها، دارایی‌های گرافیکی، و تصاویر و ویدیوهای قابل جاسازی را ایجاد کنید + +برای اطلاعات بیشتر، به [مشارکت در محتوای جدید](/docs/contribute/new-content/) مراجعه کنید. + +## اعضا + +عضو کسی است که چندین درخواست ادغام به `kubernetes/website` ارسال کرده است. اعضا بخشی از `[سازمان گیت‌هاب کوبرنتیز](https://github.com/kubernetes) هستند. + +اعضا می‌توانند: + +- هر کاری که در قسمت [هر کسی](#هر کسی) ذکر شده است را انجام دهند +- از کامنت `/lgtm` برای اضافه کردن برچسب LGTM (به نظر من خوب است) به یک درخواست ادغام استفاده کنید. + + {{< note >}} + استفاده از `/lgtm` باعث خودکارسازی می‌شود. اگر می‌خواهید تأیید غیرالزام‌آوری ارائه دهید، کامنت کردن "LGTM" نیز کار می‌کند! + {{< /note >}} + +- از کامنت `/hold` برای جلوگیری از ادغام برای درخواست ادغام استفاده کنید. +- از کامنت `/assign` برای اختصاص دادن یک داور به یک درخواست ادغام استفاده کنید. +- ارائه بررسی غیر الزام‌آور در مورد درخواست‌های ادغام +- از اتوماسیون برای اولویت‌بندی و دسته‌بندی مسائل استفاده کنید +- مستندسازی ویژگی‌های جدید + +### تبدیل شدن به عضو + +پس از ارسال حداقل ۵ درخواست ادغام قابل توجه و برآورده کردن سایر [الزامات] (https://github.com/kubernetes/community/blob/master/community-membership.md#member): + +1. دو [بازبین](#بازبین) یا [تأییدکننده](#تأییدکننده) برای [حمایت](/docs/contribute/advanced#sponsor-a-new-contributor) عضویت خود پیدا کنید. + + برای درخواست حمایت، به کانال [#sig-docs در Slack] (https://kubernetes.slack.com) یا به [لیست پستی SIG Docs] (https://groups.google.com/forum/#!forum/kubernetes-sig-docs) مراجعه کنید. + + {{< note >}} + ایمیل مستقیم یا پیام مستقیم Slack را به یک عضو SIG Docs ارسال نکنید. قبل از ارسال درخواست خود، باید درخواست حمایت کنید. + {{< /note >}} + +1. یک مشکل گیت‌هاب را در مخزن [`kubernetes/org`](https://github.com/kubernetes/org/) باز کنید. از الگوی مشکل **درخواست عضویت سازمان** استفاده کنید. + +1. به حامیان خود در مورد مشکل گیت‌هاب اطلاع دهید. می‌توانید: +- نام کاربری گیت‌هاب آنها را در یک مشکل ذکر کنید (`@<GitHub-username>`) +- لینک مشکل را با استفاده از Slack یا ایمیل برای آنها ارسال کنید. + + حامیان مالی درخواست شما را با رأی مثبت ۱+ تأیید می‌کنند. پس از تأیید درخواست توسط حامیان مالی، یک مدیر گیت هاب کوبرنتیز شما را به عنوان عضو اضافه می‌کند. تبریک می‌گویم! + + اگر درخواست عضویت شما پذیرفته نشود، بازخورد دریافت خواهید کرد. پس از بررسی بازخورد، دوباره درخواست دهید. + +1. دعوتنامه‌ی سازمان گیت هاب کوبرنتیز را در حساب ایمیل خود بپذیرید. + + {{< note >}} + گیت‌هاب دعوت‌نامه را به آدرس ایمیل پیش‌فرض حساب شما ارسال می‌کند. + {{< /note >}} + +## داوران + +داوران مسئول بررسی درخواست‌های ادغام باز هستند. برخلاف بازخورد اعضا، نویسنده‌ی درخواست های ادغام باید به بازخورد داوران رسیدگی کند. داوران اعضای تیم گیت هاب هستند. + +داوران می‌توانند: + +- تمام موارد ذکر شده در زیر [هر کسی](#هر کسی) و [اعضا](#اعضا) را انجام دهند. +- بررسی درخواست‌های ادغام و ارائه بازخورد الزام‌آور + + {{< note >}} + برای ارائه بازخورد غیر الزام‌آور، قبل از نظرات خود عبارتی مانند «اختیاری:» را قرار دهید. + {{< /note >}} + +- ویرایش رشته‌های قابل مشاهده توسط کاربر در کد +- بهبود نظرات کد + +شما می‌توانید داور اسناد SIG یا داور اسناد در یک حوزه موضوعی خاص باشید. + +### اختصاص دادن داوران به درخواست‌های ادغام + +اتوماسیون، برای همه درخواست‌های ادغام، بررسی‌کننده تعیین می‌کند. شما می‌توانید با نوشتن کامنت از یک شخص خاص درخواست بررسی کنید: `/assign [@_github_handle]` + +اگر داور تعیین‌شده در مورد درخواست ادغام اظهار نظر نکرده باشد، داور دیگری می‌تواند وارد عمل شود. همچنین می‌توانید در صورت نیاز، داوران فنی را تعیین کنید. + +### استفاده از `/lgtm` + +LGTM مخفف «به نظر من خوب به نظر می‌رسد» است و نشان می‌دهد که یک درخواست ادغام از نظر فنی دقیق و آماده ادغام است. همه درخواست های ادغام برای ترکیب به یک نظر `/lgtm` از یک بررسی‌کننده و یک نظر `/approve` از یک تأییدکننده نیاز دارند. + +نظر `/lgtm` از سوی بررسی‌کننده الزام‌آور است و باعث می‌شود که اتوماسیون برچسب `lgtm` را اضافه کند. + +### تبدیل شدن به یک داور + +وقتی [شرایط] (https://github.com/kubernetes/community/blob/master/community-membership.md#reviewer) را برآورده کنید، می‌توانید داور SIG Docs شوید. داوران در سایر SIGها باید جداگانه برای وضعیت داور در SIG Docs درخواست دهند. + +برای درخواست: + +1. یک درخواست ادغام باز کنید که نام کاربری گیت‌هاب شما را به بخشی از پرونده [نام‌های مستعار مالک](https://github.com/kubernetes/website/blob/main/OWNERS_ALIASES) در مخزن `kubernetes/website` اضافه کند. + + {{< note >}} + اگر مطمئن نیستید که خودتان را کجا اضافه کنید، خودتان را به «sig-docs-en-reviews» اضافه کنید. + {{< /note >}} + +1. درخواست ادغام را به یک یا چند تأییدکننده SIG-Docs (نام‌های کاربری ذکر شده در زیر `sig-docs-{language}-owners`) اختصاص دهید. + +در صورت تأیید، سرپرست SIG Docs شما را به تیم گیت هاب مربوطه اضافه می‌کند. پس از اضافه شدن، [K8s-ci-robot](https://github.com/kubernetes/test-infra/tree/master/prow#bots-home) شما را به عنوان داور در درخواست‌های ادغام جدید منصوب و پیشنهاد می‌دهد. + +## Approvers + +تأییدکنندگان، درخواست‌های ادغام را بررسی و تأیید می‌کنند. تأییدکنندگان اعضای تیم‌های گیت‌هاب [@kubernetes/sig-docs-{language}-owners](https://github.com/orgs/kubernetes/teams/?query=sig-docs) هستند. + +تأییدکنندگان می‌توانند موارد زیر را انجام دهند: + +- همه موارد ذکر شده در زیر [هر کسی](#هر کسی)، [اعضا](#اعضا) و [بازبینان](#بازبینان) +- با تأیید و ترکیب درخواست‌های ادغام با استفاده از کامنت `/approve`، محتوای مشارکت‌کننده را منتشر می کنند +- پیشنهاد بهبود راهنمای آیین +- پیشنهاد بهبودهایی برای تست‌های اسناد +- پیشنهاد بهبود وب‌سایت یا سایر ابزارهای کوبرنتیز + +اگر درخواست ادغام از قبل یک `/lgtm` داشته باشد، یا اگر تأییدکننده نیز با `/lgtm` نظر دهد، درخواست ادغام به طور خودکار ترکیب می‌شود. یک تأییدکننده SIG Docs فقط باید `/lgtm` را برای تغییری که نیازی به بررسی فنی اضافی ندارد، باقی بگذارد. + +### تأیید درخواست‌های ادغام + +تأییدکنندگان و سرپرستان SIG Docs تنها کسانی هستند که می‌توانند درخواست‌های ادغام را در مخزن وب‌سایت ترکیب کنند. این امر با مسئولیت‌های خاصی همراه است. + +- تأییدکنندگان می‌توانند از دستور `/approve` استفاده کنند که درخواست ادغام ها را در مخزن ترکیب می‌کند. + + {{< caution >}} + ادغام بی‌دقت می‌تواند سایت را از کار بیندازد، بنابراین مطمئن شوید که وقتی چیزی را ادغام می‌کنید، منظورتان همین است. + {{< /caution >}} + +- مطمئن شوید که تغییرات پیشنهادی با [راهنمای محتوای مستندات](/docs/contribute/style/content-guide/) مطابقت دارند. + + اگر سوالی دارید یا در مورد چیزی مطمئن نیستید، برای بررسی بیشتر تماس بگیرید. + +- قبل از «تأیید» درخواست ادغام، تأیید کنید که آزمایش‌های Netlify با موفقیت انجام شده باشند. + + <img src="/images/docs/contribute/netlify-pass.png" width="75%" alt="Netlify tests must pass before approving" /> + +- برای اطمینان از اینکه همه چیز قبل از تأیید خوب به نظر می‌رسد، از پیش‌نمایش صفحه Netlify برای درخواست ادغام دیدن کنید. + +- برای چرخش‌های هفتگی در [درخواست ادغام برنامه چرخش wrangler](https://github.com/kubernetes/website/wiki/PR-Wranglers) شرکت کنید. SIG Docs انتظار دارد که همه تأییدکنندگان در این چرخش شرکت کنند. برای جزئیات بیشتر به [PR wranglers](/docs/contribute/participate/pr-wranglers/) مراجعه کنید. + + +### تبدیل شدن به یک تاییدکننده + +وقتی [الزامات] (https://github.com/kubernetes/community/blob/master/community-membership.md#approver) را برآورده کنید، می‌توانید به عنوان تأییدکننده‌ی SIG Docs فعالیت کنید. تأییدکنندگان در سایر SIGها باید برای وضعیت تأییدکننده در SIG Docs به طور جداگانه درخواست دهند. + +برای درخواست: + +1. یک درخواست ادغام باز کنید و خودتان را به بخشی از پرونده [نام‌های مستعار مالک](https://github.com/kubernetes/website/blob/main/OWNERS_ALIASES) در مخزن `kubernetes/website` اضافه کنید. + + {{< note >}} + اگر مطمئن نیستید که خودتان را کجا اضافه کنید، خودتان را به `sig-docs-en-owners` اضافه کنید. + {{< /note >}} + +2. درخواست ادغام را به یک یا چند تأییدکننده فعلی SIG Docs اختصاص دهید. + +در صورت تأیید، سرپرست SIG Docs شما را به تیم گیت هاب مربوطه اضافه می‌کند. پس از اضافه شدن، [@k8s-ci-robot](https://github.com/kubernetes/test-infra/tree/master/prow#bots-home) شما را به عنوان داور در درخواست‌های ادغام جدید منصوب و پیشنهاد می‌دهد. + +## {{% heading "What's next?" %}} + +- درباره [بحث درخواست ادغام ](/docs/contribute/participate/pr-wranglers/) بخوانید، نقشی که همه تأییدکنندگان به صورت چرخشی بر عهده می‌گیرند. diff --git a/content/fa/docs/contribute/review/_index.md b/content/fa/docs/contribute/review/_index.md new file mode 100644 index 0000000000000..812631427ee26 --- /dev/null +++ b/content/fa/docs/contribute/review/_index.md @@ -0,0 +1,14 @@ +--- +title: بازبینی تغییرات +weight: 30 +--- + +<!-- overview --> + +این بخش توضیح می‌دهد چگونه محتوا را بازبینی کنید. + + + +<!-- body --> + + diff --git a/content/fa/docs/contribute/review/for-approvers.md b/content/fa/docs/contribute/review/for-approvers.md new file mode 100644 index 0000000000000..3275bac556905 --- /dev/null +++ b/content/fa/docs/contribute/review/for-approvers.md @@ -0,0 +1,246 @@ +--- +title: بازبینی برای تأییدکنندگان و بازبین‌ها +linktitle: برای تأییدکنندگان و بازبین‌ها +slug: for-approvers +content_type: concept +weight: 20 +--- + +<!-- overview --> + +[SIG Docs](/docs/contribute/participate/#reviewers) **بازبین‌ها** و +[Approvers](/docs/contribute/participate/#approvers) **تأییدکنندگان** هنگام بازبینی یک تغییر، چند کار اضافی انجام می‌دهند. + +هر هفته، یکی از تأییدکنندگان مستندات داوطلب می‌شود تا Pull Requestها را اولویت‌بندی و بازبینی کند. +این شخص «**PR Wrangler**» آن هفته است. برای اطلاعات بیش‌تر، به +[برنامه PR Wrangler](https://github.com/kubernetes/website/wiki/PR-Wranglers) +نگاه کنید. برای تبدیل شدن به یک PR Wrangler، در جلسه هفتگی SIG Docs شرکت کنید و داوطلب شوید. +حتی اگر در برنامه این هفته نیستید، همچنان می‌توانید PRهایی را بازبینی کنید که در حال حاضر +بازبینی فعالی ندارند. + +علاوه بر گردش کار هفتگی، یک ربات بر اساس فایل‌هایی که در PR تغییر کرده‌اند، +بازبین‌ها و تأییدکنندگان مناسب را تعیین می‌کند. + +<!-- body --> + +## بازبینی یک PR + +مستندات Kubernetes از فرایند +[بازبینی کد Kubernetes](https://github.com/kubernetes/community/blob/master/contributors/guide/owners.md#the-code-review-process) +پیروی می‌کند. + +هر آنچه در +[بازبینی یک Pull Request](/docs/contribute/review/reviewing-prs) +توضیح داده شده صادق است، اما بازبین‌ها و تأییدکنندگان باید این کارها را نیز انجام دهند: + +- در صورت نیاز با فرمان `/assign` یک بازبین مشخص را برای PR تعیین کنید. + این موضوع هنگام درخواست بازبینی فنی از مشارکت‌کنندگان کد بسیار مهم است. + + {{< note >}} + برای مشاهده افرادی که می‌توانند بازبینی فنی انجام دهند، به فیلد `reviewers` در front-matter بالای فایل Markdown نگاه کنید. + {{< /note >}} + +- اطمینان حاصل کنید که PR با [راهنمای محتوا](/docs/contribute/style/content-guide/) + و [راهنمای سبک](/docs/contribute/style/style-guide/) هماهنگ است؛ اگر نیست، + پیوند بخش مربوطه راهنما را برای نویسنده بفرستید. +- در صورت لزوم از گزینه **Request Changes** در GitHub برای پیشنهاد تغییرات به نویسنده PR استفاده کنید. +- در صورتی که پیشنهادهای شما اعمال شد، وضعیت بازبینی خود را با فرمان‌های `/approve` یا `/lgtm` + در GitHub به‌روزرسانی کنید. + +## کامیت در PR فرد دیگر + +گذاشتن کامنت در PR مفید است، اما گاهی لازم است مستقیماً در PR فرد دیگری کامیت کنید. + +مگر آن‌که نویسنده PR صراحتاً از شما بخواهد یا بخواهید یک PR رهاشده طولانی را احیا کنید، +«در دست گرفتن» کار دیگران توصیه نمی‌شود؛ چون فرصت مشارکت را از آن فرد می‌گیرد. + +روش کار شما بستگی دارد به اینکه آیا نیاز است فایلی را ویرایش کنید که در محدوده PR +هست یا فایلی که هنوز تغییر نکرده است. + +اگر هر یک از شرایط زیر برقرار باشد، نمی‌توانید در PR شخص دیگری کامیت بزنید: + +- نویسنده PR شعبه خود را مستقیماً در مخزن + [https://github.com/kubernetes/website/](https://github.com/kubernetes/website/) + ایجاد کرده باشد. تنها بازبینی‌کننده‌ای با دسترسی push می‌تواند در PR کاربر دیگری کامیت کند. + + {{< note >}} + نویسنده را تشویق کنید دفعه بعد شعبه خود را در فورک شخصی بسازد و سپس PR باز کند. + {{< /note >}} + +- نویسنده PR به‌صراحت ویرایش توسط تأییدکنندگان را غیرفعال کرده باشد. + +## فرمان‌های Prow برای بازبینی + +[Prow](https://github.com/kubernetes/test-infra/blob/master/prow/README.md) +سیستم CI/CD مبتنی بر Kubernetes است که وظایف مرتبط با PRها را اجرا می‌کند. +Prow فرمان‌های شبیه‌چت را برای انجام عملیات GitHub در سراسر سازمان Kubernetes فعال می‌کند؛ +مانند [افزودن و حذف برچسب‌ها](#adding-and-removing-issue-labels)، بستن issueها +و اختصاص تأییدکننده. فرمان‌های Prow را به‌صورت کامنت GitHub و با قالب `/<command-name>` وارد کنید. + +{{< table caption="دستورات Prow برای بازبینی" >}} +فرمان Prow | محدودیت نقش | توضیحات +:-----------|:------------|:---------- +`/lgtm` | اعضای سازمان | نشان می‌دهد بازبینی شما تمام شده و از تغییرات راضی هستید. +`/approve` | تأییدکنندگان | یک PR را برای ادغام تأیید می‌کند. +`/assign` | همه | فردی را برای بازبینی یا تأیید یک PR تعیین می‌کند. +`/close` | اعضای سازمان | یک issue یا PR را می‌بندد. +`/hold` | همه | برچسب `do-not-merge/hold` را اضافه می‌کند تا PR به‌طور خودکار ادغام نشود. +`/hold cancel` | همه | برچسب `do-not-merge/hold` را حذف می‌کند. +{{< /table >}} + +برای مشاهده فرمان‌هایی که در یک PR می‌توانید استفاده کنید، به +[مرجع فرمان‌های Prow](https://prow.k8s.io/command-help?repo=kubernetes%2Fwebsite) مراجعه کنید. + +## دسته‌بندی و تریاژ issueها + +به‌طور کلی، SIG Docs از فرایند +[تریاژ issueهای Kubernetes](https://github.com/kubernetes/community/blob/master/contributors/guide/issue-triage.md) +پیروی می‌کند و از همان برچسب‌ها استفاده می‌کند. + +این [فیلتر](https://github.com/kubernetes/website/issues?q=is%3Aissue+is%3Aopen+-label%3Apriority%2Fbacklog+-label%3Apriority%2Fimportant-longterm+-label%3Apriority%2Fimportant-soon+-label%3Atriage%2Fneeds-information+-label%3Atriage%2Fsupport+sort%3Acreated-asc) +در GitHub issueهایی را پیدا می‌کند که ممکن است به تریاژ نیاز داشته باشند. + +### تریاژ یک Issue + +1. اعتبارسنجی Issue + + - مطمئن شوید موضوع درباره مستندات وب‌سایت است. برخی Issueها را می‌توان با پاسخ به یک پرسش یا ارجاع گزارش‌کننده به یک منبع به‌سرعت بست. برای جزئیات، بخش [درخواست پشتیبانی یا گزارش باگ کد](#support-requests-or-code-bug-reports) را ببینید. + - ارزیابی کنید آیا Issue ارزش رسیدگی دارد یا نه. + - اگر Issue جزئیات کافی برای اقدام ندارد یا الگو به‌درستی پر نشده است، برچسب `triage/needs-information` را اضافه کنید. + - اگر Issue هم برچسب `lifecycle/stale` و هم `triage/needs-information` را دارد، آن را ببندید. + +2. افزودن یک برچسب اولویت (راهنمای + [Issue Triage Guidelines](https://github.com/kubernetes/community/blob/master/contributors/guide/issue-triage.md#define-priority) + برچسب‌های اولویت را با جزئیات شرح می‌دهد) + + {{< table caption="برچسب‌های Issue" >}} + برچسب | توضیح + :------------|:------------------ + `priority/critical-urgent` | همین حالا انجام دهید. + `priority/important-soon` | ظرف ۳ ماه انجام دهید. + `priority/important-longterm` | ظرف ۶ ماه انجام دهید. + `priority/backlog` | قابل تعویق نامحدود؛ هر زمان منابع در دسترس بود انجام دهید. + `priority/awaiting-more-evidence` | نگه‌دارنده یک Issue بالقوه خوب تا گم نشود. + `help` یا `good first issue` | مناسب برای کسی با تجربه بسیار کم در Kubernetes یا SIG Docs. برای اطلاعات بیش‌تر، [Help Wanted و Good First Issue](https://kubernetes.dev/docs/guide/help-wanted/) را ببینید. + {{< /table >}} + + در صورت صلاحدید، مالکیت یک Issue را بر عهده بگیرید و برای آن PR ارسال کنید + (به‌ویژه اگر سریع انجام می‌شود یا مرتبط با کاری است که همین حالا انجام می‌دهید). + +اگر درباره تریاژ Issue سؤالی دارید، در Slack کانال `#sig-docs` یا +لیست پستی [kubernetes-sig-docs](https://groups.google.com/forum/#!forum/kubernetes-sig-docs) بپرسید. + +## افزودن و حذف برچسب Issue + +برای افزودن برچسب، یک کامنت با یکی از قالب‌های زیر بگذارید: + +- `/<label-to-add>` (مثلاً: `/good-first-issue`) +- `/<label-category> <label-to-add>` (مثلاً: `/triage needs-information` یا `/language ja`) + +برای حذف برچسب، یک کامنت با یکی از قالب‌های زیر بگذارید: + +- `/remove-<label-to-remove>` (مثلاً: `/remove-help`) +- `/remove-<label-category> <label-to-remove>` (مثلاً: `/remove-triage needs-information`) + +در هر دو حالت، برچسب باید از قبل وجود داشته باشد. اگر برچسبی که وجود ندارد را اضافه کنید، فرمان بدون پیام نادیده گرفته می‌شود. + +برای فهرست کامل برچسب‌ها، بخش **Labels** مخزن [website](https://github.com/kubernetes/website/labels) را ببینید. همه برچسب‌ها توسط SIG Docs استفاده نمی‌شوند. + +### برچسب‌های چرخه عمر Issue + +Issueها معمولاً به‌سرعت باز و بسته می‌شوند. +بااین‌حال، گاهی یک Issue پس از باز شدن غیرفعال می‌شود و گاهی لازم است بیش از ۹۰ روز باز بماند. + +{{< table caption="برچسب‌های چرخه عمر Issue" >}} +برچسب | توضیح +:------------|:------------------ +`lifecycle/stale` | پس از ۹۰ روز بدون فعالیت، Issue به‌طور خودکار با این برچسب علامت‌گذاری می‌شود. اگر چرخه عمر به‌صورت دستی با فرمان `/remove-lifecycle stale` برگردانده نشود، Issue خودکار بسته خواهد شد. +`lifecycle/frozen` | Issue دارای این برچسب پس از ۹۰ روز غیرفعال شدن منقضی نمی‌شود. کاربر این برچسب را دستی برای Issueهایی اضافه می‌کند که باید مدت‌زمان بسیار طولانی‌تری باز بمانند، مانند آن‌هایی که برچسب `priority/important-longterm` دارند. +{{< /table >}} + +## رسیدگی به انواع خاص Issue + +SIG Docs به‌اندازه‌ای با انواع زیر از Issue مواجه می‌شود که لازم است شیوه رسیدگی به آن‌ها مستند شود. + +### Issueهای تکراری + +اگر یک مشکل واحد بیش از یک Issue باز دارد، آن‌ها را در یک Issue ادغام کنید. +تصمیم بگیرید کدام Issue باز بماند (یا یک Issue جدید باز کنید)، سپس تمام اطلاعات مرتبط را منتقل کرده و Issueهای مرتبط را لینک کنید. +در نهایت، به همه Issueهای دیگر که همان مشکل را توصیف می‌کنند برچسب `triage/duplicate` بزنید و آن‌ها را ببندید. داشتن یک Issue منفرد، سردرگمی را کاهش می‌دهد و از دوباره‌کاری جلوگیری می‌کند. + +### Issueهای پیوند مرده + +اگر Issue پیوند مرده در مستندات API یا `kubectl` است، تا زمانی که مشکل کاملاً درک شود به آن برچسب `/priority critical-urgent` بدهید. +به تمام Issueهای پیوند مرده دیگر برچسب `/priority important-longterm` بدهید، چون باید به‌صورت دستی رفع شوند. + +### Issueهای وبلاگ + +انتظار می‌رود [مطالب وبلاگ Kubernetes](/blog/) با گذر زمان قدیمی شوند؛ بنابراین فقط مطالب کمتر از یک‌سال را نگه‌داری می‌کنیم. +اگر Issue مربوط به مطلبی قدیمی‌تر از یک سال است، معمولاً باید Issue را بدون رفع ببندید. + +می‌توانید هنگام بستن PR، لینکی به +[به‌روزرسانی و نگه‌داری مقاله](/docs/contribute/blog/#maintenance) +بفرستید. + +در صورت وجود توجیه مناسب، ایجاد استثنا اشکالی ندارد. + +### درخواست پشتیبانی یا گزارش باگ کد {#support-requests-or-code-bug-reports} + +برخی Issueهای مستندات در واقع مشکلات کد زیرین یا درخواست کمک هستند (مثلاً وقتی یک آموزش کار نمی‌کند). +برای Issueهایی که مرتبط با مستندات نیستند، Issue را با برچسب `kind/support` ببندید و در کامنت کاربر را به محافل پشتیبانی (Slack، Stack Overflow) و در صورت مرتبط بودن، مخزن گزارش باگ (مثل `kubernetes/kubernetes`) راهنمایی کنید. + +نمونه پاسخ به درخواست پشتیبانی: + +```none +This issue sounds more like a request for support and less +like an issue specifically for docs. I encourage you to bring +your question to the `#kubernetes-users` channel in +[Kubernetes slack](https://slack.k8s.io/). You can also search +resources like +[Stack Overflow](https://stackoverflow.com/questions/tagged/kubernetes) +for answers to similar questions. + +You can also open issues for Kubernetes functionality in +https://github.com/kubernetes/kubernetes. + +If this is a documentation issue, please re-open this issue. +``` + +نمونه پاسخ گزارش باگ کد: + +```none +This sounds more like an issue with the code than an issue with +the documentation. Please open an issue at +https://github.com/kubernetes/kubernetes/issues. + +If this is a documentation issue, please re-open this issue. +``` + +### اسکوآش کردن + +به‌عنوان یک تأییدکننده، هنگام بازبینی Pull Requestها (PRها) ممکن است در شرایط مختلف یکی از کارهای زیر را انجام دهید: + +- به مشارکت‌کننده توصیه کنید کامیت‌هایش را اسکوآش کند. +- کامیت‌ها را به‌جای مشارکت‌کننده اسکوآش کنید. +- به مشارکت‌کننده توصیه کنید هنوز اسکوآش نکند. +- مانع از اسکوآش شدن شوید. + +**توصیه به مشارکت‌کنندگان برای اسکوآش**: یک مشارکت‌کننده تازه‌وارد ممکن است نداند که باید کامیت‌هایش را در PR اسکوآش کند. در این صورت، او را راهنمایی کنید، پیوندهای مفید در اختیارش بگذارید و در صورت نیاز پیشنهاد کمک بدهید. چند پیوند مفید: + +- [باز کردن Pull Request و اسکوآش کامیت‌ها](/docs/contribute/new-content/open-a-pr#squashing-commits) برای مشارکت‌کنندگان مستندات +- [گردش کار GitHub](https://www.k8s.dev/docs/guide/github-workflow/) (شامل نمودارها) برای توسعه‌دهندگان + +**اسکوآش کامیت برای مشارکت‌کنندگان**: اگر مشارکت‌کننده ممکن است در اسکوآش کردن مشکل داشته باشد یا فشار زمانی برای ادغام PR وجود دارد، می‌توانید اسکوآش را برای او انجام دهید: + +- مخزن `kubernetes/website` + [برای اجازه اسکوآش هنگام ادغام PR پیکربندی شده است](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/configuring-commit-squashing-for-pull-requests). کافی است دکمه *Squash commits* را بزنید. +- در PR، اگر مشارکت‌کننده اجازه مدیریت PR را به نگه‌دارندگان داده باشد، می‌توانید کامیت‌ها را اسکوآش کرده و فورک او را با نتیجه به‌روزرسانی کنید. پیش از اسکوآش، به او توصیه کنید آخرین تغییرات را ذخیره و push کند؛ پس از اسکوآش، به او توصیه کنید کامیت اسکوآش‌شده را به کلون محلی خود pull کند. +- می‌توانید با افزودن یک برچسب مناسب به طوری که Tide / GitHub اسکوآش را انجام دهد یا با کلیک دکمه *Squash commits* هنگام ادغام PR، GitHub را وادار کنید کامیت‌ها را اسکوآش کند. + +**توصیه برای پرهیز از اسکوآش** + +- اگر یک کامیت کاری خراب یا نادرست انجام می‌دهد و آخرین کامیت این خطا را برمی‌گرداند، کامیت‌ها را اسکوآش نکنید. هرچند زبانه «Files changed» در GitHub و پیش‌نمایش Netlify هر دو خوب به‌نظر می‌رسند، ادغام چنین PRی ممکن است برای دیگران تعارض rebase یا merge ایجاد کند. در صورت لزوم دخالت کنید تا این خطر برای سایر مشارکت‌کنندگان پیش نیاید. + +**هرگز اسکوآش نکنید** + +- اگر یک بومی‌سازی جدید را راه‌اندازی می‌کنید یا مستندات نسخه جدیدی را منتشر می‌کنید و شاخه‌ای را ادغام می‌کنید که از فورک کاربر نیست، _هرگز کامیت‌ها را اسکوآش نکنید_. اسکوآش نکردن ضروری است زیرا باید تاریخچه کامیت برای آن فایل‌ها حفظ شود. diff --git a/content/fa/docs/contribute/review/reviewing-prs.md b/content/fa/docs/contribute/review/reviewing-prs.md new file mode 100644 index 0000000000000..5657a6f1543b0 --- /dev/null +++ b/content/fa/docs/contribute/review/reviewing-prs.md @@ -0,0 +1,200 @@ +--- +title: بازبینی Pull Requestها +content_type: concept +main_menu: true +weight: 10 +--- + +<!-- overview --> + +هرکسی می‌تواند یک Pull Request مربوط به مستندات را بازبینی کند. برای دیدن Pull Requestهای باز، به بخش +[pull requests](https://github.com/kubernetes/website/pulls) در مخزن وب‌سایت Kubernetes بروید. + +بازبینی Pull Requestهای مستندات راه بسیار خوبی برای معرفی خود به جامعه Kubernetes است؛ +به شما کمک می‌کند با پایگاه کد آشنا شوید و اعتماد سایر مشارکت‌کنندگان را جلب کنید. + +پیش از بازبینی، بهتر است: + +- [راهنمای محتوا](/docs/contribute/style/content-guide/) و + [راهنمای سبک](/docs/contribute/style/style-guide/) را بخوانید تا بتوانید نظرهای آگاهانه بگذارید. +- با [نقش‌ها و مسئولیت‌ها](/docs/contribute/participate/roles-and-responsibilities/)‌ + در جامعه مستندات Kubernetes آشنا شوید. + +<!-- body --> + +## پیش از شروع + +پیش از آن‌که بازبینی را آغاز کنید: + +- [کد رفتار CNCF](https://github.com/cncf/foundation/blob/main/code-of-conduct.md) را بخوانید + و در همه زمان‌ها به آن پایبند باشید. +- مؤدب، ملاحظه‌کار و یاری‌رسان باشید. +- علاوه بر تغییرات، بر جنبه‌های مثبت PRها نیز نظر بگذارید. +- همدل باشید و در نظر داشته باشید بازبینی شما چگونه دریافت می‌شود. +- نیت خوب را فرض کنید و پرسش‌های روشن‌کننده بپرسید. +- مشارکت‌کنندگان باتجربه، با مشارکت‌کنندگان تازه‌ای که کارشان نیاز به تغییرات گسترده دارد جفت شوید. + +## فرایند بازبینی + +به‌طور کلی، Pull Requestها را از نظر محتوا و سبک به زبان انگلیسی بازبینی کنید. +شکل ۱ گام‌های فرایند بازبینی را نشان می‌دهد؛ جزئیات هر گام در ادامه آمده است. + +<!-- See https://github.com/kubernetes/website/issues/28808 for live-editor URL to this figure --> +<!-- You can also cut/paste the mermaid code into the live editor at https://mermaid-js.github.io/mermaid-live-editor to play around with it --> + +{{< mermaid >}} +flowchart LR + subgraph fourth[Start review] + direction TB + S[ ] -.- + M[add comments] --> N[review changes] + N --> O[new contributors should<br>choose Comment] + end + subgraph third[Select PR] + direction TB + T[ ] -.- + J[read description<br>and comments]--> K[preview changes in<br>Netlify preview build] + end + + A[Review open PR list]--> B[Filter open PRs<br>by label] + B --> third --> fourth + + +classDef grey fill:#dddddd,stroke:#ffffff,stroke-width:px,color:#000000, font-size:15px; +classDef white fill:#ffffff,stroke:#000,stroke-width:px,color:#000,font-weight:bold +classDef spacewhite fill:#ffffff,stroke:#fff,stroke-width:0px,color:#000 +class A,B,J,K,M,N,O grey +class S,T spacewhite +class third,fourth white +{{</ mermaid >}} + +شکل ۱. گام‌های فرایند بازبینی. + +1. به نشانی [https://github.com/kubernetes/website/pulls](https://github.com/kubernetes/website/pulls) بروید. + فهرستی از همه Pull Requestهای باز برای وب‌سایت و مستندات Kubernetes را می‌بینید. + +2. Pull Requestهای باز را با استفاده از یک یا همه برچسب‌های زیر فیلتر کنید: + + - `cncf-cla: yes` (پیشنهاد می‌شود): PRهایی که نویسنده آن‌ها CLA را امضا نکرده است نمی‌توانند ادغام شوند. + برای اطلاعات بیش‌تر، [امضای CLA](/docs/contribute/new-content/#sign-the-cla) را ببینید. + - `language/en` (پیشنهاد می‌شود): فقط PRهای زبان انگلیسی را فیلتر می‌کند. + - `size/<size>`: PRها را بر اساس اندازه فیلتر می‌کند. اگر تازه‌کار هستید، با PRهای کوچک‌تر شروع کنید. + + همچنین مطمئن شوید PR با برچسب «work in progress» علامت‌گذاری نشده باشد؛ + چنین PRهایی هنوز آماده بازبینی نیستند. + +3. پس از انتخاب یک PR برای بازبینی، تغییر را با انجام این کارها درک کنید: + + - توضیح PR را بخوانید تا تغییرات را بفهمید و Issueهای لینک‌شده را ببینید. + - نظرهای سایر بازبین‌ها را بخوانید. + - روی زبانه **Files changed** کلیک کنید تا فایل‌ها و خطوط تغییر یافته را ببینید. + - برای پیش‌نمایش تغییرات، در انتهای زبانه **Conversation** به بخش بررسی ساخت Netlify بروید. + در آن‌جا روی لینک **Details** خط **deploy/netlify** کلیک کنید تا پیش‌نمایش باز شود. + {{< figure src="/images/docs/github_netlify_deploy_preview.png" alt="جزئیات Pull Request در GitHub شامل لینک به پیش‌نمایش Netlify" >}} + +4. به زبانه **Files changed** بروید تا بازبینی را آغاز کنید. + + 1. روی نماد `+` کنار خطی که می‌خواهید نظر بدهید کلیک کنید. + 1. نظر خود را درباره آن خط بنویسید و روی **Add single comment** (اگر تنها یک نظر دارید) یا + **Start a review** (اگر چند نظر دارید) کلیک کنید. + 1. پس از پایان، در بالای صفحه روی **Review changes** کلیک کنید. اینجا می‌توانید + خلاصه‌ای از بازبینی خود (و چند نظر مثبت برای مشارکت‌کننده!) بنویسید. لطفاً همیشه از دکمه "Comment" استفاده کنید. + + - هنگام پایان بازبینی، از کلیک روی دکمه "Request changes" پرهیز کنید. + اگر می‌خواهید پیش از اعمال تغییرات بیشتر مانع ادغام PR شوید، می‌توانید کامنت `/hold` بگذارید. + دلیل hold را ذکر کنید و در صورت تمایل شرایط برداشتن آن را مشخص کنید. + + - هنگام پایان بازبینی، از کلیک روی دکمه "Approve" پرهیز کنید. + بیشتر مواقع گذاشتن کامنت `/approve` توصیه می‌شود. + +## چک‌لیست بازبینی + +هنگام بازبینی، از موارد زیر به‌عنوان نقطه شروع استفاده کنید. + +### زبان و دستور + +- ‌آیا خطاهای آشکاری در زبان یا دستور وجود دارد؟ آیا راه بهتری برای بیان یک جمله هست؟ + - روی زبان و دستور بخش‌هایی از صفحه که نویسنده تغییر داده تمرکز کنید. + مگر این‌که نویسنده آشکارا قصد به‌روزرسانی کل صفحه را داشته باشد، او الزام ندارد + همه اشکالات صفحه را برطرف کند. + - وقتی یک PR صفحه‌ای موجود را به‌روزرسانی می‌کند، روی بخش‌های تغییر یافته صفحه بازبینی کنید. + آن محتوا باید از نظر فنی و ویرایشی درست باشد. + اگر خطاهایی پیدا کردید که مستقیماً به هدف نویسنده مرتبط نیست، + آن را در یک Issue جداگانه مطرح کنید (البته ابتدا مطمئن شوید Issue مشابهی وجود ندارد). + - مراقب Pull Requestهایی باشید که محتوا را _جابه‌جا_ می‌کنند. اگر نویسنده صفحه‌ای را + تغییر نام می‌دهد یا دو صفحه را ادغام می‌کند، معمولاً از او نمی‌خواهیم + همه ایرادهای املایی یا دستوری موجود در محتوای جابه‌جا شده را برطرف کند. +- آیا واژه‌های پیچیده یا کهنه‌ای هست که بتوان آن‌ها را با واژه‌ای ساده‌تر جایگزین کرد؟ +- آیا واژه، اصطلاح یا عبارتی هست که بتوان آن را با جایگزینی غیرتبعیض‌آمیز عوض کرد؟ +- آیا انتخاب واژه و حروف بزرگ/کوچک کردن آن با [راهنمای سبک](/docs/contribute/style/style-guide/) هماهنگ است؟ +- آیا جمله‌های طولانی وجود دارد که می‌تواند کوتاه‌تر یا ساده‌تر شود؟ +- آیا پاراگراف‌های طولانی وجود دارد که شاید به‌صورت فهرست یا جدول بهتر باشند؟ + +### محتوا + +- آیا محتوای مشابهی در جای دیگری از سایت Kubernetes وجود دارد؟ +- آیا محتوا بیش از حد به اسنادی بیرون از سایت، وابسته به یک فروشنده خاص یا غیر منبع‌باز لینک می‌دهد؟ + +### مستندات + +چند بررسی که باید در نظر گرفت: + +- آیا این PR عنوان، اسلاگ/علیاس یا پیوند لنگری صفحه‌ای را تغییر داده یا حذف کرده است؟ + اگر بله، آیا در نتیجه این PR لینک‌های شکسته‌ای ایجاد شده است؟ + آیا گزینه دیگری مثل تغییر عنوان صفحه بدون تغییر اسلاگ وجود دارد؟ + +- آیا PR صفحه‌ای جدید اضافه می‌کند؟ اگر بله: + - آیا صفحه از [نوع محتوای درست](/docs/contribute/style/page-content-types/) و شورتکدهای مرتبط Hugo استفاده می‌کند؟ + - آیا صفحه در ناوبری جانبی آن بخش به‌درستی نمایش داده می‌شود (یا اصلاً نمایش داده می‌شود)؟ + - آیا باید صفحه در فهرست [صفحه اصلی اسناد](/docs/home/) ظاهر شود؟ + +- آیا تغییرات در پیش‌نمایش Netlify نمایش داده می‌شوند؟ درباره فهرست‌ها، بلاک‌های کد، جدول‌ها، + نکته‌ها و تصاویر دقیق باشید. + +### وبلاگ + +بازخورد زودهنگام درباره پست‌های وبلاگ از طریق Google Doc یا HackMD استقبال می‌شود. +لطفاً در صورت امکان زود از کانال Slack [`#sig-docs-blog`](https://kubernetes.slack.com/archives/CJDHVD54J) درخواست نظر کنید. + +پیش از بازبینی PRهای وبلاگ، با [راهنمای وبلاگ](/docs/contribute/blog/guidelines/) +و [ارسال پست وبلاگ و مطالعات موردی](/docs/contribute/new-content/blogs-case-studies/) آشنا باشید. + +همچنین درباره مقالات [سبز](/docs/contribute/blog/#maintenance-evergreen) و نحوه تصمیم‌گیری درباره سبز بودن مقاله اطلاعات داشته باشید. + +مقالات وبلاگ ممکن است شامل [نقل‌قول مستقیم](https://en.wikipedia.org/wiki/Direct_discourse) و +[گفتار غیرمستقیم](https://en.wikipedia.org/wiki/Indirect_speech) باشند. +برای متنی که به فردی نسبت داده شده یا بخشی از گفت‌وگویی واقعی است، پیشنهاد بازنویسی ندهید—حتی اگر +دستور گوینده اصلی درست نباشد. در این موارد همچنین سعی کنید علامات نگارشی پیشنهادی نویسنده را +(مگر واضحاً غلط باشد) حفظ کنید. + +به‌عنوان پروژه، فقط زمانی مقالات وبلاگ را با برچسب نگه‌داری (`evergreen: true` در front matter) علامت می‌کنیم +که پروژه Kubernetes متعهد باشد آن‌ها را به‌طور نامحدود نگه‌داری کند. +برخی مقالات شایسته این هستند و ما همیشه اعلان‌های انتشار را سبز علامت می‌کنیم. +اگر درباره نحوه بازبینی این مورد مطمئن نیستید، با سایر مشارکت‌کنندگان مشورت کنید. + +[راهنمای محتوا](/docs/contribute/style/content-guide/) بدون قید و شرط بر مقالات وبلاگ +و PRهایی که آن‌ها را اضافه می‌کنند اعمال می‌شود. به یاد داشته باشید برخی محدودیت‌ها فقط +به مستندات مربوط‌اند و برای مقالات وبلاگ صدق نمی‌کنند. + +بررسی کنید که منبع Markdown از نوع مناسب [محتوای صفحه](/docs/contribute/style/page-content-types/) +و / یا `layout` مناسب استفاده می‌کند. + +### سایر + +مراقب [ویرایش‌های جزئی](https://www.kubernetes.dev/docs/guide/pull-requests/#trivial-edits) باشید؛ +اگر تغییری را ویرایش جزئی تشخیص می‌دهید، این سیاست را یادآور شوید +(اگر واقعاً بهبود است، قبول تغییر اشکالی ندارد). + +نویسندگان را تشویق کنید در صورت انجام اصلاحات فاصله/Whitespace، +آن را در نخستین کامیت PR اعمال کنند و سپس تغییرات دیگر را اضافه کنند. +این کار ادغام و بازبینی را ساده‌تر می‌کند. به‌ویژه مراقب تغییر جزئی‌ای باشید که +در یک کامیت همراه با مقدار زیادی اصلاح فاصله انجام می‌شود؛ +در این حالت نویسنده را تشویق کنید آن را تفکیک کند. + +به‌عنوان بازبین، اگر مسائل کوچکی در PR یافتید که برای معنا حیاتی نیستند، مثل غلط‌های املایی +یا فاصله نادرست، نظر خود را با پیشوند `nit:` بنویسید. +این به نویسنده نشان می‌دهد این بخش از بازخورد شما غیر بحرانی است. + +اگر برای تأیید یک Pull Request در نظر هستید و همه بازخورد باقی‌مانده با `nit:` علامت خورده‌اند، +می‌توانید PR را ادغام کنید. در این صورت، اغلب ایجاد یک Issue برای نیت‌های باقی‌مانده مفید است. +بررسی کنید آیا می‌توانید شرایط برچسب [Good First Issue](https://www.kubernetes.dev/docs/guide/help-wanted/#good-first-issue) را برآورده کنید؛ اگر می‌توانید، چنین Issueهایی منبع خوبی هستند. diff --git a/content/fa/docs/contribute/suggesting-improvements.md b/content/fa/docs/contribute/suggesting-improvements.md new file mode 100644 index 0000000000000..1930c4fddb059 --- /dev/null +++ b/content/fa/docs/contribute/suggesting-improvements.md @@ -0,0 +1,51 @@ +--- +title: پیشنهاد بهبود محتوا +content_type: concept +weight: 20 +card: + name: contribute + weight: 15 + anchors: + - anchor: "#opening-an-issue" + title: پیشنهاد بهبود محتوا +--- + +<!-- overview --> + +اگر متوجه مشکلی در مستندات کوبرنتیز شدید یا ایده‌ای برای محتوای جدید دارید، یک مشکل را باز کنید. تنها چیزی که نیاز دارید یک [حساب GitHub](https://github.com/join) و یک مرورگر وب است. + +در بیشتر موارد، کار جدید روی مستندات کوبرنتیز با یک مشکل در GitHub آغاز می‌شود. سپس مشارکت‌کنندگان کوبرنتیز مشکلات را بررسی، دسته‌بندی و در صورت نیاز برچسب‌گذاری می‌کنند. در مرحله بعد، شما یا یکی دیگر از اعضای جامعه کوبرنتیز یک درخواست ادغام با تغییراتی برای حل مشکل باز می‌کنید. + + +<!-- body --> + +## باز کردن یک مسئله + +اگر می‌خواهید برای محتوای موجود پیشنهاد بهبود بدهید یا متوجه خطایی شوید، یک مشکل (issue) باز کنید. + +1. روی پیوند **ایجاد یک مشکل** در نوار کناری سمت راست کلیک کنید. این شما را به صفحه مشکل GitHub که از قبل با برخی هدرها پر شده است، هدایت می‌کند. +2. مشکل یا پیشنهادی برای بهبود ارائه دهید. تا جایی که می‌توانید جزئیات بیشتری ارائه دهید. +3. روی **ارسال موضوع جدید** کلیک کنید. + +پس از ارسال، گهگاهی مشکل خود را بررسی کنید یا اعلان‌های گیت‌هاب را روشن کنید. داوران و سایر اعضای جامعه ممکن است قبل از اینکه بتوانند در مورد مشکل شما اقدامی انجام دهند، سوالاتی بپرسند. + +## پیشنهاد محتوای جدید + +اگر ایده‌ای برای محتوای جدید دارید، اما مطمئن نیستید که باید به کجا برود، هنوز می‌توانید یک مشکل را ثبت کنید. یا: + +- یک صفحه موجود در بخشی که فکر می‌کنید محتوا به آن تعلق دارد را انتخاب کنید و روی **ایجاد یک مشکل** کلیک کنید. +- به [GitHub](https://github.com/kubernetes/website/issues/new/) بروید و مشکل را مستقیماً ثبت کنید. + +## چگونه مسائل مهم را ثبت کنیم + + +هنگام طرح مسئله، موارد زیر را در نظر داشته باشید: + +- شرح مسئله را به طور واضح ارائه دهید. توضیح دهید که دقیقاً چه چیزی کم، قدیمی، اشتباه یا نیاز به بهبود دارد. +- تأثیر خاص این مشکل بر کاربران را توضیح دهید. +- دامنه یک مسئله مشخص را به یک واحد کاری معقول محدود کنید. برای مشکلاتی با دامنه وسیع، آنها را به مسائل کوچکتر تقسیم کنید. برای مثال، «رفع اسناد امنیتی» بسیار کلی است، اما «افزودن جزئیات به موضوع «محدود کردن دسترسی به شبکه»» به اندازه کافی خاص است که قابل اجرا باشد. +- مشکلات موجود را جستجو کنید تا ببینید آیا مورد مرتبط یا مشابهی با مشکل جدید وجود دارد یا خیر. +- اگر مشکل جدید مربوط به مشکل یا درخواست ادغام دیگری است، آن را یا با نشانی اینترنتی کامل آن یا با شماره مشکل یا درخواست ادغام که با پیشوند `#` همراه است، ارجاع دهید. برای مثال، `معرفی شده توسط #987654`. +- از [قوانین رفتاری](/community/code-of-conduct/) پیروی کنید. به همکاران خود احترام بگذارید. برای مثال، «اسناد افتضاح هستند» بازخورد مفید یا مودبانه‌ای نیست. + + diff --git a/content/fa/docs/doc-contributor-tools/linkchecker/README.md b/content/fa/docs/doc-contributor-tools/linkchecker/README.md new file mode 100644 index 0000000000000..a388f16689cdb --- /dev/null +++ b/content/fa/docs/doc-contributor-tools/linkchecker/README.md @@ -0,0 +1,78 @@ +# ابزار بررسی پیوند ‌های داخلی + +شما می‌توانید از [htmltest](https://github.com/wjdp/htmltest) برای بررسی پیوند‌های خراب در [`/content/en/`](https://git.k8s.io/website/content/en/) استفاده کنید. این ابزار هنگام بازسازی بخش‌هایی از محتوا، جابجایی صفحات یا تغییر نام فایل‌ها یا سرصفحه‌های صفحه مفید است + +## نحوه عملکرد ابزار + +`htmltest` پیوند ‌های موجود در فایل‌های HTML تولید شده از مخزن وب‌سایت کوبرنتیز را بررسی می‌کند. این ابزار با استفاده از دستور `make` اجرا می‌شود که کارهای زیر را انجام می‌دهد: + +- سایت را می‌سازد و HTML خروجی را در دایرکتوری `/public` مخزن محلی `kubernetes/website` شما تولید می‌کند +- فایل ایمیج داکر `wdjp/htmltest` را دریافت می‌کند +- مخزن محلی `kubernetes/website` شما را روی ایمیج داکر نصب می‌کند +- فایل‌های تولید شده در دایرکتوری `/public` را بررسی می‌کند و در صورت مواجهه با پیوند ‌های داخلی خراب، خروجی خط فرمان ارائه می‌دهد + +## چه چیزهایی را بررسی می‌کند و چه چیزهایی را بررسی نمی‌کند + +بررسی‌کننده‌ی پیوند، فایل‌های HTML تولید شده را بررسی می‌کند، نه فایل‌های Markdown خام. + +ابزار htmltest برای تعیین اینکه کدام محتوا را بررسی کند، به یک فایل پیکربندی، [`.htmltest.yml`](https://git.k8s.io/website/.htmltest.yml)، وابسته است + +بررسی‌کننده پیوند موارد زیر را اسکن می‌کند: + +- تمام محتوای تولید شده از Markdown در دایرکتوری [`/content/en/docs`](https://git.k8s.io/website/content/en/docs/) به استثنای: + - مراجع API تولید شده، به عنوان مثال +https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18 +- تمام پیوندهای داخلی، به جز: + - هش‌های خالی (`<a href="#">` یا `[title](#)`) و hrefهای خالی (`<a href="">` یا `[title]()`) + - پیوند ‌های داخلی به تصاویر و سایر فایل‌های رسانه‌ای + +بررسی‌کننده پیوند موارد زیر را اسکن نمی‌کند: +- پیوندهای موجود در نوارهای ناوبری بالا و کناری، پیوندهای پاورقی یا پیوندهای موجود در بخش `<head>` صفحه، مانند پیوندهایی به شیوه‌نامه‌های CSS، اسکریپت‌ها و اطلاعات متا +- صفحات سطح بالا و فرزندان آنها، برای مثال: `/training`، `/community`، `/case-studies/adidas` +- پست های تارنگار +- مستندات مرجع API، به عنوان مثال +https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18 +- Localizations + +## پیش نیازها و نصب + +موارد نصبی : + +* [Docker](https://docs.docker.com/get-docker/) +* [make](https://www.gnu.org/software/make/) + +## اجرای بررسی‌کننده پیوند + +برای اجرای بررسی‌کننده پیوند: + +1. به دایرکتوری ریشه مخزن محلی `kubernetes/website` خود بروید. + +2. دستور زیر را اجرا کنید: + + ```shell + make container-internal-linkcheck + ``` + +## درک خروجی + +اگر بررسی‌کننده پیوند، پیوندهای خراب را پیدا کند، خروجی مشابه زیر خواهد بود: +``` +tasks/access-kubernetes-api/custom-resources/index.html + hash does not exist --- tasks/access-kubernetes-api/custom-resources/index.html --> #preserving-unknown-fields + hash does not exist --- tasks/access-kubernetes-api/custom-resources/index.html --> #preserving-unknown-fields +``` + +این یک مجموعه از پیوند های خراب است. گزارش برای هر صفحه با پیوند‌های خراب، یک خروجی اضافه می‌کند. + +در این خروجی، فایلی که پیوند ‌های خراب دارد، `tasks/access-kubernetes-api/custom-resources.md` است.. + +این ابزار دلیلش را این گونه بیان می‌کند: «هش وجود ندارد». در بیشتر موارد، می‌توانید این دلیل را نادیده بگیرید. +پیوند اینترنتی مورد نظر `#preserving-unknown-fields` است. + +یک راه برای رفع این مشکل این است که: + +1. به فایل Markdown با پیوند خراب بروید. +1. با استفاده از یک ویرایشگر متن، یک جستجوی متن کامل (معمولاً Ctrl+F یا Command+F) برای URL پیوند خراب، `#preserving-unknown-fields` انجام دهید. +1. پیوند را اصلاح کنید. برای پیوند خراب هش صفحه (یا _anchor_)، بررسی کنید که آیا موضوع تغییر نام داده شده یا حذف شده است. + +برای اطمینان از رفع پیوند‌های خراب، htmltest را اجرا کنید. \ No newline at end of file diff --git a/content/fa/docs/home/_index.md b/content/fa/docs/home/_index.md new file mode 100644 index 0000000000000..318c39edbc497 --- /dev/null +++ b/content/fa/docs/home/_index.md @@ -0,0 +1,67 @@ +--- +approvers: +- xirehat +title: مستندات کوبرنتیز +noedit: true +cid: docsHome +layout: docsportal_home +class: gridPage gridPageHome +linkTitle: "مستندات" +main_menu: true +weight: 10 +hide_feedback: true +menu: + main: + title: "مستندات" + weight: 10 +description: > + کوبرنتیز یک موتور هماهنگ‌سازی کانتینر متن‌باز برای خودکارسازی استقرار، مقیاس‌پذیری و مدیریت برنامه‌های کانتینری است. این پروژه متن‌باز توسط Cloud Native Computing Foundation میزبانی می‌شود. +overview: > + کوبرنتیز یک موتور ارکستراسیون کانتینر متن‌باز برای خودکارسازی استقرار، مقیاس‌گذاری و مدیریت برنامه‌های کانتینری است. این پروژه متن‌باز توسط Cloud Native Computing Foundation (<a href="https://www.cncf.io/about">CNCF</a>) میزبانی می‌شود. +cards: +- name: concepts + title: "کوبرنتیز را درک کنید" + description: "آشنایی با کوبرنتیز و مفاهیم پایه آن." + button: "مشاهده مفاهیم" + button_path: "/docs/concepts" +- name: tutorials + title: "کوبرنتیز را امتحان کنید" + description: "برای یادگیری نحوه استقرار برنامه‌ها در کوبرنتیز، آموزش‌ها را دنبال کنید.." + button: "مشاهده آموزش‌ها" + button_path: "/docs/tutorials" +- name: setup + title: "یک خوشه کوبرنتیز راه‌اندازی کنید" + description: "اجرای کوبرنتیز بر اساس منابع و نیازهای شما." + button: "کوبرنتیز را راه‌اندازی کنید" + button_path: "/docs/setup" +- name: tasks + title: "یادگیری استفاده از کوبرنتیز" + description: "وظایف رایج و نحوه انجام آنها را با استفاده از یک توالی کوتاه از مراحل دنبال کنید." + button: "مشاهده وظایف" + button_path: "/docs/tasks" +- name: reference + title: جستجوی اطلاعات مرجع + description: مرور اصطلاحات، نحو خط فرمان، انواع منابع API و مستندات ابزار راه‌اندازی. + button: مشاهده مرجع + button_path: /docs/reference +- name: contribute + title: مشارکت در کوبرنتیز + description: دریابید که چگونه می‌توانید به بهبود کوبرنتیز کمک کنید. + button: راه‌های مشارکت را ببینید + button_path: "/docs/contribute" +- name: training + title: "آموزش" + description: "گواهینامه کوبرنتیز را دریافت کنید و پروژه‌های Cloud Native خود را با موفقیت به انجام برسانید.!" + button: "مشاهده آموزش" + button_path: "/training" +- name: Download + title: دانلود کوبرنتیز + description: کوبرنتیز را نصب کنید یا به جدیدترین نسخه ارتقا دهید. + button: "دانلود کوبرنتیز" + button_path: "/releases/download" +- name: about + title: درباره مستندات + description: این تارنما شامل مستندات مربوط به نسخه فعلی و ۴ نسخه قبلی کوبرنتیز است. + button: "نسخه‌های موجود را ببینید" + button_path: "/docs/home/supported-doc-versions" +--- diff --git a/content/fa/docs/home/supported-doc-versions.md b/content/fa/docs/home/supported-doc-versions.md new file mode 100644 index 0000000000000..bb52490d2b697 --- /dev/null +++ b/content/fa/docs/home/supported-doc-versions.md @@ -0,0 +1,10 @@ +--- +title: نسخه‌های مستندات موجود +content_type: custom +layout: supported-versions +weight: 10 +--- + +این وب‌سایت شامل مستندات نسخه فعلی کوبرنتیز و چهار نسخه پیشین آن است. + +وجود مستندات برای یک نسخه کوبرنتیز لزوماً به معنای پشتیبانی فعلی از آن انتشار نیست. برای آگاهی از این‌که کدام نسخه‌های کوبرنتیز به‌طور رسمی پشتیبانی می‌شوند و این پشتیبانی چه مدت ادامه دارد، [دوره پشتیبانی](/releases/patch-releases/#support-period) را مطالعه کنید. diff --git a/content/fa/docs/images/diagram-guide-example-3.svg b/content/fa/docs/images/diagram-guide-example-3.svg new file mode 100644 index 0000000000000..85fef139102a5 --- /dev/null +++ b/content/fa/docs/images/diagram-guide-example-3.svg @@ -0,0 +1 @@ +<svg id="graph-div" width="100%" xmlns="http://www.w3.org/2000/svg" height="747" style="max-width: 1540px;" viewBox="-50 -10 1540 747"><style>#graph-div {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#000000;}#graph-div .error-icon{fill:#552222;}#graph-div .error-text{fill:#552222;stroke:#552222;}#graph-div .edge-thickness-normal{stroke-width:2px;}#graph-div .edge-thickness-thick{stroke-width:3.5px;}#graph-div .edge-pattern-solid{stroke-dasharray:0;}#graph-div .edge-pattern-dashed{stroke-dasharray:3;}#graph-div .edge-pattern-dotted{stroke-dasharray:2;}#graph-div .marker{fill:#666;stroke:#666;}#graph-div .marker.cross{stroke:#666;}#graph-div svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#graph-div .actor{stroke:hsl(0, 0%, 83%);fill:#eee;}#graph-div text.actor>tspan{fill:#333;stroke:none;}#graph-div .actor-line{stroke:#666;}#graph-div .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#graph-div .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#graph-div #arrowhead path{fill:#333;stroke:#333;}#graph-div .sequenceNumber{fill:white;}#graph-div #sequencenumber{fill:#333;}#graph-div #crosshead path{fill:#333;stroke:#333;}#graph-div .messageText{fill:#333;stroke:#333;}#graph-div .labelBox{stroke:hsl(0, 0%, 83%);fill:#eee;}#graph-div .labelText,#graph-div .labelText>tspan{fill:#333;stroke:none;}#graph-div .loopText,#graph-div .loopText>tspan{fill:#333;stroke:none;}#graph-div .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(0, 0%, 83%);fill:hsl(0, 0%, 83%);}#graph-div .note{stroke:#999;fill:#666;}#graph-div .noteText,#graph-div .noteText>tspan{fill:#fff;stroke:none;}#graph-div .activation0{fill:#f4f4f4;stroke:#666;}#graph-div .activation1{fill:#f4f4f4;stroke:#666;}#graph-div .activation2{fill:#f4f4f4;stroke:#666;}#graph-div .actorPopupMenu{position:absolute;}#graph-div .actorPopupMenuPanel{position:absolute;fill:#eee;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#graph-div .actor-man line{stroke:hsl(0, 0%, 83%);fill:#eee;}#graph-div .actor-man circle,#graph-div line{stroke:hsl(0, 0%, 83%);fill:#eee;stroke-width:2px;}#graph-div :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g></g><defs><symbol id="computer" width="24" height="24"><path transform="scale(.5)" d="M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"></path></symbol></defs><defs><symbol id="database" fill-rule="evenodd" clip-rule="evenodd"><path transform="scale(.5)" d="M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"></path></symbol></defs><defs><symbol id="clock" width="24" height="24"><path transform="scale(.5)" d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"></path></symbol></defs><line id="actor14" x1="75" y1="80" x2="75" y2="681" class="200" stroke-width="0.5px" stroke="#999"></line><g class="actor-man"><line id="actor-man-torso14" x1="75" y1="25" x2="75" y2="45"></line><line id="actor-man-arms14" x1="57" y1="33" x2="93" y2="33"></line><line x1="57" y1="60" x2="75" y2="45"></line><line x1="75" y1="45" x2="91" y2="60"></line><circle cx="75" cy="10" r="15" width="150" height="65"></circle><text x="75" y="67.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="75" dy="0">me</tspan></text></g><g><line id="actor15" x1="357" y1="5" x2="357" y2="681" class="200" stroke-width="0.5px" stroke="#999"></line><g id="root-15"><rect x="282" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="357" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="357" dy="-14">control plane</tspan></text><text x="357" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="357" dy="0"></tspan></text><text x="357" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="357" dy="14">api-server</tspan></text></g></g><g><line id="actor16" x1="561" y1="5" x2="561" y2="681" class="200" stroke-width="0.5px" stroke="#999"></line><g id="root-16"><rect x="486" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="561" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="561" dy="-14">control plane</tspan></text><text x="561" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="561" dy="0"></tspan></text><text x="561" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="561" dy="14">etcd datastore</tspan></text></g></g><g><line id="actor17" x1="761" y1="5" x2="761" y2="681" class="200" stroke-width="0.5px" stroke="#999"></line><g id="root-17"><rect x="686" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="761" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="761" dy="-21">control plane</tspan></text><text x="761" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="761" dy="-7"></tspan></text><text x="761" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="761" dy="7">controller</tspan></text><text x="761" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="761" dy="21">manager</tspan></text></g></g><g><line id="actor18" x1="961" y1="5" x2="961" y2="681" class="200" stroke-width="0.5px" stroke="#999"></line><g id="root-18"><rect x="886" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="961" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="961" dy="-14">control plane</tspan></text><text x="961" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="961" dy="0"></tspan></text><text x="961" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="961" dy="14">scheduler</tspan></text></g></g><g><line id="actor19" x1="1161" y1="5" x2="1161" y2="681" class="200" stroke-width="0.5px" stroke="#999"></line><g id="root-19"><rect x="1086" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="1161" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="1161" dy="-14">node</tspan></text><text x="1161" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="1161" dy="0"></tspan></text><text x="1161" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="1161" dy="14">kubelet</tspan></text></g></g><g><line id="actor20" x1="1365" y1="5" x2="1365" y2="681" class="200" stroke-width="0.5px" stroke="#999"></line><g id="root-20"><rect x="1290" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="1365" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="1365" dy="-21">node</tspan></text><text x="1365" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="1365" dy="-7"></tspan></text><text x="1365" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="1365" dy="7">container</tspan></text><text x="1365" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="1365" dy="21">runtime</tspan></text></g></g><defs><marker id="arrowhead" refX="9" refY="5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z"></path></marker></defs><defs><marker id="crosshead" markerWidth="15" markerHeight="8" orient="auto" refX="16" refY="4"><path fill="black" stroke="#000000" stroke-width="1px" d="M 9,2 V 6 L16,4 Z" style="stroke-dasharray: 0, 0;"></path><path fill="none" stroke="#000000" stroke-width="1px" d="M 0,1 L 6,7 M 6,1 L 0,7" style="stroke-dasharray: 0, 0;"></path></marker></defs><defs><marker id="filled-head" refX="18" refY="7" markerWidth="20" markerHeight="28" orient="auto"><path d="M 18,7 L9,13 L14,7 L9,1 Z"></path></marker></defs><defs><marker id="sequencenumber" refX="15" refY="15" markerWidth="60" markerHeight="40" orient="auto"><circle cx="15" cy="15" r="6"></circle></marker></defs><text x="216" y="80" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial, sans-serif; font-size: 16px; font-weight: 400;">1. kubectl create -f pod.yaml</text><line x1="75" y1="113" x2="357" y2="113" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><text x="459" y="128" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial, sans-serif; font-size: 16px; font-weight: 400;">2. save new state</text><line x1="357" y1="161" x2="561" y2="161" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line><text x="559" y="176" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial, sans-serif; font-size: 16px; font-weight: 400;">3. check for changes</text><line x1="761" y1="209" x2="357" y2="209" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><text x="659" y="224" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial, sans-serif; font-size: 16px; font-weight: 400;">4. watch for unassigned pods(s)</text><line x1="961" y1="257" x2="357" y2="257" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><text x="659" y="272" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial, sans-serif; font-size: 16px; font-weight: 400;">5. notify about pod w nodename=" "</text><line x1="357" y1="305" x2="961" y2="305" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><text x="659" y="320" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial, sans-serif; font-size: 16px; font-weight: 400;">6. assign pod to node</text><line x1="961" y1="353" x2="357" y2="353" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><text x="459" y="368" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial, sans-serif; font-size: 16px; font-weight: 400;">7. save new state</text><line x1="357" y1="401" x2="561" y2="401" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line><text x="759" y="416" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial, sans-serif; font-size: 16px; font-weight: 400;">8. look for newly assigned pod(s)</text><line x1="1161" y1="449" x2="357" y2="449" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><text x="759" y="464" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial, sans-serif; font-size: 16px; font-weight: 400;">9. bind pod to node</text><line x1="357" y1="497" x2="1161" y2="497" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><text x="1263" y="512" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial, sans-serif; font-size: 16px; font-weight: 400;">10. start container</text><line x1="1161" y1="545" x2="1365" y2="545" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><text x="759" y="560" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial, sans-serif; font-size: 16px; font-weight: 400;">11. update pod status</text><line x1="1161" y1="593" x2="357" y2="593" class="messageLine0" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="fill: none;"></line><text x="459" y="608" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-family: "trebuchet ms", verdana, arial, sans-serif; font-size: 16px; font-weight: 400;">12. save new state</text><line x1="357" y1="641" x2="561" y2="641" class="messageLine1" stroke-width="2" stroke="none" marker-end="url(#arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"></line><g class="actor-man"><line id="actor-man-torso20" x1="75" y1="686" x2="75" y2="706"></line><line id="actor-man-arms20" x1="57" y1="694" x2="93" y2="694"></line><line x1="57" y1="721" x2="75" y2="706"></line><line x1="75" y1="706" x2="91" y2="721"></line><circle cx="75" cy="671" r="15" width="150" height="65"></circle><text x="75" y="728.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="75" dy="0">me</tspan></text></g><g><rect x="282" y="661" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="357" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="357" dy="-14">control plane</tspan></text><text x="357" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="357" dy="0"></tspan></text><text x="357" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="357" dy="14">api-server</tspan></text></g><g><rect x="486" y="661" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="561" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="561" dy="-14">control plane</tspan></text><text x="561" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="561" dy="0"></tspan></text><text x="561" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="561" dy="14">etcd datastore</tspan></text></g><g><rect x="686" y="661" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="761" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="761" dy="-21">control plane</tspan></text><text x="761" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="761" dy="-7"></tspan></text><text x="761" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="761" dy="7">controller</tspan></text><text x="761" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="761" dy="21">manager</tspan></text></g><g><rect x="886" y="661" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="961" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="961" dy="-14">control plane</tspan></text><text x="961" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="961" dy="0"></tspan></text><text x="961" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="961" dy="14">scheduler</tspan></text></g><g><rect x="1086" y="661" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="1161" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="1161" dy="-14">node</tspan></text><text x="1161" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="1161" dy="0"></tspan></text><text x="1161" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="1161" dy="14">kubelet</tspan></text></g><g><rect x="1290" y="661" fill="#eaeaea" stroke="#666" width="150" height="65" rx="3" ry="3" class="actor"></rect><text x="1365" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="1365" dy="-21">node</tspan></text><text x="1365" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="1365" dy="-7"></tspan></text><text x="1365" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="1365" dy="7">container</tspan></text><text x="1365" y="693.5" dominant-baseline="central" alignment-baseline="central" class="actor" style="text-anchor: middle; font-size: 14px; font-weight: 400; font-family: Open-Sans, "sans-serif";"><tspan x="1365" dy="21">runtime</tspan></text></g></svg> \ No newline at end of file diff --git a/content/fa/docs/images/gateway-kind-relationships.svg b/content/fa/docs/images/gateway-kind-relationships.svg new file mode 100644 index 0000000000000..cca73e75ce74f --- /dev/null +++ b/content/fa/docs/images/gateway-kind-relationships.svg @@ -0,0 +1 @@ +<svg id="graph-div" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" height="130" style="max-width: 465.6875px;" viewBox="0 0 465.6875 130"><style>#graph-div {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#graph-div .error-icon{fill:#552222;}#graph-div .error-text{fill:#552222;stroke:#552222;}#graph-div .edge-thickness-normal{stroke-width:2px;}#graph-div .edge-thickness-thick{stroke-width:3.5px;}#graph-div .edge-pattern-solid{stroke-dasharray:0;}#graph-div .edge-pattern-dashed{stroke-dasharray:3;}#graph-div .edge-pattern-dotted{stroke-dasharray:2;}#graph-div .marker{fill:#333333;stroke:#333333;}#graph-div .marker.cross{stroke:#333333;}#graph-div svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#graph-div .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#graph-div .cluster-label text{fill:#333;}#graph-div .cluster-label span{color:#333;}#graph-div .label text,#graph-div span{fill:#333;color:#333;}#graph-div .node rect,#graph-div .node circle,#graph-div .node ellipse,#graph-div .node polygon,#graph-div .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#graph-div .node .label{text-align:center;}#graph-div .node.clickable{cursor:pointer;}#graph-div .arrowheadPath{fill:#333333;}#graph-div .edgePath .path{stroke:#333333;stroke-width:2.0px;}#graph-div .flowchart-link{stroke:#333333;fill:none;}#graph-div .edgeLabel{background-color:#e8e8e8;text-align:center;}#graph-div .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#graph-div .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#graph-div .cluster text{fill:#333;}#graph-div .cluster span{color:#333;}#graph-div div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#graph-div :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}#graph-div .plain>*{fill:#ddd!important;stroke:#fff!important;stroke-width:4px!important;color:#000!important;}#graph-div .plain span{fill:#ddd!important;stroke:#fff!important;stroke-width:4px!important;color:#000!important;}#graph-div .k8s>*{fill:#326ce5!important;stroke:#fff!important;stroke-width:4px!important;color:#fff!important;}#graph-div .k8s span{fill:#326ce5!important;stroke:#fff!important;stroke-width:4px!important;color:#fff!important;}#graph-div .cluster>*{fill:#fff!important;stroke:#bbb!important;stroke-width:2px!important;color:#326ce5!important;}#graph-div .cluster span{fill:#fff!important;stroke:#bbb!important;stroke-width:2px!important;color:#326ce5!important;}</style><g><g class="output"><g class="clusters"><g class="cluster" id="flowchart-cluster-721" transform="translate(232.84375,65)" style="opacity: 1;"><rect width="449.6875" height="114" x="-224.84375" y="-57"></rect><g class="label" transform="translate(0, -43)" id="graph-divText"><g transform="translate(-24.578125,-12)"><foreignObject width="49.15625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">cluster</div></foreignObject></g></g></g></g><g class="edgePaths"><g class="edgePath LS-gateway LE-gatewayclass" id="L-gateway-gatewayclass" style="opacity: 1;"><path class="path" d="M264.53125,65L268.6979166666667,65C272.8645833333333,65,281.1979166666667,65,289.53125,65C297.8645833333333,65,306.1979166666667,65,310.3645833333333,65L314.53125,65" marker-end="url(#arrowhead1117)" style="fill:none"></path><defs><marker id="arrowhead1117" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g><g class="edgePath LS-httproute1 LE-gateway" id="L-httproute1-gateway" style="opacity: 1;"><path class="path" d="M132.03125,65L136.19791666666666,65C140.36458333333334,65,148.69791666666666,65,157.03125,65C165.36458333333334,65,173.69791666666666,65,177.86458333333334,65L182.03125,65" marker-end="url(#arrowhead1118)" style="fill:none"></path><defs><marker id="arrowhead1118" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="6" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowheadPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker></defs></g></g><g class="edgeLabels"><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-gateway-gatewayclass" class="edgeLabel L-LS-gateway' L-LE-gatewayclass"></span></div></foreignObject></g></g><g class="edgeLabel" transform="" style="opacity: 1;"><g transform="translate(0,0)" class="label"><rect rx="0" ry="0" width="0" height="0"></rect><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;"><span id="L-L-httproute1-gateway" class="edgeLabel L-LS-httproute1' L-LE-gateway"></span></div></foreignObject></g></g></g><g class="nodes"><g class="node k8s" id="flowchart-gatewayclass-717" transform="translate(373.609375,65)" style="opacity: 1;"><rect rx="0" ry="0" x="-59.078125" y="-22" width="118.15625" height="44" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-49.078125,-12)"><foreignObject width="98.15625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">GatewayClass</div></foreignObject></g></g></g><g class="node k8s" id="flowchart-gateway-715" transform="translate(223.28125,65)" style="opacity: 1;"><rect rx="0" ry="0" x="-41.25" y="-22" width="82.5" height="44" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-31.25,-12)"><foreignObject width="62.5" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">Gateway</div></foreignObject></g></g></g><g class="node k8s" id="flowchart-httproute1-719" transform="translate(82.515625,65)" style="opacity: 1;"><rect rx="0" ry="0" x="-49.515625" y="-22" width="99.03125" height="44" class="label-container"></rect><g class="label" transform="translate(0,0)"><g transform="translate(-39.515625,-12)"><foreignObject width="79.03125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; white-space: nowrap;">HTTPRoute</div></foreignObject></g></g></g></g></g></g></svg> \ No newline at end of file diff --git a/content/fa/docs/images/gateway-request-flow.svg b/content/fa/docs/images/gateway-request-flow.svg new file mode 100644 index 0000000000000..a02852868ba2e --- /dev/null +++ b/content/fa/docs/images/gateway-request-flow.svg @@ -0,0 +1 @@ +<svg version="1.1" viewBox="0.0 0.0 821.0 113.0" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><clipPath id="p.0"><path d="m0 0l821.0 0l0 113.0l-821.0 0l0 -113.0z" clip-rule="nonzero"/></clipPath><g clip-path="url(#p.0)"><path fill="#000000" fill-opacity="0.0" d="m0 0l821.0 0l0 113.0l-821.0 0z" fill-rule="evenodd"/><path fill="#1155cc" d="m199.1693 28.55643l103.30708 0l0 66.4252l-103.30708 0z" fill-rule="evenodd"/><path stroke="#1155cc" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m199.1693 28.55643l103.30708 0l0 66.4252l-103.30708 0z" fill-rule="evenodd"/><path fill="#ffffff" d="m220.01613 63.78278l0 -2.25l5.8125 0l0 5.312496q-0.84375 0.828125 -2.453125 1.453125q-1.609375 0.625 -3.25 0.625q-2.09375 0 -3.65625 -0.875q-1.5625 -0.890625 -2.34375 -2.515625q-0.78125 -1.6406212 -0.78125 -3.5624962q0 -2.09375 0.875 -3.703125q0.875 -1.625 2.5625 -2.5q1.28125 -0.65625 3.203125 -0.65625q2.484375 0 3.875 1.046875q1.40625 1.03125 1.796875 2.875l-2.671875 0.5q-0.28125 -0.984375 -1.0625 -1.546875q-0.78125 -0.578125 -1.9375 -0.578125q-1.78125 0 -2.828125 1.125q-1.03125 1.125 -1.03125 3.328125q0 2.3749962 1.046875 3.5624962q1.0625 1.1875 2.78125 1.1875q0.84375 0 1.6875 -0.328125q0.859375 -0.328125 1.46875 -0.8125l0 -1.6874962l-3.09375 0zm10.198929 -1.8125l-2.328125 -0.421875q0.40625 -1.40625 1.359375 -2.078125q0.953125 -0.671875 2.84375 -0.671875q1.703125 0 2.546875 0.40625q0.84375 0.40625 1.171875 1.03125q0.34375 0.625 0.34375 2.28125l-0.015625 2.9999962q0 1.265625 0.109375 1.875q0.125 0.609375 0.46875 1.296875l-2.53125 0q-0.109375 -0.25 -0.25 -0.75q-0.0625 -0.234375 -0.09375 -0.3125q-0.65625 0.640625 -1.40625 0.96875q-0.734375 0.3125 -1.59375 0.3125q-1.484375 0 -2.34375 -0.8125q-0.859375 -0.8125 -0.859375 -2.046875q0 -0.828125 0.390625 -1.46875q0.390625 -0.6406212 1.09375 -0.9687462q0.703125 -0.34375 2.03125 -0.609375q1.796875 -0.328125 2.484375 -0.625l0 -0.25q0 -0.75 -0.359375 -1.0625q-0.359375 -0.3125 -1.375 -0.3125q-0.6875 0 -1.078125 0.28125q-0.375 0.265625 -0.609375 0.9375zm3.421875 2.0781212q-0.484375 0.15625 -1.5625 0.390625q-1.0625 0.21875 -1.390625 0.4375q-0.5 0.359375 -0.5 0.90625q0 0.53125 0.40625 0.9375q0.40625 0.390625 1.015625 0.390625q0.703125 0 1.328125 -0.46875q0.46875 -0.34375 0.609375 -0.84375q0.09375 -0.328125 0.09375 -1.25l0 -0.5zm9.485092 -5.031246l0 2.03125l-1.75 0l0 3.9062462q0 1.1875 0.046875 1.390625q0.046875 0.1875 0.21875 0.3125q0.1875 0.125 0.4375 0.125q0.359375 0 1.03125 -0.25l0.21875 2.0q-0.890625 0.375 -2.015625 0.375q-0.703125 0 -1.265625 -0.234375q-0.546875 -0.234375 -0.8125 -0.59375q-0.25 -0.375 -0.34375 -1.0q-0.09375 -0.453125 -0.09375 -1.8125l0 -4.218746l-1.171875 0l0 -2.03125l1.171875 0l0 -1.921875l2.578125 -1.5l0 3.421875l1.75 0zm7.368927 6.593746l2.546875 0.421875q-0.484375 1.40625 -1.546875 2.140625q-1.0625 0.734375 -2.65625 0.734375q-2.515625 0 -3.734375 -1.65625q-0.953125 -1.3125 -0.953125 -3.3281212q0 -2.40625 1.25 -3.765625q1.265625 -1.359375 3.1875 -1.359375q2.15625 0 3.40625 1.421875q1.25 1.421875 1.1875 4.374996l-6.40625 0q0.03125 1.140625 0.609375 1.78125q0.59375 0.625 1.484375 0.625q0.59375 0 1.0 -0.328125q0.421875 -0.328125 0.625 -1.0625zm0.15625 -2.5937462q-0.03125 -1.109375 -0.578125 -1.6875q-0.546875 -0.578125 -1.328125 -0.578125q-0.84375 0 -1.390625 0.609375q-0.546875 0.609375 -0.53125 1.65625l3.828125 0zm6.422592 5.671871l-3.0625 -9.671871l2.484375 0l1.8125 6.343746l1.671875 -6.343746l2.46875 0l1.609375 6.343746l1.859375 -6.343746l2.515625 0l-3.109375 9.671871l-2.453125 0l-1.671875 -6.218746l-1.640625 6.218746l-2.484375 0zm14.620819 -6.718746l-2.328125 -0.421875q0.40625 -1.40625 1.359375 -2.078125q0.953125 -0.671875 2.84375 -0.671875q1.703125 0 2.546875 0.40625q0.84375 0.40625 1.171875 1.03125q0.34375 0.625 0.34375 2.28125l-0.015625 2.9999962q0 1.265625 0.109375 1.875q0.125 0.609375 0.46875 1.296875l-2.53125 0q-0.109375 -0.25 -0.25 -0.75q-0.0625 -0.234375 -0.09375 -0.3125q-0.65625 0.640625 -1.40625 0.96875q-0.734375 0.3125 -1.59375 0.3125q-1.484375 0 -2.34375 -0.8125q-0.859375 -0.8125 -0.859375 -2.046875q0 -0.828125 0.390625 -1.46875q0.390625 -0.6406212 1.09375 -0.9687462q0.703125 -0.34375 2.03125 -0.609375q1.796875 -0.328125 2.484375 -0.625l0 -0.25q0 -0.75 -0.359375 -1.0625q-0.359375 -0.3125 -1.375 -0.3125q-0.6875 0 -1.078125 0.28125q-0.375 0.265625 -0.609375 0.9375zm3.421875 2.0781212q-0.484375 0.15625 -1.5625 0.390625q-1.0625 0.21875 -1.390625 0.4375q-0.5 0.359375 -0.5 0.90625q0 0.53125 0.40625 0.9375q0.40625 0.390625 1.015625 0.390625q0.703125 0 1.328125 -0.46875q0.46875 -0.34375 0.609375 -0.84375q0.09375 -0.328125 0.09375 -1.25l0 -0.5zm3.828827 -5.031246l2.71875 0l2.328125 6.859371l2.25 -6.859371l2.65625 0l-3.421875 9.312496l-0.609375 1.6875q-0.328125 0.84375 -0.640625 1.28125q-0.3125 0.453125 -0.703125 0.71875q-0.390625 0.28125 -0.96875 0.4375q-0.578125 0.15625 -1.3125 0.15625q-0.734375 0 -1.453125 -0.15625l-0.21875 -2.0q0.59375 0.125 1.078125 0.125q0.890625 0 1.3125 -0.53125q0.4375 -0.515625 0.671875 -1.328125l-3.6875 -9.703121z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m85.531494 61.769028l113.6378 0" fill-rule="evenodd"/><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="2.0,6.0" d="m85.531494 61.769028l101.6378 0" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m187.1693 65.072495l9.076187 -3.3034668l-9.076187 -3.303463z" fill-rule="evenodd"/><path fill="#000000" fill-opacity="0.0" d="m302.47638 61.769028l43.338593 0" fill-rule="evenodd"/><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m302.47638 61.769028l31.338593 0" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m333.81497 65.072495l9.076172 -3.3034668l-9.076172 -3.303463z" fill-rule="evenodd"/><path fill="#d9d9d9" d="m27.899902 43.32703l51.09812 0l0 0c6.6939926 0 12.120544 8.256859 12.120544 18.442207c0 10.185345 -5.426552 18.442204 -12.120544 18.442204l-51.09812 0l0 0c-6.6939926 0 -12.120544 -8.256859 -12.120544 -18.442204c0 -10.1853485 5.426552 -18.442207 12.120544 -18.442207z" fill-rule="evenodd"/><path stroke="#ffffff" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m27.899902 43.32703l51.09812 0l0 0c6.6939926 0 12.120544 8.256859 12.120544 18.442207c0 10.185345 -5.426552 18.442204 -12.120544 18.442204l-51.09812 0l0 0c-6.6939926 0 -12.120544 -8.256859 -12.120544 -18.442204c0 -10.1853485 5.426552 -18.442207 12.120544 -18.442207z" fill-rule="evenodd"/><path fill="#000000" d="m39.219585 65.14236l1.609375 0.21875q-0.265625 1.65625 -1.359375 2.609375q-1.078125 0.9375 -2.671875 0.9375q-1.984375 0 -3.1875 -1.296875q-1.203125 -1.296875 -1.203125 -3.71875q0 -1.578125 0.515625 -2.75q0.515625 -1.171875 1.578125 -1.75q1.0625 -0.59375 2.3125 -0.59375q1.578125 0 2.578125 0.796875q1.0 0.796875 1.28125 2.265625l-1.59375 0.234375q-0.234375 -0.96875 -0.8125 -1.453125q-0.578125 -0.5 -1.390625 -0.5q-1.234375 0 -2.015625 0.890625q-0.78125 0.890625 -0.78125 2.8125q0 1.953125 0.75 2.84375q0.75 0.875 1.953125 0.875q0.96875 0 1.609375 -0.59375q0.65625 -0.59375 0.828125 -1.828125zm2.96875 3.546875l0 -13.359375l1.640625 0l0 13.359375l-1.640625 0zm4.191696 -11.46875l0 -1.890625l1.640625 0l0 1.890625l-1.640625 0zm0 11.46875l0 -9.671875l1.640625 0l0 9.671875l-1.640625 0zm10.769821 -3.109375l1.6875 0.203125q-0.40625 1.484375 -1.484375 2.3125q-1.078125 0.8125 -2.765625 0.8125q-2.125 0 -3.375 -1.296875q-1.234375 -1.3125 -1.234375 -3.671875q0 -2.453125 1.25 -3.796875q1.265625 -1.34375 3.265625 -1.34375q1.9375 0 3.15625 1.328125q1.234375 1.3125 1.234375 3.703125q0 0.15625 0 0.4375l-7.21875 0q0.09375 1.59375 0.90625 2.453125q0.8125 0.84375 2.015625 0.84375q0.90625 0 1.546875 -0.46875q0.640625 -0.484375 1.015625 -1.515625zm-5.390625 -2.65625l5.40625 0q-0.109375 -1.21875 -0.625 -1.828125q-0.78125 -0.953125 -2.03125 -0.953125q-1.125 0 -1.90625 0.765625q-0.765625 0.75 -0.84375 2.015625zm9.141342 5.765625l0 -9.671875l1.46875 0l0 1.375q1.0625 -1.59375 3.0781212 -1.59375q0.875 0 1.609375 0.3125q0.734375 0.3125 1.09375 0.828125q0.375 0.5 0.515625 1.203125q0.09375 0.453125 0.09375 1.59375l0 5.953125l-1.640625 0l0 -5.890625q0 -1.0 -0.203125 -1.484375q-0.1875 -0.5 -0.671875 -0.796875q-0.484375 -0.296875 -1.140625 -0.296875q-1.046875 0 -1.8124962 0.671875q-0.75 0.65625 -0.75 2.515625l0 5.28125l-1.640625 0zm13.953838 -1.46875l0.234375 1.453125q-0.6875 0.140625 -1.234375 0.140625q-0.890625 0 -1.390625 -0.28125q-0.484375 -0.28125 -0.6875 -0.734375q-0.203125 -0.46875 -0.203125 -1.9375l0 -5.578125l-1.203125 0l0 -1.265625l1.203125 0l0 -2.390625l1.625 -0.984375l0 3.375l1.65625 0l0 1.265625l-1.65625 0l0 5.671875q0 0.6875 0.078125 0.890625q0.09375 0.203125 0.28125 0.328125q0.203125 0.109375 0.578125 0.109375q0.265625 0 0.71875 -0.0625z" fill-rule="nonzero"/><path fill="#1155cc" d="m345.82153 28.55643l121.73227 0l0 66.4252l-121.73227 0z" fill-rule="evenodd"/><path stroke="#1155cc" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m345.82153 28.55643l121.73227 0l0 66.4252l-121.73227 0z" fill-rule="evenodd"/><path fill="#ffffff" d="m357.26614 68.689026l0 -13.359371l2.703125 0l0 5.265625l5.28125 0l0 -5.265625l2.703125 0l0 13.359371l-2.703125 0l0 -5.843746l-5.28125 0l0 5.843746l-2.703125 0zm16.472961 0l0 -11.093746l-3.953125 0l0 -2.265625l10.609375 0l0 2.265625l-3.953125 0l0 11.093746l-2.703125 0zm11.395966 0l0 -11.093746l-3.953125 0l0 -2.265625l10.609375 0l0 2.265625l-3.953125 0l0 11.093746l-2.703125 0zm8.395996 0l0 -13.359371l4.328125 0q2.453125 0 3.203125 0.203125q1.140625 0.296875 1.921875 1.3125q0.78125 1.0 0.78125 2.59375q0 1.234375 -0.453125 2.078125q-0.453125 0.828125 -1.140625 1.3125q-0.6875 0.46875 -1.390625 0.625q-0.96875 0.203125 -2.796875 0.203125l-1.765625 0l0 5.031246l-2.6875 0zm2.6875 -11.093746l0 3.78125l1.484375 0q1.59375 0 2.125 -0.203125q0.546875 -0.203125 0.84375 -0.65625q0.3125 -0.453125 0.3125 -1.03125q0 -0.734375 -0.4375 -1.203125q-0.421875 -0.484375 -1.078125 -0.59375q-0.484375 -0.09375 -1.9375 -0.09375l-1.3125 0zm9.756073 11.093746l0 -13.359371l5.6875 0q2.140625 0 3.109375 0.359375q0.96875 0.359375 1.546875 1.28125q0.578125 0.921875 0.578125 2.109375q0 1.5 -0.890625 2.484375q-0.875 0.96875 -2.625 1.234375q0.875 0.5 1.4375 1.125q0.578125 0.6093712 1.53125 2.1562462l1.640625 2.609375l-3.234375 0l-1.9375 -2.90625q-1.046875 -1.5625 -1.4375 -1.9687462q-0.375 -0.40625 -0.8125 -0.546875q-0.421875 -0.15625 -1.34375 -0.15625l-0.546875 0l0 5.578121l-2.703125 0zm2.703125 -7.703121l2.0 0q1.9375 0 2.421875 -0.15625q0.484375 -0.171875 0.75 -0.578125q0.28125 -0.40625 0.28125 -1.0q0 -0.671875 -0.359375 -1.078125q-0.359375 -0.421875 -1.015625 -0.53125q-0.328125 -0.046875 -1.96875 -0.046875l-2.109375 0l0 3.390625zm10.160431 2.734375q0 -1.28125 0.625 -2.46875q0.625 -1.203125 1.78125 -1.828125q1.15625 -0.625 2.578125 -0.625q2.1875 0 3.59375 1.421875q1.40625 1.421875 1.40625 3.609375q0 2.1874962 -1.421875 3.6406212q-1.421875 1.4375 -3.5625 1.4375q-1.328125 0 -2.546875 -0.59375q-1.203125 -0.609375 -1.828125 -1.765625q-0.625 -1.171875 -0.625 -2.8281212zm2.625 0.125q0 1.4531212 0.671875 2.2187462q0.6875 0.75 1.6875 0.75q1.0 0 1.671875 -0.75q0.6875 -0.765625 0.6875 -2.2343712q0 -1.421875 -0.6875 -2.1875q-0.671875 -0.765625 -1.671875 -0.765625q-1.0 0 -1.6875 0.765625q-0.671875 0.765625 -0.671875 2.203125zm15.724121 4.843746l0 -1.453125q-0.53125 0.78125 -1.390625 1.234375q-0.859375 0.4375 -1.8125 0.4375q-0.96875 0 -1.75 -0.421875q-0.765625 -0.4375 -1.125 -1.203125q-0.34375 -0.78125 -0.34375 -2.140625l0 -6.124996l2.5625 0l0 4.4375q0 2.0468712 0.140625 2.5156212q0.140625 0.453125 0.515625 0.71875q0.375 0.265625 0.953125 0.265625q0.65625 0 1.171875 -0.359375q0.515625 -0.359375 0.703125 -0.890625q0.203125 -0.53125 0.203125 -2.6093712l0 -4.078125l2.546875 0l0 9.671871l-2.375 0zm9.474091 -9.671871l0 2.03125l-1.75 0l0 3.9062462q0 1.1875 0.046875 1.390625q0.046875 0.1875 0.21875 0.3125q0.1875 0.125 0.4375 0.125q0.359375 0 1.03125 -0.25l0.21875 2.0q-0.890625 0.375 -2.015625 0.375q-0.703125 0 -1.265625 -0.234375q-0.546875 -0.234375 -0.8125 -0.59375q-0.25 -0.375 -0.34375 -1.0q-0.09375 -0.453125 -0.09375 -1.8125l0 -4.218746l-1.171875 0l0 -2.03125l1.171875 0l0 -1.921875l2.578125 -1.5l0 3.421875l1.75 0zm7.368927 6.593746l2.546875 0.421875q-0.484375 1.40625 -1.546875 2.140625q-1.0625 0.734375 -2.65625 0.734375q-2.515625 0 -3.734375 -1.65625q-0.953125 -1.3125 -0.953125 -3.3281212q0 -2.40625 1.25 -3.765625q1.265625 -1.359375 3.1875 -1.359375q2.15625 0 3.40625 1.421875q1.25 1.421875 1.1875 4.374996l-6.40625 0q0.03125 1.140625 0.609375 1.78125q0.59375 0.625 1.484375 0.625q0.59375 0 1.0 -0.328125q0.421875 -0.328125 0.625 -1.0625zm0.15625 -2.5937462q-0.03125 -1.109375 -0.578125 -1.6875q-0.546875 -0.578125 -1.328125 -0.578125q-0.84375 0 -1.390625 0.609375q-0.546875 0.609375 -0.53125 1.65625l3.828125 0z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m109.42257 42.04987l63.244102 0l0 18.456692l-63.244102 0z" fill-rule="evenodd"/><path stroke="#ffffff" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m109.42257 42.04987l63.244102 0l0 18.456692l-63.244102 0z" fill-rule="evenodd"/><path fill="#000000" d="m127.99311 55.018215l0 -7.625l1.0000076 0l0 3.125l3.96875 0l0 -3.125l1.015625 0l0 7.625l-1.015625 0l0 -3.59375l-3.96875 0l0 3.59375l-1.0000076 0zm9.60186 0l0 -6.734375l-2.515625 0l0 -0.890625l6.046875 0l0 0.890625l-2.53125 0l0 6.734375l-1.0 0zm6.509262 0l0 -6.734375l-2.515625 0l0 -0.890625l6.046875 0l0 0.890625l-2.53125 0l0 6.734375l-1.0 0zm4.571762 0l0 -7.625l2.875 0q0.75 0 1.15625 0.0625q0.5625 0.09375 0.9375 0.359375q0.390625 0.265625 0.609375 0.75q0.234375 0.46875 0.234375 1.03125q0 0.96875 -0.625 1.65625q-0.609375 0.671875 -2.234375 0.671875l-1.953125 0l0 3.09375l-1.0 0zm1.0 -4.0l1.96875 0q0.984375 0 1.390625 -0.359375q0.421875 -0.375 0.421875 -1.03125q0 -0.484375 -0.25 -0.8125q-0.234375 -0.34375 -0.640625 -0.453125q-0.25 -0.078125 -0.9375 -0.078125l-1.953125 0l0 2.734375z" fill-rule="nonzero"/><path fill="#d9d9d9" d="m109.42126 63.026245l63.244102 0l0 18.456696l-63.244102 0z" fill-rule="evenodd"/><path stroke="#ffffff" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m109.42126 63.026245l63.244102 0l0 18.456696l-63.244102 0z" fill-rule="evenodd"/><path fill="#000000" d="m123.959114 75.99459l0 -5.53125l0.84375 0l0 0.84375q0.328125 -0.59375 0.59375 -0.78125q0.28125 -0.1875 0.609375 -0.1875q0.46875 0 0.953125 0.3125l-0.3125 0.859375q-0.34375 -0.203125 -0.6875 -0.203125q-0.3125 0 -0.5625 0.1875q-0.234375 0.1875 -0.34375 0.515625q-0.15625 0.5 -0.15625 1.09375l0 2.890625l-0.9375 0zm7.345497 -1.78125l0.96875 0.125q-0.234375 0.84375 -0.859375 1.3125q-0.609375 0.46875 -1.578125 0.46875q-1.203125 0 -1.9218826 -0.75q-0.703125 -0.75 -0.703125 -2.09375q0 -1.390625 0.71875 -2.15625q0.7187576 -0.78125 1.8593826 -0.78125q1.109375 0 1.8125 0.765625q0.703125 0.75 0.703125 2.125q0 0.078125 0 0.234375l-4.125 0q0.046875 0.921875 0.515625 1.40625q0.46875 0.484375 1.15625 0.484375q0.515625 0 0.875 -0.265625q0.359375 -0.28125 0.578125 -0.875zm-3.078125 -1.515625l3.09375 0q-0.0625 -0.6875 -0.359375 -1.046875q-0.453125 -0.53125 -1.15625 -0.53125q-0.640625 0 -1.09375 0.4375q-0.4375 0.421875 -0.484375 1.140625zm8.738998 5.421875l0 -2.71875q-0.21875 0.3125 -0.609375 0.515625q-0.390625 0.203125 -0.828125 0.203125q-0.984375 0 -1.703125 -0.78125q-0.703125 -0.796875 -0.703125 -2.15625q0 -0.828125 0.28125 -1.484375q0.296875 -0.671875 0.84375 -1.015625q0.546875 -0.34375 1.203125 -0.34375q1.03125 0 1.609375 0.875l0 -0.75l0.84375 0l0 7.65625l-0.9375 0zm-2.875 -4.90625q0 1.0625 0.4375 1.609375q0.453125 0.53125 1.078125 0.53125q0.59375 0 1.015625 -0.5q0.4375 -0.515625 0.4375 -1.546875q0 -1.109375 -0.453125 -1.65625q-0.453125 -0.5625 -1.0625 -0.5625q-0.609375 0 -1.03125 0.515625q-0.421875 0.515625 -0.421875 1.609375zm8.910873 2.78125l0 -0.8125q-0.65625 0.9375 -1.75 0.9375q-0.5 0 -0.921875 -0.1875q-0.421875 -0.1875 -0.625 -0.46875q-0.203125 -0.28125 -0.296875 -0.703125q-0.046875 -0.265625 -0.046875 -0.875l0 -3.421875l0.9375 0l0 3.0625q0 0.734375 0.046875 1.0q0.09375 0.359375 0.375 0.578125q0.296875 0.203125 0.703125 0.203125q0.421875 0 0.796875 -0.203125q0.375 -0.21875 0.515625 -0.59375q0.15625 -0.375 0.15625 -1.078125l0 -2.96875l0.9375 0l0 5.53125l-0.828125 0zm6.0827484 -1.78125l0.96875 0.125q-0.234375 0.84375 -0.859375 1.3125q-0.609375 0.46875 -1.578125 0.46875q-1.203125 0 -1.921875 -0.75q-0.703125 -0.75 -0.703125 -2.09375q0 -1.390625 0.71875 -2.15625q0.71875 -0.78125 1.859375 -0.78125q1.109375 0 1.8125 0.765625q0.703125 0.75 0.703125 2.125q0 0.078125 0 0.234375l-4.125 0q0.046875 0.921875 0.515625 1.40625q0.46875 0.484375 1.15625 0.484375q0.515625 0 0.875 -0.265625q0.359375 -0.28125 0.578125 -0.875zm-3.078125 -1.515625l3.09375 0q-0.0625 -0.6875 -0.359375 -1.046875q-0.453125 -0.53125 -1.15625 -0.53125q-0.640625 0 -1.09375 0.4375q-0.4375 0.421875 -0.484375 1.140625zm4.8483734 1.640625l0.921875 -0.140625q0.078125 0.5625 0.4375 0.859375q0.359375 0.296875 1.0 0.296875q0.640625 0 0.953125 -0.265625q0.3125 -0.265625 0.3125 -0.625q0 -0.3125 -0.28125 -0.5q-0.1875 -0.125 -0.953125 -0.3125q-1.03125 -0.265625 -1.4375 -0.453125q-0.390625 -0.1875 -0.59375 -0.515625q-0.203125 -0.34375 -0.203125 -0.75q0 -0.359375 0.171875 -0.671875q0.171875 -0.328125 0.453125 -0.53125q0.21875 -0.15625 0.59375 -0.265625q0.390625 -0.125 0.8125 -0.125q0.65625 0 1.140625 0.1875q0.5 0.1875 0.734375 0.515625q0.234375 0.3125 0.3125 0.859375l-0.90625 0.125q-0.0625 -0.4375 -0.375 -0.671875q-0.296875 -0.234375 -0.828125 -0.234375q-0.65625 0 -0.9375 0.21875q-0.265625 0.203125 -0.265625 0.484375q0 0.1875 0.109375 0.328125q0.125 0.15625 0.359375 0.25q0.140625 0.0625 0.828125 0.25q1.0 0.265625 1.390625 0.4375q0.390625 0.15625 0.609375 0.484375q0.234375 0.3125 0.234375 0.796875q0 0.46875 -0.28125 0.890625q-0.265625 0.40625 -0.78125 0.640625q-0.515625 0.21875 -1.171875 0.21875q-1.078125 0 -1.640625 -0.4375q-0.5625 -0.453125 -0.71875 -1.34375zm7.75 0.8125l0.125 0.828125q-0.390625 0.09375 -0.703125 0.09375q-0.5 0 -0.78125 -0.15625q-0.28125 -0.171875 -0.40625 -0.4375q-0.109375 -0.265625 -0.109375 -1.109375l0 -3.171875l-0.6875 0l0 -0.734375l0.6875 0l0 -1.359375l0.9375 -0.5625l0 1.921875l0.9375 0l0 0.734375l-0.9375 0l0 3.234375q0 0.390625 0.046875 0.515625q0.046875 0.109375 0.15625 0.1875q0.109375 0.0625 0.328125 0.0625q0.15625 0 0.40625 -0.046875z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m467.5538 61.769028l116.75589 -0.8503914" fill-rule="evenodd"/><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m467.5538 61.769028l104.756256 -0.76299286" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m572.3341 64.30941l9.05188 -3.3694801l-9.100037 -3.2372704z" fill-rule="evenodd"/><path fill="#d9d9d9" d="m473.99738 52.540684l88.8819 0l0 18.456692l-88.8819 0z" fill-rule="evenodd"/><path stroke="#ffffff" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m473.99738 52.540684l88.8819 0l0 18.456692l-88.8819 0z" fill-rule="evenodd"/><path fill="#000000" d="m490.55234 65.509026l0 -7.624996l3.375 0q1.015625 0 1.546875 0.203125q0.53125 0.203125 0.84375 0.734375q0.328125 0.515625 0.328125 1.140625q0 0.8125 -0.53125 1.375q-0.515625 0.546875 -1.625 0.703125q0.40625 0.1875 0.609375 0.375q0.453125 0.40625 0.84375 1.015625l1.328125 2.0781212l-1.265625 0l-1.015625 -1.5937462q-0.4375 -0.6875 -0.734375 -1.046875q-0.28125 -0.359375 -0.515625 -0.5q-0.21875 -0.15625 -0.453125 -0.203125q-0.171875 -0.046875 -0.5625 -0.046875l-1.171875 0l0 3.3906212l-1.0 0zm1.0 -4.265621l2.171875 0q0.6875 0 1.078125 -0.140625q0.390625 -0.140625 0.59375 -0.453125q0.203125 -0.3125 0.203125 -0.6875q0 -0.546875 -0.390625 -0.890625q-0.390625 -0.34375 -1.234375 -0.34375l-2.421875 0l0 2.515625zm6.2112427 1.5q0 -1.53125 0.84375 -2.265625q0.71875 -0.625 1.734375 -0.625q1.140625 0 1.859375 0.75q0.734375 0.75 0.734375 2.0625q0 1.0625 -0.328125 1.6874962q-0.3125 0.609375 -0.921875 0.953125q-0.609375 0.328125 -1.34375 0.328125q-1.15625 0 -1.875 -0.734375q-0.703125 -0.75 -0.703125 -2.1562462zm0.953125 0q0 1.0625 0.46875 1.5937462q0.46875 0.53125 1.15625 0.53125q0.703125 0 1.15625 -0.53125q0.46875 -0.5312462 0.46875 -1.6249962q0 -1.015625 -0.46875 -1.546875q-0.453125 -0.53125 -1.15625 -0.53125q-0.6875 0 -1.15625 0.53125q-0.46875 0.515625 -0.46875 1.578125zm8.942108 2.7656212l0 -0.8125q-0.65625 0.9375 -1.75 0.9375q-0.5 0 -0.921875 -0.1875q-0.421875 -0.1875 -0.625 -0.46875q-0.203125 -0.28125 -0.296875 -0.703125q-0.046875 -0.265625 -0.046875 -0.8749962l0 -3.421875l0.9375 0l0 3.0625q0 0.734375 0.046875 0.9999962q0.09375 0.359375 0.375 0.578125q0.296875 0.203125 0.703125 0.203125q0.421875 0 0.796875 -0.203125q0.375 -0.21875 0.515625 -0.59375q0.15625 -0.3749962 0.15625 -1.0781212l0 -2.96875l0.9375 0l0 5.531246l-0.828125 0zm4.3483887 -0.84375l0.125 0.828125q-0.390625 0.09375 -0.703125 0.09375q-0.5 0 -0.78125 -0.15625q-0.28125 -0.171875 -0.40625 -0.4375q-0.109375 -0.265625 -0.109375 -1.1093712l0 -3.171875l-0.6875 0l0 -0.734375l0.6875 0l0 -1.359375l0.9375 -0.5625l0 1.921875l0.9375 0l0 0.734375l-0.9375 0l0 3.234375q0 0.3906212 0.046875 0.5156212q0.046875 0.109375 0.15625 0.1875q0.109375 0.0625 0.328125 0.0625q0.15625 0 0.40625 -0.046875zm0.9137573 -5.703121l0 -1.078125l0.9375 0l0 1.078125l-0.9375 0zm0 6.546871l0 -5.531246l0.9375 0l0 5.531246l-0.9375 0zm2.3674927 0l0 -5.531246l0.84375 0l0 0.796875q0.609375 -0.921875 1.75 -0.921875q0.5 0 0.921875 0.1875q0.421875 0.171875 0.625 0.46875q0.21875 0.296875 0.296875 0.6875q0.046875 0.265625 0.046875 0.921875l0 3.3906212l-0.9375 0l0 -3.3593712q0 -0.578125 -0.109375 -0.859375q-0.109375 -0.28125 -0.390625 -0.453125q-0.265625 -0.171875 -0.640625 -0.171875q-0.59375 0 -1.03125 0.390625q-0.4375 0.375 -0.4375 1.4375l0 3.0156212l-0.9375 0zm5.7546387 0.453125l0.90625 0.140625q0.0625 0.421875 0.328125 0.609375q0.34375 0.265625 0.9375 0.265625q0.65625 0 1.0 -0.265625q0.359375 -0.25 0.484375 -0.71875q0.078125 -0.296875 0.078125 -1.203125q-0.625 0.71875 -1.53125 0.71875q-1.140625 0 -1.765625 -0.8125q-0.625 -0.8281212 -0.625 -1.9843712q0 -0.78125 0.28125 -1.453125q0.296875 -0.671875 0.828125 -1.03125q0.546875 -0.375 1.28125 -0.375q0.984375 0 1.609375 0.796875l0 -0.671875l0.875 0l0 4.781246q0 1.296875 -0.265625 1.828125q-0.265625 0.546875 -0.84375 0.859375q-0.5625 0.3125 -1.390625 0.3125q-0.984375 0 -1.59375 -0.453125q-0.609375 -0.4375 -0.59375 -1.34375zm0.78125 -3.3124962q0 1.078125 0.421875 1.5781212q0.4375 0.5 1.078125 0.5q0.65625 0 1.09375 -0.484375q0.4375 -0.4999962 0.4375 -1.5624962q0 -1.015625 -0.453125 -1.53125q-0.453125 -0.515625 -1.09375 -0.515625q-0.609375 0 -1.046875 0.515625q-0.4375 0.5 -0.4375 1.5zm8.262146 2.8593712l0 -5.531246l0.84375 0l0 0.84375q0.328125 -0.59375 0.59375 -0.78125q0.28125 -0.1875 0.609375 -0.1875q0.46875 0 0.953125 0.3125l-0.3125 0.859375q-0.34375 -0.203125 -0.6875 -0.203125q-0.3125 0 -0.5625 0.1875q-0.234375 0.1875 -0.34375 0.515625q-0.15625 0.5 -0.15625 1.09375l0 2.8906212l-0.9375 0zm7.189209 0l0 -0.8125q-0.65625 0.9375 -1.75 0.9375q-0.5 0 -0.921875 -0.1875q-0.421875 -0.1875 -0.625 -0.46875q-0.203125 -0.28125 -0.296875 -0.703125q-0.046875 -0.265625 -0.046875 -0.8749962l0 -3.421875l0.9375 0l0 3.0625q0 0.734375 0.046875 0.9999962q0.09375 0.359375 0.375 0.578125q0.296875 0.203125 0.703125 0.203125q0.421875 0 0.796875 -0.203125q0.375 -0.21875 0.515625 -0.59375q0.15625 -0.3749962 0.15625 -1.0781212l0 -2.96875l0.9375 0l0 5.531246l-0.828125 0zm2.2858887 0l0 -7.624996l0.9375 0l0 7.624996l-0.9375 0zm6.1643066 -1.7812462l0.96875 0.125q-0.234375 0.8437462 -0.859375 1.3124962q-0.609375 0.46875 -1.578125 0.46875q-1.203125 0 -1.921875 -0.75q-0.703125 -0.75 -0.703125 -2.0937462q0 -1.390625 0.71875 -2.15625q0.71875 -0.78125 1.859375 -0.78125q1.109375 0 1.8125 0.765625q0.703125 0.75 0.703125 2.125q0 0.078125 0 0.234375l-4.125 0q0.046875 0.921875 0.515625 1.4062462q0.46875 0.484375 1.15625 0.484375q0.515625 0 0.875 -0.265625q0.359375 -0.28125 0.578125 -0.8749962zm-3.078125 -1.515625l3.09375 0q-0.0625 -0.6875 -0.359375 -1.046875q-0.453125 -0.53125 -1.15625 -0.53125q-0.640625 0 -1.09375 0.4375q-0.4375 0.421875 -0.484375 1.140625z" fill-rule="nonzero"/><path fill="#1155cc" d="m584.3202 35.097115l100.409485 0l0 51.65354l-100.409485 0z" fill-rule="evenodd"/><path stroke="#1155cc" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m584.3202 35.097115l100.409485 0l0 51.65354l-100.409485 0z" fill-rule="evenodd"/><path fill="#ffffff" d="m602.00183 63.500134l2.625 -0.25q0.234375 1.3124962 0.953125 1.9374962q0.734375 0.609375 1.96875 0.609375q1.296875 0 1.953125 -0.546875q0.671875 -0.546875 0.671875 -1.2812462q0 -0.484375 -0.28125 -0.8125q-0.28125 -0.328125 -0.96875 -0.578125q-0.484375 -0.15625 -2.171875 -0.578125q-2.15625 -0.546875 -3.03125 -1.328125q-1.234375 -1.09375 -1.234375 -2.6875q0 -1.015625 0.578125 -1.90625q0.578125 -0.890625 1.65625 -1.34375q1.09375 -0.46875 2.640625 -0.46875q2.515625 0 3.78125 1.109375q1.28125 1.09375 1.34375 2.9375l-2.703125 0.109375q-0.171875 -1.03125 -0.75 -1.46875q-0.5625 -0.453125 -1.703125 -0.453125q-1.171875 0 -1.84375 0.46875q-0.421875 0.3125 -0.421875 0.84375q0 0.46875 0.40625 0.796875q0.5 0.4375 2.46875 0.90625q1.96875 0.453125 2.90625 0.953125q0.953125 0.5 1.484375 1.359375q0.53125 0.859375 0.53125 2.125q0 1.1562462 -0.640625 2.1562462q-0.640625 1.0 -1.8125 1.484375q-1.15625 0.484375 -2.890625 0.484375q-2.53125 0 -3.890625 -1.171875q-1.359375 -1.171875 -1.625 -3.4062462zm18.709167 1.2656212l2.546875 0.421875q-0.484375 1.40625 -1.546875 2.140625q-1.0625 0.734375 -2.65625 0.734375q-2.515625 0 -3.734375 -1.65625q-0.953125 -1.3125 -0.953125 -3.3281212q0 -2.40625 1.25 -3.765625q1.265625 -1.359375 3.1875 -1.359375q2.15625 0 3.40625 1.421875q1.25 1.421875 1.1875 4.375l-6.40625 0q0.03125 1.1406212 0.609375 1.7812462q0.59375 0.625 1.484375 0.625q0.59375 0 1.0 -0.328125q0.421875 -0.328125 0.625 -1.0625zm0.15625 -2.5937462q-0.03125 -1.109375 -0.578125 -1.6875q-0.546875 -0.578125 -1.328125 -0.578125q-0.84375 0 -1.390625 0.609375q-0.546875 0.609375 -0.53125 1.65625l3.828125 0zm7.0788574 5.671871l-2.5625 0l0 -9.671871l2.375 0l0 1.375q0.609375 -0.984375 1.09375 -1.28125q0.484375 -0.3125 1.109375 -0.3125q0.875 0 1.6875 0.484375l-0.796875 2.234375q-0.640625 -0.421875 -1.203125 -0.421875q-0.53125 0 -0.90625 0.296875q-0.375 0.296875 -0.59375 1.078125q-0.203125 0.765625 -0.203125 3.2343712l0 2.984375zm7.463379 0l-3.90625 -9.671871l2.6875 0l1.828125 4.9375l0.53125 1.6406212q0.203125 -0.625 0.265625 -0.8281212q0.125 -0.40625 0.265625 -0.8125l1.84375 -4.9375l2.625 0l-3.84375 9.671871l-2.296875 0zm7.7194824 -10.984371l0 -2.375l2.5625 0l0 2.375l-2.5625 0zm0 10.984371l0 -9.671871l2.5625 0l0 9.671871l-2.5625 0zm13.620789 -6.812496l-2.53125 0.453125q-0.125 -0.75 -0.578125 -1.125q-0.453125 -0.390625 -1.171875 -0.390625q-0.953125 0 -1.53125 0.65625q-0.5625 0.65625 -0.5625 2.203125q0 1.7343712 0.578125 2.4374962q0.578125 0.703125 1.546875 0.703125q0.734375 0 1.203125 -0.40625q0.46875 -0.421875 0.65625 -1.421875l2.515625 0.421875q-0.390625 1.734375 -1.515625 2.625q-1.109375 0.875 -2.96875 0.875q-2.125 0 -3.390625 -1.328125q-1.25 -1.34375 -1.25 -3.7187462q0 -2.390625 1.265625 -3.71875q1.265625 -1.34375 3.421875 -1.34375q1.765625 0 2.796875 0.765625q1.046875 0.75 1.515625 2.3125zm7.5319824 3.7343712l2.546875 0.421875q-0.484375 1.40625 -1.546875 2.140625q-1.0625 0.734375 -2.65625 0.734375q-2.515625 0 -3.734375 -1.65625q-0.953125 -1.3125 -0.953125 -3.3281212q0 -2.40625 1.25 -3.765625q1.265625 -1.359375 3.1875 -1.359375q2.15625 0 3.40625 1.421875q1.25 1.421875 1.1875 4.375l-6.40625 0q0.03125 1.1406212 0.609375 1.7812462q0.59375 0.625 1.484375 0.625q0.59375 0 1.0 -0.328125q0.421875 -0.328125 0.625 -1.0625zm0.15625 -2.5937462q-0.03125 -1.109375 -0.578125 -1.6875q-0.546875 -0.578125 -1.328125 -0.578125q-0.84375 0 -1.390625 0.609375q-0.546875 0.609375 -0.53125 1.65625l3.828125 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m684.7297 60.923885l56.661377 -26.834648" fill-rule="evenodd"/><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m684.7297 60.923885l45.816162 -21.698391" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m731.95984 42.211063l6.7888184 -6.870373l-9.61676 0.8992386z" fill-rule="evenodd"/><path fill="#1155cc" d="m741.3963 15.661417l63.24414 0l0 36.88189l-63.24414 0z" fill-rule="evenodd"/><path stroke="#1155cc" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m741.3963 15.661417l63.24414 0l0 36.88189l-63.24414 0z" fill-rule="evenodd"/><path fill="#ffffff" d="m756.76 41.02236l0 -13.359377l4.328125 0q2.453125 0 3.203125 0.203125q1.140625 0.296875 1.921875 1.3125q0.78125 1.0 0.78125 2.59375q0 1.2343769 -0.453125 2.078127q-0.453125 0.828125 -1.140625 1.3125q-0.6875 0.46875 -1.390625 0.625q-0.96875 0.203125 -2.796875 0.203125l-1.765625 0l0 5.03125l-2.6875 0zm2.6875 -11.093752l0 3.781252l1.484375 0q1.59375 0 2.125 -0.203125q0.546875 -0.203125 0.84375 -0.65625q0.3125 -0.453125 0.3125 -1.0312519q0 -0.734375 -0.4375 -1.203125q-0.421875 -0.484375 -1.078125 -0.59375q-0.484375 -0.09375 -1.9375 -0.09375l-1.3125 0zm9.1466675 6.125002q0 -1.28125 0.625 -2.46875q0.625 -1.203125 1.78125 -1.8281269q1.15625 -0.625 2.578125 -0.625q2.1875 0 3.59375 1.4218769q1.40625 1.421875 1.40625 3.609375q0 2.1875 -1.421875 3.640625q-1.421875 1.4375 -3.5625 1.4375q-1.328125 0 -2.546875 -0.59375q-1.203125 -0.609375 -1.828125 -1.765625q-0.625 -1.171875 -0.625 -2.828125zm2.625 0.125q0 1.453125 0.671875 2.21875q0.6875 0.75 1.6875 0.75q1.0 0 1.671875 -0.75q0.6875 -0.765625 0.6875 -2.234375q0 -1.421875 -0.6875 -2.1875q-0.671875 -0.765625 -1.671875 -0.765625q-1.0 0 -1.6875 0.765625q-0.671875 0.765625 -0.671875 2.203125zm18.239746 4.84375l-2.390625 0l0 -1.421875q-0.59375 0.828125 -1.40625 1.234375q-0.796875 0.40625 -1.609375 0.40625q-1.671875 0 -2.859375 -1.34375q-1.1875 -1.34375 -1.1875 -3.75q0 -2.453125 1.15625 -3.734375q1.15625 -1.2812519 2.921875 -1.2812519q1.625 0 2.8125 1.3437519l0 -4.812502l2.5625 0l0 13.359377zm-6.84375 -5.046875q0 1.546875 0.4375 2.234375q0.609375 1.015625 1.71875 1.015625q0.890625 0 1.5 -0.75q0.625 -0.765625 0.625 -2.25q0 -1.671875 -0.609375 -2.40625q-0.59375 -0.734375 -1.53125 -0.734375q-0.90625 0 -1.53125 0.734375q-0.609375 0.71875 -0.609375 2.15625z" fill-rule="nonzero"/><path fill="#1155cc" d="m741.3963 63.026245l63.24414 0l0 36.88189l-63.24414 0z" fill-rule="evenodd"/><path stroke="#1155cc" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m741.3963 63.026245l63.24414 0l0 36.88189l-63.24414 0z" fill-rule="evenodd"/><path fill="#ffffff" d="m756.76 88.38719l0 -13.359375l4.328125 0q2.453125 0 3.203125 0.203125q1.140625 0.296875 1.921875 1.3125q0.78125 1.0 0.78125 2.59375q0 1.234375 -0.453125 2.078125q-0.453125 0.828125 -1.140625 1.3125q-0.6875 0.46875 -1.390625 0.625q-0.96875 0.203125 -2.796875 0.203125l-1.765625 0l0 5.03125l-2.6875 0zm2.6875 -11.09375l0 3.78125l1.484375 0q1.59375 0 2.125 -0.203125q0.546875 -0.203125 0.84375 -0.65625q0.3125 -0.453125 0.3125 -1.03125q0 -0.734375 -0.4375 -1.203125q-0.421875 -0.484375 -1.078125 -0.59375q-0.484375 -0.09375 -1.9375 -0.09375l-1.3125 0zm9.1466675 6.125q0 -1.28125 0.625 -2.46875q0.625 -1.203125 1.78125 -1.828125q1.15625 -0.625 2.578125 -0.625q2.1875 0 3.59375 1.421875q1.40625 1.421875 1.40625 3.609375q0 2.1875 -1.421875 3.640625q-1.421875 1.4375 -3.5625 1.4375q-1.328125 0 -2.546875 -0.59375q-1.203125 -0.609375 -1.828125 -1.765625q-0.625 -1.171875 -0.625 -2.828125zm2.625 0.125q0 1.453125 0.671875 2.21875q0.6875 0.75 1.6875 0.75q1.0 0 1.671875 -0.75q0.6875 -0.765625 0.6875 -2.234375q0 -1.421875 -0.6875 -2.1875q-0.671875 -0.765625 -1.671875 -0.765625q-1.0 0 -1.6875 0.765625q-0.671875 0.765625 -0.671875 2.203125zm18.239746 4.84375l-2.390625 0l0 -1.421875q-0.59375 0.828125 -1.40625 1.234375q-0.796875 0.40625 -1.609375 0.40625q-1.671875 0 -2.859375 -1.34375q-1.1875 -1.34375 -1.1875 -3.75q0 -2.453125 1.15625 -3.734375q1.15625 -1.28125 2.921875 -1.28125q1.625 0 2.8125 1.34375l0 -4.8125l2.5625 0l0 13.359375zm-6.84375 -5.046875q0 1.546875 0.4375 2.234375q0.609375 1.015625 1.71875 1.015625q0.890625 0 1.5 -0.75q0.625 -0.765625 0.625 -2.25q0 -1.671875 -0.609375 -2.40625q-0.59375 -0.734375 -1.53125 -0.734375q-0.90625 0 -1.53125 0.734375q-0.609375 0.71875 -0.609375 2.15625z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m684.7297 60.923885l56.661377 20.535435" fill-rule="evenodd"/><path stroke="#000000" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m684.7297 60.923885l45.379517 16.446606" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="2.0" stroke-linecap="butt" d="m728.9836 80.47627l9.65863 -0.013198853l-7.4074097 -6.198372z" fill-rule="evenodd"/></g></svg> \ No newline at end of file diff --git a/content/fa/docs/images/ha-control-plane.svg b/content/fa/docs/images/ha-control-plane.svg new file mode 100644 index 0000000000000..eb5bbdba81ce3 --- /dev/null +++ b/content/fa/docs/images/ha-control-plane.svg @@ -0,0 +1,4 @@ +<!-- if localizing, copy the Google Drawing, update the text, save as SVG, and embed --> +<!-- Google Drawing: https://docs.google.com/drawings/d/1P1YQry4VYAGTx7UwOT4mDajtIByPew54VtkkZASmDdo/edit?usp=sharing --> + +<svg version="1.1" viewBox="0.0 0.0 960.0 720.0" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><clipPath id="p.0"><path d="m0 0l960.0 0l0 720.0l-960.0 0l0 -720.0z" clip-rule="nonzero"/></clipPath><g clip-path="url(#p.0)"><path fill="#000000" fill-opacity="0.0" d="m0 0l960.0 0l0 720.0l-960.0 0z" fill-rule="evenodd"/><path fill="#cfe2f3" d="m728.2441 105.826775l190.48822 0l0 349.85825l-190.48822 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m728.2441 105.826775l190.48822 0l0 349.85825l-190.48822 0z" fill-rule="evenodd"/><path fill="#000000" d="m747.3774 125.09552l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm1.7109375 -0.921875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 3.453125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm9.974976 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1248779 1.046875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm4.0164795 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6312256 3.453125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm6.6796875 2.65625l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm6.3343506 3.421875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.4923706 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9906006 3.46875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm10.2247925 4.125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm6.9749756 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm11.131226 3.453125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm11.365601 1.234375l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm10.2092285 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.1883545 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5218506 6.78125l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm6.3343506 3.421875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm2.9923706 -8.1875l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm7.4610596 -2.53125l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm6.6640625 1.671875q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm11.2092285 0.9375l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875z" fill-rule="nonzero"/><path fill="#ff9900" d="m749.7533 154.41995l146.67712 0l0 88.0l-146.67712 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m749.7533 154.41995l146.67712 0l0 88.0l-146.67712 0z" fill-rule="evenodd"/><path fill="#000000" d="m758.7377 176.21994l3.65625 -9.546875l1.359375 0l3.90625 9.546875l-1.4375 0l-1.109375 -2.890625l-3.984375 0l-1.046875 2.890625l-1.34375 0zm2.75 -3.921875l3.234375 0l-1.0 -2.640625q-0.453125 -1.203125 -0.671875 -1.96875q-0.1875 0.90625 -0.515625 1.8125l-1.046875 2.796875zm7.1866455 3.921875l0 -9.546875l3.59375 0q0.953125 0 1.453125 0.09375q0.703125 0.125 1.171875 0.453125q0.484375 0.328125 0.765625 0.921875q0.296875 0.59375 0.296875 1.296875q0 1.21875 -0.78125 2.0625q-0.765625 0.84375 -2.796875 0.84375l-2.4375 0l0 3.875l-1.265625 0zm1.265625 -5.0l2.453125 0q1.234375 0 1.75 -0.453125q0.515625 -0.46875 0.515625 -1.28125q0 -0.609375 -0.3125 -1.03125q-0.296875 -0.421875 -0.796875 -0.5625q-0.3125 -0.09375 -1.171875 -0.09375l-2.4375 0l0 3.421875zm7.8428345 5.0l0 -9.546875l1.25 0l0 9.546875l-1.25 0zm6.562256 -2.0625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm11.8671875 -0.15625l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm6.3758545 0l-2.625 -6.90625l1.234375 0l1.484375 4.140625q0.234375 0.65625 0.4375 1.390625q0.15625 -0.546875 0.4375 -1.3125l1.53125 -4.21875l1.21875 0l-2.625 6.90625l-1.09375 0zm9.4765625 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#00ff00" d="m771.3517 203.13132l0 0c0 -2.1511993 1.7438965 -3.8950958 3.8951416 -3.8950958l60.115295 0c1.03302 0 2.0238037 0.41036987 2.7542725 1.1408386c0.73046875 0.730484 1.1408081 1.7212067 1.1408081 2.7542572l0 15.579895c0 2.1511993 -1.7438965 3.8950806 -3.8950806 3.8950806l-60.115295 0c-2.151245 0 -3.8951416 -1.7438812 -3.8951416 -3.8950806z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m771.3517 203.13132l0 0c0 -2.1511993 1.7438965 -3.8950958 3.8951416 -3.8950958l60.115295 0c1.03302 0 2.0238037 0.41036987 2.7542725 1.1408386c0.73046875 0.730484 1.1408081 1.7212067 1.1408081 2.7542572l0 15.579895c0 2.1511993 -1.7438965 3.8950806 -3.8950806 3.8950806l-60.115295 0c-2.151245 0 -3.8951416 -1.7438812 -3.8951416 -3.8950806z" fill-rule="evenodd"/><path fill="#000000" d="m787.1019 213.5025l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm9.084351 3.078125l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.656128 -1.484375l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm6.6328125 2.53125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m749.7533 261.3281l146.67712 0l0 44.81888l-146.67712 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m749.7533 261.3281l146.67712 0l0 44.81888l-146.67712 0z" fill-rule="evenodd"/><path fill="#bababa" d="m759.15955 281.06558l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm11.6484375 -0.46875l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm2.1484375 2.53125l0 -9.546875l1.171875 0l0 3.421875q0.828125 -0.9375 2.078125 -0.9375q0.765625 0 1.328125 0.296875q0.5625 0.296875 0.8125 0.84375q0.25 0.53125 0.25 1.546875l0 4.375l-1.171875 0l0 -4.375q0 -0.890625 -0.390625 -1.28125q-0.375 -0.40625 -1.078125 -0.40625q-0.515625 0 -0.984375 0.28125q-0.453125 0.265625 -0.65625 0.734375q-0.1875 0.453125 -0.1875 1.265625l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.006226 4.125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm11.162476 3.453125l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm2.8656006 0l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.7110596 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m749.7533 325.0551l146.67712 0l0 44.81891l-146.67712 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m749.7533 325.0551l146.67712 0l0 44.81891l-146.67712 0z" fill-rule="evenodd"/><path fill="#bababa" d="m764.1439 344.32385l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm1.7109375 -0.921875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 3.453125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm9.974976 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1248779 1.046875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm4.0164795 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6312256 3.453125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm2.9610596 0l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.7111206 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm8.156982 0l0 -6.90625l1.046875 0l0 0.96875q0.328125 -0.515625 0.859375 -0.8125q0.546875 -0.3125 1.234375 -0.3125q0.78125 0 1.265625 0.3125q0.484375 0.3125 0.6875 0.890625q0.828125 -1.203125 2.140625 -1.203125q1.03125 0 1.578125 0.578125q0.5625 0.5625 0.5625 1.734375l0 4.75l-1.171875 0l0 -4.359375q0 -0.703125 -0.125 -1.0q-0.109375 -0.3125 -0.40625 -0.5q-0.296875 -0.1875 -0.703125 -0.1875q-0.71875 0 -1.203125 0.484375q-0.484375 0.484375 -0.484375 1.546875l0 4.015625l-1.171875 0l0 -4.484375q0 -0.78125 -0.296875 -1.171875q-0.28125 -0.390625 -0.921875 -0.390625q-0.5 0 -0.921875 0.265625q-0.421875 0.25 -0.609375 0.75q-0.1875 0.5 -0.1875 1.453125l0 3.578125l-1.171875 0zm15.618042 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9906006 3.46875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm11.928101 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.7718506 4.046875l1.140625 0.15625q0.078125 0.53125 0.40625 0.78125q0.4375 0.3125 1.1875 0.3125q0.8125 0 1.25 -0.328125q0.453125 -0.3125 0.609375 -0.90625q0.09375 -0.359375 0.078125 -1.5q-0.765625 0.90625 -1.90625 0.90625q-1.4375 0 -2.21875 -1.03125q-0.78125 -1.03125 -0.78125 -2.46875q0 -0.984375 0.359375 -1.8125q0.359375 -0.84375 1.03125 -1.296875q0.6875 -0.453125 1.609375 -0.453125q1.21875 0 2.015625 0.984375l0 -0.828125l1.078125 0l0 5.96875q0 1.609375 -0.328125 2.28125q-0.328125 0.6875 -1.046875 1.078125q-0.703125 0.390625 -1.75 0.390625q-1.234375 0 -2.0 -0.5625q-0.75 -0.5625 -0.734375 -1.671875zm0.984375 -4.15625q0 1.359375 0.53125 1.984375q0.546875 0.625 1.359375 0.625q0.796875 0 1.34375 -0.625q0.546875 -0.625 0.546875 -1.953125q0 -1.265625 -0.5625 -1.90625q-0.5625 -0.640625 -1.359375 -0.640625q-0.765625 0 -1.3125 0.640625q-0.546875 0.625 -0.546875 1.875zm11.381226 1.359375l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m749.7533 388.78217l146.67712 0l0 44.81888l-146.67712 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m749.7533 388.78217l146.67712 0l0 44.81888l-146.67712 0z" fill-rule="evenodd"/><path fill="#bababa" d="m764.1439 408.0509l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm2.1328125 2.53125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.5079346 0l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm2.4124756 -2.0625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm9.6953125 1.015625l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.874878 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm12.672607 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm7.5218506 3.46875l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm5.4437256 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm0.7030029 -2.40625q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.1781006 1.390625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm11.6484375 -0.46875l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm6.6640625 1.671875q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749756 3.46875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.7110596 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m753.0315 65.49606l140.91339 0l0 35.55905l-140.91339 0z" fill-rule="evenodd"/><path fill="#000000" d="m797.8199 87.29606l0 -0.953125l4.390625 -5.046875q-0.75 0.03125 -1.3125 0.03125l-2.828125 0l0 -0.9375l5.65625 0l0 0.765625l-3.75 4.390625l-0.71875 0.796875q0.796875 -0.0625 1.484375 -0.0625l3.1875 0l0 1.015625l-6.109375 0zm6.8359375 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 3.453125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53131104 0.21875 0.78131104 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171936 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm12.146912 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm14.7404175 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.5374756 0.609375l0 -1.1875l3.59375 0l0 1.1875l-3.59375 0zm4.5790405 0.34375l1.171875 -0.15625q0.203125 1.0 0.6875 1.4375q0.484375 0.4375 1.171875 0.4375q0.828125 0 1.390625 -0.578125q0.578125 -0.578125 0.578125 -1.421875q0 -0.796875 -0.53125 -1.3125q-0.515625 -0.53125 -1.328125 -0.53125q-0.34375 0 -0.828125 0.125l0.125 -1.03125q0.125 0.015625 0.1875 0.015625q0.75 0 1.34375 -0.390625q0.609375 -0.390625 0.609375 -1.203125q0 -0.640625 -0.4375 -1.0625q-0.4375 -0.421875 -1.125 -0.421875q-0.6875 0 -1.140625 0.4375q-0.453125 0.421875 -0.59375 1.28125l-1.171875 -0.21875q0.21875 -1.171875 0.984375 -1.8125q0.765625 -0.65625 1.890625 -0.65625q0.78125 0 1.4375 0.34375q0.65625 0.328125 1.0 0.90625q0.359375 0.578125 0.359375 1.234375q0 0.609375 -0.34375 1.125q-0.328125 0.5 -0.96875 0.796875q0.84375 0.203125 1.3125 0.828125q0.46875 0.609375 0.46875 1.53125q0 1.25 -0.921875 2.125q-0.90625 0.859375 -2.296875 0.859375q-1.25 0 -2.09375 -0.75q-0.828125 -0.75 -0.9375 -1.9375z" fill-rule="nonzero"/><path fill="#cfe2f3" d="m245.13124 105.826775l190.48817 0l0 349.85825l-190.48817 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m245.13124 105.826775l190.48817 0l0 349.85825l-190.48817 0z" fill-rule="evenodd"/><path fill="#000000" d="m263.89032 125.09552l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm1.7109375 -0.921875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 3.453125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm9.974976 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1248474 1.046875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm4.01651 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6312256 3.453125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm6.6796875 2.65625l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm6.3343506 3.421875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.49234 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9906006 3.46875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm10.2248535 4.125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm6.9749756 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm11.131226 3.453125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm11.365601 1.234375l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm10.209198 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.1883545 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5218506 6.78125l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm6.3343506 3.421875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm2.99234 -8.1875l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm7.46109 -2.53125l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm6.6640625 1.671875q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm11.2092285 2.609375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875z" fill-rule="nonzero"/><path fill="#ff9900" d="m266.6404 154.41995l146.67719 0l0 88.0l-146.67719 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m266.6404 154.41995l146.67719 0l0 88.0l-146.67719 0z" fill-rule="evenodd"/><path fill="#000000" d="m275.6248 176.21994l3.65625 -9.546875l1.359375 0l3.90625 9.546875l-1.4375 0l-1.109375 -2.890625l-3.984375 0l-1.046875 2.890625l-1.34375 0zm2.75 -3.921875l3.234375 0l-1.0 -2.640625q-0.453125 -1.203125 -0.671875 -1.96875q-0.1875 0.90625 -0.515625 1.8125l-1.046875 2.796875zm7.1866455 3.921875l0 -9.546875l3.59375 0q0.953125 0 1.453125 0.09375q0.703125 0.125 1.171875 0.453125q0.484375 0.328125 0.765625 0.921875q0.296875 0.59375 0.296875 1.296875q0 1.21875 -0.78125 2.0625q-0.765625 0.84375 -2.796875 0.84375l-2.4375 0l0 3.875l-1.265625 0zm1.265625 -5.0l2.453125 0q1.234375 0 1.75 -0.453125q0.515625 -0.46875 0.515625 -1.28125q0 -0.609375 -0.3125 -1.03125q-0.296875 -0.421875 -0.796875 -0.5625q-0.3125 -0.09375 -1.171875 -0.09375l-2.4375 0l0 3.421875zm7.842865 5.0l0 -9.546875l1.25 0l0 9.546875l-1.25 0zm6.5622253 -2.0625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm11.8671875 -0.15625l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm6.375885 0l-2.625 -6.90625l1.234375 0l1.484375 4.140625q0.234375 0.65625 0.4375 1.390625q0.15625 -0.546875 0.4375 -1.3125l1.53125 -4.21875l1.21875 0l-2.625 6.90625l-1.09375 0zm9.4765625 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#00ff00" d="m288.23883 203.13132l0 0c0 -2.1511993 1.7438965 -3.8950958 3.895111 -3.8950958l60.115326 0c1.0330505 0 2.0237732 0.41036987 2.754242 1.1408386c0.73046875 0.730484 1.1408386 1.7212067 1.1408386 2.7542572l0 15.579895c0 2.1511993 -1.7438965 3.8950806 -3.8950806 3.8950806l-60.115326 0c-2.1512146 0 -3.895111 -1.7438812 -3.895111 -3.8950806z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m288.23883 203.13132l0 0c0 -2.1511993 1.7438965 -3.8950958 3.895111 -3.8950958l60.115326 0c1.0330505 0 2.0237732 0.41036987 2.754242 1.1408386c0.73046875 0.730484 1.1408386 1.7212067 1.1408386 2.7542572l0 15.579895c0 2.1511993 -1.7438965 3.8950806 -3.8950806 3.8950806l-60.115326 0c-2.1512146 0 -3.895111 -1.7438812 -3.895111 -3.8950806z" fill-rule="evenodd"/><path fill="#000000" d="m303.98904 213.5025l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm9.084351 3.078125l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.656128 -1.484375l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm6.6328125 2.53125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0z" fill-rule="nonzero"/><path fill="#ff9900" d="m266.6404 261.3281l146.67719 0l0 44.81888l-146.67719 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m266.6404 261.3281l146.67719 0l0 44.81888l-146.67719 0z" fill-rule="evenodd"/><path fill="#000000" d="m276.04666 281.06558l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm11.6484375 -0.46875l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm2.1484375 2.53125l0 -9.546875l1.171875 0l0 3.421875q0.828125 -0.9375 2.078125 -0.9375q0.765625 0 1.328125 0.296875q0.5625 0.296875 0.8125 0.84375q0.25 0.53125 0.25 1.546875l0 4.375l-1.171875 0l0 -4.375q0 -0.890625 -0.390625 -1.28125q-0.375 -0.40625 -1.078125 -0.40625q-0.515625 0 -0.984375 0.28125q-0.453125 0.265625 -0.65625 0.734375q-0.1875 0.453125 -0.1875 1.265625l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.006226 4.125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm11.162476 3.453125l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm2.8656006 0l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.71109 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#ff9900" d="m266.6404 325.0551l146.67719 0l0 44.81891l-146.67719 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m266.6404 325.0551l146.67719 0l0 44.81891l-146.67719 0z" fill-rule="evenodd"/><path fill="#000000" d="m281.03104 344.32385l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm1.7109375 -0.921875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 3.453125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm9.974976 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1248779 1.046875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm4.0164795 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6312256 3.453125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm2.96109 0l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.71109 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm8.156982 0l0 -6.90625l1.046875 0l0 0.96875q0.328125 -0.515625 0.859375 -0.8125q0.546875 -0.3125 1.234375 -0.3125q0.78125 0 1.265625 0.3125q0.484375 0.3125 0.6875 0.890625q0.828125 -1.203125 2.140625 -1.203125q1.03125 0 1.578125 0.578125q0.5625 0.5625 0.5625 1.734375l0 4.75l-1.171875 0l0 -4.359375q0 -0.703125 -0.125 -1.0q-0.109375 -0.3125 -0.40625 -0.5q-0.296875 -0.1875 -0.703125 -0.1875q-0.71875 0 -1.203125 0.484375q-0.484375 0.484375 -0.484375 1.546875l0 4.015625l-1.171875 0l0 -4.484375q0 -0.78125 -0.296875 -1.171875q-0.28125 -0.390625 -0.921875 -0.390625q-0.5 0 -0.921875 0.265625q-0.421875 0.25 -0.609375 0.75q-0.1875 0.5 -0.1875 1.453125l0 3.578125l-1.171875 0zm15.6180725 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9906006 3.46875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm11.928101 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.7718506 4.046875l1.140625 0.15625q0.078125 0.53125 0.40625 0.78125q0.4375 0.3125 1.1875 0.3125q0.8125 0 1.25 -0.328125q0.453125 -0.3125 0.609375 -0.90625q0.09375 -0.359375 0.078125 -1.5q-0.765625 0.90625 -1.90625 0.90625q-1.4375 0 -2.21875 -1.03125q-0.78125 -1.03125 -0.78125 -2.46875q0 -0.984375 0.359375 -1.8125q0.359375 -0.84375 1.03125 -1.296875q0.6875 -0.453125 1.609375 -0.453125q1.21875 0 2.015625 0.984375l0 -0.828125l1.078125 0l0 5.96875q0 1.609375 -0.328125 2.28125q-0.328125 0.6875 -1.046875 1.078125q-0.703125 0.390625 -1.75 0.390625q-1.234375 0 -2.0 -0.5625q-0.75 -0.5625 -0.734375 -1.671875zm0.984375 -4.15625q0 1.359375 0.53125 1.984375q0.546875 0.625 1.359375 0.625q0.796875 0 1.34375 -0.625q0.546875 -0.625 0.546875 -1.953125q0 -1.265625 -0.5625 -1.90625q-0.5625 -0.640625 -1.359375 -0.640625q-0.765625 0 -1.3125 0.640625q-0.546875 0.625 -0.546875 1.875zm11.381226 1.359375l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#ff9900" d="m266.6404 388.78217l146.67719 0l0 44.81888l-146.67719 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m266.6404 388.78217l146.67719 0l0 44.81888l-146.67719 0z" fill-rule="evenodd"/><path fill="#000000" d="m281.03104 408.0509l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm2.1328125 2.53125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.507965 0l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm2.4124756 -2.0625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm9.6953125 1.015625l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.874878 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm12.672607 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm7.5218506 3.46875l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm5.4437256 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm0.7029724 -2.40625q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.1781006 1.390625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm11.6484375 -0.46875l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm6.6640625 1.671875q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749756 3.46875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.71109 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m269.91864 65.49606l140.91339 0l0 35.55905l-140.91339 0z" fill-rule="evenodd"/><path fill="#000000" d="m314.70706 87.29606l0 -0.953125l4.390625 -5.046875q-0.75 0.03125 -1.3125 0.03125l-2.828125 0l0 -0.9375l5.65625 0l0 0.765625l-3.75 4.390625l-0.71875 0.796875q0.796875 -0.0625 1.484375 -0.0625l3.1875 0l0 1.015625l-6.109375 0zm6.8359375 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 3.453125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm14.740448 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.5374756 0.609375l0 -1.1875l3.59375 0l0 1.1875l-3.59375 0zm8.98526 2.859375l-1.171875 0l0 -7.46875q-0.421875 0.40625 -1.109375 0.8125q-0.6875 0.40625 -1.234375 0.609375l0 -1.140625q0.984375 -0.453125 1.71875 -1.109375q0.734375 -0.671875 1.03125 -1.28125l0.765625 0l0 9.578125z" fill-rule="nonzero"/><path fill="#cfe2f3" d="m486.68765 105.826775l190.48819 0l0 349.85825l-190.48819 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m486.68765 105.826775l190.48819 0l0 349.85825l-190.48819 0z" fill-rule="evenodd"/><path fill="#000000" d="m505.44675 125.09552l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm1.7109375 -0.921875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.3280945 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.7655945 0.421875 -1.6718445 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.5780945 -0.671875 0.5780945 -2.03125q0 -1.28125 -0.5937195 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.64682 3.453125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm9.974976 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1248779 1.046875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm4.0164795 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6312256 3.453125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm6.6797485 2.65625l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm6.3343506 3.421875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.4923096 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9906006 3.46875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm10.2248535 4.125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm6.9749756 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm11.131226 3.453125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm11.365601 1.234375l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm10.2092285 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm9.1883545 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5218506 6.78125l0 -9.5625l1.078125 0l0 0.890625q0.375 -0.53125 0.84375 -0.78125q0.484375 -0.265625 1.15625 -0.265625q0.875 0 1.546875 0.453125q0.6875 0.453125 1.03125 1.28125q0.34375 0.828125 0.34375 1.828125q0 1.046875 -0.375 1.90625q-0.375 0.84375 -1.109375 1.296875q-0.71875 0.453125 -1.53125 0.453125q-0.578125 0 -1.046875 -0.25q-0.46875 -0.25 -0.765625 -0.625l0 3.375l-1.171875 0zm1.0625 -6.078125q0 1.34375 0.53125 1.984375q0.546875 0.625 1.3125 0.625q0.78125 0 1.34375 -0.65625q0.5625 -0.65625 0.5625 -2.046875q0 -1.3125 -0.546875 -1.96875q-0.546875 -0.671875 -1.296875 -0.671875q-0.75 0 -1.328125 0.703125q-0.578125 0.703125 -0.578125 2.03125zm6.3343506 3.421875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm2.9923096 -8.1875l0 -1.359375l1.171875 0l0 1.359375l-1.171875 0zm0 8.1875l0 -6.90625l1.171875 0l0 6.90625l-1.171875 0zm7.4611206 -2.53125l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm6.6640625 1.671875q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm7.7717285 3.46875l-1.078125 0l0 -9.546875l1.171875 0l0 3.40625q0.734375 -0.921875 1.890625 -0.921875q0.640625 0 1.203125 0.265625q0.578125 0.25 0.9375 0.71875q0.375 0.453125 0.578125 1.109375q0.203125 0.65625 0.203125 1.40625q0 1.78125 -0.875 2.75q-0.875 0.96875 -2.109375 0.96875q-1.21875 0 -1.921875 -1.015625l0 0.859375zm0 -3.5q0 1.234375 0.328125 1.78125q0.5625 0.90625 1.5 0.90625q0.765625 0 1.328125 -0.65625q0.5625 -0.671875 0.5625 -2.0q0 -1.34375 -0.546875 -1.984375q-0.53125 -0.65625 -1.296875 -0.65625q-0.765625 0 -1.328125 0.671875q-0.546875 0.671875 -0.546875 1.9375z" fill-rule="nonzero"/><path fill="#ff9900" d="m508.19684 154.41995l146.67719 0l0 88.0l-146.67719 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m508.19684 154.41995l146.67719 0l0 88.0l-146.67719 0z" fill-rule="evenodd"/><path fill="#000000" d="m517.1812 176.21994l3.65625 -9.546875l1.359375 0l3.90625 9.546875l-1.4375 0l-1.109375 -2.890625l-3.984375 0l-1.046875 2.890625l-1.34375 0zm2.75 -3.921875l3.234375 0l-1.0 -2.640625q-0.453125 -1.203125 -0.671875 -1.96875q-0.1875 0.90625 -0.515625 1.8125l-1.046875 2.796875zm7.1866455 3.921875l0 -9.546875l3.59375 0q0.953125 0 1.453125 0.09375q0.703125 0.125 1.171875 0.453125q0.484375 0.328125 0.765625 0.921875q0.296875 0.59375 0.296875 1.296875q0 1.21875 -0.78125 2.0625q-0.765625 0.84375 -2.796875 0.84375l-2.4375 0l0 3.875l-1.265625 0zm1.265625 -5.0l2.453125 0q1.234375 0 1.75 -0.453125q0.515625 -0.46875 0.515625 -1.28125q0 -0.609375 -0.3125 -1.03125q-0.296875 -0.421875 -0.796875 -0.5625q-0.3125 -0.09375 -1.171875 -0.09375l-2.4375 0l0 3.421875zm7.8428955 5.0l0 -9.546875l1.25 0l0 9.546875l-1.25 0zm6.562195 -2.0625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm11.8671875 -0.15625l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm6.3758545 0l-2.625 -6.90625l1.234375 0l1.484375 4.140625q0.234375 0.65625 0.4375 1.390625q0.15625 -0.546875 0.4375 -1.3125l1.53125 -4.21875l1.21875 0l-2.625 6.90625l-1.09375 0zm9.4765625 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#00ff00" d="m529.7953 203.13132l0 0c0 -2.1511993 1.7438965 -3.8950958 3.8950806 -3.8950958l60.115356 0c1.03302 0 2.0237427 0.41036987 2.7542114 1.1408386c0.73046875 0.730484 1.1408691 1.7212067 1.1408691 2.7542572l0 15.579895c0 2.1511993 -1.7438965 3.8950806 -3.8950806 3.8950806l-60.115356 0c-2.151184 0 -3.8950806 -1.7438812 -3.8950806 -3.8950806z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m529.7953 203.13132l0 0c0 -2.1511993 1.7438965 -3.8950958 3.8950806 -3.8950958l60.115356 0c1.03302 0 2.0237427 0.41036987 2.7542114 1.1408386c0.73046875 0.730484 1.1408691 1.7212067 1.1408691 2.7542572l0 15.579895c0 2.1511993 -1.7438965 3.8950806 -3.8950806 3.8950806l-60.115356 0c-2.151184 0 -3.8950806 -1.7438812 -3.8950806 -3.8950806z" fill-rule="evenodd"/><path fill="#000000" d="m545.5455 213.5025l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm9.084351 3.078125l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.656128 -1.484375l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm6.6328125 2.53125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m508.19684 261.3281l146.67719 0l0 44.81888l-146.67719 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m508.19684 261.3281l146.67719 0l0 44.81888l-146.67719 0z" fill-rule="evenodd"/><path fill="#bababa" d="m517.6031 281.06558l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm11.6484375 -0.46875l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm2.1484375 2.53125l0 -9.546875l1.171875 0l0 3.421875q0.828125 -0.9375 2.078125 -0.9375q0.765625 0 1.328125 0.296875q0.5625 0.296875 0.8125 0.84375q0.25 0.53125 0.25 1.546875l0 4.375l-1.171875 0l0 -4.375q0 -0.890625 -0.390625 -1.28125q-0.375 -0.40625 -1.078125 -0.40625q-0.515625 0 -0.984375 0.28125q-0.453125 0.265625 -0.65625 0.734375q-0.1875 0.453125 -0.1875 1.265625l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm11.006226 4.125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm11.162476 3.453125l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm2.8656006 0l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.7111206 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m508.19684 325.0551l146.67719 0l0 44.81891l-146.67719 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m508.19684 325.0551l146.67719 0l0 44.81891l-146.67719 0z" fill-rule="evenodd"/><path fill="#bababa" d="m522.58746 344.32385l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm1.7109375 -0.921875q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 3.453125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm9.974976 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm1.1248779 1.046875l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm4.0164795 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6312256 3.453125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm2.9611206 0l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.7110596 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm8.156982 0l0 -6.90625l1.046875 0l0 0.96875q0.328125 -0.515625 0.859375 -0.8125q0.546875 -0.3125 1.234375 -0.3125q0.78125 0 1.265625 0.3125q0.484375 0.3125 0.6875 0.890625q0.828125 -1.203125 2.140625 -1.203125q1.03125 0 1.578125 0.578125q0.5625 0.5625 0.5625 1.734375l0 4.75l-1.171875 0l0 -4.359375q0 -0.703125 -0.125 -1.0q-0.109375 -0.3125 -0.40625 -0.5q-0.296875 -0.1875 -0.703125 -0.1875q-0.71875 0 -1.203125 0.484375q-0.484375 0.484375 -0.484375 1.546875l0 4.015625l-1.171875 0l0 -4.484375q0 -0.78125 -0.296875 -1.171875q-0.28125 -0.390625 -0.921875 -0.390625q-0.5 0 -0.921875 0.265625q-0.421875 0.25 -0.609375 0.75q-0.1875 0.5 -0.1875 1.453125l0 3.578125l-1.171875 0zm15.618042 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9906006 3.46875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm11.928101 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.7718506 4.046875l1.140625 0.15625q0.078125 0.53125 0.40625 0.78125q0.4375 0.3125 1.1875 0.3125q0.8125 0 1.25 -0.328125q0.453125 -0.3125 0.609375 -0.90625q0.09375 -0.359375 0.078125 -1.5q-0.765625 0.90625 -1.90625 0.90625q-1.4375 0 -2.21875 -1.03125q-0.78125 -1.03125 -0.78125 -2.46875q0 -0.984375 0.359375 -1.8125q0.359375 -0.84375 1.03125 -1.296875q0.6875 -0.453125 1.609375 -0.453125q1.21875 0 2.015625 0.984375l0 -0.828125l1.078125 0l0 5.96875q0 1.609375 -0.328125 2.28125q-0.328125 0.6875 -1.046875 1.078125q-0.703125 0.390625 -1.75 0.390625q-1.234375 0 -2.0 -0.5625q-0.75 -0.5625 -0.734375 -1.671875zm0.984375 -4.15625q0 1.359375 0.53125 1.984375q0.546875 0.625 1.359375 0.625q0.796875 0 1.34375 -0.625q0.546875 -0.625 0.546875 -1.953125q0 -1.265625 -0.5625 -1.90625q-0.5625 -0.640625 -1.359375 -0.640625q-0.765625 0 -1.3125 0.640625q-0.546875 0.625 -0.546875 1.875zm11.381226 1.359375l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#f3f3f3" d="m508.19684 388.78217l146.67719 0l0 44.81888l-146.67719 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m508.19684 388.78217l146.67719 0l0 44.81888l-146.67719 0z" fill-rule="evenodd"/><path fill="#bababa" d="m522.58746 408.0509l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm2.1328125 2.53125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.5079956 0l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm2.4124756 -2.0625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm9.6953125 1.015625l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.874817 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm12.672607 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm7.5218506 3.46875l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm5.4437256 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm0.7030029 -2.40625q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.1781006 1.390625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm11.6484375 -0.46875l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm6.6640625 1.671875q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749756 3.46875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.7111206 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m511.47507 65.49606l140.91336 0l0 35.55905l-140.91336 0z" fill-rule="evenodd"/><path fill="#000000" d="m556.2635 87.29606l0 -0.953125l4.390625 -5.046875q-0.75 0.03125 -1.3125 0.03125l-2.828125 0l0 -0.9375l5.65625 0l0 0.765625l-3.75 4.390625l-0.71875 0.796875q0.796875 -0.0625 1.484375 -0.0625l3.1875 0l0 1.015625l-6.109375 0zm6.8359375 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm6.6468506 3.453125l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm12.146851 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm14.7404785 3.265625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.5374756 0.609375l0 -1.1875l3.59375 0l0 1.1875l-3.59375 0zm10.7196045 1.734375l0 1.125l-6.296875 0q-0.015625 -0.421875 0.140625 -0.8125q0.234375 -0.640625 0.765625 -1.265625q0.53125 -0.625 1.53125 -1.453125q1.5625 -1.265625 2.109375 -2.015625q0.546875 -0.75 0.546875 -1.40625q0 -0.703125 -0.5 -1.171875q-0.5 -0.484375 -1.296875 -0.484375q-0.859375 0 -1.375 0.515625q-0.5 0.5 -0.5 1.390625l-1.203125 -0.109375q0.125 -1.359375 0.921875 -2.0625q0.8125 -0.703125 2.171875 -0.703125q1.375 0 2.171875 0.765625q0.8125 0.75 0.8125 1.875q0 0.578125 -0.234375 1.140625q-0.234375 0.546875 -0.78125 1.15625q-0.546875 0.609375 -1.8125 1.671875q-1.046875 0.890625 -1.359375 1.21875q-0.296875 0.3125 -0.484375 0.625l4.671875 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m74.19948 198.13661l0 0c0 -3.490631 2.8297043 -6.320343 6.3203354 -6.320343l852.9971 0c1.6762695 0 3.2838745 0.66589355 4.4691772 1.851181c1.1853027 1.1853027 1.8511963 2.7929077 1.8511963 4.469162l0 25.280579c0 3.490631 -2.829712 6.320343 -6.3203735 6.320343l-852.9971 0c-3.490631 0 -6.3203354 -2.829712 -6.3203354 -6.320343z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m74.19948 198.13661l0 0c0 -3.490631 2.8297043 -6.320343 6.3203354 -6.320343l852.9971 0c1.6762695 0 3.2838745 0.66589355 4.4691772 1.851181c1.1853027 1.1853027 1.8511963 2.7929077 1.8511963 4.469162l0 25.280579c0 3.490631 -2.829712 6.320343 -6.3203735 6.320343l-852.9971 0c-3.490631 0 -6.3203354 -2.829712 -6.3203354 -6.320343z" fill-rule="evenodd"/><path fill="#000000" d="m90.66001 213.35815l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm9.084351 3.078125l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.6561127 -1.484375l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm6.6328125 2.53125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm14.849838 0.921875l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm2.1328125 2.53125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.5079727 0l0 -1.015625q-0.8125 1.171875 -2.1875076 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.9843826 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm2.4124756 -2.0625l1.15625 -0.1875q0.109375 0.703125 0.546875 1.078125q0.453125 0.359375 1.25 0.359375q0.8125 0 1.203125 -0.328125q0.390625 -0.328125 0.390625 -0.765625q0 -0.390625 -0.359375 -0.625q-0.234375 -0.15625 -1.1875 -0.390625q-1.296875 -0.328125 -1.796875 -0.5625q-0.484375 -0.25 -0.75 -0.65625q-0.25 -0.421875 -0.25 -0.9375q0 -0.453125 0.203125 -0.84375q0.21875 -0.40625 0.578125 -0.671875q0.28125 -0.1875 0.75 -0.328125q0.46875 -0.140625 1.015625 -0.140625q0.8125 0 1.421875 0.234375q0.609375 0.234375 0.90625 0.640625q0.296875 0.390625 0.40625 1.0625l-1.140625 0.15625q-0.078125 -0.53125 -0.453125 -0.828125q-0.375 -0.3125 -1.0625 -0.3125q-0.8125 0 -1.15625 0.265625q-0.34375 0.265625 -0.34375 0.625q0 0.234375 0.140625 0.421875q0.15625 0.1875 0.453125 0.3125q0.171875 0.0625 1.03125 0.296875q1.25 0.328125 1.734375 0.546875q0.5 0.203125 0.78125 0.609375q0.28125 0.40625 0.28125 1.0q0 0.59375 -0.34375 1.109375q-0.34375 0.515625 -1.0 0.796875q-0.640625 0.28125 -1.453125 0.28125q-1.34375 0 -2.046875 -0.5625q-0.703125 -0.5625 -0.90625 -1.65625zm9.6953125 1.015625l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.8748627 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m74.19948 153.06837l0 0c0 -3.490631 2.8297043 -6.320343 6.3203354 -6.320343l852.9971 0c1.6762695 0 3.2838745 0.66589355 4.4691772 1.851181c1.1853027 1.1853027 1.8511963 2.7928925 1.8511963 4.469162l0 25.280579c0 3.490631 -2.829712 6.320343 -6.3203735 6.320343l-852.9971 0c-3.490631 0 -6.3203354 -2.829712 -6.3203354 -6.320343z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" stroke-dasharray="4.0,3.0" d="m74.19948 153.06837l0 0c0 -3.490631 2.8297043 -6.320343 6.3203354 -6.320343l852.9971 0c1.6762695 0 3.2838745 0.66589355 4.4691772 1.851181c1.1853027 1.1853027 1.8511963 2.7928925 1.8511963 4.469162l0 25.280579c0 3.490631 -2.829712 6.320343 -6.3203735 6.320343l-852.9971 0c-3.490631 0 -6.3203354 -2.829712 -6.3203354 -6.320343z" fill-rule="evenodd"/><path fill="#000000" d="m85.91001 162.50867l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm2.539215 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm11.162476 2.59375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm7.4749756 3.46875l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm11.412338 3.453125l-1.078125 0l0 -9.546875l1.171875 0l0 3.40625q0.734375 -0.921875 1.890625 -0.921875q0.640625 0 1.203125 0.265625q0.578125 0.25 0.9375 0.71875q0.375 0.453125 0.578125 1.109375q0.203125 0.65625 0.203125 1.40625q0 1.78125 -0.875 2.75q-0.875 0.96875 -2.109375 0.96875q-1.21875 0 -1.921875 -1.015625l0 0.859375zm0 -3.5q0 1.234375 0.328125 1.78125q0.5625 0.90625 1.5 0.90625q0.765625 0 1.328125 -0.65625q0.5625 -0.671875 0.5625 -2.0q0 -1.34375 -0.546875 -1.984375q-0.53125 -0.65625 -1.296875 -0.65625q-0.765625 0 -1.328125 0.671875q-0.546875 0.671875 -0.546875 1.9375zm10.849976 2.640625q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.29688263 0.828125l-1.2187576 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749832 3.46875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.49234 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.21875 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9906006 3.46875l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm11.928101 -2.53125l1.15625 0.15625q-0.1875 1.1875 -0.96875 1.859375q-0.78125 0.671875 -1.921875 0.671875q-1.40625 0 -2.28125 -0.921875q-0.859375 -0.9375 -0.859375 -2.65625q0 -1.125 0.375 -1.96875q0.375 -0.84375 1.125 -1.25q0.765625 -0.421875 1.65625 -0.421875q1.125 0 1.84375 0.578125q0.71875 0.5625 0.921875 1.609375l-1.140625 0.171875q-0.171875 -0.703125 -0.59375 -1.046875q-0.40625 -0.359375 -0.984375 -0.359375q-0.890625 0 -1.453125 0.640625q-0.546875 0.640625 -0.546875 2.0q0 1.40625 0.53125 2.03125q0.546875 0.625 1.40625 0.625q0.6875 0 1.140625 -0.421875q0.46875 -0.421875 0.59375 -1.296875zm6.8828125 0.3125l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0z" fill-rule="nonzero"/><path fill="#000000" d="m90.66001 176.28992l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm5.7406006 4.125l2.53125 -3.59375l-2.34375 -3.3125l1.46875 0l1.0625 1.609375q0.296875 0.46875 0.484375 0.78125q0.28125 -0.4375 0.515625 -0.765625l1.171875 -1.625l1.40625 0l-2.390625 3.25l2.5625 3.65625l-1.4375 0l-1.421875 -2.140625l-0.375 -0.59375l-1.8125 2.734375l-1.421875 0zm10.0078125 -1.046875l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875zm5.8748627 -1.171875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -6.90625l1.0625 0l0 1.046875q0.40625 -0.734375 0.734375 -0.96875q0.34375 -0.234375 0.765625 -0.234375q0.59375 0 1.203125 0.375l-0.40625 1.078125q-0.4375 -0.25 -0.859375 -0.25q-0.390625 0 -0.703125 0.234375q-0.296875 0.234375 -0.421875 0.640625q-0.203125 0.625 -0.203125 1.359375l0 3.625l-1.171875 0zm4.4539948 0l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm11.928101 -0.859375q-0.65625 0.5625 -1.265625 0.796875q-0.59375 0.21875 -1.28125 0.21875q-1.140625 0 -1.75 -0.546875q-0.609375 -0.5625 -0.609375 -1.4375q0 -0.5 0.21875 -0.921875q0.234375 -0.421875 0.609375 -0.671875q0.375 -0.25 0.84375 -0.390625q0.34375 -0.078125 1.046875 -0.171875q1.421875 -0.171875 2.09375 -0.40625q0 -0.234375 0 -0.296875q0 -0.71875 -0.328125 -1.015625q-0.453125 -0.390625 -1.34375 -0.390625q-0.8125 0 -1.21875 0.296875q-0.390625 0.28125 -0.578125 1.015625l-1.140625 -0.15625q0.15625 -0.734375 0.515625 -1.1875q0.359375 -0.453125 1.03125 -0.6875q0.671875 -0.25 1.5625 -0.25q0.890625 0 1.4375 0.203125q0.5625 0.203125 0.8125076 0.53125q0.265625 0.3125 0.375 0.796875q0.046875 0.296875 0.046875 1.078125l0 1.5625q0 1.625 0.078125 2.0625q0.078125 0.4375 0.296875 0.828125l-1.2187576 0q-0.1875 -0.359375 -0.234375 -0.859375zm-0.09375 -2.609375q-0.640625 0.265625 -1.921875 0.4375q-0.71875 0.109375 -1.015625 0.25q-0.296875 0.125 -0.46875 0.375q-0.15625 0.25 -0.15625 0.546875q0 0.46875 0.34375 0.78125q0.359375 0.3125 1.046875 0.3125q0.671875 0 1.203125 -0.296875q0.53125 -0.296875 0.78125 -0.8125q0.1875 -0.390625 0.1875 -1.171875l0 -0.421875zm2.9749832 3.46875l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.0547028 0l0 -9.546875l1.25 0l0 9.546875l-1.25 0zm3.4842377 0l0 -9.546875l3.59375 0q0.953125 0 1.453125 0.09375q0.703125 0.125 1.171875 0.453125q0.484375 0.328125 0.765625 0.921875q0.296875 0.59375 0.296875 1.296875q0 1.21875 -0.78125 2.0625q-0.765625 0.84375 -2.796875 0.84375l-2.4375 0l0 3.875l-1.265625 0zm1.265625 -5.0l2.453125 0q1.234375 0 1.75 -0.453125q0.515625 -0.46875 0.515625 -1.28125q0 -0.609375 -0.3125 -1.03125q-0.296875 -0.421875 -0.796875 -0.5625q-0.3125 -0.09375 -1.171875 -0.09375l-2.4375 0l0 3.421875z" fill-rule="nonzero"/><path fill="#cfe2f3" d="m245.13124 494.40683l190.48817 0l0 123.37009l-190.48817 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m245.13124 494.40683l190.48817 0l0 123.37009l-190.48817 0z" fill-rule="evenodd"/><path fill="#cfe2f3" d="m261.07086 512.54333l190.48819 0l0 123.370056l-190.48819 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m261.07086 512.54333l190.48819 0l0 123.370056l-190.48819 0z" fill-rule="evenodd"/><path fill="#cfe2f3" d="m274.81104 529.5801l190.48819 0l0 123.370056l-190.48819 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m274.81104 529.5801l190.48819 0l0 123.370056l-190.48819 0z" fill-rule="evenodd"/><path fill="#000000" d="m329.06168 567.38007l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm6.9749756 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm11.131226 3.453125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm11.365601 1.234375l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm9.349823 4.28125l2.765625 -9.859375l0.9375 0l-2.765625 9.859375l-0.9375 0zm8.2966 -0.15625l0 -9.546875l1.171875 0l0 5.453125l2.765625 -2.8125l1.515625 0l-2.640625 2.5625l2.90625 4.34375l-1.4375 0l-2.28125 -3.53125l-0.828125 0.796875l0 2.734375l-1.171875 0zm11.1796875 0l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm3.9593506 0l-1.078125 0l0 -9.546875l1.171875 0l0 3.40625q0.734375 -0.921875 1.890625 -0.921875q0.640625 0 1.203125 0.265625q0.578125 0.25 0.9375 0.71875q0.375 0.453125 0.578125 1.109375q0.203125 0.65625 0.203125 1.40625q0 1.78125 -0.875 2.75q-0.875 0.96875 -2.109375 0.96875q-1.21875 0 -1.921875 -1.015625l0 0.859375zm0 -3.5q0 1.234375 0.328125 1.78125q0.5625 0.90625 1.5 0.90625q0.765625 0 1.328125 -0.65625q0.5625 -0.671875 0.5625 -2.0q0 -1.34375 -0.546875 -1.984375q-0.53125 -0.65625 -1.296875 -0.65625q-0.765625 0 -1.328125 0.671875q-0.546875 0.671875 -0.546875 1.9375zm11.068726 1.28125l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.71109 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm9.084351 3.078125l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875z" fill-rule="nonzero"/><path fill="#cfe2f3" d="m486.68765 494.40683l190.48819 0l0 123.37009l-190.48819 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m486.68765 494.40683l190.48819 0l0 123.37009l-190.48819 0z" fill-rule="evenodd"/><path fill="#cfe2f3" d="m502.6273 512.54333l190.48819 0l0 123.370056l-190.48819 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m502.6273 512.54333l190.48819 0l0 123.370056l-190.48819 0z" fill-rule="evenodd"/><path fill="#cfe2f3" d="m516.36743 529.5801l190.48822 0l0 123.370056l-190.48822 0z" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m516.36743 529.5801l190.48822 0l0 123.370056l-190.48822 0z" fill-rule="evenodd"/><path fill="#000000" d="m570.6181 567.38007l0 -6.90625l1.0625 0l0 0.984375q0.75 -1.140625 2.1875 -1.140625q0.625 0 1.15625 0.21875q0.53125 0.21875 0.78125 0.59375q0.265625 0.359375 0.375 0.859375q0.0625 0.328125 0.0625 1.140625l0 4.25l-1.171875 0l0 -4.203125q0 -0.71875 -0.140625 -1.0625q-0.140625 -0.359375 -0.484375 -0.5625q-0.34375 -0.21875 -0.8125 -0.21875q-0.75 0 -1.296875 0.46875q-0.546875 0.46875 -0.546875 1.796875l0 3.78125l-1.171875 0zm6.9749756 -3.453125q0 -1.921875 1.078125 -2.84375q0.890625 -0.765625 2.171875 -0.765625q1.421875 0 2.328125 0.9375q0.90625 0.921875 0.90625 2.578125q0 1.328125 -0.40625 2.09375q-0.390625 0.765625 -1.15625 1.1875q-0.765625 0.421875 -1.671875 0.421875q-1.453125 0 -2.359375 -0.921875q-0.890625 -0.9375 -0.890625 -2.6875zm1.203125 0q0 1.328125 0.578125 1.984375q0.59375 0.65625 1.46875 0.65625q0.875 0 1.453125 -0.65625q0.578125 -0.671875 0.578125 -2.03125q0 -1.28125 -0.59375 -1.9375q-0.578125 -0.65625 -1.4375 -0.65625q-0.875 0 -1.46875 0.65625q-0.578125 0.65625 -0.578125 1.984375zm11.131226 3.453125l0 -0.875q-0.65625 1.03125 -1.9375 1.03125q-0.8125 0 -1.515625 -0.453125q-0.6875 -0.453125 -1.078125 -1.265625q-0.375 -0.828125 -0.375 -1.890625q0 -1.03125 0.34375 -1.875q0.34375 -0.84375 1.03125 -1.28125q0.703125 -0.453125 1.546875 -0.453125q0.625 0 1.109375 0.265625q0.5 0.25 0.796875 0.671875l0 -3.421875l1.171875 0l0 9.546875l-1.09375 0zm-3.703125 -3.453125q0 1.328125 0.5625 1.984375q0.5625 0.65625 1.328125 0.65625q0.765625 0 1.296875 -0.625q0.53125 -0.625 0.53125 -1.90625q0 -1.421875 -0.546875 -2.078125q-0.546875 -0.671875 -1.34375 -0.671875q-0.78125 0 -1.3125 0.640625q-0.515625 0.625 -0.515625 2.0zm11.365601 1.234375l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm9.3498535 4.28125l2.765625 -9.859375l0.9375 0l-2.765625 9.859375l-0.9375 0zm8.29657 -0.15625l0 -9.546875l1.171875 0l0 5.453125l2.765625 -2.8125l1.515625 0l-2.640625 2.5625l2.90625 4.34375l-1.4375 0l-2.28125 -3.53125l-0.828125 0.796875l0 2.734375l-1.171875 0zm11.1796875 0l0 -1.015625q-0.8125 1.171875 -2.1875 1.171875q-0.609375 0 -1.140625 -0.234375q-0.53125 -0.234375 -0.796875 -0.578125q-0.25 -0.359375 -0.359375 -0.875q-0.0625 -0.34375 -0.0625 -1.09375l0 -4.28125l1.171875 0l0 3.828125q0 0.921875 0.0625 1.234375q0.109375 0.46875 0.46875 0.734375q0.359375 0.25 0.890625 0.25q0.515625 0 0.984375 -0.265625q0.46875 -0.265625 0.65625 -0.734375q0.1875 -0.46875 0.1875 -1.34375l0 -3.703125l1.171875 0l0 6.90625l-1.046875 0zm3.9593506 0l-1.078125 0l0 -9.546875l1.171875 0l0 3.40625q0.734375 -0.921875 1.890625 -0.921875q0.640625 0 1.203125 0.265625q0.578125 0.25 0.9375 0.71875q0.375 0.453125 0.578125 1.109375q0.203125 0.65625 0.203125 1.40625q0 1.78125 -0.875 2.75q-0.875 0.96875 -2.109375 0.96875q-1.21875 0 -1.921875 -1.015625l0 0.859375zm0 -3.5q0 1.234375 0.328125 1.78125q0.5625 0.90625 1.5 0.90625q0.765625 0 1.328125 -0.65625q0.5625 -0.671875 0.5625 -2.0q0 -1.34375 -0.546875 -1.984375q-0.53125 -0.65625 -1.296875 -0.65625q-0.765625 0 -1.328125 0.671875q-0.546875 0.671875 -0.546875 1.9375zm11.068726 1.28125l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm6.5062256 4.125l0 -9.546875l1.171875 0l0 9.546875l-1.171875 0zm7.7111206 -2.21875l1.203125 0.140625q-0.28125 1.0625 -1.0625 1.65625q-0.765625 0.578125 -1.96875 0.578125q-1.515625 0 -2.40625 -0.9375q-0.890625 -0.9375 -0.890625 -2.609375q0 -1.75 0.890625 -2.703125q0.90625 -0.96875 2.34375 -0.96875q1.390625 0 2.265625 0.9375q0.875 0.9375 0.875 2.65625q0 0.109375 0 0.3125l-5.15625 0q0.0625 1.140625 0.640625 1.75q0.578125 0.59375 1.4375 0.59375q0.65625 0 1.109375 -0.328125q0.453125 -0.34375 0.71875 -1.078125zm-3.84375 -1.90625l3.859375 0q-0.078125 -0.859375 -0.4375 -1.296875q-0.5625 -0.6875 -1.453125 -0.6875q-0.8125 0 -1.359375 0.546875q-0.546875 0.53125 -0.609375 1.4375zm9.084351 3.078125l0.171875 1.03125q-0.5 0.109375 -0.890625 0.109375q-0.640625 0 -1.0 -0.203125q-0.34375 -0.203125 -0.484375 -0.53125q-0.140625 -0.328125 -0.140625 -1.390625l0 -3.96875l-0.859375 0l0 -0.90625l0.859375 0l0 -1.71875l1.171875 -0.703125l0 2.421875l1.171875 0l0 0.90625l-1.171875 0l0 4.046875q0 0.5 0.046875 0.640625q0.0625 0.140625 0.203125 0.234375q0.140625 0.078125 0.40625 0.078125q0.203125 0 0.515625 -0.046875z" fill-rule="nonzero"/><path fill="#000000" fill-opacity="0.0" d="m516.36743 591.2651l-467.16925 0l0 -425.54327l24.996056 0" fill-rule="evenodd"/><path stroke="#000000" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m516.36743 591.2651l-467.16925 0l0 -425.54327l18.996056 0" fill-rule="evenodd"/><path fill="#000000" stroke="#000000" stroke-width="1.0" stroke-linecap="butt" d="m68.19423 167.37352l4.5380936 -1.6517334l-4.5380936 -1.6517334z" fill-rule="evenodd"/></g></svg> diff --git a/content/fa/docs/images/ingress.svg b/content/fa/docs/images/ingress.svg new file mode 100644 index 0000000000000..450a0aae9b4fa --- /dev/null +++ b/content/fa/docs/images/ingress.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 683.28125 224" style="max-width: 683.28125px;" height="224" aria-labelledby="chart-title-graph-div chart-desc-graph-div" role="img" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" width="100%" id="graph-div"><title id="chart-title-graph-div">
cluster
Ingress-managed
load balancer
routing rule
Ingress
Pod
Service
Pod
client
\ No newline at end of file diff --git a/content/fa/docs/images/ingressFanOut.svg b/content/fa/docs/images/ingressFanOut.svg new file mode 100644 index 0000000000000..a6bf202635164 --- /dev/null +++ b/content/fa/docs/images/ingressFanOut.svg @@ -0,0 +1 @@ +
cluster
Ingress-managed
load balancer
/foo
/bar
Ingress, 178.91.123.132
Pod
Service service1:4200
Pod
Pod
Service service2:8080
Pod
client
\ No newline at end of file diff --git a/content/fa/docs/images/ingressNameBased.svg b/content/fa/docs/images/ingressNameBased.svg new file mode 100644 index 0000000000000..7e1d7be98c60f --- /dev/null +++ b/content/fa/docs/images/ingressNameBased.svg @@ -0,0 +1 @@ +
cluster
Ingress-managed
load balancer
Host: foo.bar.com
Host: bar.foo.com
Ingress, 178.91.123.132
Pod
Service service1:80
Pod
Pod
Service service2:80
Pod
client
\ No newline at end of file diff --git a/content/fa/docs/images/kubernetes-cluster-network.svg b/content/fa/docs/images/kubernetes-cluster-network.svg new file mode 100644 index 0000000000000..9fd7a49e18b44 --- /dev/null +++ b/content/fa/docs/images/kubernetes-cluster-network.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/fa/docs/images/podSchedulingGates.svg b/content/fa/docs/images/podSchedulingGates.svg new file mode 100644 index 0000000000000..c87b23a7c6ef4 --- /dev/null +++ b/content/fa/docs/images/podSchedulingGates.svg @@ -0,0 +1 @@ +
scheduling gate removed
no
yes
pod created
pod scheduling gated
pod scheduling ready
pod running
empty scheduling gates?
\ No newline at end of file diff --git a/content/fa/docs/images/tutor-service-nodePort-fig01.svg b/content/fa/docs/images/tutor-service-nodePort-fig01.svg new file mode 100644 index 0000000000000..bb4d866f853f3 --- /dev/null +++ b/content/fa/docs/images/tutor-service-nodePort-fig01.svg @@ -0,0 +1 @@ +
SNAT
SNAT
client
Node 2
Node 1
Endpoint
\ No newline at end of file diff --git a/content/fa/docs/images/tutor-service-nodePort-fig02.svg b/content/fa/docs/images/tutor-service-nodePort-fig02.svg new file mode 100644 index 0000000000000..1a891575e5f58 --- /dev/null +++ b/content/fa/docs/images/tutor-service-nodePort-fig02.svg @@ -0,0 +1 @@ +
client
Node 1
Node 2
endpoint
\ No newline at end of file diff --git a/content/fa/docs/reference/_index.md b/content/fa/docs/reference/_index.md new file mode 100644 index 0000000000000..018f918309ac1 --- /dev/null +++ b/content/fa/docs/reference/_index.md @@ -0,0 +1,107 @@ +--- +title: مرجع +approvers: +- xirehat +linkTitle: "مرجع" +main_menu: true +weight: 70 +content_type: concept +no_list: true +--- + + + +این بخش از مستندات کوبرنتیز شامل ارجاعات است. + + + +## مرجع API + +* [واژه‌نامه](/docs/reference/glossary/) - فهرستی جامع و استاندارد از اصطلاحات کوبرنتیز + +* [مرجع API کوبرنتیز](/docs/reference/kubernetes-api/) +* [مرجع تک‌صفحه‌ای API برای کوبرنتیز {{< param "version" >}}](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/) +* [استفاده از API کوبرنتیز](/docs/reference/using-api/) - نمای کلی API در کوبرنتیز +* [کنترل دسترسی API](/docs/reference/access-authn-authz/) - جزئیاتی درباره نحوه کنترل دسترسی به API در کوبرنتیز +* [برچسب‌ها، حاشیه‌نویسی‌ها و لکه‌های (Taints) شناخته‌شده](/docs/reference/labels-annotations-taints/) + +## کتابخانه‌های client با پشتیبانی رسمی + +برای فراخوانی API کوبرنتیز از یک زبان برنامه‌نویسی، می‌توانید از +[کتابخانه‌ها](/docs/reference/using-api/client-libraries/) استفاده کنید. +کتابخانه‌هایی که به‌طور رسمی پشتیبانی می‌شوند: + +- [Kubernetes Go client library](https://github.com/kubernetes/client-go/) +- [Kubernetes Python client library](https://github.com/kubernetes-client/python) +- [Kubernetes Java client library](https://github.com/kubernetes-client/java) +- [Kubernetes JavaScript client library](https://github.com/kubernetes-client/javascript) +- [Kubernetes C# client library](https://github.com/kubernetes-client/csharp) +- [Kubernetes Haskell client library](https://github.com/kubernetes-client/haskell) + +## خط فرمان + +* [kubectl](/docs/reference/kubectl/) - ابزار خط فرمان اصلی برای اجرای دستورها و مدیریت خوشه‌های کوبرنتیز. + * [JSONPath](/docs/reference/kubectl/jsonpath/) - راهنمای نحوی برای استفاده از [عبارات JSONPath](https://goessner.net/articles/JsonPath/) با kubectl. +* [kubeadm](/docs/reference/setup-tools/kubeadm/) - ابزار خط فرمانی برای راه‌اندازی آسان یک خوشه ایمن کوبرنتیز. + +## اجزا + +* [kubelet](/docs/reference/command-line-tools-reference/kubelet/) - عامل اصلی‌ای که روی هر گره اجرا می‌شود. kubelet مجموعه‌ای از PodSpecها را می‌گیرد و اطمینان حاصل می‌کند کانتینرهای توصیف‌شده در حال اجرا و سالم هستند. +* [kube-apiserver](/docs/reference/command-line-tools-reference/kube-apiserver/) - یک REST API که داده‌های اشیای API مانند پادها، سرویس‌ها و replication controllerها را اعتبارسنجی و پیکربندی می‌کند. +* [kube-controller-manager](/docs/reference/command-line-tools-reference/kube-controller-manager/) - یک Daemon ای که حلقه‌های کنترل اصلی همراه کوبرنتیز را در خود جای داده است. +* [kube-proxy](/docs/reference/command-line-tools-reference/kube-proxy/) - می‌تواند ارسال ساده جریان TCP/UDP یا ارسال TCP/UDP به‌صورت round-robin را بین مجموعه‌ای از بک‌اندها انجام دهد. +* [kube-scheduler](/docs/reference/command-line-tools-reference/kube-scheduler/) - زمان‌بندی‌کننده‌ای که دسترس‌پذیری، عملکرد و ظرفیت را مدیریت می‌کند. + * [Scheduler Policies](/docs/reference/scheduling/policies) + * [Scheduler Profiles](/docs/reference/scheduling/config#profiles) + +* فهرست [ports and protocols](/docs/reference/networking/ports-and-protocols/) که باید روی گره‌های Control Plain و Worker باز باشند + +## پیکربندی APIها + +This section hosts the documentation for "unpublished" APIs which are used to +configure kubernetes components or tools. Most of these APIs are not exposed +by the API server in a RESTful way though they are essential for a user or an +operator to use or manage a cluster. + +این بخش میزبان مستندات APIهای «منتشر نشده» است که برای پیکربندی اجزا یا ابزارهای کوبرنتیز استفاده می‌شوند. اکثر این APIها توسط سرور API به روش RESTful در معرض نمایش قرار نمی‌گیرند، اگرچه برای کاربر یا اپراتور جهت استفاده یا مدیریت یک خوشه ضروری هستند. + +* [kubeconfig (v1)](/docs/reference/config-api/kubeconfig.v1/) +* [kuberc (v1alpha1)](/docs/reference/config-api/kuberc.v1alpha1/) +* [kube-apiserver admission (v1)](/docs/reference/config-api/apiserver-admission.v1/) +* [kube-apiserver configuration (v1alpha1)](/docs/reference/config-api/apiserver-config.v1alpha1/) و +* [kube-apiserver configuration (v1beta1)](/docs/reference/config-api/apiserver-config.v1beta1/) و + [kube-apiserver configuration (v1)](/docs/reference/config-api/apiserver-config.v1/) +* [kube-apiserver event rate limit (v1alpha1)](/docs/reference/config-api/apiserver-eventratelimit.v1alpha1/) +* [kubelet configuration (v1alpha1)](/docs/reference/config-api/kubelet-config.v1alpha1/) و + [kubelet configuration (v1beta1)](/docs/reference/config-api/kubelet-config.v1beta1/) + [kubelet configuration (v1)](/docs/reference/config-api/kubelet-config.v1/) +* [kubelet credential providers (v1)](/docs/reference/config-api/kubelet-credentialprovider.v1/) + [kube-scheduler configuration (v1)](/docs/reference/config-api/kube-scheduler-config.v1/) +* [kube-controller-manager configuration (v1alpha1)](/docs/reference/config-api/kube-controller-manager-config.v1alpha1/) +* [kube-proxy configuration (v1alpha1)](/docs/reference/config-api/kube-proxy-config.v1alpha1/) +* [`audit.k8s.io/v1` API](/docs/reference/config-api/apiserver-audit.v1/) +* [Client authentication API (v1beta1)](/docs/reference/config-api/client-authentication.v1beta1/) و + [Client authentication API (v1)](/docs/reference/config-api/client-authentication.v1/) +* [WebhookAdmission configuration (v1)](/docs/reference/config-api/apiserver-webhookadmission.v1/) +* [ImagePolicy API (v1alpha1)](/docs/reference/config-api/imagepolicy.v1alpha1/) + +## پیکربندی API برای kubeadm + +* [v1beta3](/docs/reference/config-api/kubeadm-config.v1beta3/) +* [v1beta4](/docs/reference/config-api/kubeadm-config.v1beta4/) + +## API های خارجی + +اینها APIهایی هستند که توسط پروژه کوبرنتیز تعریف شده‌اند، اما توسط پروژه اصلی پیاده‌سازی نشده‌اند: + +* [Metrics API (v1beta1)](/docs/reference/external-api/metrics.v1beta1/) +* [Custom Metrics API (v1beta2)](/docs/reference/external-api/custom-metrics.v1beta2) +* [External Metrics API (v1beta1)](/docs/reference/external-api/external-metrics.v1beta1) + +## اسناد طراحی + +آرشیوی از اسناد طراحی برای قابلیت‌های کوبرنتیز. نقاط شروع خوبی وجود دارد + +[معماری کوبرنتیز](https://git.k8s.io/design-proposals-archive/architecture/architecture.md) و +[مرور کلی طراحی کوبرنتیز](https://git.k8s.io/design-proposals-archive). + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIListChunking.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIListChunking.md new file mode 100644 index 0000000000000..ea69da76c9d33 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIListChunking.md @@ -0,0 +1,23 @@ +--- +title: APIListChunking +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.8" + toVersion: "1.8" + - stage: beta + defaultValue: true + fromVersion: "1.9" + toVersion: "1.28" + - stage: stable + defaultValue: true + fromVersion: "1.29" + toVersion: "1.32" +removed: true +--- +به کلاینت‌های API این امکان را بدهید که منابع را از سرور API به صورت تکه‌تکه بازیابی کنند (`LIST` یا `GET`). diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIPriorityAndFairness.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIPriorityAndFairness.md new file mode 100644 index 0000000000000..9a0d80e9f4df6 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIPriorityAndFairness.md @@ -0,0 +1,25 @@ +--- +title: APIPriorityAndFairness +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.18" + toVersion: "1.19" + - stage: beta + defaultValue: true + fromVersion: "1.20" + toVersion: "1.28" + - stage: stable + defaultValue: true + fromVersion: "1.29" + toVersion: "1.30" + +removed: true +--- + +فعال کردن مدیریت همزمانی درخواست‌ها با اولویت‌بندی و انصاف در هر سرور. (نام قبلی از `RequestManagement` تغییر یافته است) diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIResponseCompression.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIResponseCompression.md new file mode 100644 index 0000000000000..d2fe5aab184a0 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIResponseCompression.md @@ -0,0 +1,17 @@ +--- +title: APIResponseCompression +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: "alpha" + defaultValue: false + fromVersion: "1.7" + toVersion: "1.15" + - stage: beta + defaultValue: true + fromVersion: "1.16" +--- +پاسخ‌های API را برای درخواست‌های `LIST` یا `GET` فشرده‌سازی کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/APISelfSubjectReview.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/APISelfSubjectReview.md new file mode 100644 index 0000000000000..50171520b6f32 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/APISelfSubjectReview.md @@ -0,0 +1,24 @@ +--- +# از Kubernetes حذف شد +title: APISelfSubjectReview +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.26" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.27" + - stage: stable + defaultValue: true + fromVersion: "1.28" + toVersion: "1.29" +removed: true +--- +رابط برنامه‌نویسی کاربردی «SelfSubjectReview» را فعال کنید که به کاربران اجازه می‌دهد اطلاعات احراز هویت فرد درخواست‌کننده را مشاهده کنند. برای جزئیات بیشتر به [API access to authentication information for a client](/docs/reference/access-authn-authz/authentication/#self-subject-review) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIServerIdentity.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIServerIdentity.md new file mode 100644 index 0000000000000..8f489067d67b7 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIServerIdentity.md @@ -0,0 +1,18 @@ +--- +title: APIServerIdentity +content_type: feature_gate +_build: + list: never + + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.20" + toVersion: "1.25" + - stage: beta + defaultValue: true + fromVersion: "1.26" +--- +با استفاده از یک [Lease](/docs/concepts/architecture/leases)، به هر سرور API در یک خوشه یک شناسه اختصاص دهید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIServerTracing.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIServerTracing.md new file mode 100644 index 0000000000000..d9524a61b49b0 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIServerTracing.md @@ -0,0 +1,18 @@ +--- +title: APIServerTracing +content_type: feature_gate +_build: + list: never + + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.22" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" +--- +پشتیبانی از ردیابی توزیع‌شده در سرور API اضافه شود. برای جزئیات بیشتر به [Traces for Kubernetes System Components](/docs/concepts/cluster-administration/system-traces) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIServingWithRoute.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIServingWithRoute.md new file mode 100644 index 0000000000000..55e4ba8694b43 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/APIServingWithRoute.md @@ -0,0 +1,13 @@ +--- +title: APIServingWithRoute +content_type: feature_gate +_build: + list: never + render: false +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.30" +--- +این دروازه ویژگی، بهبود عملکرد سرور API را امکان‌پذیر می‌کند: +سرور API می‌تواند از گوروتین‌های جداگانه (رشته‌های سبک مدیریت‌شده توسط زمان اجرای Go) برای ارائه درخواست‌های [**watch**](/docs/reference/using-api/api-concepts/#efficient-detection-of-changes) استفاده کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/Accelerators.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/Accelerators.md new file mode 100644 index 0000000000000..4209fca4d0f33 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/Accelerators.md @@ -0,0 +1,20 @@ +--- +title: Accelerators +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.6" + toVersion: "1.10" + - stage: deprecated + fromVersion: "1.11" + toVersion: "1.11" + +removed: true +--- +یک افزونه اولیه برای فعال کردن پشتیبانی از پردازنده گرافیکی انویدیا هنگام استفاده از موتور داکر ارائه شد؛ دیگر در دسترس نیست. برای یک جایگزین به [Device Plugins](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) مراجعه کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AdmissionWebhookMatchConditions.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AdmissionWebhookMatchConditions.md new file mode 100644 index 0000000000000..d8db47d367c29 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AdmissionWebhookMatchConditions.md @@ -0,0 +1,25 @@ +--- +title: AdmissionWebhookMatchConditions +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.27" + toVersion: "1.27" + - stage: beta + defaultValue: true + fromVersion: "1.28" + toVersion: "1.29" + - stage: stable + defaultValue: true + fromVersion: "1.30" + toVersion: "1.32" + +removed: true +--- +فعال کردن [match conditions](/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchconditions) +برای تغییر و اعتبارسنجی وب‌هوک‌های پذیرش. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AdvancedAuditing.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AdvancedAuditing.md new file mode 100644 index 0000000000000..45098bdb3c2af --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AdvancedAuditing.md @@ -0,0 +1,24 @@ +--- +title: Advanced auditing +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.7" + toVersion: "1.7" + - stage: beta + defaultValue: true + fromVersion: "1.8" + toVersion: "1.11" + - stage: stable + defaultValue: true + fromVersion: "1.12" + toVersion: "1.27" + +removed: true +--- +فعال کردن [advanced auditing](/docs/tasks/debug/debug-cluster/audit/#advanced-audit) \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AffinityInAnnotations.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AffinityInAnnotations.md new file mode 100644 index 0000000000000..8ae30e63443fc --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AffinityInAnnotations.md @@ -0,0 +1,22 @@ +--- +# از Kubernetes حذف شد +title: affinities +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.6" + toVersion: "1.7" + - stage: deprecated + fromVersion: "1.8" + toVersion: "1.8" + +removed: true +--- +تنظیم را فعال کنید +[Pod affinity or anti-affinity](/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity). diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AggregatedDiscoveryEndpoint.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AggregatedDiscoveryEndpoint.md new file mode 100644 index 0000000000000..044d21e8a7f10 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AggregatedDiscoveryEndpoint.md @@ -0,0 +1,26 @@ +--- +title: Aggregate Discovery Endpoint +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.26" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.29" + - stage: stable + defaultValue: true + fromVersion: "1.30" + toVersion: "1.32" + +removed: true +--- + + +یک نقطه پایانی HTTP واحد `/discovery/` را فعال کنید که از ذخیره‌سازی HTTP بومی با ETag هایی که شامل تمام APIResource های شناخته شده برای سرور API هستند، پشتیبانی می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowDNSOnlyNodeCSR.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowDNSOnlyNodeCSR.md new file mode 100644 index 0000000000000..ebc999d550b3a --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowDNSOnlyNodeCSR.md @@ -0,0 +1,15 @@ +--- +title: AllowDNSOnlyNodeCSR +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: deprecated + defaultValue: false + fromVersion: "1.31" +--- +Allow kubelet to request a certificate without any Node IP available, only with DNS names. +به kubelet اجازه دهید بدون هیچ IP گره‌ای، فقط با نام‌های DNS، درخواست گواهی کند. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowExtTrafficLocalEndpoints.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowExtTrafficLocalEndpoints.md new file mode 100644 index 0000000000000..d3336dec5b9d9 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowExtTrafficLocalEndpoints.md @@ -0,0 +1,22 @@ +--- +# از Kubernetes حذف شد +title: AllowExtTrafficLocalEndpoints +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.4" + toVersion: "1.6" + - stage: stable + defaultValue: true + fromVersion: "1.7" + toVersion: "1.9" + +removed: true +--- +فعال کردن یک سرویس برای هدایت درخواست‌های خارجی به نقاط انتهایی محلی گره. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowInsecureBackendProxy.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowInsecureBackendProxy.md new file mode 100644 index 0000000000000..d494e9772eb3f --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowInsecureBackendProxy.md @@ -0,0 +1,25 @@ +--- +# از Kubernetes حذف شد +title: AllowInsecureBackendProxy +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.17" + toVersion: "1.20" + - stage: stable + defaultValue: true + fromVersion: "1.21" + toVersion: "1.25" + +removed: true +--- +Enable the users to skip TLS verification of +kubelets on Pod log requests. + +به کاربران این امکان را بدهید که در درخواست‌های لاگ پاد، از تأیید TLS مربوط به kubelets صرف‌نظر کنند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowInsecureKubeletCertificateSigningRequests.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowInsecureKubeletCertificateSigningRequests.md new file mode 100644 index 0000000000000..bedeaa4ab560e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowInsecureKubeletCertificateSigningRequests.md @@ -0,0 +1,14 @@ +--- +title: AllowInsecureKubeletCertificateSigningRequests +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: deprecated + defaultValue: false + fromVersion: "1.31" +--- +اعتبارسنجی پذیرش گره [CertificateSigningRequests](/docs/reference/access-authn-authz/certificate-signing-requests/#certificate-signing-requests) را برای امضاکنندگان kubelet غیرفعال کنید. مگر اینکه این ویژگی را غیرفعال کنید، Kubernetes الزام می‌کند که گواهی‌های kubelet جدید دارای `commonName` مطابق با `system:node:$nodeName` باشند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowParsingUserUIDFromCertAuth.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowParsingUserUIDFromCertAuth.md new file mode 100644 index 0000000000000..da7ceb3e612ed --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowParsingUserUIDFromCertAuth.md @@ -0,0 +1,15 @@ +--- +title: AllowParsingUserUIDFromCertAuth +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" + +--- + +وقتی این ویژگی فعال باشد، ویژگی نام موضوع `1.3.6.1.4.1.57683.2` در گواهی X.509 به عنوان شناسه کاربری کاربر در طول احراز هویت گواهی تجزیه می‌شود. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowServiceLBStatusOnNonLB.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowServiceLBStatusOnNonLB.md new file mode 100644 index 0000000000000..d17493b1f6799 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowServiceLBStatusOnNonLB.md @@ -0,0 +1,14 @@ +--- +title: AllowServiceLBStatusOnNonLB +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: deprecated + defaultValue: false + fromVersion: "1.29" +--- + +فعال کردن تنظیم `.status.ingress.loadBalancer` روی سرویس‌هایی از نوع غیر از `LoadBalancer`. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowUnsafeMalformedObjectDeletion.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowUnsafeMalformedObjectDeletion.md new file mode 100644 index 0000000000000..8398e43edb370 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AllowUnsafeMalformedObjectDeletion.md @@ -0,0 +1,15 @@ +--- +title: AllowUnsafeMalformedObjectDeletion +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" +--- + + +به اپراتور خوشه این امکان را می‌دهد که با استفاده از عملیات **list** منابع خراب را شناسایی کند و گزینه‌ای با عنوان `ignoreStoreReadErrorWithClusterBreakingPotential` را معرفی می‌کند که اپراتور می‌تواند آن را برای انجام عملیات ناامن و حذف اجباری چنین منابع خراب با استفاده از Kubernetes API تنظیم کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AnonymousAuthConfigurableEndpoints.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AnonymousAuthConfigurableEndpoints.md new file mode 100644 index 0000000000000..1958260986b2e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AnonymousAuthConfigurableEndpoints.md @@ -0,0 +1,17 @@ +--- +title: AnonymousAuthConfigurableEndpoints +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.31" + toVersion: "1.31" + - stage: beta + defaultValue: true + fromVersion: "1.32" +--- +فعال کردن [configurable endpoints for anonymous auth](/docs/reference/access-authn-authz/authentication/#anonymous-authenticator-configuration) برای سرور API. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AnyVolumeDataSource.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AnyVolumeDataSource.md new file mode 100644 index 0000000000000..4ffcea35bd447 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AnyVolumeDataSource.md @@ -0,0 +1,23 @@ +--- +title: AnyVolumeDataSource +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.18" + toVersion: "1.23" + - stage: beta + defaultValue: true + fromVersion: "1.24" + toVersion: "1.32" + - stage: stable + defaultValue: true + fromVersion: "1.33" + locked: true +--- + +فعال کردن استفاده از هر منبع سفارشی به عنوان `DataSource` یک {{< glossary_tooltip text="PVC" term_id="persistent-volume-claim" >}}. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AppArmor.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AppArmor.md new file mode 100644 index 0000000000000..97f53cd864b4c --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AppArmor.md @@ -0,0 +1,20 @@ +--- +title: AppArmor +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.4" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + +removed: true +--- +فعال کردن کنترل دسترسی اجباری AppArmor برای Podهایی که روی گره‌های لینوکس اجرا می‌شوند. برای جزئیات بیشتر به [AppArmor Tutorial](/docs/tutorials/security/apparmor/) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AppArmorFields.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AppArmorFields.md new file mode 100644 index 0000000000000..e5d3b78372d53 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AppArmorFields.md @@ -0,0 +1,22 @@ +--- +title: AppArmorFields +content_type: feature_gate +_build: + list: never + + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.30" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + +removed: true +--- +تنظیمات زمینه امنیتی مرتبط با AppArmor را فعال کنید. +برای اطلاعات بیشتر در مورد AppArmor و Kubernetes، بخش [AppArmor](/docs/concepts/security/linux-kernel-security-constraints/#apparmor) را در [security features in the Linux kernel](/docs/concepts/security/linux-kernel-security-constraints/#linux-security-features) مطالعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AttachVolumeLimit.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AttachVolumeLimit.md new file mode 100644 index 0000000000000..59a3bc71ce709 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AttachVolumeLimit.md @@ -0,0 +1,27 @@ +--- +# از Kubernetes حذف شد +title: AttachVolumeLimit +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.11" + toVersion: "1.11" + - stage: beta + defaultValue: true + fromVersion: "1.12" + toVersion: "1.16" + - stage: stable + defaultValue: true + fromVersion: "1.17" + toVersion: "1.21" + +removed: true +--- +فزونه‌های حجم را برای گزارش محدودیت تعداد حجم‌هایی که می‌توانند به یک گره متصل شوند، فعال کنید. +برای جزئیات بیشتر به [dynamic volume limits](/docs/concepts/storage/storage-limits/#dynamic-volume-limits) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AuthorizeNodeWithSelectors.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AuthorizeNodeWithSelectors.md new file mode 100644 index 0000000000000..283b258a94761 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AuthorizeNodeWithSelectors.md @@ -0,0 +1,18 @@ +--- +title: AuthorizeNodeWithSelectors +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.31" + toVersion: "1.31" + - stage: beta + defaultValue: true + fromVersion: "1.32" +--- +کاری کنید که [Node authorizer](/docs/reference/access-authn-authz/node/) از مجوزدهی گزینشگر دقیق استفاده کند. +نیازمند فعال بودن `AuthorizeWithSelectors` است. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/AuthorizeWithSelectors.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AuthorizeWithSelectors.md new file mode 100644 index 0000000000000..a2fda552d74b7 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/AuthorizeWithSelectors.md @@ -0,0 +1,21 @@ +--- +title: AuthorizeWithSelectors +content_type: feature_gate +_build: + list: beta + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.31" + toVersion: "1.31" + - stage: beta + defaultValue: true + fromVersion: "1.32" +--- +اجازه استفاده از انتخابگرهای فیلد و برچسب را به مجوزدهنده می‌دهد. +فیلدهای `fieldSelector` و `labelSelector` را در [SubjectAccessReview API](/docs/reference/kubernetes-api/authorization-resources/subject-access-review-v1/) فعال می‌کند، +اطلاعات انتخابگر فیلد و برچسب را به [authorization webhooks](/docs/reference/access-authn-authz/webhook/) ارسال می‌کند، +توابع `fieldSelector` و `labelSelector` را در [authorizer CEL library](https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#AuthzSelectors) فعال می‌کند، +و بررسی فیلدهای `fieldSelector` و `labelSelector` را در [authorization webhook `matchConditions`](/docs/reference/access-authn-authz/authorization/#using-configuration-file-for-authorization). \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/BalanceAttachedNodeVolumes.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/BalanceAttachedNodeVolumes.md new file mode 100644 index 0000000000000..cb7ce512a2a6b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/BalanceAttachedNodeVolumes.md @@ -0,0 +1,22 @@ +--- +# از Kubernetes حذف شد +title: BalanceAttachedNodeVolumes +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.11" + toVersion: "1.21" + - stage: deprecated + defaultValue: false + fromVersion: "1.22" + toVersion: "1.22" + +removed: true +--- +تعداد حجم گره را برای تخصیص متوازن منابع در زمان‌بندی لحاظ کنید. گره‌ای که CPU، حافظه و تعداد حجم نزدیک‌تری دارد، در زمان تصمیم‌گیری توسط زمان‌بند ترجیح داده می‌شود. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/BlockVolume.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/BlockVolume.md new file mode 100644 index 0000000000000..f90de5fa1c0e3 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/BlockVolume.md @@ -0,0 +1,27 @@ +--- +# Removed from Kubernetes +title: BlockVolume +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.9" + toVersion: "1.12" + - stage: beta + defaultValue: true + fromVersion: "1.13" + toVersion: "1.17" + - stage: stable + defaultValue: true + fromVersion: "1.18" + toVersion: "1.21" + +removed: true +--- +تعریف و مصرف دستگاه‌های بلوک خام را در Pods فعال کنید. +برای جزئیات بیشتر به [Raw Block Volume Support](/docs/concepts/storage/persistent-volumes/#raw-block-volume-support) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/BoundServiceAccountTokenVolume.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/BoundServiceAccountTokenVolume.md new file mode 100644 index 0000000000000..009a09db1a410 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/BoundServiceAccountTokenVolume.md @@ -0,0 +1,27 @@ +--- +# از Kubernetes حذف شد +title: BoundServiceAccountTokenVolume +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.13" + toVersion: "1.20" + - stage: beta + defaultValue: true + fromVersion: "1.21" + toVersion: "1.21" + - stage: stable + defaultValue: true + fromVersion: "1.22" + toVersion: "1.23" + +removed: true +--- +حجم‌های ServiceAccount را برای استفاده از یک حجم پیش‌بینی‌شده که شامل ServiceAccountTokenVolumeProjection است، منتقل کنید. مدیران خوشه می‌توانند از معیار `serviceaccount_stale_tokens_total` برای نظارت بر حجم کاری که به توکن‌های توسعه‌یافته وابسته است، استفاده کنند. اگر چنین حجم کاری وجود ندارد، توکن‌های توسعه‌یافته را با شروع `kube-apiserver` با پرچم `--service-account-extend-token-expiration=false` خاموش کنید. +برای جزئیات بیشتر، [Bound Service Account Tokens](https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/1205-bound-service-account-tokens/README.md) را بررسی کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/BtreeWatchCache.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/BtreeWatchCache.md new file mode 100644 index 0000000000000..e4e27266921de --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/BtreeWatchCache.md @@ -0,0 +1,22 @@ +--- +title: BtreeWatchCache +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.32" + toVersion: "1.32" + - stage: stable + defaultValue: true + locked: true + fromVersion: "1.33" + +--- +وقتی این گزینه فعال شود، سرور API، کش watch قدیمی مبتنی بر HashMap را با پیاده‌سازی مبتنی بر BTree جایگزین خواهد کرد. این جایگزینی ممکن است بهبودهایی در عملکرد ایجاد کند. + + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CBORServingAndStorage.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CBORServingAndStorage.md new file mode 100644 index 0000000000000..ae97fb20c773a --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CBORServingAndStorage.md @@ -0,0 +1,14 @@ +--- +title: CBORServingAndStorage +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" +--- +CBOR را به عنوان [supported encoding for requests and +responses](/docs/reference/using-api/api-concepts/#cbor-encoding) و به عنوان رمزگذاری ذخیره‌سازی ترجیحی برای منابع سفارشی فعال می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CPUManager.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CPUManager.md new file mode 100644 index 0000000000000..02b80a3f5cf6e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CPUManager.md @@ -0,0 +1,24 @@ +--- +title: CPUManager +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.8" + toVersion: "1.9" + - stage: beta + defaultValue: true + fromVersion: "1.10" + toVersion: "1.25" + - stage: stable + defaultValue: true + fromVersion: "1.26" + toVersion: "1.32" + +removed: true +--- +پشتیبانی از وابستگی CPU در سطح کانتینر را فعال کنید، به [CPU Management Policies](/docs/tasks/administer-cluster/cpu-management-policies/).مراجعه کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CPUManagerPolicyAlphaOptions.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CPUManagerPolicyAlphaOptions.md new file mode 100644 index 0000000000000..b86ea61b6ca09 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CPUManagerPolicyAlphaOptions.md @@ -0,0 +1,16 @@ +--- +title: CPUManagerPolicyAlphaOptions +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" +--- +این امکان تنظیم دقیق سیاست‌های CPUManager، +آزمایشی، گزینه‌های با کیفیت آلفا +این دروازه ویژگی از *group* از گزینه‌های CPUManager که سطح کیفیت آنها آلفا است، محافظت می‌کند. +این دروازه ویژگی هرگز به مرحله بتا یا پایدار ارتقا پیدا نمی‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CPUManagerPolicyBetaOptions.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CPUManagerPolicyBetaOptions.md new file mode 100644 index 0000000000000..bcf9ae2da74cf --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CPUManagerPolicyBetaOptions.md @@ -0,0 +1,16 @@ +--- +title: CPUManagerPolicyBetaOptions +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.23" +--- +این امکان تنظیم دقیق سیاست‌های CPUManager، +آزمایشی، گزینه‌های با کیفیت بتا +این دروازه ویژگی از *group* از گزینه‌های CPUManager که سطح کیفیت آنها بتا است، محافظت می‌کند. +این دروازه ویژگی هرگز به حالت پایدار ارتقا پیدا نمی‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CPUManagerPolicyOptions.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CPUManagerPolicyOptions.md new file mode 100644 index 0000000000000..019aceb9f2d28 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CPUManagerPolicyOptions.md @@ -0,0 +1,24 @@ +--- +title: CPUManagerPolicyOptions +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.22" + toVersion: "1.22" + - stage: beta + defaultValue: true + fromVersion: "1.23" + toVersion: "1.32" + - stage: stable + defaultValue: true + locked: true + fromVersion: "1.33" + +--- +امکان تنظیم دقیق سیاست‌های CPUManager. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CRDValidationRatcheting.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CRDValidationRatcheting.md new file mode 100644 index 0000000000000..b09cbc491a8bd --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CRDValidationRatcheting.md @@ -0,0 +1,21 @@ +--- +title: CRDValidationRatcheting +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.28" + toVersion: "1.29" + - stage: beta + defaultValue: true + fromVersion: "1.30" + toVersion: "1.32" + - stage: stable + defaultValue: true + fromVersion: "1.33" +--- +به‌روزرسانی‌های منابع سفارشی را فعال کنید تا در صورت عدم تغییر بخش‌های مشکل‌ساز به‌روزرسانی منبع، موارد نقض طرح OpenAPI آنها را شامل شود. برای جزئیات بیشتر به [Validation Ratcheting](/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#validation-ratcheting) مراجعه کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CRIContainerLogRotation.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CRIContainerLogRotation.md new file mode 100644 index 0000000000000..ac090911c439d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CRIContainerLogRotation.md @@ -0,0 +1,29 @@ +--- +# Removed from Kubernetes +title: CRIContainerLogRotation +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.10" + toVersion: "1.10" + - stage: beta + defaultValue: true + fromVersion: "1.11" + toVersion: "1.20" + - stage: stable + defaultValue: true + fromVersion: "1.21" + toVersion: "1.22" + +removed: true +--- +چرخش گزارش کانتینر را برای زمان اجرای کانتینر CRI فعال کنید. +حداکثر اندازه پیش‌فرض یک فایل گزارش ۱۰ مگابایت و حداکثر تعداد پیش‌فرض فایل‌های گزارش مجاز برای یک کانتینر ۵ است. +این مقادیر را می‌توان در پیکربندی kubelet پیکربندی کرد. +برای جزئیات بیشتر به [logging at node level](/docs/concepts/cluster-administration/logging/#logging-at-the-node-level) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIBlockVolume.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIBlockVolume.md new file mode 100644 index 0000000000000..8d72d5e877f07 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIBlockVolume.md @@ -0,0 +1,27 @@ +--- +# Removed from Kubernetes +title: CSIBlockVolume +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.11" + toVersion: "1.13" + - stage: beta + defaultValue: true + fromVersion: "1.14" + toVersion: "1.17" + - stage: stable + defaultValue: true + fromVersion: "1.18" + toVersion: "1.21" + +removed: true +--- +درایورهای خارجی CSI volume را برای پشتیبانی از ذخیره‌سازی بلوکی فعال کنید. +برای جزئیات بیشتر به [`csi` raw block volume support](/docs/concepts/storage/volumes/#csi-raw-block-volume-support) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIDriverRegistry.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIDriverRegistry.md new file mode 100644 index 0000000000000..2fd2b523e50f1 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIDriverRegistry.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: CSIDriverRegistry +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.12" + toVersion: "1.13" + - stage: beta + defaultValue: true + fromVersion: "1.14" + toVersion: "1.17" + - stage: stable + defaultValue: true + fromVersion: "1.18" + toVersion: "1.21" + +removed: true +--- +تمام منطق مربوط به شیء API CSIDriver را در `csi.storage.k8s.io` فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIInlineVolume.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIInlineVolume.md new file mode 100644 index 0000000000000..615e6d1e1b776 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIInlineVolume.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: CSIInlineVolume +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.15" + toVersion: "1.15" + - stage: beta + defaultValue: true + fromVersion: "1.16" + toVersion: "1.24" + - stage: stable + defaultValue: true + fromVersion: "1.25" + toVersion: "1.26" + +removed: true +--- +پشتیبانی از CSI Inline volumeها را برای پادها فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigration.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigration.md new file mode 100644 index 0000000000000..5d51813c61d24 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigration.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: CSIMigration +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.14" + toVersion: "1.16" + - stage: beta + defaultValue: true + fromVersion: "1.17" + toVersion: "1.24" + - stage: stable + defaultValue: true + fromVersion: "1.25" + toVersion: "1.26" + +removed: true +--- +شیم‌ها و منطق ترجمه را قادر می‌سازد تا عملیات مربوط به حجم را از افزونه‌های درون درختی به افزونه‌های CSI از پیش نصب شده مربوطه هدایت کنند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAWS.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAWS.md new file mode 100644 index 0000000000000..19fdd4f16f111 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAWS.md @@ -0,0 +1,30 @@ +--- +# Removed from Kubernetes +title: CSIMigrationAWS +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.14" + toVersion: "1.16" + - stage: beta + defaultValue: false + fromVersion: "1.17" + toVersion: "1.22" + - stage: beta + defaultValue: true + fromVersion: "1.23" + toVersion: "1.24" + - stage: stable + defaultValue: true + fromVersion: "1.25" + toVersion: "1.26" + +removed: true +--- +shims و منطق ترجمه را برای مسیریابی عملیات حجم از افزونه درون‌خوشهای AWS-EBS به افزونه EBS CSI فعال می‌کند. از بازگشت به افزونه درون‌شاخه‌ای EBS برای عملیات نصب در گره‌هایی که این ویژگی غیرفعال است یا افزونه EBS CSI نصب و پیکربندی نشده است، پشتیبانی می‌کند. از بازگشت به عملیات تأمین پشتیبانی نمی‌کند، برای این موارد افزونه CSI باید نصب و پیکربندی شود. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAWSComplete.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAWSComplete.md new file mode 100644 index 0000000000000..5fac945e4985c --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAWSComplete.md @@ -0,0 +1,30 @@ +--- +# Removed from Kubernetes +title: CSIMigrationAWSComplete +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.17" + toVersion: "1.20" + - stage: deprecated + fromVersion: "1.21" + toVersion: "1.21" + +removed: true +--- +Stops registering the EBS in-tree plugin in +kubelet and volume controllers and enables shims and translation logic to +route volume operations from the AWS-EBS in-tree plugin to EBS CSI plugin. +Requires CSIMigration and CSIMigrationAWS feature flags enabled and EBS CSI +plugin installed and configured on all nodes in the cluster. This flag has +been deprecated in favor of the `InTreePluginAWSUnregister` feature flag +which prevents the registration of in-tree EBS plugin. + +ثبت افزونه درون‌شاخه‌ای EBS را در kubelet و کنترل‌کننده‌های حجم متوقف می‌کند و shimها و منطق ترجمه را برای مسیریابی عملیات حجم از افزونه درون‌شاخه‌ای AWS-EBS به افزونه EBS CSI فعال می‌کند. +نیازمند فعال بودن پرچم‌های ویژگی CSIMigration و CSIMigrationAWS و نصب و پیکربندی افزونه EBS CSI در تمام گره‌های خوشه است. این پرچم به نفع پرچم ویژگی `InTreePluginAWSUnregister` منسوخ شده است که از ثبت افزونه EBS درون‌خوشهای جلوگیری می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAzureDisk.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAzureDisk.md new file mode 100644 index 0000000000000..8dd5e4e4e2e80 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAzureDisk.md @@ -0,0 +1,32 @@ +--- +# Removed from Kubernetes +title: CSIMigrationAzureDisk +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.15" + toVersion: "1.18" + - stage: beta + defaultValue: false + fromVersion: "1.19" + toVersion: "1.22" + - stage: beta + defaultValue: true + fromVersion: "1.23" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.26" + +removed: true +--- +شیم‌ها و منطق ترجمه را برای مسیریابی عملیات حجم از افزونه درون‌خوشه ای Azure-Disk به افزونه AzureDisk CSI فعال می‌کند. +از بازگشت به افزونه درون‌شاخه‌ای AzureDisk برای عملیات mount به گره‌هایی که این ویژگی غیرفعال است یا افزونه AzureDisk CSI نصب و پیکربندی نشده است، پشتیبانی می‌کند. از بازگشت به عملیات آماده‌سازی پشتیبانی نمی‌کند، برای این موارد افزونه CSI باید نصب و پیکربندی شود. +نیاز به فعال بودن پرچم ویژگی CSIMigration دارد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAzureDiskComplete.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAzureDiskComplete.md new file mode 100644 index 0000000000000..88073c7e74261 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAzureDiskComplete.md @@ -0,0 +1,21 @@ +--- +# Removed from Kubernetes +title: CSIMigrationAzureDiskComplete +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.17" + toVersion: "1.20" + - stage: deprecated + fromVersion: "1.21" + toVersion: "1.21" + +removed: true +--- +ثبت افزونه درون‌شاخه‌ای Azure-Disk را در kubelet و کنترلرهای حجم متوقف می‌کند و shimها و منطق ترجمه را قادر می‌سازد تا عملیات حجم را از افزونه درون‌شاخه‌ای Azure-Disk به افزونه AzureDisk CSI مسیریابی کنند. نیاز به فعال بودن پرچم‌های ویژگی CSIMigration و CSIMigrationAzureDisk و نصب و پیکربندی افزونه AzureDisk CSI در تمام گره‌های خوشه دارد. این پرچم به نفع پرچم ویژگی `InTreePluginAzureDiskUnregister` که از ثبت افزونه درون‌شاخه‌ای AzureDisk جلوگیری می‌کند، منسوخ شده است. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAzureFile.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAzureFile.md new file mode 100644 index 0000000000000..027323bdc43a1 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAzureFile.md @@ -0,0 +1,27 @@ +--- +title: CSIMigrationAzureFile +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.15" + toVersion: "1.20" + - stage: beta + defaultValue: false + fromVersion: "1.21" + toVersion: "1.23" + - stage: beta + defaultValue: true + fromVersion: "1.24" + toVersion: "1.25" + - stage: stable + defaultValue: true + fromVersion: "1.26" + toVersion: "1.29" +removed: true +--- +shim ها و منطق ترجمه را برای مسیریابی عملیات حجم از افزونه درون‌شاخه‌ای Azure-File به افزونه AzureFile CSI فعال می‌کند. از بازگشت به افزونه درون‌شاخه‌ای AzureFile برای عملیات mount به گره‌هایی که این ویژگی غیرفعال است یا افزونه AzureFile CSI نصب و پیکربندی نشده است، پشتیبانی می‌کند. از بازگشت به عملیات آماده‌سازی پشتیبانی نمی‌کند، برای این موارد افزونه CSI باید نصب و پیکربندی شود. نیاز به فعال بودن پرچم ویژگی CSIMigration دارد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAzureFileComplete.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAzureFileComplete.md new file mode 100644 index 0000000000000..91f39f0678e8c --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationAzureFileComplete.md @@ -0,0 +1,21 @@ +--- +# Removed from Kubernetes +title: CSIMigrationAzureFileComplete +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.17" + toVersion: "1.20" + - stage: deprecated + fromVersion: "1.21" + toVersion: "1.21" + +removed: true +--- +ثبت افزونه درون‌شاخه‌ای Azure-File را در kubelet و کنترلرهای حجم متوقف می‌کند و shimها و منطق ترجمه را قادر می‌سازد تا عملیات حجم را از افزونه درون‌شاخه‌ای Azure-File به افزونه AzureFile CSI مسیریابی کنند. نیاز به فعال بودن پرچم‌های ویژگی CSIMigration و CSIMigrationAzureFile و نصب و پیکربندی افزونه AzureFile CSI در تمام گره‌های خوشه دارد. این پرچم به نفع پرچم ویژگی `InTreePluginAzureFileUnregister` که از ثبت افزونه درون‌شاخه‌ای AzureFile جلوگیری می‌کند، منسوخ شده است. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationGCE.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationGCE.md new file mode 100644 index 0000000000000..a2ee3f6b09440 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationGCE.md @@ -0,0 +1,28 @@ +--- +title: CSIMigrationGCE +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.14" + toVersion: "1.16" + - stage: beta + defaultValue: false + fromVersion: "1.17" + toVersion: "1.22" + - stage: beta + defaultValue: true + fromVersion: "1.23" + toVersion: "1.24" + - stage: stable + defaultValue: true + fromVersion: "1.25" + toVersion: "1.27" + +removed: true +--- +شیم‌ها و منطق ترجمه را برای مسیریابی عملیات حجم از افزونه درون‌شاخه‌ای GCE-PD به افزونه PD CSI فعال می‌کند. از بازگشت به افزونه درون‌شاخه‌ای GCE برای عملیات نصب به گره‌هایی که این ویژگی غیرفعال است یا افزونه PD CSI نصب و پیکربندی نشده است، پشتیبانی می‌کند. از بازگشت به عملیات تأمین پشتیبانی نمی‌کند، برای این موارد افزونه CSI باید نصب و پیکربندی شود. نیاز به فعال بودن پرچم ویژگی CSIMigration دارد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationGCEComplete.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationGCEComplete.md new file mode 100644 index 0000000000000..312a1e166545a --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationGCEComplete.md @@ -0,0 +1,22 @@ +--- +# Removed from Kubernetes +title: CSIMigrationGCEComplete +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.17" + toVersion: "1.20" + - stage: deprecated + fromVersion: "1.21" + toVersion: "1.21" + +removed: true +--- +ثبت افزونه درون‌شاخه‌ای GCE-PD را در kubelet و کنترل‌کننده‌های حجم متوقف می‌کند و shimها و منطق ترجمه را برای مسیریابی عملیات حجم از افزونه درون‌شاخه‌ای GCE-PD به افزونه PD CSI فعال می‌کند. +نیازمند فعال بودن پرچم‌های ویژگی CSIMigration و CSIMigrationGCE و نصب و پیکربندی افزونه PD CSI در تمام گره‌های خوشه است. این پرچم به نفع پرچم ویژگی `InTreePluginGCEUnregister` که از ثبت افزونه درون‌شاخه‌ای GCE PD جلوگیری می‌کند، منسوخ شده است. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationOpenStack.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationOpenStack.md new file mode 100644 index 0000000000000..38d53c3a040b6 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationOpenStack.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: CSIMigrationOpenStack +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.14" + toVersion: "1.17" + - stage: beta + defaultValue: true + fromVersion: "1.18" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.25" + +removed: true +--- +شیم‌ها و منطق ترجمه را برای مسیریابی عملیات حجم از افزونه درون‌درختی Cinder به افزونه Cinder CSI فعال می‌کند. از بازگشت به افزونه درون‌درختی Cinder برای عملیات mount به گره‌هایی که این ویژگی غیرفعال است یا افزونه Cinder CSI نصب و پیکربندی نشده است، پشتیبانی می‌کند. از بازگشت به عملیات آماده‌سازی پشتیبانی نمی‌کند، برای این موارد افزونه CSI باید نصب و پیکربندی شود. نیاز به فعال بودن پرچم ویژگی CSIMigration دارد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationOpenStackComplete.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationOpenStackComplete.md new file mode 100644 index 0000000000000..329965c48cd25 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationOpenStackComplete.md @@ -0,0 +1,22 @@ +--- +# Removed from Kubernetes +title: CSIMigrationOpenStackComplete +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.17" + toVersion: "1.20" + - stage: deprecated + fromVersion: "1.21" + toVersion: "1.21" + +removed: true +--- +ثبت افزونه درون‌درختی Cinder را در kubelet و کنترلرهای حجم متوقف می‌کند و shimها و منطق ترجمه را برای مسیریابی عملیات حجمی از افزونه درون‌درختی Cinder به افزونه Cinder CSI فعال می‌کند. +نیازمند فعال بودن پرچم‌های ویژگی CSIMigration و CSIMigrationOpenStack و نصب و پیکربندی افزونه Cinder CSI روی تمام گره‌های خوشه است. این پرچم به نفع پرچم ویژگی `InTreePluginOpenStackUnregister` منسوخ شده است که از ثبت افزونه درون‌درختی openstack cinder جلوگیری می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationPortworx.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationPortworx.md new file mode 100644 index 0000000000000..3015def39d684 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationPortworx.md @@ -0,0 +1,26 @@ +--- +title: CSIMigrationPortworx +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" + toVersion: "1.24" + - stage: beta + defaultValue: false + fromVersion: "1.25" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + - stage: stable + defaultValue: true + fromVersion: "1.33" +--- +شیم‌ها و منطق ترجمه را برای مسیریابی عملیات حجمی از افزونه درون‌درختی Portworx به افزونه Portworx CSI فعال می‌کند. +نیازمند نصب و پیکربندی درایور Portworx CSI در خوشه است. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationRBD.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationRBD.md new file mode 100644 index 0000000000000..20b288ab4c6ce --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationRBD.md @@ -0,0 +1,21 @@ +--- +title: CSIMigrationRBD +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" + toVersion: "1.27" + - stage: deprecated + defaultValue: false + fromVersion: "1.28" + toVersion: "1.30" + +removed: true +--- +فعال کردن شیم‌ها و منطق ترجمه برای مسیریابی عملیات حجم از افزونه درون درختی RBD به افزونه Ceph RBD CSI. نیاز به فعال بودن پرچم‌های ویژگی CSIMigration و csiMigrationRBD و نصب و پیکربندی افزونه Ceph CSI در خوشه دارد. +این دروازه ویژگی به نفع دروازه ویژگی `InTreePluginRBDUnregister` منسوخ شده است، که از ثبت افزونه درون درختی RBD جلوگیری می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationvSphere.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationvSphere.md new file mode 100644 index 0000000000000..347656fe57b28 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationvSphere.md @@ -0,0 +1,28 @@ +--- +title: CSIMigrationvSphere +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.18" + toVersion: "1.18" + - stage: beta + defaultValue: false + fromVersion: "1.19" + toVersion: "1.24" + - stage: beta + defaultValue: true + fromVersion: "1.25" + toVersion: "1.25" + - stage: stable + defaultValue: true + fromVersion: "1.26" + toVersion: "1.28" + +removed: true +--- +شیم‌ها و منطق ترجمه را برای مسیریابی عملیات حجم از افزونه vSphere in-tree به افزونه vSphere CSI فعال می‌کند. از بازگشت به افزونه vSphere in-tree برای عملیات mount به گره‌هایی که این ویژگی غیرفعال است یا افزونه vSphere CSI نصب و پیکربندی نشده است، پشتیبانی می‌کند. از بازگشت به عملیات provision پشتیبانی نمی‌کند، برای این موارد افزونه CSI باید نصب و پیکربندی شود. نیاز به فعال بودن پرچم ویژگی CSIMigration دارد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationvSphereComplete.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationvSphereComplete.md new file mode 100644 index 0000000000000..4fe2802763c5d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIMigrationvSphereComplete.md @@ -0,0 +1,21 @@ +--- +# Removed from Kubernetes +title: CSIMigrationvSphereComplete +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.19" + toVersion: "1.21" + - stage: deprecated + fromVersion: "1.22" + toVersion: "1.22" + +removed: true +--- +ثبت افزونه vSphere in-tree در kubelet و کنترل‌کننده‌های حجم را متوقف می‌کند و shimها و منطق ترجمه را برای مسیریابی عملیات حجم از افزونه vSphere in-tree به افزونه vSphere CSI فعال می‌کند. نیاز به فعال بودن پرچم‌های ویژگی CSIMigration و CSIMigrationvSphere و نصب و پیکربندی افزونه vSphere CSI در تمام گره‌های خوشه دارد. این پرچم به نفع پرچم ویژگی `InTreePluginvSphereUnregister` که از ثبت افزونه vSphere in-tree جلوگیری می‌کند، منسوخ شده است. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSINodeExpandSecret.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSINodeExpandSecret.md new file mode 100644 index 0000000000000..242e0f77dd649 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSINodeExpandSecret.md @@ -0,0 +1,24 @@ +--- +title: CSINodeExpandSecret +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.25" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.28" + - stage: stable + defaultValue: true + fromVersion: "1.29" + toVersion: "1.30" + +removed: true +--- +فعال کردن ارسال داده‌های احراز هویت مخفی به درایور CSI برای استفاده در طول عملیات CSI مربوط به `NodeExpandVolume`. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSINodeInfo.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSINodeInfo.md new file mode 100644 index 0000000000000..1bd0f419b710c --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSINodeInfo.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: CSINodeInfo +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.12" + toVersion: "1.13" + - stage: beta + defaultValue: true + fromVersion: "1.14" + toVersion: "1.16" + - stage: stable + defaultValue: true + fromVersion: "1.17" + toVersion: "1.22" + +removed: true +--- +تمام منطق مربوط به شیء API CSINodeInfo را در `csi.storage.k8s.io` فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIPersistentVolume.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIPersistentVolume.md new file mode 100644 index 0000000000000..b757cb824697b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIPersistentVolume.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: CSIPersistentVolume +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.9" + toVersion: "1.9" + - stage: beta + defaultValue: true + fromVersion: "1.10" + toVersion: "1.12" + - stage: stable + defaultValue: true + fromVersion: "1.13" + toVersion: "1.16" + +removed: true +--- +فعال کردن کشف و نصب حجم‌های ارائه شده از طریق یک افزونه حجم سازگار با [CSI (Container Storage Interface)](https://git.k8s.io/design-proposals-archive/storage/container-storage-interface.md). \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIServiceAccountToken.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIServiceAccountToken.md new file mode 100644 index 0000000000000..49083a3e4b1fe --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIServiceAccountToken.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: CSIServiceAccountToken +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.20" + toVersion: "1.20" + - stage: beta + defaultValue: true + fromVersion: "1.21" + toVersion: "1.21" + - stage: stable + defaultValue: true + fromVersion: "1.22" + toVersion: "1.24" + +removed: true +--- +درایورهای CSI را قادر سازید تا توکن حساب سرویس پادها را که برای آن والیوم‌ها را مانت می‌کنند، دریافت کنند. به [Token Requests](https://kubernetes-csi.github.io/docs/token-requests.html) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIStorageCapacity.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIStorageCapacity.md new file mode 100644 index 0000000000000..847110aa016af --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIStorageCapacity.md @@ -0,0 +1,26 @@ +--- +title: CSIStorageCapacity +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.19" + toVersion: "1.20" + - stage: beta + defaultValue: true + fromVersion: "1.21" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.27" + +removed: true +--- +درایورهای CSI را قادر می‌سازد تا اطلاعات ظرفیت ذخیره‌سازی را منتشر کنند +و زمان‌بند Kubernetes از آن اطلاعات هنگام زمان‌بندی پادها استفاده کند. برای جزئیات بیشتر به [Storage Capacity](/docs/concepts/storage/storage-capacity/). مراجعه کنید. +برای جزئیات بیشتر، مستندات [`csi` volume type](/docs/concepts/storage/volumes/#csi) را بررسی کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIVolumeFSGroupPolicy.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIVolumeFSGroupPolicy.md new file mode 100644 index 0000000000000..bfde7fb18989b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIVolumeFSGroupPolicy.md @@ -0,0 +1,27 @@ +--- +# Removed from Kubernetes +title: CSIVolumeFSGroupPolicy +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.19" + toVersion: "1.19" + - stage: beta + defaultValue: true + fromVersion: "1.20" + toVersion: "1.22" + - stage: stable + defaultValue: true + fromVersion: "1.23" + toVersion: "1.25" + +removed: true +--- +به CSIDrivers اجازه می‌دهد تا از فیلد `fsGroupPolicy` استفاده کنند. +این فیلد کنترل می‌کند که آیا Volume های ایجاد شده توسط CSIDriver از مالکیت Volume و تغییرات مجوز هنگام Mount شدن این Volume ها پشتیبانی می‌کنند یا خیر. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIVolumeHealth.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIVolumeHealth.md new file mode 100644 index 0000000000000..38b64b9e5cbfc --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSIVolumeHealth.md @@ -0,0 +1,13 @@ +--- +title: CSIVolumeHealth +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" +--- +پشتیبانی از نظارت بر سلامت حجم CSI را روی گره فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSRDuration.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSRDuration.md new file mode 100644 index 0000000000000..661ea70d5db7d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CSRDuration.md @@ -0,0 +1,22 @@ +--- +# Removed from Kubernetes +title: CSRDuration +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.25" + +removed: true +--- +به کلاینت‌ها اجازه می‌دهد تا از طریق Kubernetes CSR API، مدت زمان اعتبار گواهی‌های صادر شده را درخواست کنند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CloudControllerManagerWebhook.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CloudControllerManagerWebhook.md new file mode 100644 index 0000000000000..f7549c79a3ffb --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CloudControllerManagerWebhook.md @@ -0,0 +1,14 @@ +--- +title: CloudControllerManagerWebhook +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.27" +--- +وب‌هوک‌ها را در مدیریت کنترل‌کننده ابری فعال کنید. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CloudDualStackNodeIPs.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CloudDualStackNodeIPs.md new file mode 100644 index 0000000000000..5fa9185036c26 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CloudDualStackNodeIPs.md @@ -0,0 +1,25 @@ +--- +title: CloudDualStackNodeIPs +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.27" + toVersion: "1.28" + - stage: beta + defaultValue: true + fromVersion: "1.29" + toVersion: "1.29" + - stage: stable + defaultValue: true + fromVersion: "1.30" + toVersion: "1.31" + +removed: true +--- +فعال‌سازی دو پشته‌ای `kubelet --node-ip` با ارائه‌دهندگان ابر خارجی. +برای جزئیات بیشتر به [Configure IPv4/IPv6 dual-stack](/docs/concepts/services-networking/dual-stack/#configure-ipv4-ipv6-dual-stack) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ClusterTrustBundle.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ClusterTrustBundle.md new file mode 100644 index 0000000000000..60ae0856a8a2d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ClusterTrustBundle.md @@ -0,0 +1,18 @@ +--- +title: ClusterTrustBundle +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.27" + toVersion: "1.32" + - stage: beta + defaultValue: false + fromVersion: "1.33" +--- +اشیاء ClusterTrustBundle و ادغام kubelet را فعال کنید. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ClusterTrustBundleProjection.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ClusterTrustBundleProjection.md new file mode 100644 index 0000000000000..27ec674e6a728 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ClusterTrustBundleProjection.md @@ -0,0 +1,17 @@ +--- +title: ClusterTrustBundleProjection +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.32" + - stage: beta + defaultValue: false + fromVersion: "1.33" +--- +[`clusterTrustBundle` projected volume sources](/docs/concepts/storage/projected-volumes#clustertrustbundle). diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ComponentFlagz.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ComponentFlagz.md new file mode 100644 index 0000000000000..11f08b50c70bb --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ComponentFlagz.md @@ -0,0 +1,13 @@ +--- +title: ComponentFlagz +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" +--- +نقطه پایانی flagz کامپوننت را فعال می‌کند. برای اطلاعات بیشتر به [zpages](/docs/reference/instrumentation/zpages/) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ComponentSLIs.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ComponentSLIs.md new file mode 100644 index 0000000000000..5a311947eb752 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ComponentSLIs.md @@ -0,0 +1,17 @@ +--- +title: ComponentSLIs +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.26" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" +--- +نقطه پایانی `/metrics/slis` را روی اجزای Kubernetes مانند kubelet، kube-scheduler، kube-proxy، kube-controller-manager، cloud-controller-manager فعال کنید تا بتوانید معیارهای بررسی سلامت را استخراج کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ComponentStatusz.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ComponentStatusz.md new file mode 100644 index 0000000000000..822ca5bbc939e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ComponentStatusz.md @@ -0,0 +1,13 @@ +--- +title: ComponentStatusz +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" +--- +نقطه پایانی statusz کامپوننت را فعال می‌کند. برای اطلاعات بیشتر به [zpages](/docs/reference/instrumentation/zpages/) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ConcurrentWatchObjectDecode.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ConcurrentWatchObjectDecode.md new file mode 100644 index 0000000000000..cbee6ac92a59c --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ConcurrentWatchObjectDecode.md @@ -0,0 +1,15 @@ +--- +title: ConcurrentWatchObjectDecode +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.31" + +--- +فعال کردن رمزگشایی همزمان شیء watch. این کار برای جلوگیری از خالی شدن کش watch سرور API هنگام نصب webhook تبدیل است. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ConfigurableFSGroupPolicy.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ConfigurableFSGroupPolicy.md new file mode 100644 index 0000000000000..4653c9109822c --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ConfigurableFSGroupPolicy.md @@ -0,0 +1,26 @@ +--- +# از Kubernetes حذف شد +title: ConfigurableFSGroupPolicy +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.18" + toVersion: "1.19" + - stage: beta + defaultValue: true + fromVersion: "1.20" + toVersion: "1.22" + - stage: stable + defaultValue: true + fromVersion: "1.23" + toVersion: "1.25" + +removed: true +--- +به کاربر اجازه می‌دهد تا سیاست تغییر مجوز حجم را برای fsGroups هنگام نصب یک حجم در یک Pod پیکربندی کند. برای جزئیات بیشتر به [Configure volume permission and ownership change policy for Pods](/docs/tasks/configure-pod-container/security-context/#configure-volume-permission-and-ownership-change-policy-for-pods) مراجعه کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ConsistentHTTPGetHandlers.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ConsistentHTTPGetHandlers.md new file mode 100644 index 0000000000000..7a4b4377ad40f --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ConsistentHTTPGetHandlers.md @@ -0,0 +1,17 @@ +--- +title: ConsistentHTTPGetHandlers +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: stable + defaultValue: true + fromVersion: "1.25" + toVersion: "1.30" + +removed: true +--- +ارسال HTTP get URL و Header را برای کنترل‌کننده‌های چرخه عمر با کاوشگرها عادی‌سازی کنید. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ConsistentListFromCache.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ConsistentListFromCache.md new file mode 100644 index 0000000000000..400d65445fda4 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ConsistentListFromCache.md @@ -0,0 +1,21 @@ +--- +title: ConsistentListFromCache +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.28" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.31" +--- +عملکرد سرور Kubernetes API را با ارائه درخواست‌های **list** سازگار، مستقیماً از حافظه پنهان watch آن، بهبود می‌بخشد و مقیاس‌پذیری و زمان پاسخ را بهبود می‌بخشد. +برای ارائه لیست سازگار از حافظه پنهان، Kubernetes به نسخه جدیدتر etcd (نسخه ۳.۴.۳۱+ یا نسخه ۳.۵.۱۳+) نیاز دارد، که شامل اصلاحاتی برای ویژگی درخواست پیشرفت watch است. +اگر نسخه قدیمی‌تر etcd ارائه شود، Kubernetes به طور خودکار آن را تشخیص داده و به ارائه خواندن‌های سازگار از etcd بازمی‌گردد. +اعلان‌های پیشرفت، اطمینان حاصل می‌کنند که حافظه پنهان watch با etcd سازگار است و در عین حال نیاز به خواندن‌های حد نصاب با منابع فشرده از etcd را کاهش می‌دهد. +برای جزئیات بیشتر به مستندات Kubernetes در [Semantics for **get** and **list**](/docs/reference/using-api/api-concepts/#semantics-for-get-and-list) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ContainerCheckpoint.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ContainerCheckpoint.md new file mode 100644 index 0000000000000..6a92dfc28e0c0 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ContainerCheckpoint.md @@ -0,0 +1,17 @@ +--- +title: ContainerCheckpoint +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.25" + toVersion: "1.29" + - stage: beta + defaultValue: true + fromVersion: "1.30" +--- +API مربوط به kubelet `checkpoint` را فعال می‌کند. برای جزئیات بیشتر به [API Kubelet Checkpoint](/docs/reference/node/kubelet-checkpoint-api/) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ContainerStopSignals.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ContainerStopSignals.md new file mode 100644 index 0000000000000..040127dcbcedc --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ContainerStopSignals.md @@ -0,0 +1,13 @@ +--- +title: ContainerStopSignals +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" +--- +استفاده از چرخه عمر StopSignal را برای کانتینرها جهت پیکربندی سیگنال‌های توقف سفارشی که کانتینرها با استفاده از آنها متوقف می‌شوند، فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ContextualLogging.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ContextualLogging.md new file mode 100644 index 0000000000000..b62d3d522dad3 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ContextualLogging.md @@ -0,0 +1,16 @@ +--- +title: ContextualLogging +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.24" + - stage: beta + defaultValue: true + fromVersion: "1.30" +--- +جزئیات اضافی را در خروجی گزارش اجزای Kubernetes که از گزارش‌گیری متنی پشتیبانی می‌کنند، فعال می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ControllerManagerLeaderMigration.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ControllerManagerLeaderMigration.md new file mode 100644 index 0000000000000..bb424b5bf6e61 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ControllerManagerLeaderMigration.md @@ -0,0 +1,26 @@ +--- +# از Kubernetes حذف شد +title: ControllerManagerLeaderMigration +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.26" + +removed: true +--- +مهاجرت Leader را برای [kube-controller-manager](/docs/tasks/administer-cluster/controller-manager-leader-migration/#initial-leader-migration-configuration) و [cloud-controller-manager](/docs/tasks/administer-cluster/controller-manager-leader-migration/#deploy-cloud-controller-manager) فعال می‌کند که به یک اپراتور خوشه اجازه می‌دهد تا کنترل‌کننده‌ها را از kube-controller-manager به یک controller-manager خارجی (مثلاً cloud-controller-manager) در یک خوشه HA بدون خرابی منتقل کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CoordinatedLeaderElection.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CoordinatedLeaderElection.md new file mode 100644 index 0000000000000..5875e46ef859c --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CoordinatedLeaderElection.md @@ -0,0 +1,17 @@ +--- +title: CoordinatedLeaderElection +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.31" + toVersion: "1.32" + - stage: beta + defaultValue: false + fromVersion: "1.33" +--- +رفتارهایی را که از LeaseCandidate API پشتیبانی می‌کنند، فعال می‌کند و همچنین انتخاب هماهنگ رهبر برای صفحه کنترل Kubernetes را به صورت قطعی امکان‌پذیر می‌سازد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CronJobControllerV2.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CronJobControllerV2.md new file mode 100644 index 0000000000000..089e612cbe774 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CronJobControllerV2.md @@ -0,0 +1,26 @@ +--- +# از Kubernetes حذف شد +title: CronJobControllerV2 +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.20" + toVersion: "1.20" + - stage: beta + defaultValue: true + fromVersion: "1.21" + toVersion: "1.21" + - stage: stable + defaultValue: true + fromVersion: "1.22" + toVersion: "1.23" + +removed: true +--- +از یک پیاده‌سازی جایگزین از کنترلر {{< glossary_tooltip text="CronJob" term_id="cronjob" >}} استفاده کنید. در غیر این صورت، نسخه ۱ از همان کنترلر انتخاب می‌شود. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CronJobTimeZone.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CronJobTimeZone.md new file mode 100644 index 0000000000000..456c6c93d2e35 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CronJobTimeZone.md @@ -0,0 +1,25 @@ +--- +title: CronJobTimeZone +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.24" + toVersion: "1.24" + - stage: beta + defaultValue: true + fromVersion: "1.25" + toVersion: "1.26" + - stage: stable + defaultValue: true + fromVersion: "1.27" + toVersion: "1.28" + +removed: true +--- +Allow the use of the `timeZone` optional field in [CronJobs](/docs/concepts/workloads/controllers/cron-jobs/) +اجازه استفاده از فیلد اختیاری `timeZone` را در [CronJobs](/docs/concepts/workloads/controllers/cron-jobs/) بدهید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CronJobsScheduledAnnotation.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CronJobsScheduledAnnotation.md new file mode 100644 index 0000000000000..ab94c2a4c1f1e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CronJobsScheduledAnnotation.md @@ -0,0 +1,18 @@ +--- +title: CronJobsScheduledAnnotation +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.28" + toVersion: "1.31" + - stage: stable + defaultValue: true + fromVersion: "1.32" + +--- +زمان کار برنامه‌ریزی‌شده را به عنوان یک {{< glossary_tooltip text="annotation" term_id="annotation" >}} برای کارهایی که از طرف یک CronJob ایجاد شده‌اند، تنظیم کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CrossNamespaceVolumeDataSource.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CrossNamespaceVolumeDataSource.md new file mode 100644 index 0000000000000..288307a57eac6 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CrossNamespaceVolumeDataSource.md @@ -0,0 +1,14 @@ +--- +title: CrossNamespaceVolumeDataSource +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.26" +--- +فعال کردن استفاده از فضای نام متقاطع برای منبع داده حجم +به شما امکان می‌دهد یک فضای نام منبع را در فیلد `dataSourceRef` از یک `PersistentVolumeClaim` مشخص کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomCPUCFSQuotaPeriod.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomCPUCFSQuotaPeriod.md new file mode 100644 index 0000000000000..5ccb02d855a5d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomCPUCFSQuotaPeriod.md @@ -0,0 +1,13 @@ +--- +title: CustomCPUCFSQuotaPeriod +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.12" +--- +گره‌ها را قادر سازید تا `cpuCFSQuotaPeriod` را در [kubelet config](/docs/tasks/administer-cluster/kubelet-config-file/) تغییر دهند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomPodDNS.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomPodDNS.md new file mode 100644 index 0000000000000..c8b569678b2a3 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomPodDNS.md @@ -0,0 +1,27 @@ +--- +# Removed from Kubernetes +title: CustomPodDNS +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.9" + toVersion: "1.9" + - stage: beta + defaultValue: true + fromVersion: "1.10" + toVersion: "1.13" + - stage: stable + defaultValue: true + fromVersion: "1.14" + toVersion: "1.16" + +removed: true +--- +فعال کردن سفارشی‌سازی تنظیمات DNS برای یک پاد با استفاده از ویژگی `dnsConfig` آن. +برای جزئیات بیشتر، [Pod's DNS Config](/docs/concepts/services-networking/dns-pod-service/#pod-dns-config) را بررسی کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceDefaulting.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceDefaulting.md new file mode 100644 index 0000000000000..cda487da93d51 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceDefaulting.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: CustomResourceDefaulting +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.15" + toVersion: "1.15" + - stage: beta + defaultValue: true + fromVersion: "1.16" + toVersion: "1.16" + - stage: stable + defaultValue: true + fromVersion: "1.17" + toVersion: "1.18" + +removed: true +--- +پشتیبانی CRD را برای مقادیر پیش‌فرض در طرح‌های اعتبارسنجی OpenAPI v3 فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceFieldSelectors.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceFieldSelectors.md new file mode 100644 index 0000000000000..dbb3de9d7747a --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceFieldSelectors.md @@ -0,0 +1,21 @@ +--- +title: CustomResourceFieldSelectors +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.30" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.31" + toVersion: "1.31" + - stage: stable + defaultValue: true + fromVersion: "1.32" +--- +برای فیلتر کردن درخواست‌های سفارشی منابع **list**، **watch** و **deletecollection**، گزینه `selectableFields` را در API {{< glossary_tooltip term_id="CustomResourceDefinition" text="CustomResourceDefinition" >}} فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourcePublishOpenAPI.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourcePublishOpenAPI.md new file mode 100644 index 0000000000000..eda748df0a177 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourcePublishOpenAPI.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: CustomResourcePublishOpenAPI +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.14" + toVersion: "1.14" + - stage: beta + defaultValue: true + fromVersion: "1.15" + toVersion: "1.15" + - stage: stable + defaultValue: true + fromVersion: "1.16" + toVersion: "1.18" + +removed: true +--- +انتشار مشخصات CRD OpenAPI را فعال می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceSubresources.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceSubresources.md new file mode 100644 index 0000000000000..d20ae127f9716 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceSubresources.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: CustomResourceSubresources +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.10" + toVersion: "1.10" + - stage: beta + defaultValue: true + fromVersion: "1.11" + toVersion: "1.15" + - stage: stable + defaultValue: true + fromVersion: "1.16" + toVersion: "1.18" + +removed: true +--- +زیرمنابع `/status` و `/scale` را برای منابع ایجاد شده از [CustomResourceDefinition](/docs/concepts/extend-kubernetes/api-extension/custom-resources/) فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceValidation.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceValidation.md new file mode 100644 index 0000000000000..7a3822afd48bc --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceValidation.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: CustomResourceValidation +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.8" + toVersion: "1.8" + - stage: beta + defaultValue: true + fromVersion: "1.9" + toVersion: "1.15" + - stage: stable + defaultValue: true + fromVersion: "1.16" + toVersion: "1.18" + +removed: true +--- +اعتبارسنجی مبتنی بر طرحواره را روی منابع ایجاد شده از [CustomResourceDefinition](/docs/concepts/extend-kubernetes/api-extension/custom-resources/) فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceValidationExpressions.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceValidationExpressions.md new file mode 100644 index 0000000000000..ce064ea394320 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceValidationExpressions.md @@ -0,0 +1,24 @@ +--- +title: CustomResourceValidationExpressions +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" + toVersion: "1.24" + - stage: beta + defaultValue: true + fromVersion: "1.25" + toVersion: "1.28" + - stage: stable + defaultValue: true + fromVersion: "1.29" + toVersion: "1.30" + +removed: true +--- +اexpression language validation را در CRD فعال کنید که منابع مشتری را بر اساس قوانین اعتبارسنجی نوشته شده در افزونه `x-kubernetes-validations` اعتبارسنجی می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceWebhookConversion.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceWebhookConversion.md new file mode 100644 index 0000000000000..0af629b1a6a93 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/CustomResourceWebhookConversion.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: CustomResourceWebhookConversion +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.13" + toVersion: "1.14" + - stage: beta + defaultValue: true + fromVersion: "1.15" + toVersion: "1.15" + - stage: stable + defaultValue: true + fromVersion: "1.16" + toVersion: "1.18" + +removed: true +--- +تبدیل مبتنی بر وب‌هوک را روی منابع ایجاد شده از [CustomResourceDefinition](/docs/concepts/extend-kubernetes/api-extension/custom-resources/) فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRAAdminAccess.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRAAdminAccess.md new file mode 100644 index 0000000000000..123480c5517cf --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRAAdminAccess.md @@ -0,0 +1,17 @@ +--- +title: DRAAdminAccess +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" +--- +This feature gate has no effect unless you also enable the `DynamicResourceAllocation` feature gate. +پشتیبانی از درخواست [دسترسی ادمین](/docs/concepts/scheduling-eviction/dynamic-resource-allocation/#admin-access) +در یک ResourceClaim یا یک ResourceClaimTemplate را فعال می‌کند. دسترسی ادمین، دسترسی به دستگاه‌های در حال استفاده را اعطا می‌کند و ممکن است هنگام در دسترس قرار دادن دستگاه در یک کانتینر، مجوزهای اضافی را فعال کند. با شروع Kubernetes v1.33، فقط کاربرانی که مجاز به ایجاد اشیاء ResourceClaim یا ResourceClaimTemplate در فضاهای نامی با برچسب `resource.k8s.io/admin-access: "true"` (حساس به حروف بزرگ و کوچک) هستند، می‌توانند از فیلد `adminAccess` استفاده کنند. این تضمین می‌کند که کاربران غیر ادمین نمی‌توانند از این ویژگی سوءاستفاده کنند. + +این دروازه ویژگی هیچ تاثیری ندارد مگر اینکه دروازه ویژگی `DynamicResourceAllocation` را نیز فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRAControlPlaneController.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRAControlPlaneController.md new file mode 100644 index 0000000000000..2710e04bc31fc --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRAControlPlaneController.md @@ -0,0 +1,17 @@ +--- +title: DRAControlPlaneController +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.26" + toVersion: "1.31" + +removed: true +--- +پشتیبانی از منابع با پارامترهای سفارشی و چرخه عمری که مستقل از Pod است را فعال می‌کند. تخصیص منابع توسط کنترل‌کننده صفحه کنترل درایور منبع انجام می‌شود. +p diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRADeviceTaints.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRADeviceTaints.md new file mode 100644 index 0000000000000..ccc4b40a47e79 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRADeviceTaints.md @@ -0,0 +1,15 @@ +--- +title: DRADeviceTaints +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" +--- +پشتیبانی از [tainting devices and selectively tolerating those taints](/docs/concepts/scheduling-eviction/dynamic-resource-allocation/#device-taints-and-tolerations) را هنگام استفاده از تخصیص منابع پویا برای مدیریت دستگاه‌ها فعال می‌کند. + +این دروازه ویژگی هیچ تاثیری ندارد مگر اینکه دروازه ویژگی `DynamicResourceAllocation` را نیز فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRAPartitionableDevices.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRAPartitionableDevices.md new file mode 100644 index 0000000000000..eb8d9b44f1133 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRAPartitionableDevices.md @@ -0,0 +1,16 @@ +--- +title: DRAPartitionableDevices +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" +--- +پشتیبانی از درخواست [Partitionable Devices](/docs/concepts/scheduling-eviction/dynamic-resource-allocation/#partitionable-devices) +برای DRA را فعال می‌کند. این به درایورها اجازه می‌دهد چندین دستگاه را که به منابع یکسانی از یک دستگاه فیزیکی نگاشت می‌شوند، تبلیغ کنند. + +این ویژگی تا زمانی که ویژگی `DynamicResourceAllocation` را نیز فعال نکنید، هیچ تاثیری ندارد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRAPrioritizedList.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRAPrioritizedList.md new file mode 100644 index 0000000000000..0395d585be528 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRAPrioritizedList.md @@ -0,0 +1,15 @@ +--- +title: DRAPrioritizedList +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" +--- +پشتیبانی از ویژگی [Prioritized List](/docs/concepts/scheduling-eviction/dynamic-resource-allocation/#prioritized-list) را فعال می‌کند. این ویژگی امکان تعیین یک لیست اولویت‌بندی‌شده از زیردرخواست‌ها را برای درخواست‌ها در یک ResourceClaim فراهم می‌کند. + +این ویژگی تا زمانی که ویژگی `DynamicResourceAllocation` را نیز فعال نکنید، هیچ تاثیری ندارد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRAResourceClaimDeviceStatus.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRAResourceClaimDeviceStatus.md new file mode 100644 index 0000000000000..74563d52f6c1c --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DRAResourceClaimDeviceStatus.md @@ -0,0 +1,17 @@ +--- +title: DRAResourceClaimDeviceStatus +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" + toVersion: "1.32" + - stage: beta + defaultValue: true + fromVersion: "1.33" +--- +پشتیبانی از فیلد ResourceClaim.status.devices و تنظیم این وضعیت از درایورهای DRA را فعال می‌کند. این امر مستلزم فعال بودن ویژگی `DynamicResourceAllocation` است. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DaemonSetUpdateSurge.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DaemonSetUpdateSurge.md new file mode 100644 index 0000000000000..c337f0b58949e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DaemonSetUpdateSurge.md @@ -0,0 +1,25 @@ +--- +title: DaemonSetUpdateSurge +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.24" + - stage: stable + defaultValue: true + fromVersion: "1.25" + toVersion: "1.26" + +removed: true +--- +بارهای کاری DaemonSet را قادر می‌سازد تا در طول به‌روزرسانی به ازای هر گره، در دسترس بودن را حفظ کنند. به [Perform a Rolling Update on a DaemonSet](/docs/tasks/manage-daemon/update-daemon-set/).مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DeclarativeValidation.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DeclarativeValidation.md new file mode 100644 index 0000000000000..52296c0302f93 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DeclarativeValidation.md @@ -0,0 +1,13 @@ +--- +title: DeclarativeValidation +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.33" +--- +اعتبارسنجی اعلانی APIهای درون‌درختی Kubernetes را فعال می‌کند. در صورت فعال بودن، APIهایی که دارای قوانین اعتبارسنجی اعلانی (که با استفاده از تگ‌های IDL در کد Go تعریف می‌شوند) هستند، هم کد اعتبارسنجی اعلانی تولید شده و هم کد اعتبارسنجی دست‌نویس اصلی را اجرا خواهند کرد. نتایج مقایسه می‌شوند و هرگونه اختلاف از طریق معیار `declarative_validation_mismatch_total` گزارش می‌شود. فقط نتیجه اعتبارسنجی دست‌نویس به کاربر بازگردانده می‌شود (مثلاً: در واقع در مسیر درخواست اعتبارسنجی می‌شود). اعتبارسنجی دست‌نویس اصلی همچنان اعتبارسنجی‌های معتبر هستند، اما اگر این فعال باشد، می‌توان این را تغییر داد اگر [DeclarativeValidationTakeover feature gate](/docs/reference/command-line-tools-reference/feature-gates/DeclarativeValidationTakeover.md) علاوه بر این گیت فعال باشد. این گیت ویژگی فقط روی kube-apiserver عمل می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DeclarativeValidationTakeover.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DeclarativeValidationTakeover.md new file mode 100644 index 0000000000000..729f04721ac1c --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DeclarativeValidationTakeover.md @@ -0,0 +1,13 @@ +--- +title: DeclarativeValidationTakeover +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.33" +--- +وقتی فعال باشد، همراه با دروازه ویژگی [DeclarativeValidation](/docs/reference/command-line-tools-reference/feature-gates/DeclarativeValidation.md)، خطاهای اعتبارسنجی اعلانی مستقیماً به فراخواننده بازگردانده می‌شوند و جایگزین خطاهای اعتبارسنجی دست‌نویس برای قوانینی می‌شوند که پیاده‌سازی اعلانی دارند. وقتی غیرفعال باشد (و `DeclarativeValidation` فعال باشد)، خطاهای اعتبارسنجی دست‌نویس همیشه بازگردانده می‌شوند و اعتبارسنجی اعلانی را در حالت __mismatch validation mode__ قرار می‌دهند که پاسخ‌های API را نظارت می‌کند اما بر آنها تأثیری نمی‌گذارد. این حالت اعتبارسنجی __mismatch validation mode__ امکان نظارت بر معیارهای `declarative_validation_mismatch_total` و `declarative_validation_panic_total` را فراهم می‌کند که جزئیات پیاده‌سازی برای یک پیاده‌سازی ایمن‌تر هستند، کاربر معمولی نیازی به تعامل مستقیم با آن ندارد. این دروازه ویژگی فقط روی kube-apiserver کار می‌کند. نکته: اگرچه اعتبارسنجی اعلانی با اعتبارسنجی دست‌نویس، معادل‌سازی عملکردی را هدف قرار می‌دهد، اما شرح دقیق پیام‌های خطا ممکن است بین این دو رویکرد متفاوت باشد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DefaultHostNetworkHostPortsInPodTemplates.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DefaultHostNetworkHostPortsInPodTemplates.md new file mode 100644 index 0000000000000..f564aa16e07ad --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DefaultHostNetworkHostPortsInPodTemplates.md @@ -0,0 +1,20 @@ +--- +title: DefaultHostNetworkHostPortsInPodTemplates +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: deprecated + defaultValue: false + fromVersion: "1.28" + toVersion: "1.30" + +removed: true +--- +این دروازه ویژگی، نقطه‌ای را کنترل می‌کند که در آن یک مقدار پیش‌فرض برای +`.spec.containers[*].ports[*].hostPort` +برای Podها با استفاده از `hostNetwork: true` اختصاص داده می‌شود. پیش‌فرض از Kubernetes نسخه ۱.۲۸ این است که فقط یک مقدار پیش‌فرض در Podها تنظیم شود. +فعال کردن این به این معنی است که یک مقدار پیش‌فرض حتی به `.spec` یک `[PodTemplate](/docs/concepts/workloads/pods/#pod-templates) تعبیه‌شده (برای مثال، در یک Deployment) اختصاص داده می‌شود، که روشی است که نسخه‌های قدیمی‌تر Kubernetes کار می‌کردند. +شما باید کد خود را مهاجرت دهید تا به رفتار قدیمی متکی نباشد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DefaultPodTopologySpread.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DefaultPodTopologySpread.md new file mode 100644 index 0000000000000..3f86acb3db483 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DefaultPodTopologySpread.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: DefaultPodTopologySpread +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.19" + toVersion: "1.19" + - stage: beta + defaultValue: true + fromVersion: "1.20" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.25" + +removed: true +--- +استفاده از افزونه زمان‌بندی `PodTopologySpread` را برای انجام [default spread](/docs/concepts/scheduling-eviction/topology-spread-constraints/#internal-default-constraints) فعال می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DelegateFSGroupToCSIDriver.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DelegateFSGroupToCSIDriver.md new file mode 100644 index 0000000000000..748731f10ca59 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DelegateFSGroupToCSIDriver.md @@ -0,0 +1,24 @@ +--- +title: DelegateFSGroupToCSIDriver +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.22" + toVersion: "1.22" + - stage: beta + defaultValue: true + fromVersion: "1.23" + toVersion: "1.25" + - stage: stable + defaultValue: true + fromVersion: "1.26" + toVersion: "1.27" + +removed: true +--- +در صورت پشتیبانی توسط درایور CSI، نقش اعمال `fsGroup` از `securityContext` یک Pod را با عبور `fsGroup` از طریق NodeStageVolume و NodePublishVolume CSI c به درایور واگذار می‌کند.alls. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DeploymentReplicaSetTerminatingReplicas.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DeploymentReplicaSetTerminatingReplicas.md new file mode 100644 index 0000000000000..840adcecf5f8d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DeploymentReplicaSetTerminatingReplicas.md @@ -0,0 +1,13 @@ +--- +title: DeploymentReplicaSetTerminatingReplicas +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" +--- +یک فیلد وضعیت جدید به نام `.status.terminatingReplicas` را در Deployments و ReplicaSets فعال می‌کند تا امکان ردیابی پادهای در حال خاتمه فراهم شود. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DevicePluginCDIDevices.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DevicePluginCDIDevices.md new file mode 100644 index 0000000000000..7a662c146ef25 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DevicePluginCDIDevices.md @@ -0,0 +1,22 @@ +--- +title: DevicePluginCDIDevices +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.28" + toVersion: "1.28" + - stage: beta + defaultValue: true + fromVersion: "1.29" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.31" + +--- +پشتیبانی از شناسه‌های دستگاه CDI را در API [Device Plugin](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DevicePlugins.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DevicePlugins.md new file mode 100644 index 0000000000000..a80d81242e774 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DevicePlugins.md @@ -0,0 +1,24 @@ +--- +title: DevicePlugins +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.8" + toVersion: "1.9" + - stage: beta + defaultValue: true + fromVersion: "1.10" + toVersion: "1.25" + - stage: stable + defaultValue: true + fromVersion: "1.26" + toVersion: "1.27" + +removed: true +--- +فعال کردن تأمین منابع مبتنی بر [device-plugins](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) روی گره‌ها. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DisableAcceleratorUsageMetrics.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DisableAcceleratorUsageMetrics.md new file mode 100644 index 0000000000000..f9fc601706e1f --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DisableAcceleratorUsageMetrics.md @@ -0,0 +1,24 @@ +--- +title: DisableAcceleratorUsageMetrics +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.19" + toVersion: "1.19" + - stage: beta + defaultValue: true + fromVersion: "1.20" + toVersion: "1.24" + - stage: stable + defaultValue: true + fromVersion: "1.25" + toVersion: "1.27" + +removed: true +--- +[Disable accelerator metrics collected by the kubelet](/docs/concepts/cluster-administration/system-metrics/#disable-accelerator-metrics). diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DisableAllocatorDualWrite.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DisableAllocatorDualWrite.md new file mode 100644 index 0000000000000..de5f3915850cf --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DisableAllocatorDualWrite.md @@ -0,0 +1,18 @@ +--- +title: DisableAllocatorDualWrite +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.31" + toVersion: "1.32" + - stage: beta + defaultValue: false + fromVersion: "1.33" +--- +شما می‌توانید قابلیت `MultiCIDRServiceAllocator` را فعال کنید. سرور API از مهاجرت از تخصیص‌دهنده‌های قدیمی ClusterIP با نگاشت بیتی به تخصیص‌دهنده‌های جدید IPAddress پشتیبانی می‌کند. +سرور API یک نوشتن دوگانه روی هر دو تخصیص‌دهنده انجام می‌دهد. این قابلیت، نوشتن دوگانه روی تخصیص‌دهنده‌های جدید Cluster IP را غیرفعال می‌کند؛ اگر مرحله مربوط به مهاجرت را تکمیل کرده‌اید، می‌توانید این قابلیت را فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DisableCloudProviders.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DisableCloudProviders.md new file mode 100644 index 0000000000000..c61465d7fc461 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DisableCloudProviders.md @@ -0,0 +1,26 @@ +--- +title: DisableCloudProviders +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.22" + toVersion: "1.28" + - stage: beta + defaultValue: true + fromVersion: "1.29" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + +removed: true +--- +فعال کردن این ویژگی، عملکرد `kube-apiserver`، `kube-controller-manager` و `kubelet` که مربوط به آرگومان خط فرمان `--cloud-provider` بودند را غیرفعال کرد. + +در Kubernetes نسخه ۱.۳۱ و بالاتر، تنها مقادیر معتبر برای `--cloud-provider` رشته خالی (بدون ادغام با ارائه دهنده ابری) یا "خارجی" (ادغام از طریق یک cloud-controller-manager جداگانه) هستند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DisableKubeletCloudCredentialProviders.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DisableKubeletCloudCredentialProviders.md new file mode 100644 index 0000000000000..ecba84c3d4f81 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DisableKubeletCloudCredentialProviders.md @@ -0,0 +1,24 @@ +--- +title: DisableKubeletCloudCredentialProviders +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" + toVersion: "1.28" + - stage: beta + defaultValue: true + fromVersion: "1.29" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + +removed: true +--- +فعال کردن دروازه ویژگی، عملکرد درون‌شاخه‌ای قدیمی را در کوبلت غیرفعال کرد، که به کوبلت اجازه می‌داد برای دریافت تصاویر کانتینر، در رجیستری کانتینر ارائه‌دهنده ابری احراز هویت شود. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DisableNodeKubeProxyVersion.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DisableNodeKubeProxyVersion.md new file mode 100644 index 0000000000000..29bf68b589a82 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DisableNodeKubeProxyVersion.md @@ -0,0 +1,30 @@ +--- +title: DisableNodeKubeProxyVersion +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: '1.31.0' + toVersion: '1.31.0' + - stage: deprecated + defaultValue: false + fromVersion: "1.31.1" + - stage: deprecated + defaultValue: false + fromVersion: "1.32" + toVersion: "1.32" + - stage: deprecated + defaultValue: true + fromVersion: "1.33" + + +--- +غیرفعال کردن تنظیم فیلد `kubeProxyVersion` در Node. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DownwardAPIHugePages.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DownwardAPIHugePages.md new file mode 100644 index 0000000000000..76dab5ee4e223 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DownwardAPIHugePages.md @@ -0,0 +1,28 @@ +--- +title: DownwardAPIHugePages +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.20" + toVersion: "1.20" + - stage: beta + defaultValue: false + fromVersion: "1.21" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.26" + - stage: stable + defaultValue: true + fromVersion: "1.27" + toVersion: "1.28" + +removed: true +--- +استفاده از صفحات بزرگ را در [API رو به پایین](/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information) فعال می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DryRun.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DryRun.md new file mode 100644 index 0000000000000..bdb16efbee5ab --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DryRun.md @@ -0,0 +1,24 @@ +--- +title: DryRun +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.12" + toVersion: "1.12" + - stage: beta + defaultValue: true + fromVersion: "1.13" + toVersion: "1.18" + - stage: stable + defaultValue: true + fromVersion: "1.19" + toVersion: "1.27" + +removed: true +--- +درخواست‌های سمت سرور [dry run](/docs/reference/using-api/api-concepts/#dry-run) را فعال کنید تا اعتبارسنجی، ادغام و جهش بدون کامیت کردن قابل آزمایش باشند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DynamicAuditing.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DynamicAuditing.md new file mode 100644 index 0000000000000..62a4364be5e36 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DynamicAuditing.md @@ -0,0 +1,21 @@ +--- +# Removed from Kubernetes +title: DynamicAuditing +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.13" + toVersion: "1.18" + - stage: deprecated + fromVersion: "1.19" + toVersion: "1.19" + +removed: true +--- +برای فعال کردن حسابرسی پویا قبل از نسخه ۱.۱۹ استفاده می‌شد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DynamicKubeletConfig.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DynamicKubeletConfig.md new file mode 100644 index 0000000000000..9cb16ce5a2496 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DynamicKubeletConfig.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: DynamicKubeletConfig +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.4" + toVersion: "1.10" + - stage: beta + defaultValue: true + fromVersion: "1.11" + toVersion: "1.21" + - stage: deprecated + defaultValue: false + fromVersion: "1.22" + toVersion: "1.25" + +removed: true +--- +پیکربندی پویای kubelet را فعال کنید. این ویژگی دیگر خارج از سیاست پشتیبانی‌شده‌ی skew پشتیبانی نمی‌شود. دروازه‌ی ویژگی در نسخه ۱.۲۴ از kubelet حذف شد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DynamicProvisioningScheduling.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DynamicProvisioningScheduling.md new file mode 100644 index 0000000000000..cd642ae8a5282 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DynamicProvisioningScheduling.md @@ -0,0 +1,20 @@ +--- +# Removed from Kubernetes +title: DynamicProvisioningScheduling +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.11" + toVersion: "1.11" + - stage: deprecated + fromVersion: "1.12" + +removed: true +--- +دهید تا از توپولوژی حجم آگاه باشد و تأمین PV را مدیریت کند. این ویژگی در نسخه ۱.۱۲ با ویژگی `VolumeScheduling` جایگزین شد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DynamicResourceAllocation.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DynamicResourceAllocation.md new file mode 100644 index 0000000000000..6cceb0bcc6baa --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DynamicResourceAllocation.md @@ -0,0 +1,22 @@ +--- +title: DynamicResourceAllocation +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.30" + toVersion: "1.31" + - stage: beta + defaultValue: false + fromVersion: "1.32" + +# TODO: as soon as this is locked to "true" (= GA), comments about other DRA +# feature gate(s) like "unless you also enable the `DynamicResourceAllocation` feature gate" +# can be removed (for example, in dra-admin-access.md). + +--- +پشتیبانی از منابع با پارامترهای سفارشی و چرخه عمری که مستقل از Pod است را فعال می‌کند. تخصیص منابع توسط زمانبند Kubernetes بر اساس "پارامترهای ساختاریافته" انجام می‌شود. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/DynamicVolumeProvisioning.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DynamicVolumeProvisioning.md new file mode 100644 index 0000000000000..765bf52e67483 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/DynamicVolumeProvisioning.md @@ -0,0 +1,22 @@ +--- +# Removed from Kubernetes +title: DynamicVolumeProvisioning +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: true + fromVersion: "1.3" + toVersion: "1.7" + - stage: stable + defaultValue: true + fromVersion: "1.8" + toVersion: "1.12" + +removed: true +--- +فعال کردن [dynamic provisioning](/docs/concepts/storage/dynamic-provisioning/) مربوط به Volumeهای دائمی برای Podها. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/EfficientWatchResumption.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EfficientWatchResumption.md new file mode 100644 index 0000000000000..23a97c6ef6261 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EfficientWatchResumption.md @@ -0,0 +1,24 @@ +--- +title: EfficientWatchResumption +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.20" + toVersion: "1.20" + - stage: beta + defaultValue: true + fromVersion: "1.21" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.32" + +removed: true +--- +اجازه می‌دهد رویدادهای نشانه‌گذاری (اعلان پیشرفت) که از حافظه ایجاد شده‌اند، به کاربران تحویل داده شوند. این فقط برای عملیات‌های نظارتی اعمال می‌شود. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ElasticIndexedJob.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ElasticIndexedJob.md new file mode 100644 index 0000000000000..96d3aa9730c98 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ElasticIndexedJob.md @@ -0,0 +1,18 @@ +--- +title: ElasticIndexedJob +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.31" +--- +با تغییر هر دو `spec.completions` و `spec.parallelism` به یکدیگر به طوری که `spec.completions == spec.parallelism` شود، امکان افزایش یا کاهش مقیاس کارهای فهرست‌بندی شده را فراهم می‌کند. +برای جزئیات بیشتر به اسناد [elastic Indexed Jobs](/docs/concepts/workloads/controllers/job#elastic-indexed-jobs) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/EnableAggregatedDiscoveryTimeout.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EnableAggregatedDiscoveryTimeout.md new file mode 100644 index 0000000000000..cdb9d087af943 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EnableAggregatedDiscoveryTimeout.md @@ -0,0 +1,19 @@ +--- +# Removed from Kubernetes +title: EnableAggregatedDiscoveryTimeout +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: deprecated + defaultValue: true + fromVersion: "1.16" + toVersion: "1.17" + +removed: true + +--- +فعال کردن پنج ثانیه وقفه در فراخوانی‌های اکتشاف تجمیعی. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/EnableEquivalenceClassCache.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EnableEquivalenceClassCache.md new file mode 100644 index 0000000000000..e3576384705aa --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EnableEquivalenceClassCache.md @@ -0,0 +1,21 @@ +--- +# Removed from Kubernetes +title: EnableEquivalenceClassCache +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.8" + toVersion: "1.12" + - stage: deprecated + fromVersion: "1.13" + toVersion: "1.23" + +removed: true +--- +فعال کردن زمانبند برای ذخیره معادل گره‌ها هنگام زمان‌بندی پادها. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/EndpointSlice.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EndpointSlice.md new file mode 100644 index 0000000000000..5b93c54569fb6 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EndpointSlice.md @@ -0,0 +1,30 @@ +--- +# Removed from Kubernetes +title: EndpointSlice +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.16" + toVersion: "1.16" + - stage: beta + defaultValue: false + fromVersion: "1.17" + toVersion: "1.17" + - stage: beta + defaultValue: true + fromVersion: "1.18" + toVersion: "1.20" + - stage: stable + defaultValue: true + fromVersion: "1.21" + toVersion: "1.24" + +removed: true +--- +EndpointSlices را برای نقاط پایانی شبکه با مقیاس‌پذیری و قابلیت توسعه بیشتر فعال می‌کند. به [Enabling EndpointSlices](/docs/concepts/services-networking/endpoint-slices/) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/EndpointSliceNodeName.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EndpointSliceNodeName.md new file mode 100644 index 0000000000000..2c40879cde0dc --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EndpointSliceNodeName.md @@ -0,0 +1,22 @@ +--- +# Removed from Kubernetes +title: EndpointSliceNodeName +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.20" + toVersion: "1.20" + - stage: stable + defaultValue: true + fromVersion: "1.21" + toVersion: "1.24" + +removed: true +--- +فیلد `nodeName` مربوط به EndpointSlice را فعال می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/EndpointSliceProxying.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EndpointSliceProxying.md new file mode 100644 index 0000000000000..7aba3b4dbd059 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EndpointSliceProxying.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: EndpointSliceProxying +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.18" + toVersion: "1.18" + - stage: beta + defaultValue: true + fromVersion: "1.19" + toVersion: "1.21" + - stage: stable + defaultValue: true + fromVersion: "1.22" + toVersion: "1.24" + +removed: true +--- +وقتی فعال باشد، kube-proxy که روی لینوکس اجرا می‌شود، از EndpointSlices به عنوان منبع داده اصلی به جای Endpoints استفاده می‌کند و امکان مقیاس‌پذیری و بهبود عملکرد را فراهم می‌کند. به [Enabling Endpoint Slices](/docs/concepts/services-networking/endpoint-slices/). مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/EndpointSliceTerminatingCondition.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EndpointSliceTerminatingCondition.md new file mode 100644 index 0000000000000..9664959f1c530 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EndpointSliceTerminatingCondition.md @@ -0,0 +1,24 @@ +--- +title: EndpointSliceTerminatingCondition +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.20" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.25" + - stage: stable + defaultValue: true + fromVersion: "1.26" + toVersion: "1.27" + +removed: true +--- +فیلدهای شرط `terminating` و `serving` EndpointSlice را فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/EphemeralContainers.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EphemeralContainers.md new file mode 100644 index 0000000000000..7267743851af1 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EphemeralContainers.md @@ -0,0 +1,27 @@ +--- +# Removed from Kubernetes +title: EphemeralContainers +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.16" + toVersion: "1.22" + - stage: beta + defaultValue: true + fromVersion: "1.23" + toVersion: "1.24" + - stage: stable + defaultValue: true + fromVersion: "1.25" + toVersion: "1.26" + +removed: true +--- +قابلیت افزودن {{< glossary_tooltip text="ephemeral containers" term_id="ephemeral-container" >}} +به پادهای در حال اجرا را فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/EvenPodsSpread.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EvenPodsSpread.md new file mode 100644 index 0000000000000..0c64a4f13af58 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EvenPodsSpread.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: EvenPodsSpread +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.16" + toVersion: "1.17" + - stage: beta + defaultValue: true + fromVersion: "1.18" + toVersion: "1.18" + - stage: stable + defaultValue: true + fromVersion: "1.19" + toVersion: "1.21" + +removed: true +--- +فعال کردن زمان‌بندی یکنواخت پادها در دامنه‌های توپولوژی. به [Pod Topology Spread Constraints](/docs/concepts/scheduling-eviction/topology-spread-constraints/). مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/EventedPLEG.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EventedPLEG.md new file mode 100644 index 0000000000000..1984777aa8e08 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/EventedPLEG.md @@ -0,0 +1,15 @@ +--- +title: EventedPLEG +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.26" +--- +پشتیبانی از kubelet را برای دریافت رویدادهای چرخه عمر کانتینر از {{< glossary_tooltip text="container runtime" term_id="container-runtime" >}} از طریق افزونه‌ای به {{}} فعال کنید. +(PLEG مخفف "Pod lifecycle event generator" است). +برای اینکه این ویژگی مفید باشد، باید پشتیبانی از رویدادهای چرخه عمر کانتینر را در هر زمان اجرای کانتینر که در خوشه شما اجرا می‌شود، فعال کنید. اگر زمان اجرای کانتینر پشتیبانی از رویدادهای چرخه عمر کانتینر را اعلام نکند، kubelet به طور خودکار به مکانیسم عمومی PLEG قدیمی تغییر می‌کند، حتی اگر این دروازه ویژگی را فعال کرده باشید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExecProbeTimeout.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExecProbeTimeout.md new file mode 100644 index 0000000000000..8ba24c2b4d59a --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExecProbeTimeout.md @@ -0,0 +1,14 @@ +--- +title: ExecProbeTimeout +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: stable + defaultValue: true + fromVersion: "1.20" +--- +مطمئن شوید که kubelet به مهلت‌های زمانی exec probe احترام می‌گذارد. +این دروازه ویژگی در صورتی وجود دارد که هر یک از بارهای کاری موجود شما به یک خطای اصلاح‌شده که در آن Kubernetes مهلت‌های زمانی exec probe را نادیده گرفته است، وابسته باشد. به [readiness probes](/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExpandCSIVolumes.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExpandCSIVolumes.md new file mode 100644 index 0000000000000..1e2381f5b0840 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExpandCSIVolumes.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: ExpandCSIVolumes +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.14" + toVersion: "1.15" + - stage: beta + defaultValue: true + fromVersion: "1.16" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.26" + +removed: true +--- +فعال کردن گسترش حجم‌های CSI. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExpandInUsePersistentVolumes.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExpandInUsePersistentVolumes.md new file mode 100644 index 0000000000000..32b7c65c94155 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExpandInUsePersistentVolumes.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: ExpandInUsePersistentVolumes +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.11" + toVersion: "1.14" + - stage: beta + defaultValue: true + fromVersion: "1.15" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.26" + +removed: true +--- +فعال کردن گسترش PVC های در حال استفاده. به [Resizing an in-use PersistentVolumeClaim](/docs/concepts/storage/persistent-volumes/#resizing-an-in-use-persistentvolumeclaim). مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExpandPersistentVolumes.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExpandPersistentVolumes.md new file mode 100644 index 0000000000000..153918c094801 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExpandPersistentVolumes.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: ExpandPersistentVolumes +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.8" + toVersion: "1.10" + - stage: beta + defaultValue: true + fromVersion: "1.11" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.26" + +removed: true +--- +فعال کردن قابلیت گسترش درایوهای پایدار. به [Expanding Persistent Volumes Claims](/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims).مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExpandedDNSConfig.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExpandedDNSConfig.md new file mode 100644 index 0000000000000..98da0413ed512 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExpandedDNSConfig.md @@ -0,0 +1,23 @@ +--- +title: ExpandedDNSConfig +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.22" + toVersion: "1.25" + - stage: beta + defaultValue: true + fromVersion: "1.26" + toVersion: "1.27" + - stage: stable + defaultValue: true + fromVersion: "1.28" + toVersion: "1.29" +removed: true +--- +kubelet و kube-apiserver را فعال کنید تا مسیرهای جستجوی DNS بیشتر و لیست طولانی‌تری از مسیرهای جستجوی DNS را فراهم کنید. این ویژگی نیاز به پشتیبانی از زمان اجرای کانتینر دارد (Containerd: نسخه ۱.۵.۶ یا بالاتر، CRI-O: نسخه ۱.۲۲ یا بالاتر). به [Expanded DNS Configuration](/docs/concepts/services-networking/dns-pod-service/#expanded-dns-configuration). مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExperimentalCriticalPodAnnotation.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExperimentalCriticalPodAnnotation.md new file mode 100644 index 0000000000000..0c31ece8fb8f9 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExperimentalCriticalPodAnnotation.md @@ -0,0 +1,24 @@ +--- +# Removed from Kubernetes +title: ExperimentalCriticalPodAnnotation +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.5" + toVersion: "1.12" + - stage: deprecated + defaultValue: false + fromVersion: "1.13" + toVersion: "1.16" + +removed: true +--- +فعال کردن حاشیه‌نویسی پادهای خاص به عنوان *critical* +به طوری که آنها تضمین شود[scheduling is guaranteed](/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/). +این ویژگی از نسخه ۱.۱۳ توسط Pod Priority and Preemption منسوخ شده است. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExperimentalHostUserNamespaceDefaulting.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExperimentalHostUserNamespaceDefaulting.md new file mode 100644 index 0000000000000..e037d68a8edcf --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExperimentalHostUserNamespaceDefaulting.md @@ -0,0 +1,19 @@ +--- +title: ExperimentalHostUserNamespaceDefaulting +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.5" + toVersion: "1.27" + - stage: deprecated + defaultValue: false + fromVersion: "1.28" + toVersion: "1.29" +removed: true +--- +فعال کردن فضای نام کاربری پیش‌فرض برای میزبانی. این برای کانتینرهایی است که از فضاهای نام میزبان، مانت‌های میزبان یا کانتینرهایی که دارای امتیاز هستند یا از قابلیت‌های خاص بدون فضای نام (مانند `MKNODE`، `SYS_MODULE` و غیره) استفاده می‌کنند، استفاده می‌کنند. این فقط در صورتی باید فعال شود که نگاشت مجدد فضای نام کاربر در سرویس داکر فعال باشد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExternalPolicyForExternalIP.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExternalPolicyForExternalIP.md new file mode 100644 index 0000000000000..3249901a80181 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExternalPolicyForExternalIP.md @@ -0,0 +1,18 @@ +--- +# Removed from Kubernetes +title: ExternalPolicyForExternalIP +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: stable + defaultValue: true + fromVersion: "1.18" + toVersion: "1.22" + +removed: true +--- +رفع اشکالی که در آن ExternalTrafficPolicy روی Service ExternalIPها اعمال نمی‌شد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExternalServiceAccountTokenSigner.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExternalServiceAccountTokenSigner.md new file mode 100644 index 0000000000000..aa4d3de4a41ef --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ExternalServiceAccountTokenSigner.md @@ -0,0 +1,14 @@ +--- +title: ExternalServiceAccountTokenSigner +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" +--- +تنظیم `--service-account-signing-endpoint` را فعال کنید تا kube-apiserver از [external signer](/docs/reference/access-authn-authz/service-account-admin#external-serviceaccount-token-signing-and-key-management) برای امضای توکن و مدیریت کلید تأیید توکن استفاده کند. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/GCERegionalPersistentDisk.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/GCERegionalPersistentDisk.md new file mode 100644 index 0000000000000..0b422e23b406e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/GCERegionalPersistentDisk.md @@ -0,0 +1,22 @@ +--- +# Removed from Kubernetes +title: GCERegionalPersistentDisk +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.10" + toVersion: "1.12" + - stage: stable + defaultValue: true + fromVersion: "1.13" + toVersion: "1.16" + +removed: true +--- +ویژگی PD منطقه‌ای را در GCE فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/GRPCContainerProbe.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/GRPCContainerProbe.md new file mode 100644 index 0000000000000..2dcb2aa3d10c9 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/GRPCContainerProbe.md @@ -0,0 +1,24 @@ +--- +title: GRPCContainerProbe +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" + toVersion: "1.23" + - stage: beta + defaultValue: true + fromVersion: "1.24" + toVersion: "1.26" + - stage: stable + defaultValue: true + fromVersion: "1.27" + toVersion: "1.28" + +removed: true +--- +روش کاوش gRPC را برای کاوشگر {Liveness,Readiness,Startup} فعال می‌کند. به [Configure Liveness, Readiness and Startup Probes](/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-grpc-liveness-probe). مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/GenericEphemeralVolume.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/GenericEphemeralVolume.md new file mode 100644 index 0000000000000..1504931306c08 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/GenericEphemeralVolume.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: GenericEphemeralVolume +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.19" + toVersion: "1.20" + - stage: beta + defaultValue: true + fromVersion: "1.21" + toVersion: "1.22" + - stage: stable + defaultValue: true + fromVersion: "1.23" + toVersion: "1.24" + +removed: true +--- +ولوم‌های موقت و درون‌خطی را فعال می‌کند که از تمام ویژگی‌های ولوم‌های معمولی پشتیبانی می‌کنند (می‌توانند توسط فروشندگان ذخیره‌سازی شخص ثالث ارائه شوند، ردیابی ظرفیت ذخیره‌سازی، بازیابی از اسنپ‌شات و غیره). به [Ephemeral Volumes](/docs/concepts/storage/ephemeral-volumes/) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/GracefulNodeShutdown.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/GracefulNodeShutdown.md new file mode 100644 index 0000000000000..0439b08cda423 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/GracefulNodeShutdown.md @@ -0,0 +1,20 @@ +--- +title: GracefulNodeShutdown +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.20" + toVersion: "1.20" + - stage: beta + defaultValue: true + fromVersion: "1.21" +--- +پشتیبانی از خاموش کردن با ظرافت (graceful shutdown) را در kubelet فعال می‌کند. +در طول خاموش شدن سیستم، kubelet تلاش می‌کند تا رویداد خاموش شدن را تشخیص دهد +و پادهای در حال اجرا روی گره را به طور با ظرافت خاتمه دهد. برای جزئیات بیشتر به +[Graceful Node Shutdown](/docs/concepts/architecture/nodes/#graceful-node-shutdown) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/GracefulNodeShutdownBasedOnPodPriority.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/GracefulNodeShutdownBasedOnPodPriority.md new file mode 100644 index 0000000000000..1de98ddda2f09 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/GracefulNodeShutdownBasedOnPodPriority.md @@ -0,0 +1,17 @@ +--- +title: GracefulNodeShutdownBasedOnPodPriority +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" + toVersion: "1.23" + - stage: beta + defaultValue: true + fromVersion: "1.24" +--- +به kubelet این امکان را می‌دهد که هنگام خاموش کردن صحیح یک گره، اولویت‌های Pod را بررسی کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/HPAConfigurableTolerance.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/HPAConfigurableTolerance.md new file mode 100644 index 0000000000000..f31d67845a046 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/HPAConfigurableTolerance.md @@ -0,0 +1,13 @@ +--- +title: HPAConfigurableTolerance +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" +--- +تنظیم یک [tolerance threshold](/docs/tasks/run-application/horizontal-pod-autoscale.md#tolerance) را برای معیارهای HorizontalPodAutoscaler فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/HPAContainerMetrics.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/HPAContainerMetrics.md new file mode 100644 index 0000000000000..0a17934098703 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/HPAContainerMetrics.md @@ -0,0 +1,24 @@ +--- +title: HPAContainerMetrics +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.20" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.29" + - stage: stable + defaultValue: true + fromVersion: "1.30" + toVersion: "1.31" + +removed: true +--- +به {{< glossary_tooltip text="HorizontalPodAutoscalers" term_id="horizontal-pod-autoscaler" >}} اجازه دهید تا بر اساس معیارهای کانتینرهای جداگانه در پادهای هدف، مقیاس‌بندی کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/HPAScaleToZero.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/HPAScaleToZero.md new file mode 100644 index 0000000000000..c0b5b66dd552d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/HPAScaleToZero.md @@ -0,0 +1,13 @@ +--- +title: HPAScaleToZero +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.16" +--- +تنظیم مقدار `minReplicas` روی ۰ برای منابع `HorizontalPodAutoscaler` را هنگام استفاده از معیارهای سفارشی یا خارجی فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/HonorPVReclaimPolicy.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/HonorPVReclaimPolicy.md new file mode 100644 index 0000000000000..3c4a531093105 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/HonorPVReclaimPolicy.md @@ -0,0 +1,23 @@ +--- +title: HonorPVReclaimPolicy +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + - stage: stable + defaultValue: true + locked: true + fromVersion: "1.33" +--- +صرف نظر از ترتیب حذف PV-PVC، به سیاست بازیابی دائمی حجم، هنگامی که روی `Delete` است، احترام بگذارید. +برای جزئیات بیشتر، مستندات [PersistentVolume deletion protection finalizer](/docs/concepts/storage/persistent-volumes/#persistentvolume-deletion-protection-finalizer) را بررسی کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/HugePageStorageMediumSize.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/HugePageStorageMediumSize.md new file mode 100644 index 0000000000000..902ac4ef8b64a --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/HugePageStorageMediumSize.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: HugePageStorageMediumSize +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.18" + toVersion: "1.18" + - stage: beta + defaultValue: true + fromVersion: "1.19" + toVersion: "1.21" + - stage: stable + defaultValue: true + fromVersion: "1.22" + toVersion: "1.24" + +removed: true +--- +پشتیبانی از چندین اندازه از پیش تخصیص داده شده را فعال کنید. [huge pages](/docs/tasks/manage-hugepages/scheduling-hugepages/). \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/HugePages.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/HugePages.md new file mode 100644 index 0000000000000..2571a34897a0a --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/HugePages.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: HugePages +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.8" + toVersion: "1.9" + - stage: beta + defaultValue: true + fromVersion: "1.10" + toVersion: "1.13" + - stage: stable + defaultValue: true + fromVersion: "1.14" + toVersion: "1.16" + +removed: true +--- +فعال کردن تخصیص و مصرف صفحات از پیش تخصیص‌یافته [huge pages](/docs/tasks/manage-hugepages/scheduling-hugepages/). diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/HyperVContainer.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/HyperVContainer.md new file mode 100644 index 0000000000000..0d6c5e95e8599 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/HyperVContainer.md @@ -0,0 +1,23 @@ +--- +# Removed from Kubernetes +title: HyperVContainer +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.10" + toVersion: "1.19" + - stage: deprecated + defaultValue: false + fromVersion: "1.20" + toVersion: "1.20" + +removed: true +--- +فعال کردن [Hyper-V isolation](https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/hyperv-container) +برای کانتینرهای ویندو \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/IPTablesOwnershipCleanup.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/IPTablesOwnershipCleanup.md new file mode 100644 index 0000000000000..328195be36cd8 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/IPTablesOwnershipCleanup.md @@ -0,0 +1,23 @@ +--- +title: IPTablesOwnershipCleanup +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.25" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.27" + - stage: stable + defaultValue: true + fromVersion: "1.28" + toVersion: "1.29" +removed: true +--- +این باعث می‌شود که kubelet دیگر قوانین قدیمی iptables را ایجاد نکند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/IPv6DualStack.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/IPv6DualStack.md new file mode 100644 index 0000000000000..3834596771341 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/IPv6DualStack.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: IPv6DualStack +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.15" + toVersion: "1.20" + - stage: beta + defaultValue: true + fromVersion: "1.21" + toVersion: "1.22" + - stage: stable + defaultValue: true + fromVersion: "1.23" + toVersion: "1.24" + +removed: true +--- +فعال کردن پشتیبانی از IPv6 در [dual stack](/docs/concepts/services-networking/dual-stack/). \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/IdentifyPodOS.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/IdentifyPodOS.md new file mode 100644 index 0000000000000..3f698e127bd12 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/IdentifyPodOS.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: IdentifyPodOS +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" + toVersion: "1.23" + - stage: beta + defaultValue: true + fromVersion: "1.24" + toVersion: "1.24" + - stage: stable + defaultValue: true + fromVersion: "1.25" + toVersion: "1.26" + +removed: true +--- +امکان مشخص کردن فیلد سیستم عامل پاد را فراهم می‌کند. این به شناسایی معتبر سیستم عامل پاد در زمان پذیرش سرور API کمک می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ImageMaximumGCAge.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ImageMaximumGCAge.md new file mode 100644 index 0000000000000..a4b00eb70c5dd --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ImageMaximumGCAge.md @@ -0,0 +1,17 @@ +--- +title: ImageMaximumGCAge +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.29" + - stage: beta + defaultValue: true + fromVersion: "1.30" +--- +فیلد پیکربندی kubelet با نام `imageMaximumGCAge` را فعال می‌کند و به مدیر سیستم اجازه می‌دهد تا سنی را که پس از آن یک تصویر جمع‌آوری زباله می‌شود، مشخص کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ImageVolume.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ImageVolume.md new file mode 100644 index 0000000000000..9fe1b21823c94 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ImageVolume.md @@ -0,0 +1,18 @@ +--- +title: ImageVolume +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.31" + toVersion: "1.32" + - stage: beta + defaultValue: false + fromVersion: "1.33" +--- +اجازه استفاده از منبع والیوم [`image`](/docs/concepts/storage/volumes/) را در یک Pod بدهید. +این منبع والیوم به شما امکان می‌دهد یک ایمیج کانتینر را به عنوان یک والیوم فقط خواندنی مانت کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ImmutableEphemeralVolumes.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ImmutableEphemeralVolumes.md new file mode 100644 index 0000000000000..0703bebba7f56 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ImmutableEphemeralVolumes.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: ImmutableEphemeralVolumes +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.18" + toVersion: "1.18" + - stage: beta + defaultValue: true + fromVersion: "1.19" + toVersion: "1.20" + - stage: stable + defaultValue: true + fromVersion: "1.21" + toVersion: "1.24" + +removed: true +--- +امکان علامت‌گذاری Secrets و ConfigMapsهای مجزا به عنوان تغییرناپذیر برای ایمنی و عملکرد بهتر را فراهم می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/InPlacePodVerticalScaling.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InPlacePodVerticalScaling.md new file mode 100644 index 0000000000000..92b6c11491822 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InPlacePodVerticalScaling.md @@ -0,0 +1,17 @@ +--- +title: InPlacePodVerticalScaling +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.27" + toVersion: "1.32" + - stage: beta + defaultValue: true + fromVersion: "1.33" +--- +مقیاس‌پذیری عمودی Pod را درجا فعال می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/InPlacePodVerticalScalingAllocatedStatus.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InPlacePodVerticalScalingAllocatedStatus.md new file mode 100644 index 0000000000000..fcdb8dc907ba9 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InPlacePodVerticalScalingAllocatedStatus.md @@ -0,0 +1,18 @@ +--- +title: InPlacePodVerticalScalingAllocatedStatus +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" + toVersion: "1.32" + - stage: deprecated + defaultValue: false + fromVersion: "1.33" + +--- +فیلد `allocatedResources` را در وضعیت کانتینر فعال می‌کند. این ویژگی مستلزم فعال بودن گیت `InPlacePodVerticalScaling` نیز هست. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/InPlacePodVerticalScalingExclusiveCPUs.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InPlacePodVerticalScalingExclusiveCPUs.md new file mode 100644 index 0000000000000..8ce06dba1143a --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InPlacePodVerticalScalingExclusiveCPUs.md @@ -0,0 +1,14 @@ +--- +title: InPlacePodVerticalScalingExclusiveCPUs +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" +--- +تغییر اندازه منابع را برای کانتینرها در پادهای تضمین‌شده با درخواست‌های CPU عدد صحیح فعال کنید. +این فقط در گره‌هایی اعمال می‌شود که ویژگی‌های `InPlacePodVerticalScaling` و `CPUManager` فعال باشند و سیاست CPUManager روی `static` تنظیم شده باشد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginAWSUnregister.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginAWSUnregister.md new file mode 100644 index 0000000000000..2da6a91545f06 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginAWSUnregister.md @@ -0,0 +1,16 @@ +--- +title: InTreePluginAWSUnregister +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.30" + +removed: true +--- +ثبت افزونه‌ی درون‌برنامه‌ای aws-ebs را در kubelet و volume controllersا متوقف می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginAzureDiskUnregister.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginAzureDiskUnregister.md new file mode 100644 index 0000000000000..88f708f6d25ee --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginAzureDiskUnregister.md @@ -0,0 +1,16 @@ +--- +title: InTreePluginAzureDiskUnregister +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.30" + +removed: true +--- +ثبت افزونه‌ی درون‌برنامه‌ای azuredisk را در kubelet و volume controllers متوقف می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginAzureFileUnregister.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginAzureFileUnregister.md new file mode 100644 index 0000000000000..bd8a3cdd557e7 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginAzureFileUnregister.md @@ -0,0 +1,16 @@ +--- +title: InTreePluginAzureFileUnregister +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.30" + +removed: true +--- +ثبت افزونه‌ی درون‌شاخه‌ای azurefile را در kubelet و volume controllers متوقف می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginGCEUnregister.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginGCEUnregister.md new file mode 100644 index 0000000000000..474e677d91056 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginGCEUnregister.md @@ -0,0 +1,16 @@ +--- +title: InTreePluginGCEUnregister +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.30" + +removed: true +--- +ثبت افزونه‌ی درون‌شاخه‌ای gce-pd را در kubelet و volume controllersا متوقف می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginOpenStackUnregister.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginOpenStackUnregister.md new file mode 100644 index 0000000000000..5270e7b59cde0 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginOpenStackUnregister.md @@ -0,0 +1,16 @@ +--- +title: InTreePluginOpenStackUnregister +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.30" + +removed: true +--- +ثبت افزونه OpenStack cinder in-tree را در kubelet و volume controllers متوقف می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginPortworxUnregister.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginPortworxUnregister.md new file mode 100644 index 0000000000000..380a43e20be68 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginPortworxUnregister.md @@ -0,0 +1,13 @@ +--- +title: InTreePluginPortworxUnregister +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" +--- +ثبت افزونه‌ی خوشه Portworx را در kubelet و volume controllers متوقف می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginRBDUnregister.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginRBDUnregister.md new file mode 100644 index 0000000000000..b5777bbed4167 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginRBDUnregister.md @@ -0,0 +1,20 @@ +--- +title: InTreePluginRBDUnregister +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" + toVersion: "1.27" + - stage: deprecated + defaultValue: false + fromVersion: "1.28" + toVersion: "1.30" + +removed: true +--- +ثبت افزونه درون درختی RBD را در kubelet و volume controllers می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginvSphereUnregister.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginvSphereUnregister.md new file mode 100644 index 0000000000000..426791527fe67 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InTreePluginvSphereUnregister.md @@ -0,0 +1,16 @@ +--- +title: InTreePluginvSphereUnregister +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.30" + +removed: true +--- +ثبت افزونه vSphere in-tree را در kubelet و volume controllers متوقف می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/IndexedJob.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/IndexedJob.md new file mode 100644 index 0000000000000..79e9d85406253 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/IndexedJob.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: IndexedJob +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.25" + +removed: true +--- +به کنترلر [Job](/docs/concepts/workloads/controllers/job/) اجازه می‌دهد تا تکمیل Pod را به ازای هر شاخص تکمیل مدیریت کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/InformerResourceVersion.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InformerResourceVersion.md new file mode 100644 index 0000000000000..83d5672281d96 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/InformerResourceVersion.md @@ -0,0 +1,15 @@ +--- +title: InformerResourceVersion +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.30" +--- +بررسی آخرین نسخه منبع همگام‌سازی شده با استفاده از اطلاع‌دهنده را فعال می‌کند. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/IngressClassNamespacedParams.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/IngressClassNamespacedParams.md new file mode 100644 index 0000000000000..bfccb9579c055 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/IngressClassNamespacedParams.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: IngressClassNamespacedParams +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.22" + - stage: stable + defaultValue: true + fromVersion: "1.23" + toVersion: "1.24" + +removed: true +--- +اجازه دهید پارامترهای دارای محدوده فضای نام در منبع `IngressClass` ارجاع داده شوند. این ویژگی دو فیلد - `Scope` و `Namespace` - را به `IngressClass.spec.parameters` اضافه می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/Initializers.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/Initializers.md new file mode 100644 index 0000000000000..e274562d04cdc --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/Initializers.md @@ -0,0 +1,21 @@ +--- +title: Initializers +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.7" + toVersion: "1.13" + - stage: deprecated + fromVersion: "1.14" + toVersion: "1.14" + +removed: true +--- +امکان هماهنگی ناهمزمان ایجاد شیء با استفاده از افزونه پذیرش مقداردهنده‌های اولیه. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobBackoffLimitPerIndex.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobBackoffLimitPerIndex.md new file mode 100644 index 0000000000000..8c492549780f5 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobBackoffLimitPerIndex.md @@ -0,0 +1,23 @@ +--- +title: JobBackoffLimitPerIndex +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.28" + toVersion: "1.28" + - stage: beta + defaultValue: true + fromVersion: "1.29" + toVersion: "1.32" + - stage: stable + defaultValue: true + locked: true + fromVersion: "1.33" +--- +امکان تعیین حداکثر تعداد تلاش‌های مجدد پاد به ازای هر شاخص در کارهای شاخص‌گذاری شده را فراهم می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobManagedBy.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobManagedBy.md new file mode 100644 index 0000000000000..d9b9ea2f27e3b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobManagedBy.md @@ -0,0 +1,18 @@ +--- +title: JobManagedBy +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.30" + toVersion: "1.31" + - stage: beta + defaultValue: true + fromVersion: "1.32" +--- +اجازه می‌دهد تا تطبیق یک شیء Job را به یک کنترل‌کننده خارجی واگذار کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobMutableNodeSchedulingDirectives.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobMutableNodeSchedulingDirectives.md new file mode 100644 index 0000000000000..68222ee1fd488 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobMutableNodeSchedulingDirectives.md @@ -0,0 +1,20 @@ +--- +title: JobMutableNodeSchedulingDirectives +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.23" + toVersion: "1.26" + - stage: stable + defaultValue: true + fromVersion: "1.27" + toVersion: "1.28" + +removed: true +--- +امکان به‌روزرسانی دستورالعمل‌های زمان‌بندی گره را در قالب pod از [Job](/docs/concepts/workloads/controllers/job) فراهم می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobPodFailurePolicy.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobPodFailurePolicy.md new file mode 100644 index 0000000000000..019fe57d99888 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobPodFailurePolicy.md @@ -0,0 +1,24 @@ +--- +title: JobPodFailurePolicy +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.25" + toVersion: "1.25" + - stage: beta + defaultValue: true + fromVersion: "1.26" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + +removed: true +--- +به کاربران اجازه دهید نحوه‌ی مدیریت خرابی‌های پاد را بر اساس کدهای خروج کانتینر و شرایط پاد مشخص کنند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobPodReplacementPolicy.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobPodReplacementPolicy.md new file mode 100644 index 0000000000000..da0cc1b440343 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobPodReplacementPolicy.md @@ -0,0 +1,17 @@ +--- +title: JobPodReplacementPolicy +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.28" + toVersion: "1.28" + - stage: beta + defaultValue: true + fromVersion: "1.29" +--- +به شما امکان می‌دهد جایگزینی پاد را برای پادهای خاتمه‌دهنده در یک [Job](/docs/concepts/workloads/controllers/job) مشخص کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobReadyPods.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobReadyPods.md new file mode 100644 index 0000000000000..2d86ae58db68d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobReadyPods.md @@ -0,0 +1,25 @@ +--- +title: JobReadyPods +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" + toVersion: "1.23" + - stage: beta + defaultValue: true + fromVersion: "1.24" + toVersion: "1.28" + - stage: stable + defaultValue: true + fromVersion: "1.29" + toVersion: "1.30" + +removed: true +--- +ردیابی تعداد پادهایی که وضعیت `Ready` دارند را فعال می‌کند. +[condition](/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions). تعداد پادهای «آماده» در وضعیت [status](/docs/reference/kubernetes-api/workload-resources/job-v1/#JobStatus) یک [Job](/docs/concepts/workloads/controllers/job) ثبت می‌شود. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobSuccessPolicy.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobSuccessPolicy.md new file mode 100644 index 0000000000000..46c46f47a0f19 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobSuccessPolicy.md @@ -0,0 +1,23 @@ +--- +title: JobSuccessPolicy +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.30" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + - stage: stable + defaultValue: true + locked: true + fromVersion: "1.33" +--- +به کاربران اجازه دهید مشخص کنند که چه زمانی یک کار می‌تواند بر اساس مجموعه پادهای موفق، به عنوان موفق اعلام شود. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobTrackingWithFinalizers.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobTrackingWithFinalizers.md new file mode 100644 index 0000000000000..742870b9c867b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/JobTrackingWithFinalizers.md @@ -0,0 +1,29 @@ +--- +title: JobTrackingWithFinalizers +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.22" + toVersion: "1.22" + - stage: beta + defaultValue: false + fromVersion: "1.23" + toVersion: "1.24" + - stage: beta + defaultValue: true + fromVersion: "1.25" + toVersion: "1.25" + - stage: stable + defaultValue: true + fromVersion: "1.26" + toVersion: "1.28" + +removed: true +--- +ردیابی تکمیل‌های [Job](/docs/concepts/workloads/controllers/job) را بدون تکیه بر Podهای باقی‌مانده در خوشه به طور نامحدود، فعال می‌کند. +کنترل‌کننده‌ی Job از نهایی‌کننده‌های Pod و یک فیلد در وضعیت Job برای پیگیری Podهای تکمیل‌شده استفاده می‌کند تا در جهت تکمیل شمارش شوند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KMSv1.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KMSv1.md new file mode 100644 index 0000000000000..78ff260885a7e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KMSv1.md @@ -0,0 +1,18 @@ +--- +title: KMSv1 +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: deprecated + defaultValue: true + fromVersion: "1.28" + toVersion: "1.28" + - stage: deprecated + defaultValue: false + fromVersion: "1.29" + +--- +API KMS v1 را برای رمزگذاری در حالت سکون فعال می‌کند. برای جزئیات بیشتر به [Using a KMS Provider for data encryption](/docs/tasks/administer-cluster/kms-provider) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KMSv2.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KMSv2.md new file mode 100644 index 0000000000000..fa1fe1b035bdc --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KMSv2.md @@ -0,0 +1,24 @@ +--- +title: KMSv2 +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.25" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.28" + - stage: stable + defaultValue: true + fromVersion: "1.29" + toVersion: "1.31" + +removed: true +--- +API KMS v2 را برای رمزگذاری در حالت سکون فعال می‌کند. برای جزئیات بیشتر به [Using a KMS Provider for data encryption](/docs/tasks/administer-cluster/kms-provider) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KMSv2KDF.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KMSv2KDF.md new file mode 100644 index 0000000000000..8162eb6423c21 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KMSv2KDF.md @@ -0,0 +1,22 @@ +--- +title: KMSv2KDF +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.28" + toVersion: "1.28" + - stage: stable + defaultValue: true + fromVersion: "1.29" + toVersion: "1.31" + +removed: true +--- +KMS نسخه ۲ را قادر می‌سازد تا کلیدهای رمزگذاری داده یکبار مصرف تولید کند. +برای جزئیات بیشتر به [Using a KMS Provider for data encryption](/docs/tasks/administer-cluster/kms-provider) مراجعه کنید. +اگر دروازه ویژگی `KMSv2` در خوشه شما فعال نباشد، مقدار دروازه ویژگی `KMSv2KDF` هیچ تاثیری ندارد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeProxyDrainingTerminatingNodes.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeProxyDrainingTerminatingNodes.md new file mode 100644 index 0000000000000..a87908d578243 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeProxyDrainingTerminatingNodes.md @@ -0,0 +1,24 @@ +--- +title: KubeProxyDrainingTerminatingNodes +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.28" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.30" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + +removed: true +--- +پیاده‌سازی تخلیه اتصال برای گره‌های انتهایی برای سرویس‌های `externalTrafficPolicy: Cluster`. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletCgroupDriverFromCRI.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletCgroupDriverFromCRI.md new file mode 100644 index 0000000000000..b995a46638c1c --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletCgroupDriverFromCRI.md @@ -0,0 +1,19 @@ +--- +title: KubeletCgroupDriverFromCRI +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.28" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.31" +--- +گزینه تشخیص پیکربندی درایور cgroup در kubelet را از {{}} فعال کنید. +شما می‌توانید از این feature gate روی گره‌هایی با kubelet که از feature gate پشتیبانی می‌کند و جایی که یک زمان اجرای کانتینر CRI وجود دارد که از فراخوانی `RuntimeConfig` CRI پشتیبانی می‌کند، استفاده کنید. اگر CRI و kubelet هر دو از این ویژگی پشتیبانی کنند، kubelet تنظیمات پیکربندی `cgroupDriver` (یا آرگومان خط فرمان منسوخ شده `--cgroup-driver`) را نادیده می‌گیرد. اگر این feature gate را فعال کنید و زمان اجرای کانتینر از آن پشتیبانی نکند، kubelet به استفاده از درایور پیکربندی شده با استفاده از تنظیمات پیکربندی `cgroupDriver` برمی‌گردد. +برای جزئیات بیشتر به [Configuring a cgroup driver](/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletConfigFile.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletConfigFile.md new file mode 100644 index 0000000000000..78e734fb9f21e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletConfigFile.md @@ -0,0 +1,22 @@ +--- +# Removed from Kubernetes +title: KubeletConfigFile +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.8" + toVersion: "1.9" + - stage: deprecated + fromVersion: "1.10" + toVersion: "1.10" + +removed: true +--- +فعال کردن بارگذاری پیکربندی kubelet از فایلی که با استفاده از یک فایل پیکربندی مشخص شده است. +برای جزئیات بیشتر به [setting kubelet parameters via a config file](/docs/tasks/administer-cluster/kubelet-config-file/) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletCrashLoopBackOffMax.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletCrashLoopBackOffMax.md new file mode 100644 index 0000000000000..a19a14bba6330 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletCrashLoopBackOffMax.md @@ -0,0 +1,13 @@ +--- +title: KubeletCrashLoopBackOffMax +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" +--- +پشتیبانی از حداکثرهای قابل تنظیم برای هر گره برای راه‌اندازی مجدد کانتینرها در حالت `CrashLoopBackOff` را فعال می‌کند. برای جزئیات بیشتر، فیلد `crashLoopBackOff.maxContainerRestartPeriod` را در [kubelet config file](/docs/reference/config-api/kubelet-config.v1beta1/). بررسی کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletCredentialProviders.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletCredentialProviders.md new file mode 100644 index 0000000000000..4b134abdff4a8 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletCredentialProviders.md @@ -0,0 +1,24 @@ +--- +title: KubeletCredentialProviders +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.20" + toVersion: "1.23" + - stage: beta + defaultValue: true + fromVersion: "1.24" + toVersion: "1.25" + - stage: stable + defaultValue: true + fromVersion: "1.26" + toVersion: "1.28" + +removed: true +--- +ارائه دهندگان اعتبارنامه اجرایی kubelet را برای اعتبارنامه‌های دریافت تصویر فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletEnsureSecretPulledImages.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletEnsureSecretPulledImages.md new file mode 100644 index 0000000000000..965fd5401c444 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletEnsureSecretPulledImages.md @@ -0,0 +1,13 @@ +--- +title: KubeletEnsureSecretPulledImages +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" +--- +اطمینان حاصل کنید که پادهایی که درخواست تصویر می‌کنند، با اعتبارنامه‌های ارائه شده، در زمانی که تصویر از قبل در گره موجود است، مجاز به دسترسی به تصویر هستند. به [Ensure Image Pull Credential Verification](/docs/concepts/containers/images#ensureimagepullcredentialverification). مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletFineGrainedAuthz.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletFineGrainedAuthz.md new file mode 100644 index 0000000000000..b501cbe277cfc --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletFineGrainedAuthz.md @@ -0,0 +1,17 @@ +--- +title: KubeletFineGrainedAuthz +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" + toVersion: "1.32" + - stage: beta + defaultValue: true + fromVersion: "1.33" +--- +[fine-grained authorization](/docs/reference/access-authn-authz/kubelet-authn-authz/#fine-grained-authorization) را برای HTTP(s) API kubelet فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletInUserNamespace.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletInUserNamespace.md new file mode 100644 index 0000000000000..b3c34221e08c6 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletInUserNamespace.md @@ -0,0 +1,15 @@ +--- +title: KubeletInUserNamespace +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.22" +--- +پشتیبانی از اجرای kubelet را در یک {{}} فعال می‌کند. +به [Running Kubernetes Node Components as a Non-root User](/docs/tasks/administer-cluster/kubelet-in-userns/). +مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPSI.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPSI.md new file mode 100644 index 0000000000000..561118931cdb4 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPSI.md @@ -0,0 +1,14 @@ +--- +title: KubeletPSI +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" +--- +kubelet را فعال کنید تا معیارهای اطلاعات مربوط به واماندگی فشار (PSI) را در Summary API و معیارهای Prometheus نمایش دهد. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPluginsWatcher.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPluginsWatcher.md new file mode 100644 index 0000000000000..6b1fa0db76b83 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPluginsWatcher.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: KubeletPluginsWatcher +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.11" + toVersion: "1.11" + - stage: beta + defaultValue: true + fromVersion: "1.12" + toVersion: "1.12" + - stage: stable + defaultValue: true + fromVersion: "1.13" + toVersion: "1.16" + +removed: true +--- +ابزار مشاهده‌گر افزونه مبتنی بر کاوشگر را فعال کنید تا kubelet بتواند افزونه‌هایی مانند [CSI volume drivers](/docs/concepts/storage/volumes/#csi) را کشف کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPodResources.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPodResources.md new file mode 100644 index 0000000000000..64a59271d9567 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPodResources.md @@ -0,0 +1,23 @@ +--- +title: KubeletPodResources +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.13" + toVersion: "1.14" + - stage: beta + defaultValue: true + fromVersion: "1.15" + toVersion: "1.27" + - stage: stable + defaultValue: true + fromVersion: "1.28" + toVersion: "1.29" +removed: true +--- +فعال کردن نقطه پایانی gRPC منابع پاد Kubelet. برای جزئیات بیشتر به [Support Device Monitoring](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/606-compute-device-assignment/README.md) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPodResourcesDynamicResources.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPodResourcesDynamicResources.md new file mode 100644 index 0000000000000..a807f75855eab --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPodResourcesDynamicResources.md @@ -0,0 +1,15 @@ +--- +title: KubeletPodResourcesDynamicResources +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.27" +--- +نقطه پایانی gRPC منابع غلاف kubelet را به ... گسترش دهید تا منابع اختصاص داده شده در `ResourceClaims` را از طریق API `DynamicResourceAllocation` شامل شود. +برای جزئیات بیشتر به [resource allocation reporting](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/#monitoring-device-plugin-resources) مراجعه کنید. +با اطلاعاتی در مورد منابع قابل تخصیص، که به کلاینت‌ها امکان می‌دهد منابع محاسباتی آزاد روی یک گره را به درستی ردیابی کنند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPodResourcesGet.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPodResourcesGet.md new file mode 100644 index 0000000000000..c2cc02b7ba686 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPodResourcesGet.md @@ -0,0 +1,15 @@ +--- +title: KubeletPodResourcesGet +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.27" +--- +نقطه پایانی `Get` gRPC را روی kubelet برای منابع Pod فعال کنید. +این API [resource allocation reporting](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/#monitoring-device-plugin-resources). + را تقویت می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPodResourcesGetAllocatable.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPodResourcesGetAllocatable.md new file mode 100644 index 0000000000000..c5f554f054101 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletPodResourcesGetAllocatable.md @@ -0,0 +1,23 @@ +--- +title: KubeletPodResourcesGetAllocatable +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.22" + - stage: beta + defaultValue: true + fromVersion: "1.23" + toVersion: "1.27" + - stage: stable + defaultValue: true + fromVersion: "1.28" + toVersion: "1.29" +removed: true +--- +فعال کردن قابلیت `GetAllocatableResources` در بخش منابع kubelet. این API، گزارش تخصیص منابع را تقویت می‌کند. [resource allocation reporting](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/#monitoring-device-plugin-resources) \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletSeparateDiskGC.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletSeparateDiskGC.md new file mode 100644 index 0000000000000..f8d0141b46a04 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletSeparateDiskGC.md @@ -0,0 +1,17 @@ +--- +title: KubeletSeparateDiskGC +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.31" +--- +ویژگی سیستم فایل تصویر تقسیم‌شده، kubelet را قادر می‌سازد تا جمع‌آوری زباله تصاویر (read-only layers) و/یا کانتینرها (writeable layers) مستقر در سیستم فایل‌های جداگانه را انجام دهد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletServiceAccountTokenForCredentialProviders.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletServiceAccountTokenForCredentialProviders.md new file mode 100644 index 0000000000000..3d8945e836ba5 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletServiceAccountTokenForCredentialProviders.md @@ -0,0 +1,13 @@ +--- +title: KubeletServiceAccountTokenForCredentialProviders +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" +--- +kubelet را فعال کنید تا توکن حساب سرویس متصل به پادی که تصویر برای آن دریافت می‌شود را به افزونه ارائه‌دهنده اعتبارنامه ارسال کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletTracing.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletTracing.md new file mode 100644 index 0000000000000..fa08282dd73f0 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/KubeletTracing.md @@ -0,0 +1,19 @@ +--- +title: KubeletTracing +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.25" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" +--- +پشتیبانی از ردیابی توزیع‌شده در kubelet اضافه شود. +هنگامی که فعال شود، رابط CRI kubelet و سرورهای http احراز هویت‌شده برای تولید محدوده‌های ردیابی OpenTelemetry تجهیز می‌شوند. +برای جزئیات بیشتر به [Traces for Kubernetes System Components](/docs/concepts/cluster-administration/system-traces) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/LegacyNodeRoleBehavior.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LegacyNodeRoleBehavior.md new file mode 100644 index 0000000000000..a8c8dc2ddc998 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LegacyNodeRoleBehavior.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: LegacyNodeRoleBehavior +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.16" + toVersion: "1.18" + - stage: beta + defaultValue: true + fromVersion: "1.19" + toVersion: "1.20" + - stage: stable + defaultValue: false + fromVersion: "1.21" + toVersion: "1.22" + +removed: true +--- +در صورت غیرفعال بودن، رفتار قدیمی در متعادل‌کننده‌های بار سرویس و اختلال گره، برچسب `node-role.kubernetes.io/master` را به نفع برچسب‌های خاص ویژگی ارائه شده توسط `NodeDisruptionExclusion` و `ServiceNodeExclusion` نادیده می‌گیرد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/LegacyServiceAccountTokenCleanUp.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LegacyServiceAccountTokenCleanUp.md new file mode 100644 index 0000000000000..c9560c1acd6ce --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LegacyServiceAccountTokenCleanUp.md @@ -0,0 +1,25 @@ +--- +title: LegacyServiceAccountTokenCleanUp +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.28" + toVersion: "1.28" + - stage: beta + defaultValue: true + fromVersion: "1.29" + toVersion: "1.29" + - stage: stable + defaultValue: true + fromVersion: "1.30" + toVersion: "1.31" + +removed: true +--- +فعال کردن پاکسازی توکن‌های حساب کاربری مبتنی بر راز [service account tokens](/docs/concepts/security/service-accounts/#get-a-token) +زمانی که در یک زمان مشخص (پیش‌فرض یک سال) استفاده نمی‌شوند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/LegacyServiceAccountTokenNoAutoGeneration.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LegacyServiceAccountTokenNoAutoGeneration.md new file mode 100644 index 0000000000000..79d11dc2b0a8d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LegacyServiceAccountTokenNoAutoGeneration.md @@ -0,0 +1,20 @@ +--- +title: LegacyServiceAccountTokenNoAutoGeneration +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.24" + toVersion: "1.25" + - stage: stable + defaultValue: true + fromVersion: "1.26" + toVersion: "1.28" + +removed: true +--- +توقف تولید خودکار توکن‌های حساب کاربری مبتنی بر رمز عبور [service account tokens](/docs/concepts/security/service-accounts/#get-a-token). \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/LegacyServiceAccountTokenTracking.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LegacyServiceAccountTokenTracking.md new file mode 100644 index 0000000000000..217bf1f2c18a7 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LegacyServiceAccountTokenTracking.md @@ -0,0 +1,23 @@ +--- +title: LegacyServiceAccountTokenTracking +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.26" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.27" + - stage: stable + defaultValue: true + fromVersion: "1.28" + toVersion: "1.29" +removed: true +--- +پیگیری استفاده از مبتنی بر راز [service account tokens](/docs/concepts/security/service-accounts/#get-a-token).. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ListFromCacheSnapshot.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ListFromCacheSnapshot.md new file mode 100644 index 0000000000000..c4438193b4ec1 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ListFromCacheSnapshot.md @@ -0,0 +1,15 @@ +--- +title: ListFromCacheSnapshot +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" + +--- +سرور API را قادر می‌سازد تا اسنپ‌شات‌هایی برای حافظه پنهان watch ایجاد کند و از آنها برای ارائه درخواست‌های LIST استفاده کند. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/LoadBalancerIPMode.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LoadBalancerIPMode.md new file mode 100644 index 0000000000000..0f1d0f90c4421 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LoadBalancerIPMode.md @@ -0,0 +1,22 @@ +--- +title: LoadBalancerIPMode +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.30" + toVersion: "1.31" + - stage: stable + defaultValue: true + fromVersion: "1.32" +--- +تنظیم `ipMode` را برای سرویس‌هایی که `type` آنها روی `LoadBalancer` تنظیم شده است، امکان‌پذیر می‌کند. +برای اطلاعات بیشتر به [Specifying IPMode of load balancer status](/docs/concepts/services-networking/service/#load-balancer-ip-mode) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/LocalStorageCapacityIsolation.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LocalStorageCapacityIsolation.md new file mode 100644 index 0000000000000..a1c08b792365b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LocalStorageCapacityIsolation.md @@ -0,0 +1,27 @@ +--- +# Removed from Kubernetes +title: LocalStorageCapacityIsolation +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.7" + toVersion: "1.9" + - stage: beta + defaultValue: true + fromVersion: "1.10" + toVersion: "1.24" + - stage: stable + defaultValue: true + fromVersion: "1.25" + toVersion: "1.26" + +removed: true +--- +فعال کردن مصرف [local ephemeral storage](/docs/concepts/configuration/manage-resources-containers/) +و همچنین ویژگی `sizeLimit` از یک [emptyDir volume](/docs/concepts/storage/volumes/#emptydir). \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/LocalStorageCapacityIsolationFSQuotaMonitoring.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LocalStorageCapacityIsolationFSQuotaMonitoring.md new file mode 100644 index 0000000000000..7cc414a7a36db --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LocalStorageCapacityIsolationFSQuotaMonitoring.md @@ -0,0 +1,17 @@ +--- +title: LocalStorageCapacityIsolationFSQuotaMonitoring +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.15" + toVersion: "1.30" + - stage: beta + defaultValue: false + fromVersion: "1.31" +--- +وقتی `LocalStorageCapacityIsolation` برای [local ephemeral storage](/docs/concepts/configuration/manage-resources-containers/), فعال باشد، سیستم فایل پشتیبان برای [emptyDir volumes](/docs/concepts/storage/volumes/#emptydir) از سهمیه‌بندی پروژه پشتیبانی می‌کند، و `UserNamespacesSupport` فعال باشد، سهمیه‌بندی پروژه برای نظارت بر مصرف فضای ذخیره‌سازی `emptyDir` به جای استفاده از پیمایش سیستم فایل استفاده می‌شود و عملکرد و دقت بهتری را تضمین می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/LogarithmicScaleDown.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LogarithmicScaleDown.md new file mode 100644 index 0000000000000..9b0a9dd83d885 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LogarithmicScaleDown.md @@ -0,0 +1,21 @@ +--- +title: LogarithmicScaleDown +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.31" +--- +فعال کردن انتخاب نیمه‌تصادفی پادها برای حذف در زمان کاهش مقیاس کنترلر بر اساس دسته‌بندی لگاریتمی مهرهای زمانی پاد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/LoggingAlphaOptions.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LoggingAlphaOptions.md new file mode 100644 index 0000000000000..ca3c9e393039b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LoggingAlphaOptions.md @@ -0,0 +1,13 @@ +--- +title: LoggingAlphaOptions +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.24" +--- +امکان تنظیم دقیق گزینه‌های ثبت وقایع آزمایشی و با کیفیت آلفا را فراهم می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/LoggingBetaOptions.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LoggingBetaOptions.md new file mode 100644 index 0000000000000..cc0990c02ea75 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/LoggingBetaOptions.md @@ -0,0 +1,13 @@ +--- +title: LoggingBetaOptions +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.24" +--- +امکان تنظیم دقیق گزینه‌های ثبت وقایع آزمایشی و با کیفیت بتا را فراهم می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/MatchLabelKeysInPodAffinity.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MatchLabelKeysInPodAffinity.md new file mode 100644 index 0000000000000..4170f440a1985 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MatchLabelKeysInPodAffinity.md @@ -0,0 +1,22 @@ +--- +title: MatchLabelKeysInPodAffinity +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + - stage: stable + defaultValue: true + locked: true + fromVersion: "1.33" +--- +فیلدهای `matchLabelKeys` و `mismatchLabelKeys` را برای [pod (anti)affinity](/docs/concepts/scheduling-eviction/assign-pod-node/). فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/MatchLabelKeysInPodTopologySpread.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MatchLabelKeysInPodTopologySpread.md new file mode 100644 index 0000000000000..2d4ad03d7668b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MatchLabelKeysInPodTopologySpread.md @@ -0,0 +1,17 @@ +--- +title: MatchLabelKeysInPodTopologySpread +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.25" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" +--- +فیلد `matchLabelKeys` را برای [Pod topology spread constraints](/docs/concepts/scheduling-eviction/topology-spread-constraints/). فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/MaxUnavailableStatefulSet.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MaxUnavailableStatefulSet.md new file mode 100644 index 0000000000000..3ed135704ebb2 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MaxUnavailableStatefulSet.md @@ -0,0 +1,13 @@ +--- +title: MaxUnavailableStatefulSet +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.24" +--- +تنظیم فیلد `maxUnavailable` را برای [rolling update strategy](/docs/concepts/workloads/controllers/statefulset/#rolling-updates) از یک StatefulSet فعال می‌کند. این فیلد حداکثر تعداد Podهایی را که می‌توانند در طول به‌روزرسانی در دسترس نباشند، مشخص می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/MemoryManager.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MemoryManager.md new file mode 100644 index 0000000000000..51f06b1330b9e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MemoryManager.md @@ -0,0 +1,21 @@ +--- +title: MemoryManager +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.31" + - stage: stable + defaultValue: true + fromVersion: "1.32" +--- +امکان تنظیم وابستگی حافظه برای یک کانتینر بر اساس توپولوژی NUMA را فراهم می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/MemoryQoS.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MemoryQoS.md new file mode 100644 index 0000000000000..98af1de9e905e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MemoryQoS.md @@ -0,0 +1,13 @@ +--- +title: MemoryQoS +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.22" +--- +فعال کردن محافظت از حافظه و کنترل مصرف در پاد/کانتینر با استفاده از کنترلر حافظه cgroup v2. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/MinDomainsInPodTopologySpread.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MinDomainsInPodTopologySpread.md new file mode 100644 index 0000000000000..c1d2375dfff04 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MinDomainsInPodTopologySpread.md @@ -0,0 +1,28 @@ +--- +title: MinDomainsInPodTopologySpread +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.24" + toVersion: "1.24" + - stage: beta + defaultValue: false + fromVersion: "1.25" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.29" + - stage: stable + defaultValue: true + fromVersion: "1.30" + toVersion: "1.31" + +removed: true +--- +فعال کردن `minDomains` در [Pod topology spread constraints](/docs/concepts/scheduling-eviction/topology-spread-constraints/). diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/MinimizeIPTablesRestore.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MinimizeIPTablesRestore.md new file mode 100644 index 0000000000000..da0f00cd3404f --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MinimizeIPTablesRestore.md @@ -0,0 +1,23 @@ +--- +title: MinimizeIPTablesRestore +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.26" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.27" + - stage: stable + defaultValue: true + fromVersion: "1.28" + toVersion: "1.29" +removed: true +--- +منطق‌های جدید بهبود عملکرد را در حالت iptables مربوط به kube-proxy فعال می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/MixedProtocolLBService.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MixedProtocolLBService.md new file mode 100644 index 0000000000000..7bb11a29179f5 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MixedProtocolLBService.md @@ -0,0 +1,24 @@ +--- +title: MixedProtocolLBService +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.20" + toVersion: "1.23" + - stage: beta + defaultValue: true + fromVersion: "1.24" + toVersion: "1.25" + - stage: stable + defaultValue: true + fromVersion: "1.26" + toVersion: "1.27" + +removed: true +--- +فعال کردن استفاده از پروتکل‌های مختلف در یک نمونه سرویس از نوع `LoadBalancer`. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/MountContainers.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MountContainers.md new file mode 100644 index 0000000000000..ef6020ac05eb9 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MountContainers.md @@ -0,0 +1,22 @@ +--- +# Removed from Kubernetes +title: MountContainers +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.9" + toVersion: "1.16" + - stage: deprecated + defaultValue: false + fromVersion: "1.17" + toVersion: "1.17" + +removed: true +--- +فعال کردن استفاده از کانتینرهای کاربردی روی میزبان به عنوان نصب‌کننده‌ی ولوم. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/MountPropagation.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MountPropagation.md new file mode 100644 index 0000000000000..fe436efcdef4b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MountPropagation.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: MountPropagation +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.8" + toVersion: "1.9" + - stage: beta + defaultValue: true + fromVersion: "1.10" + toVersion: "1.11" + - stage: stable + defaultValue: true + fromVersion: "1.12" + toVersion: "1.14" + +removed: true +--- +اشتراک‌گذاری ولوم نصب‌شده توسط یک کانتینر با کانتینرها یا پادهای دیگر را فعال کنید. برای جزئیات بیشتر، لطفاً به [mount propagation](/docs/concepts/storage/volumes/#mount-propagation) مراجعه کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/MultiCIDRRangeAllocator.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MultiCIDRRangeAllocator.md new file mode 100644 index 0000000000000..753cddb4b6706 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MultiCIDRRangeAllocator.md @@ -0,0 +1,16 @@ +--- +title: MultiCIDRRangeAllocator +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.25" + toVersion: "1.28" + +removed: true +--- +تخصیص‌دهنده‌ی محدوده‌ی MultiCIDR را فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/MultiCIDRServiceAllocator.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MultiCIDRServiceAllocator.md new file mode 100644 index 0000000000000..810d0b5a85de3 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MultiCIDRServiceAllocator.md @@ -0,0 +1,22 @@ +--- +title: MultiCIDRServiceAllocator +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.27" + toVersion: "1.30" + - stage: beta + defaultValue: false + fromVersion: "1.31" + toVersion: "1.32" + - stage: stable + defaultValue: true + locked: true + fromVersion: "1.33" +--- +تخصیص آدرس IP را برای IP های خوشه سرویس با استفاده از اشیاء IPAddress پیگیری کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/MutableCSINodeAllocatableCount.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MutableCSINodeAllocatableCount.md new file mode 100644 index 0000000000000..19561a4f0aab5 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MutableCSINodeAllocatableCount.md @@ -0,0 +1,13 @@ +--- +title: MutableCSINodeAllocatableCount +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" +--- +وقتی این قابلیت فعال می‌شود، فیلد `CSINode.Spec.Drivers[*].Allocatable.Count` تغییرپذیر می‌شود و فیلد جدیدی به نام `NodeAllocatableUpdatePeriodSeconds` در شیء `CSIDriver` در دسترس قرار می‌گیرد. این امر امکان به‌روزرسانی‌های دوره‌ای ظرفیت حجم قابل تخصیص گزارش‌شده‌ی یک گره را فراهم می‌کند و از گیر افتادن پادهای دارای وضعیت به دلیل اطلاعات قدیمی که `kube-scheduler` به آن متکی است، جلوگیری می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/MutatingAdmissionPolicy.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MutatingAdmissionPolicy.md new file mode 100644 index 0000000000000..a471e498d8a45 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/MutatingAdmissionPolicy.md @@ -0,0 +1,14 @@ +--- +title: MutatingAdmissionPolicy +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.30" +--- +پشتیبانی [MutatingAdmissionPolicy](/docs/reference/access-authn-authz/mutating-admission-policy/) را برای جهش‌های [CEL](https://kubernetes.io/docs/reference/using-api/cel/) که در کنترل پذیرش استفاده می‌شوند، فعال کنید. +برای Kubernetes نسخه‌های ۱.۳۰ و ۱.۳۱، این دروازه ویژگی وجود داشت اما هیچ تاثیری نداشت. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/NFTablesProxyMode.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NFTablesProxyMode.md new file mode 100644 index 0000000000000..084b8f169ffff --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NFTablesProxyMode.md @@ -0,0 +1,22 @@ +--- +title: NFTablesProxyMode +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + - stage: stable + defaultValue: true + locked: true + fromVersion: "1.33" +--- +اجازه اجرای kube-proxy را در [حالت nftables](/docs/reference/networking/virtual-ips/#proxy-mode-nftables) بدهید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/NamespaceDefaultLabelName.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NamespaceDefaultLabelName.md new file mode 100644 index 0000000000000..1323bae40e39d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NamespaceDefaultLabelName.md @@ -0,0 +1,22 @@ +--- +# Removed from Kubernetes +title: NamespaceDefaultLabelName +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.21" + toVersion: "1.21" + - stage: stable + defaultValue: true + fromVersion: "1.22" + toVersion: "1.23" + +removed: true +--- +سرور API را طوری پیکربندی کنید که یک {{< glossary_tooltip text="label" term_id="label" >}} `kubernetes.io/metadata.name` تغییرناپذیر را روی همه فضاهای نام، شامل نام namespace، تنظیم کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/NetworkPolicyEndPort.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NetworkPolicyEndPort.md new file mode 100644 index 0000000000000..76d5a44b0544d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NetworkPolicyEndPort.md @@ -0,0 +1,24 @@ +--- +title: NetworkPolicyEndPort +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.24" + - stage: stable + defaultValue: true + fromVersion: "1.25" + toVersion: "1.26" + +removed: true +--- +به شما امکان می‌دهد پورت‌ها را در یک قانون [NetworkPolicy](/docs/concepts/services-networking/network-policies/) به عنوان طیفی از شماره پورت‌ها تعریف کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/NetworkPolicyStatus.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NetworkPolicyStatus.md new file mode 100644 index 0000000000000..2965574fa6be3 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NetworkPolicyStatus.md @@ -0,0 +1,16 @@ +--- +title: NetworkPolicyStatus +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.24" + toVersion: "1.27" + +removed: true +--- +زیرمنبع `status` را برای اشیاء NetworkPolicy فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/NewVolumeManagerReconstruction.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NewVolumeManagerReconstruction.md new file mode 100644 index 0000000000000..2e4f39e3eff4c --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NewVolumeManagerReconstruction.md @@ -0,0 +1,27 @@ +--- +title: NewVolumeManagerReconstruction +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.25" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.29" + - stage: stable + defaultValue: true + fromVersion: "1.30" + toVersion: "1.31" + +removed: true +--- +This refactoring was behind the `SELinuxMountReadWriteOncePod` feature gate in Kubernetes +releases 1.25 and 1.26. +امکان کشف بهتر حجم‌های نصب‌شده در هنگام راه‌اندازی kubelet را فراهم می‌کند. از آنجایی که کد مرتبط به‌طور قابل‌توجهی اصلاح شده بود، نسخه‌های 1.25 تا 1.29 Kubernetes به شما این امکان را می‌دادند که در صورت گیر کردن kubelet در هنگام راه‌اندازی یا عدم حذف حجم‌ها از Podهای خاتمه‌یافته، از این امر انصراف دهید. +این اصلاح، پشت دروازه ویژگی `SELinuxMountReadWriteOncePod` در نسخه‌های 1.25 و 1.26 Kubernetes بود. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeDisruptionExclusion.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeDisruptionExclusion.md new file mode 100644 index 0000000000000..71728850060e3 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeDisruptionExclusion.md @@ -0,0 +1,27 @@ +--- +# Removed from Kubernetes +title: NodeDisruptionExclusion +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.16" + toVersion: "1.18" + - stage: beta + defaultValue: true + fromVersion: "1.19" + toVersion: "1.20" + - stage: stable + defaultValue: true + fromVersion: "1.21" + toVersion: "1.22" + +removed: true +--- +فعال کردن استفاده از برچسب گره `node.kubernetes.io/exclude-disruption` +که از تخلیه گره‌ها در هنگام خرابی منطقه جلوگیری می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeInclusionPolicyInPodTopologySpread.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeInclusionPolicyInPodTopologySpread.md new file mode 100644 index 0000000000000..de8fbeb50cf52 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeInclusionPolicyInPodTopologySpread.md @@ -0,0 +1,23 @@ +--- +title: NodeInclusionPolicyInPodTopologySpread +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.25" + toVersion: "1.25" + - stage: beta + defaultValue: true + fromVersion: "1.26" + toVersion: "1.32" + - stage: stable + defaultValue: true + locked: true + fromVersion: "1.33" +--- +فعال کردن استفاده از `nodeAffinityPolicy` و `nodeTaintsPolicy` در [Pod topology spread constraints](/docs/concepts/scheduling-eviction/topology-spread-constraints/) +هنگام محاسبه انحراف گسترش توپولوژی پاد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeLease.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeLease.md new file mode 100644 index 0000000000000..04b7e112d216e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeLease.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: NodeLease +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.12" + toVersion: "1.13" + - stage: beta + defaultValue: true + fromVersion: "1.14" + toVersion: "1.16" + - stage: stable + defaultValue: true + fromVersion: "1.17" + toVersion: "1.23" + +removed: true +--- +API جدید Lease را فعال کنید تا ضربان قلب گره را گزارش دهد، که می‌تواند به عنوان سیگنال سلامت گره مورد استفاده قرار گیرد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeLogQuery.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeLogQuery.md new file mode 100644 index 0000000000000..09c177b00df22 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeLogQuery.md @@ -0,0 +1,18 @@ +--- +title: NodeLogQuery +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.27" + toVersion: "1.29" + - stage: beta + defaultValue: false + fromVersion: "1.30" +--- +امکان پرس‌وجو از گزارش‌های سرویس‌های گره با استفاده از نقطه پایانی `/logs` را فراهم می‌کند. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeOutOfServiceVolumeDetach.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeOutOfServiceVolumeDetach.md new file mode 100644 index 0000000000000..43362921fbc94 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeOutOfServiceVolumeDetach.md @@ -0,0 +1,24 @@ +--- +title: NodeOutOfServiceVolumeDetach +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.24" + toVersion: "1.25" + - stage: beta + defaultValue: true + fromVersion: "1.26" + toVersion: "1.27" + - stage: stable + defaultValue: true + fromVersion: "1.28" + toVersion: "1.31" + +removed: true +--- +قتی یک گره با استفاده از کد مخرب `node.kubernetes.io/out-of-service` خارج از سرویس علامت‌گذاری می‌شود، Podهای روی گره در صورت عدم تحمل این کد مخرب، به اجبار حذف می‌شوند و عملیات جداسازی حجم برای Podهایی که در حال خاتمه دادن به آن هستند، بلافاصله روی گره انجام می‌شود. Podهای حذف شده می‌توانند به سرعت در گره‌های مختلف بازیابی شوند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeSwap.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeSwap.md new file mode 100644 index 0000000000000..72230ca67bb69 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NodeSwap.md @@ -0,0 +1,23 @@ +--- +title: NodeSwap +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.22" + toVersion: "1.27" + - stage: beta + defaultValue: false + fromVersion: "1.28" + toVersion: "1.29" + - stage: beta + defaultValue: true + fromVersion: "1.30" +--- +kubelet را فعال کنید تا حافظه swap را برای بارهای کاری Kubernetes روی یک گره اختصاص دهد. +باید با تنظیم `KubeletConfiguration.failSwapOn` روی false استفاده شود. +برای جزئیات بیشتر، لطفاً به [swap memory](/docs/concepts/architecture/nodes/#swap-memory) مراجعه کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/NonPreemptingPriority.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NonPreemptingPriority.md new file mode 100644 index 0000000000000..9f17d65328128 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/NonPreemptingPriority.md @@ -0,0 +1,27 @@ +--- +# Removed from Kubernetes +title: NonPreemptingPriority +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.15" + toVersion: "1.18" + - stage: beta + defaultValue: true + fromVersion: "1.19" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.25" + +removed: true +--- +فیلد `preemptionPolicy` را برای PriorityClass و Pod فعال کنید. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/OpenAPIEnums.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/OpenAPIEnums.md new file mode 100644 index 0000000000000..9ac7da7e8d47b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/OpenAPIEnums.md @@ -0,0 +1,17 @@ +--- +title: OpenAPIEnums +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" + toVersion: "1.23" + - stage: beta + defaultValue: true + fromVersion: "1.24" +--- +پر کردن فیلدهای "enum" از طرحواره‌های OpenAPI را در مشخصات برگردانده شده از سرور API فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/OpenAPIV3.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/OpenAPIV3.md new file mode 100644 index 0000000000000..8d6ab0e38719a --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/OpenAPIV3.md @@ -0,0 +1,24 @@ +--- +title: OpenAPIV3 +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" + toVersion: "1.23" + - stage: beta + defaultValue: true + fromVersion: "1.24" + toVersion: "1.26" + - stage: stable + defaultValue: true + fromVersion: "1.27" + toVersion: "1.28" +removed: true +--- +سرور API را قادر می‌سازد تا OpenAPI نسخه ۳ را منتشر کند. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/OrderedNamespaceDeletion.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/OrderedNamespaceDeletion.md new file mode 100644 index 0000000000000..5b93a7dcdabee --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/OrderedNamespaceDeletion.md @@ -0,0 +1,17 @@ +--- +title: OrderedNamespaceDeletion +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.30" + toVersion: "1.32" + - stage: beta + defaultValue: true + fromVersion: "1.33" +--- +فعال می‌کند که پادها قبل از بقیه منابع هنگام حذف فضای نام، حذف شوند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PDBUnhealthyPodEvictionPolicy.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PDBUnhealthyPodEvictionPolicy.md new file mode 100644 index 0000000000000..4a8b234818e92 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PDBUnhealthyPodEvictionPolicy.md @@ -0,0 +1,24 @@ +--- +title: PDBUnhealthyPodEvictionPolicy +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.26" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + +removed: true +--- +فیلد `unhealthyPodEvictionPolicy` از «PodDisruptionBudget» را فعال می‌کند. این فیلد مشخص می‌کند که چه زمانی باید پادهای ناسالم برای حذف در نظر گرفته شوند. برای جزئیات بیشتر، لطفاً به [Unhealthy Pod Eviction Policy](/docs/tasks/run-application/configure-pdb/#unhealthy-pod-eviction-policy) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PVCProtection.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PVCProtection.md new file mode 100644 index 0000000000000..6512df5eb240e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PVCProtection.md @@ -0,0 +1,21 @@ +--- +# Removed from Kubernetes +title: PVCProtection +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.9" + toVersion: "1.9" + - stage: deprecated + fromVersion: "1.10" + toVersion: "1.10" + +removed: true +--- +فعال کردن جلوگیری از حذف PersistentVolumeClaim (PVC) زمانی که هنوز توسط هر Pod استفاده می‌شود. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PersistentLocalVolumes.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PersistentLocalVolumes.md new file mode 100644 index 0000000000000..edb33fe4b93e2 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PersistentLocalVolumes.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: PersistentLocalVolumes +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.7" + toVersion: "1.9" + - stage: beta + defaultValue: true + fromVersion: "1.10" + toVersion: "1.13" + - stage: stable + defaultValue: true + fromVersion: "1.14" + toVersion: "1.16" + +removed: true +--- +فعال کردن استفاده از نوع volume 'local' در Pods. در صورت درخواست volume 'local'، باید وابستگی Pod مشخص شود. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PersistentVolumeLastPhaseTransitionTime.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PersistentVolumeLastPhaseTransitionTime.md new file mode 100644 index 0000000000000..f51e09bc06a30 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PersistentVolumeLastPhaseTransitionTime.md @@ -0,0 +1,24 @@ +--- +title: PersistentVolumeLastPhaseTransitionTime +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.28" + toVersion: "1.28" + - stage: beta + defaultValue: true + fromVersion: "1.29" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + +removed: true +--- +یک فیلد جدید به PersistentVolume اضافه می‌کند که یک مهر زمانی از آخرین باری که volume فاز خود را تغییر داده است، در خود نگه می‌دارد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodAffinityNamespaceSelector.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodAffinityNamespaceSelector.md new file mode 100644 index 0000000000000..7a80870cc1a30 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodAffinityNamespaceSelector.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: PodAffinityNamespaceSelector +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.25" + +removed: true +--- +ویژگی‌های محدوده سهمیه‌بندی [Pod Affinity Namespace Selector](/docs/concepts/scheduling-eviction/assign-pod-node/#namespace-selector) و [CrossNamespacePodAffinity](/docs/concepts/policy/resource-quotas/#cross-namespace-pod-affinity-quota) را فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodAndContainerStatsFromCRI.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodAndContainerStatsFromCRI.md new file mode 100644 index 0000000000000..3b0d7301e8757 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodAndContainerStatsFromCRI.md @@ -0,0 +1,14 @@ +--- +title: PodAndContainerStatsFromCRI +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" +--- +kubelet را طوری پیکربندی کنید که آمار کانتینر و پاد را از زمان اجرای کانتینر CRI جمع‌آوری کند، نه اینکه آنها را از cAdvisor جمع‌آوری کند. +از نسخه ۱.۲۶، این شامل جمع‌آوری معیارها از CRI و انتشار آنها از طریق `/metrics/cadvisor` نیز می‌شود (به جای اینکه cAdvisor آنها را مستقیماً منتشر کند). \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodDeletionCost.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodDeletionCost.md new file mode 100644 index 0000000000000..ca5101052b47d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodDeletionCost.md @@ -0,0 +1,18 @@ +--- +title: PodDeletionCost +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" +--- +ویژگی [Pod Deletion Cost](/docs/concepts/workloads/controllers/replicaset/#pod-deletion-cost) +را فعال کنید که به کاربران امکان می‌دهد ترتیب کوچک‌سازی ReplicaSet را تحت تأثیر قرار دهند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodDisruptionBudget.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodDisruptionBudget.md new file mode 100644 index 0000000000000..18071140bca0a --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodDisruptionBudget.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: PodDisruptionBudget +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.3" + toVersion: "1.4" + - stage: beta + defaultValue: true + fromVersion: "1.5" + toVersion: "1.20" + - stage: stable + defaultValue: true + fromVersion: "1.21" + toVersion: "1.25" + +removed: true +--- +ویژگی [PodDisruptionBudget](/docs/tasks/run-application/configure-pdb/) را فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodDisruptionConditions.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodDisruptionConditions.md new file mode 100644 index 0000000000000..b8c305a2207d3 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodDisruptionConditions.md @@ -0,0 +1,21 @@ +--- +title: PodDisruptionConditions +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.25" + toVersion: "1.25" + - stage: beta + defaultValue: true + fromVersion: "1.26" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.31" +--- +پشتیبانی از افزودن یک وضعیت پاد اختصاصی را فعال می‌کند که نشان می‌دهد پاد به دلیل اختلال در حال حذف است. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodHasNetworkCondition.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodHasNetworkCondition.md new file mode 100644 index 0000000000000..74d11a1c2a672 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodHasNetworkCondition.md @@ -0,0 +1,16 @@ +--- +title: PodHasNetworkCondition +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.25" + toVersion: "1.27" + +removed: true +--- +kubelet را فعال کنید تا وضعیت [PodHasNetwork](/docs/concepts/workloads/pods/pod-lifecycle/#pod-has-network) را روی podها علامت‌گذاری کند. این وضعیت در نسخه ۱.۲۸ به `PodReadyToStartContainersCondition` تغییر نام داده شد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodHostIPs.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodHostIPs.md new file mode 100644 index 0000000000000..04069bffdc549 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodHostIPs.md @@ -0,0 +1,25 @@ +--- +title: PodHostIPs +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.28" + toVersion: "1.28" + - stage: beta + defaultValue: true + fromVersion: "1.29" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.30" + toVersion: "1.31" +removed: true + +--- +فیلد `status.hostIPs` را برای پادها و {{< glossary_tooltip term_id="downward-api" text="downward API" >}} فعال کنید. +این فیلد به شما امکان می‌دهد آدرس‌های IP میزبان را در معرض بارهای کاری قرار دهید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodIndexLabel.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodIndexLabel.md new file mode 100644 index 0000000000000..5342e3e60b95f --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodIndexLabel.md @@ -0,0 +1,17 @@ +--- +title: PodIndexLabel +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.28" + toVersion: "1.31" + - stage: stable + defaultValue: true + fromVersion: "1.32" +--- +کنترلر Job و کنترلر StatefulSet را قادر می‌سازد تا هنگام ایجاد podهای جدید، شاخص pod را به عنوان یک برچسب اضافه کنند. برای جزئیات بیشتر به [Job completion mode docs](/docs/concepts/workloads/controllers/job#completion-mode) و [StatefulSet pod index label docs](/docs/concepts/workloads/controllers/statefulset/#pod-index-label) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodLevelResources.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodLevelResources.md new file mode 100644 index 0000000000000..abaee99139821 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodLevelResources.md @@ -0,0 +1,13 @@ +--- +title: PodLevelResources +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" +--- +فعال کردن _منابع سطح پاد_: امکان تعیین درخواست‌ها و محدودیت‌های منابع در سطح پاد، به جای فقط برای کانتینرهای خاص. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodLifecycleSleepAction.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodLifecycleSleepAction.md new file mode 100644 index 0000000000000..40ae5031e4449 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodLifecycleSleepAction.md @@ -0,0 +1,17 @@ +--- +title: PodLifecycleSleepAction +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.29" + - stage: beta + defaultValue: true + fromVersion: "1.30" +--- +عمل `sleep` را در هوک‌های lifecycle کانتینر فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodLifecycleSleepActionAllowZero.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodLifecycleSleepActionAllowZero.md new file mode 100644 index 0000000000000..8413ff5770f56 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodLifecycleSleepActionAllowZero.md @@ -0,0 +1,17 @@ +--- +title: PodLifecycleSleepActionAllowZero +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" + toVersion: "1.32" + - stage: beta + defaultValue: true + fromVersion: "1.33" +--- +تنظیم مقدار صفر برای عمل `sleep` را در [container lifecycle hooks](/docs/concepts/containers/container-lifecycle-hooks/) فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodLogsQuerySplitStreams.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodLogsQuerySplitStreams.md new file mode 100644 index 0000000000000..7ae0528fdd6c4 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodLogsQuerySplitStreams.md @@ -0,0 +1,13 @@ +--- +title: PodLogsQuerySplitStreams +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" +--- +با استفاده از Pod API، دریافت جریان‌های لاگ خاص (چه stdout و چه stderr) از جریان‌های لاگ یک کانتینر را فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodObservedGenerationTracking.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodObservedGenerationTracking.md new file mode 100644 index 0000000000000..9fec45d38ac5e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodObservedGenerationTracking.md @@ -0,0 +1,13 @@ +--- +title: PodObservedGenerationTracking +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" +--- +به kubelet این امکان را می‌دهد که `observedGeneration` را در وضعیت pod تنظیم کند و به سایر کامپوننت‌ها این امکان را می‌دهد که `observedGeneration` را در شرایط pod تنظیم کنند تا `metadata.generation` مربوط به pod را در زمانی که وضعیت یا وضعیت در حال ثبت است، منعکس کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodOverhead.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodOverhead.md new file mode 100644 index 0000000000000..e744c1697b41f --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodOverhead.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: PodOverhead +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.16" + toVersion: "1.17" + - stage: beta + defaultValue: true + fromVersion: "1.18" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.25" + +removed: true +--- +ویژگی [PodOverhead](/docs/concepts/scheduling-eviction/pod-overhead/) را برای در نظر گرفتن هزینه‌های سربار pod فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodPriority.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodPriority.md new file mode 100644 index 0000000000000..d97b39917c4a4 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodPriority.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: PodPriority +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.8" + toVersion: "1.10" + - stage: beta + defaultValue: true + fromVersion: "1.11" + toVersion: "1.13" + - stage: stable + defaultValue: true + fromVersion: "1.14" + toVersion: "1.18" + +removed: true +--- +فعال کردن لغو زمانبندی و انحصار پادها بر اساس اولویت‌هایشان [priorities](/docs/concepts/scheduling-eviction/pod-priority-preemption/). \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodReadinessGates.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodReadinessGates.md new file mode 100644 index 0000000000000..469d59889b5b9 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodReadinessGates.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: PodReadinessGates +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.11" + toVersion: "1.11" + - stage: beta + defaultValue: true + fromVersion: "1.12" + toVersion: "1.13" + - stage: stable + defaultValue: true + fromVersion: "1.14" + toVersion: "1.16" + +removed: true +--- +تنظیم فیلد `PodReadinessGate` را برای گسترش ارزیابی آمادگی پاد فعال کنید. برای جزئیات بیشتر به [Pod readygate](/docs/concepts/workloads/pods/pod-lifecycle/#pod-readiness-gate) مراجعه کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodReadyToStartContainersCondition.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodReadyToStartContainersCondition.md new file mode 100644 index 0000000000000..804eb50a1b6d8 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodReadyToStartContainersCondition.md @@ -0,0 +1,20 @@ +--- +title: PodReadyToStartContainersCondition +former_titles: + - PodHasNetworkCondition +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.28" + toVersion: "1.28" + - stage: beta + defaultValue: true + fromVersion: "1.29" +--- +kubelet را فعال کنید تا وضعیت [PodReadyToStartContainers](/docs/concepts/workloads/pods/pod-lifecycle/#pod-has-network) را روی podها علامت‌گذاری کند. +این دروازه ویژگی قبلاً با نام `PodHasNetworkCondition` شناخته می‌شد و وضعیت مرتبط با آن `PodHasNetwork` نامگذاری شده بود. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodSchedulingReadiness.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodSchedulingReadiness.md new file mode 100644 index 0000000000000..1047608d1cfc3 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodSchedulingReadiness.md @@ -0,0 +1,21 @@ +--- +title: PodSchedulingReadiness +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.26" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.29" + - stage: stable + defaultValue: true + fromVersion: "1.30" +--- +فعال کردن تنظیم فیلد `schedulingGates` برای کنترل\ یک پاد [scheduling readiness](/docs/concepts/scheduling-eviction/pod-scheduling-readiness). \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodSecurity.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodSecurity.md new file mode 100644 index 0000000000000..d852571efb405 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodSecurity.md @@ -0,0 +1,25 @@ +--- +# Removed from Kubernetes +title: PodSecurity +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.22" + toVersion: "1.22" + - stage: beta + defaultValue: true + fromVersion: "1.23" + toVersion: "1.24" + - stage: stable + defaultValue: true + fromVersion: "1.25" + toVersion: "1.27" + +removed: true +--- +افزونه‌ی پذیرش `PodSecurity` را فعال می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodShareProcessNamespace.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodShareProcessNamespace.md new file mode 100644 index 0000000000000..4e41c10dcd7e3 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodShareProcessNamespace.md @@ -0,0 +1,27 @@ +--- +# Removed from Kubernetes +title: PodShareProcessNamespace +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.10" + toVersion: "1.11" + - stage: beta + defaultValue: true + fromVersion: "1.12" + toVersion: "1.16" + - stage: stable + defaultValue: true + fromVersion: "1.17" + toVersion: "1.19" + +removed: true +--- +تنظیم `shareProcessNamespace` را در یک Pod برای اشتراک‌گذاری یک فضای نام فرآیند واحد بین کانتینرهای در حال اجرا در یک Pod فعال کنید. جزئیات بیشتر را می‌توانید در [Share Process Namespace between Containers in a Pod](/docs/tasks/configure-pod-container/share-process-namespace/). + بیابید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodTopologyLabelsAdmission.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodTopologyLabelsAdmission.md new file mode 100644 index 0000000000000..09c5fbb4068e0 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PodTopologyLabelsAdmission.md @@ -0,0 +1,14 @@ +--- +title: PodTopologyLabelsAdmission +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" +--- +افزونه پذیرش `PodTopologyLabels` را فعال می‌کند. +برای جزئیات بیشتر به [Pod Topology Labels](docs/reference/access-authn-authz/admission-controllers#podtopologylabels) مراجعه کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PortForwardWebsockets.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PortForwardWebsockets.md new file mode 100644 index 0000000000000..0925b85468a44 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PortForwardWebsockets.md @@ -0,0 +1,18 @@ +--- +title: PortForwardWebsockets +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.30" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.31" +--- +اجازه دهید WebSocket، زیرپروتکل portforward (`port-forward`) را از کلاینت‌هایی که نسخه v2 (`v2.portforward.k8s.io`) زیرپروتکل را درخواست می‌کنند، پخش کند. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PreferNominatedNode.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PreferNominatedNode.md new file mode 100644 index 0000000000000..483899f9844a6 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PreferNominatedNode.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: PreferNominatedNode +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.25" + +removed: true +--- +این پرچم به scheduler می‌گوید که آیا nodes نامزد شده ابتدا قبل از حلقه زدن روی سایر گره‌های موجود در خوشه بررسی می‌شوند یا خیر. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/PreferSameTrafficDistribution.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PreferSameTrafficDistribution.md new file mode 100644 index 0000000000000..59c57f4dfb334 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/PreferSameTrafficDistribution.md @@ -0,0 +1,14 @@ +--- +title: PreferSameTrafficDistribution +content_type: feature_gate + +_build: + list: never + render: false + +stages: +- stage: alpha + defaultValue: false + fromVersion: "1.33" +--- +اجازه استفاده از مقادیر `PreferSameZone` و `PreferSameNode` را در فیلد Service [`trafficDistribution`](/docs/reference/networking/virtual-ips/#traffic-distribution) می‌دهد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ProbeTerminationGracePeriod.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ProbeTerminationGracePeriod.md new file mode 100644 index 0000000000000..c14fb31969fc0 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ProbeTerminationGracePeriod.md @@ -0,0 +1,29 @@ +--- +title: ProbeTerminationGracePeriod +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.21" + - stage: beta + defaultValue: false + fromVersion: "1.22" + toVersion: "1.24" + - stage: beta + defaultValue: true + fromVersion: "1.25" + toVersion: "1.27" + - stage: stable + defaultValue: true + fromVersion: "1.28" + toVersion: "1.28" + +removed: true +--- +فعال کردن [setting probe-level +`terminationGracePeriodSeconds`](/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#probe-level-terminationgraceperiodseconds) روی پادها. برای جزئیات بیشتر به [enhancement proposal](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2238-liveness-probe-grace-period) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ProcMountType.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ProcMountType.md new file mode 100644 index 0000000000000..fd048ba0e2128 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ProcMountType.md @@ -0,0 +1,22 @@ +--- +title: ProcMountType +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.12" + toVersion: "1.30" + - stage: beta + defaultValue: false + fromVersion: "1.31" + toVersion: "1.32" + - stage: beta + defaultValue: true + fromVersion: "1.33" + +--- +با تنظیم فیلد `procMount` از `securityContext` یک Pod، کنترل بر روی نوع نصب proc برای کانتینرها را فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ProxyTerminatingEndpoints.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ProxyTerminatingEndpoints.md new file mode 100644 index 0000000000000..0aef3bf9e07cb --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ProxyTerminatingEndpoints.md @@ -0,0 +1,23 @@ +--- +title: ProxyTerminatingEndpoints +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.22" + toVersion: "1.25" + - stage: beta + defaultValue: true + fromVersion: "1.26" + toVersion: "1.27" + - stage: stable + defaultValue: true + fromVersion: "1.28" + toVersion: "1.29" +removed: true +--- +kube-proxy را فعال کنید تا وقتی `ExternalTrafficPolicy=Local` است، نقاط پایانی خاتمه‌یافته را مدیریت کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/QOSReserved.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/QOSReserved.md new file mode 100644 index 0000000000000..3d3caff525041 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/QOSReserved.md @@ -0,0 +1,13 @@ +--- +title: QOSReserved +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.11" +--- +امکان رزرو منابع در سطح QoS را فراهم می‌کند و از هجوم پادها (Pods) در سطوح پایین‌تر QoS به منابع درخواست‌شده در سطوح بالاتر QoS جلوگیری می‌کند (فعلاً فقط حافظه). diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ReadOnlyAPIDataVolumes.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ReadOnlyAPIDataVolumes.md new file mode 100644 index 0000000000000..d1734ddfe46d8 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ReadOnlyAPIDataVolumes.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: ReadOnlyAPIDataVolumes +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.8" + toVersion: "1.9" + - stage: stable + fromVersion: "1.10" + toVersion: "1.10" + +removed: true +--- +[`configMap`](/docs/concepts/storage/volumes/#configmap)، +[`secret`](/docs/concepts/storage/volumes/#secret)، +[`downwardAPI`](/docs/concepts/storage/volumes/#downwardapi) و +[`projected`](/docs/concepts/storage/volumes/#projected) را طوری تنظیم کنید که فقط خواندنی نصب شود. + +از Kubernetes نسخه ۱.۱۰، این نوع درایوها همیشه فقط خواندنی هستند و شما نمی‌توانید از این حالت خارج شوید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ReadWriteOncePod.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ReadWriteOncePod.md new file mode 100644 index 0000000000000..b469873aaa313 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ReadWriteOncePod.md @@ -0,0 +1,24 @@ +--- +title: ReadWriteOncePod +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.22" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.28" + - stage: stable + defaultValue: true + fromVersion: "1.29" + toVersion: "1.30" + +removed: true +--- +استفاده از حالت دسترسی PersistentVolume در `ReadWriteOncePod` را فعال می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RecoverVolumeExpansionFailure.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RecoverVolumeExpansionFailure.md new file mode 100644 index 0000000000000..765c9f0b76e06 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RecoverVolumeExpansionFailure.md @@ -0,0 +1,17 @@ +--- +title: RecoverVolumeExpansionFailure +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" + toVersion: "1.31" + - stage: beta + defaultValue: true + fromVersion: "1.32" +--- +استفاده از حالت دسترسی PersistentVolume در `ReadWriteOncePod` را فعال می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RecursiveReadOnlyMounts.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RecursiveReadOnlyMounts.md new file mode 100644 index 0000000000000..3fda69551e963 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RecursiveReadOnlyMounts.md @@ -0,0 +1,22 @@ +--- +title: RecursiveReadOnlyMounts +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.30" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + - stage: stable + defaultValue: true + locked: true + fromVersion: "1.33" +--- +پشتیبانی از mountهای فقط خواندنی بازگشتی را فعال می‌کند. برای جزئیات بیشتر، به [read-only mounts](/docs/concepts/storage/volumes/#read-only-mounts).مراجعه کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ReduceDefaultCrashLoopBackOffDecay.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ReduceDefaultCrashLoopBackOffDecay.md new file mode 100644 index 0000000000000..d7cbe28757e54 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ReduceDefaultCrashLoopBackOffDecay.md @@ -0,0 +1,13 @@ +--- +title: ReduceDefaultCrashLoopBackOffDecay +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" +--- +کاهش تأخیر اولیه و حداکثر تأخیر ایجاد شده بین راه‌اندازی مجدد کانتینرها برای یک گره برای کانتینرهای موجود در `CrashLoopBackOff` در سراسر خوشه به تأخیر اولیه `1 ثانیه` و حداکثر تأخیر `60 ثانیه` فعال شد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RelaxedDNSSearchValidation.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RelaxedDNSSearchValidation.md new file mode 100644 index 0000000000000..b2ab00f517bb0 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RelaxedDNSSearchValidation.md @@ -0,0 +1,18 @@ +--- +title: RelaxedDNSSearchValidation +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" + toVersion: "1.32" + - stage: beta + defaultValue: true + fromVersion: "1.33" + +--- +اعتبارسنجی سمت سرور را برای رشته جستجوی DNS (`.spec.dnsConfig.searches`) برای کانتینرها، آسان‌تر کنید. برای مثال، با فعال بودن این گیت، اشکالی ندارد که کاراکتر `_` را در رشته جستجوی نام DNS وارد کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RelaxedEnvironmentVariableValidation.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RelaxedEnvironmentVariableValidation.md new file mode 100644 index 0000000000000..81988c7a1567b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RelaxedEnvironmentVariableValidation.md @@ -0,0 +1,17 @@ +--- +title: RelaxedEnvironmentVariableValidation +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.30" + toVersion: "1.31" + - stage: beta + defaultValue: true + fromVersion: "1.32" +--- +تقریباً تمام کاراکترهای ASCII قابل چاپ را در متغیرهای محیطی مجاز کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ReloadKubeletServerCertificateFile.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ReloadKubeletServerCertificateFile.md new file mode 100644 index 0000000000000..12df4a91cf0f5 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ReloadKubeletServerCertificateFile.md @@ -0,0 +1,20 @@ +--- +title: ReloadKubeletServerCertificateFile +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.31" + +--- +Enable the kubelet TLS server to update its certificate if the specified certificate file are changed. + +This feature is useful when specifying `tlsCertFile` and `tlsPrivateKeyFile` in kubelet configuration. +The feature gate has no effect for other cases such as using TLS boostrap. +سرور TLS kubelet را فعال کنید تا در صورت تغییر فایل گواهی مشخص شده، گواهی خود را به‌روزرسانی کند. +این ویژگی هنگام تعیین `tlsCertFile` و `tlsPrivateKeyFile` در پیکربندی kubelet مفید است. +این ویژگی در موارد دیگر مانند استفاده از TLS boostrap تأثیری ندارد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RemainingItemCount.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RemainingItemCount.md new file mode 100644 index 0000000000000..8c1471c2f9ae0 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RemainingItemCount.md @@ -0,0 +1,24 @@ +--- +title: RemainingItemCount +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.15" + toVersion: "1.15" + - stage: beta + defaultValue: true + fromVersion: "1.16" + toVersion: "1.28" + - stage: stable + defaultValue: true + fromVersion: "1.29" + toVersion: "1.32" + +removed: true +--- +به سرورهای API اجازه دهید تعداد موارد باقی مانده را در پاسخ به یک [chunking list request](/docs/reference/using-api/api-concepts/#retrieving-large-results-sets-in-chunks). نشان دهند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RemoteRequestHeaderUID.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RemoteRequestHeaderUID.md new file mode 100644 index 0000000000000..3447a7bab1542 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RemoteRequestHeaderUID.md @@ -0,0 +1,14 @@ +--- +title: RemoteRequestHeaderUID +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" +--- +سرور API را قادر می‌سازد تا UIDها (شناسه‌های کاربری) را از طریق احراز هویت هدر درخواست بپذیرد. +این امر همچنین باعث می‌شود که تجمیع‌کننده API مربوط به `kube-apiserver` هنگام ارسال درخواست‌ها به سرورهایی که API تجمیع‌شده را ارائه می‌دهند، UIDها را از طریق هدرهای استاندارد اضافه کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RemoveSelfLink.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RemoveSelfLink.md new file mode 100644 index 0000000000000..5ea303c6763ef --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RemoveSelfLink.md @@ -0,0 +1,24 @@ +--- +title: RemoveSelfLink +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.16" + toVersion: "1.19" + - stage: beta + defaultValue: true + fromVersion: "1.20" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.29" + +removed: true +--- +فیلد `.metadata.selfLink` را برای همه اشیاء و مجموعه‌ها خالی (رشته خالی) تنظیم می‌کند. این فیلد از زمان انتشار Kubernetes v1.16 منسوخ شده است. هنگامی که این ویژگی فعال می‌شود، فیلد `.metadata.selfLink` بخشی از API Kubernetes باقی می‌ماند، اما همیشه تنظیم نشده است. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RequestManagement.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RequestManagement.md new file mode 100644 index 0000000000000..30b9960444c39 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RequestManagement.md @@ -0,0 +1,21 @@ +--- +# Removed from Kubernetes +title: RequestManagement +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.15" + toVersion: "1.16" + - stage: deprecated + fromVersion: "1.17" + toVersion: "1.17" + +removed: true +--- +مدیریت همزمانی درخواست‌ها را با اولویت‌بندی و انصاف در هر سرور API فعال می‌کند. از نسخه ۱.۱۷ توسط `APIPriorityAndFairness` منسوخ شده است. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ResilientWatchCacheInitialization.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ResilientWatchCacheInitialization.md new file mode 100644 index 0000000000000..dbb501563c940 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ResilientWatchCacheInitialization.md @@ -0,0 +1,15 @@ +--- +title: ResilientWatchCacheInitialization +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.31" + +--- +فعال‌سازی مقداردهی اولیه کش ساعت (watchcache) به صورت انعطاف‌پذیر برای جلوگیری از بارگذاری بیش از حد صفحه کنترل. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ResourceHealthStatus.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ResourceHealthStatus.md new file mode 100644 index 0000000000000..5f255b306d60a --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ResourceHealthStatus.md @@ -0,0 +1,20 @@ +--- +title: ResourceHealthStatus +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.31" +--- +Enable the `allocatedResourcesStatus` field within the `.status` for a Pod. The field +reports additional details for each container in the Pod, +with the health information for each device assigned to the Pod. +See [Device plugin and unhealthy devices](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/#device-plugin-and-unhealthy-devices) for more details. + +فیلد «وضعیت تخصیص‌یافته منابع» را در فایل «وضعیت». برای یک پاد فعال کنید. این فیلد +جزئیات بیشتری را برای هر کانتینر در پاد گزارش می‌دهد، به همراه اطلاعات سلامت هر دستگاه اختصاص داده شده به پاد. +برای جزئیات بیشتر به [Device plugin and unhealthy devices](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/#device-plugin-and-unhealthy-devices) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ResourceLimitsPriorityFunction.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ResourceLimitsPriorityFunction.md new file mode 100644 index 0000000000000..5d81c8b40153e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ResourceLimitsPriorityFunction.md @@ -0,0 +1,21 @@ +--- +# Removed from Kubernetes +title: ResourceLimitsPriorityFunction +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.9" + toVersion: "1.18" + - stage: deprecated + fromVersion: "1.19" + toVersion: "1.19" + +removed: true +--- +یک تابع اولویت زمان‌بندی را فعال کنید که کمترین امتیاز ممکن یعنی ۱ را به گره‌ای اختصاص دهد که حداقل یکی از محدودیت‌های پردازنده و حافظه‌ی پاد ورودی را برآورده کند. هدف، شکستن پیوندهای بین گره‌هایی با امتیازات یکسان است. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ResourceQuotaScopeSelectors.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ResourceQuotaScopeSelectors.md new file mode 100644 index 0000000000000..1d1d3a43236db --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ResourceQuotaScopeSelectors.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: ResourceQuotaScopeSelectors +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.11" + toVersion: "1.11" + - stage: beta + defaultValue: true + fromVersion: "1.12" + toVersion: "1.16" + - stage: stable + defaultValue: true + fromVersion: "1.17" + toVersion: "1.18" + +removed: true +--- +انتخابگرهای محدوده سهمیه منابع را فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RetroactiveDefaultStorageClass.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RetroactiveDefaultStorageClass.md new file mode 100644 index 0000000000000..dda04468d6b20 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RetroactiveDefaultStorageClass.md @@ -0,0 +1,25 @@ +--- +title: RetroactiveDefaultStorageClass +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.25" + toVersion: "1.25" + - stage: beta + defaultValue: true + fromVersion: "1.26" + toVersion: "1.27" + - stage: stable + defaultValue: true + fromVersion: "1.28" + toVersion: "1.28" + +removed: true +--- +اجازه دهید StorageClass به PVC های بدون اتصال به صورت عطف به ماسبق اختصاص داده شود. +ejazeh dehid Storag diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RetryGenerateName.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RetryGenerateName.md new file mode 100644 index 0000000000000..de6fe23318594 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RetryGenerateName.md @@ -0,0 +1,24 @@ +--- +title: RetryGenerateName +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.30" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.31" + toVersion: "1.31" + - stage: stable + defaultValue: true + fromVersion: "1.32" +--- +وقتی انتظار می‌رود {{< glossary_tooltip text="API server" term_id="kube-apiserver" >}} +یک [name](/docs/concepts/overview/working-with-objects/names/#names) تولید کند، تلاش مجدد برای ایجاد شیء را فعال می‌کند. + +وقتی این ویژگی فعال باشد، در صورتی که صفحه کنترل، تداخل نام با یک شیء موجود را تشخیص دهد، درخواست‌هایی که از `generateName` استفاده می‌کنند، به طور خودکار تا سقف ۸ تلاش در کل، دوباره امتحان می‌شوند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RootCAConfigMap.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RootCAConfigMap.md new file mode 100644 index 0000000000000..0c6662d563dcb --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RootCAConfigMap.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: RootCAConfigMap +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.13" + toVersion: "1.19" + - stage: beta + defaultValue: true + fromVersion: "1.20" + toVersion: "1.20" + - stage: stable + defaultValue: true + fromVersion: "1.21" + toVersion: "1.22" + +removed: true +--- +`kube-controller-manager` را طوری پیکربندی کنید که یک {{< glossary_tooltip text="ConfigMap" term_id="configmap" >}} با نام `kube-root-ca.crt` را در هر فضای نام منتشر کند. این ConfigMap شامل یک بسته CA است که برای تأیید اتصالات به kube-apiserver استفاده می‌شود. برای جزئیات بیشتر به [Bound Service Account Tokens](https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/1205-bound-service-account-tokens/README.md) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RotateKubeletClientCertificate.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RotateKubeletClientCertificate.md new file mode 100644 index 0000000000000..2c60e64478817 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RotateKubeletClientCertificate.md @@ -0,0 +1,24 @@ +--- +# Removed from Kubernetes +title: RotateKubeletClientCertificate +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.8" + toVersion: "1.18" + - stage: stable + defaultValue: true + fromVersion: "1.19" + toVersion: "1.21" + +removed: true +--- +چرخش گواهی TLS کلاینت را روی kubelet فعال کنید. + +برای جزئیات بیشتر به [kubelet configuration](/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/#kubelet-configuration) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RotateKubeletServerCertificate.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RotateKubeletServerCertificate.md new file mode 100644 index 0000000000000..04495cce281aa --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RotateKubeletServerCertificate.md @@ -0,0 +1,18 @@ +--- +title: RotateKubeletServerCertificate +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.7" + toVersion: "1.11" + - stage: beta + defaultValue: true + fromVersion: "1.12" +--- +چرخش گواهی TLS سرور را روی kubelet فعال کنید. +برای جزئیات بیشتر به [kubelet configuration](/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/#kubelet-configuration) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RunAsGroup.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RunAsGroup.md new file mode 100644 index 0000000000000..aba4bb24755c2 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RunAsGroup.md @@ -0,0 +1,22 @@ +--- +# Removed from Kubernetes +title: RunAsGroup +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.14" + toVersion: "1.20" + - stage: stable + defaultValue: true + fromVersion: "1.21" + toVersion: "1.22" + +removed: true +--- +کنترل بر روی شناسه گروه اصلی تنظیم‌شده روی فرآیندهای آغازین کانتینرها را فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RuntimeClass.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RuntimeClass.md new file mode 100644 index 0000000000000..e681462114e98 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RuntimeClass.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: RuntimeClass +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.12" + toVersion: "1.13" + - stage: beta + defaultValue: true + fromVersion: "1.14" + toVersion: "1.19" + - stage: stable + defaultValue: true + fromVersion: "1.20" + toVersion: "1.24" + +removed: true +--- +ویژگی [RuntimeClass](/docs/concepts/containers/runtime-class/) را برای انتخاب پیکربندی‌های زمان اجرای کانتینر فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/RuntimeClassInImageCriApi.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RuntimeClassInImageCriApi.md new file mode 100644 index 0000000000000..a243956872d53 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/RuntimeClassInImageCriApi.md @@ -0,0 +1,13 @@ +--- +title: RuntimeClassInImageCriApi +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" +--- +امکان دریافت تصاویر بر اساس [runtime class](/docs/concepts/containers/runtime-class/) پادهایی که به آنها ارجاع می‌دهند را فراهم می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SCTPSupport.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SCTPSupport.md new file mode 100644 index 0000000000000..0af0833ac29a7 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SCTPSupport.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: SCTPSupport +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.12" + toVersion: "1.18" + - stage: beta + defaultValue: true + fromVersion: "1.19" + toVersion: "1.19" + - stage: stable + defaultValue: true + fromVersion: "1.20" + toVersion: "1.22" + +removed: true +--- +مقدار _SCTP_ `protocol` را در تعاریف Pod، Service، Endpoints، EndpointSlice و NetworkPolicy فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SELinuxChangePolicy.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SELinuxChangePolicy.md new file mode 100644 index 0000000000000..b011789b87c72 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SELinuxChangePolicy.md @@ -0,0 +1,19 @@ +--- +title: SELinuxChangePolicy +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" + toVersion: "1.32" + - stage: beta + defaultValue: true + fromVersion: "1.33" +--- +فیلد `spec.securityContext.seLinuxChangePolicy` را فعال می‌کند. +این فیلد می‌تواند برای انصراف از اعمال برچسب SELinux به حجم‌های پاد با استفاده از گزینه‌های mount استفاده شود. این مورد زمانی لازم است که یک حجم واحد که از نصب با گزینه mount SELinux پشتیبانی می‌کند، بین پادهایی که برچسب‌های SELinux متفاوتی دارند، مانند پادهای ممتاز و غیر ممتاز، به اشتراک گذاشته شود. +فعال کردن ویژگی `SELinuxChangePolicy` مستلزم فعال بودن ویژگی `SELinuxMountReadWriteOncePod` است. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SELinuxMount.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SELinuxMount.md new file mode 100644 index 0000000000000..20a0d5b0b057c --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SELinuxMount.md @@ -0,0 +1,20 @@ +--- +title: SELinuxMount +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.30" + toVersion: "1.32" + - stage: beta + defaultValue: false + fromVersion: "1.33" + +--- +با اجازه دادن به kubelet برای مانت کردن مستقیم ولوم‌ها برای یک Pod با برچسب صحیح SELinux به جای تغییر بازگشتی هر فایل روی ولوم‌ها، سرعت راه‌اندازی کانتینر را افزایش می‌دهد. +با گسترش پیاده‌سازی به تمام ولوم‌ها، بهبود عملکرد پشت گیت ویژگی `SELinuxMountReadWriteOncePod` را گسترش می‌دهد. +فعال کردن گیت ویژگی `SELinuxMount` مستلزم فعال بودن گیت‌های ویژگی `SELinuxMountReadWriteOncePod` و `SELinuxChangePolicy` است. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SELinuxMountReadWriteOncePod.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SELinuxMountReadWriteOncePod.md new file mode 100644 index 0000000000000..ff686033a02a3 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SELinuxMountReadWriteOncePod.md @@ -0,0 +1,21 @@ +--- +title: SELinuxMountReadWriteOncePod +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.25" + toVersion: "1.26" + - stage: beta + defaultValue: false + fromVersion: "1.27" + toVersion: "1.27" + - stage: beta + defaultValue: true + fromVersion: "1.28" +--- +با اجازه دادن به kubelet برای نصب مستقیم volumeها برای یک Pod با برچسب صحیح SELinux به جای تغییر بازگشتی هر فایل روی volumeها، سرعت راه‌اندازی کانتینر را افزایش می‌دهد. پیاده‌سازی اولیه بر روی volumeهای ReadWriteOncePod متمرکز بود. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ScheduleDaemonSetPods.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ScheduleDaemonSetPods.md new file mode 100644 index 0000000000000..7784bfa12770a --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ScheduleDaemonSetPods.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: ScheduleDaemonSetPods +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.11" + toVersion: "1.11" + - stage: beta + defaultValue: true + fromVersion: "1.12" + toVersion: "1.16" + - stage: stable + defaultValue: true + fromVersion: "1.17" + toVersion: "1.18" + +removed: true +--- +فعال کردن زمان‌بندی پادهای DaemonSet توسط زمان‌بند پیش‌فرض به جای کنترلر DaemonSet. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SchedulerAsyncPreemption.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SchedulerAsyncPreemption.md new file mode 100644 index 0000000000000..04b40e2ecfa28 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SchedulerAsyncPreemption.md @@ -0,0 +1,19 @@ +--- +title: SchedulerAsyncPreemption +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" + toVersion: "1.32" + - stage: beta + defaultValue: true + fromVersion: "1.33" +--- + +اجرای برخی عملیات پرهزینه را در زمان‌بند، مرتبط با [preemption](/docs/concepts/scheduling-eviction/pod-priority-preemption/)، به صورت غیرهمزمان، فعال کنید. +پردازش غیرهمزمان preemption، تأخیر کلی زمان‌بندی Pod را بهبود می‌بخشد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SchedulerPopFromBackoffQ.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SchedulerPopFromBackoffQ.md new file mode 100644 index 0000000000000..233ac8536bc09 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SchedulerPopFromBackoffQ.md @@ -0,0 +1,15 @@ +--- +title: SchedulerPopFromBackoffQ +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.33" +--- + +با حذف پادها از backoffQ در زمانی که activeQ خالی است، رفتار صف‌بندی را بهبود می‌بخشد. +این امر امکان پردازش پادهای بالقوه قابل برنامه‌ریزی را در اسرع وقت فراهم می‌کند و اثر جریمه صف backoff را از بین می‌برد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SchedulerQueueingHints.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SchedulerQueueingHints.md new file mode 100644 index 0000000000000..da89e52834ae8 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SchedulerQueueingHints.md @@ -0,0 +1,24 @@ +--- +title: SchedulerQueueingHints +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.28" + toVersion: "1.28" + - stage: beta + defaultValue: false + fromVersion: "1.29" + toVersion: "1.31" + - stage: beta + defaultValue: true + fromVersion: "1.32" +--- +[the scheduler's _queueing hints_ feature](/docs/concepts/scheduling-eviction/scheduling-framework/#queueinghint)را فعال می‌کند، +که به کاهش صف‌بندی‌های بی‌فایده کمک می‌کند. +زمانبند در صورت تغییر چیزی در خوشه که می‌تواند باعث برنامه‌ریزی غلاف شود، غلاف‌های زمان‌بندی را دوباره امتحان می‌کند. +Queuing hints سیگنال‌های داخلی هستند که به زمانبند اجازه می‌دهند تغییرات در خوشه که مربوط به غلاف زمان‌بندی نشده هستند را بر اساس تلاش‌های قبلی زمان‌بندی فیلتر کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SeccompDefault.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SeccompDefault.md new file mode 100644 index 0000000000000..6a02475c8a687 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SeccompDefault.md @@ -0,0 +1,24 @@ +--- +title: SeccompDefault +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.22" + toVersion: "1.24" + - stage: beta + defaultValue: true + fromVersion: "1.25" + toVersion: "1.26" + - stage: stable + defaultValue: true + fromVersion: "1.27" + toVersion: "1.28" + +removed: true +--- +استفاده از `RuntimeDefault` را به عنوان پروفایل seccomp پیش‌فرض برای همه بارهای کاری فعال می‌کند. پروفایل seccomp در `securityContext` یک Pod و/یا یک Container مشخص می‌شود. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SecurityContextDeny.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SecurityContextDeny.md new file mode 100644 index 0000000000000..bc5b376eef1f3 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SecurityContextDeny.md @@ -0,0 +1,15 @@ +--- +title: SecurityContextDeny +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.27" + toVersion: "1.29" +removed: true +--- +این گیت نشان می‌دهد که کنترل‌کننده‌ی پذیرش `SecurityContextDeny` منسوخ شده است. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SelectorIndex.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SelectorIndex.md new file mode 100644 index 0000000000000..31f1f4b978888 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SelectorIndex.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: SelectorIndex +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.18" + toVersion: "1.18" + - stage: beta + defaultValue: true + fromVersion: "1.19" + toVersion: "1.19" + - stage: stable + defaultValue: true + fromVersion: "1.20" + toVersion: "1.25" + +removed: true +--- +به ایندکس‌های مبتنی بر برچسب و فیلد در کشِ watch سرور API اجازه می‌دهد تا عملیات لیست را تسریع کنند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SeparateCacheWatchRPC.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SeparateCacheWatchRPC.md new file mode 100644 index 0000000000000..b03787d9417c2 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SeparateCacheWatchRPC.md @@ -0,0 +1,20 @@ +--- +title: SeparateCacheWatchRPC +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.28" + toVersion: "1.32" + - stage: deprecated + defaultValue: false + fromVersion: "1.33" + +--- +به کش watch سرور API اجازه می‌دهد تا یک watch روی یک RPC اختصاصی ایجاد کند. +این کار از کمبود کش watch توسط watch های دیگر جلوگیری می‌کند. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SeparateTaintEvictionController.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SeparateTaintEvictionController.md new file mode 100644 index 0000000000000..692fe321e57db --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SeparateTaintEvictionController.md @@ -0,0 +1,13 @@ +--- +title: SeparateTaintEvictionController +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.29" +--- +اجرای `TaintEvictionController` را فعال می‌کند، که [Taint-based Evictions](/docs/concepts/scheduling-eviction/taint-and-toleration/#taint-based-evictions) را در یک کنترل‌کننده جدا از `NodeLifecycleController` انجام می‌دهد. هنگامی که این ویژگی فعال می‌شود، کاربران می‌توانند به صورت اختیاری Taint-based Eviction را با تنظیم پرچم `--controllers=-taint-eviction-controller` در `kube-controller-manager` غیرفعال کنند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServerSideApply.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServerSideApply.md new file mode 100644 index 0000000000000..ee50caa3ea125 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServerSideApply.md @@ -0,0 +1,24 @@ +--- +title: ServerSideApply +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.14" + toVersion: "1.15" + - stage: beta + defaultValue: true + fromVersion: "1.16" + toVersion: "1.21" + - stage: stable + defaultValue: true + fromVersion: "1.22" + toVersion: "1.31" + +removed: true +--- +ویژگی [Sever Side Apply (SSA)](/docs/reference/using-api/server-side-apply/) را در سرور API فعال می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServerSideFieldValidation.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServerSideFieldValidation.md new file mode 100644 index 0000000000000..e06d300242aeb --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServerSideFieldValidation.md @@ -0,0 +1,24 @@ +--- +title: ServerSideFieldValidation +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" + toVersion: "1.24" + - stage: beta + defaultValue: true + fromVersion: "1.25" + toVersion: "1.26" + - stage: stable + defaultValue: true + fromVersion: "1.27" + toVersion: "1.31" + +removed: true +--- +اعتبارسنجی فیلد سمت سرور را فعال می‌کند. این به این معنی است که اعتبارسنجی طرحواره منابع در سمت سرور API به جای سمت کلاینت انجام می‌شود (برای مثال، خط فرمان `kubectl create` یا `kubectl apply`). \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountIssuerDiscovery.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountIssuerDiscovery.md new file mode 100644 index 0000000000000..b8bf1c83119cf --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountIssuerDiscovery.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: ServiceAccountIssuerDiscovery +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.18" + toVersion: "1.19" + - stage: beta + defaultValue: true + fromVersion: "1.20" + toVersion: "1.20" + - stage: stable + defaultValue: true + fromVersion: "1.21" + toVersion: "1.23" + +removed: true +--- +نقاط پایانی کشف OIDC (URL های صادرکننده و JWKS) را برای صادرکننده حساب سرویس در سرور API فعال کنید. برای جزئیات بیشتر به [Configure Service Accounts for Pods](/docs/tasks/configure-pod-container/configure-service-account/#service-account-issuer-discovery) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountNodeAudienceRestriction.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountNodeAudienceRestriction.md new file mode 100644 index 0000000000000..3c4cd48e8fabf --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountNodeAudienceRestriction.md @@ -0,0 +1,18 @@ +--- +title: ServiceAcccountNodeAudienceRestriction +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.32" + toVersion: "1.32" + - stage: beta + defaultValue: true + fromVersion: "1.33" + +--- +این دروازه برای محدود کردن مخاطبانی که kubelet می‌تواند برای آنها درخواست توکن حساب سرویس کند، استفاده می‌شود. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountTokenJTI.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountTokenJTI.md new file mode 100644 index 0000000000000..c9dc9c81738c8 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountTokenJTI.md @@ -0,0 +1,21 @@ +--- +title: ServiceAccountTokenJTI +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.29" + - stage: beta + defaultValue: true + fromVersion: "1.30" + toVersion: "1.31" + - stage: stable + defaultValue: true + fromVersion: "1.32" +--- +کنترل می‌کند که آیا JTIها (UUIDها) در توکن‌های حساب سرویس تولید شده تعبیه شده‌اند یا خیر، و اینکه آیا این JTIها برای درخواست‌های آینده‌ی انجام شده توسط این توکن‌ها در گزارش حسابرسی Kubernetes ثبت می‌شوند یا خیر. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountTokenNodeBinding.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountTokenNodeBinding.md new file mode 100644 index 0000000000000..c9520e283fc15 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountTokenNodeBinding.md @@ -0,0 +1,22 @@ +--- +title: ServiceAccountTokenNodeBinding +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + - stage: stable + defaultValue: true + locked: true + fromVersion: "1.33" +--- +کنترل می‌کند که آیا سرور API اجازه اتصال توکن‌های حساب سرویس به اشیاء Node را می‌دهد یا خیر \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountTokenNodeBindingValidation.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountTokenNodeBindingValidation.md new file mode 100644 index 0000000000000..9bca49f48ed1b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountTokenNodeBindingValidation.md @@ -0,0 +1,21 @@ +--- +title: ServiceAccountTokenNodeBindingValidation +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.29" + - stage: beta + defaultValue: true + fromVersion: "1.30" + toVersion: "1.31" + - stage: stable + defaultValue: true + fromVersion: "1.32" +--- +کنترل می‌کند که آیا apiserver یک ارجاع Node را در توکن‌های حساب سرویس اعتبارسنجی می‌کند یا خیر. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountTokenPodNodeInfo.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountTokenPodNodeInfo.md new file mode 100644 index 0000000000000..adcbb1bacd216 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAccountTokenPodNodeInfo.md @@ -0,0 +1,21 @@ +--- +title: ServiceAccountTokenPodNodeInfo +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.29" + - stage: beta + defaultValue: true + fromVersion: "1.30" + toVersion: "1.31" + - stage: stable + defaultValue: true + fromVersion: "1.32" +--- +کنترل می‌کند که آیا apiserver هنگام صدور توکن‌های حساب سرویس متصل به اشیاء Pod، نام گره و شناسه کاربری (uid) گره مرتبط را در خود جای می‌دهد یا خیر. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAppProtocol.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAppProtocol.md new file mode 100644 index 0000000000000..333d8431bfe41 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceAppProtocol.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: ServiceAppProtocol +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.18" + toVersion: "1.18" + - stage: beta + defaultValue: true + fromVersion: "1.19" + toVersion: "1.19" + - stage: stable + defaultValue: true + fromVersion: "1.20" + toVersion: "1.22" + +removed: true +--- +فیلد `appProtocol` را در سرویس‌ها و نقاط پایانی فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceIPStaticSubrange.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceIPStaticSubrange.md new file mode 100644 index 0000000000000..259533c4f9a40 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceIPStaticSubrange.md @@ -0,0 +1,24 @@ +--- +title: ServiceIPStaticSubrange +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.24" + toVersion: "1.24" + - stage: beta + defaultValue: true + fromVersion: "1.25" + toVersion: "1.25" + - stage: stable + defaultValue: true + fromVersion: "1.26" + toVersion: "1.27" + +removed: true +--- +یک استراتژی برای تخصیص IP خوشه سرویس‌ها فعال می‌کند، که به موجب آن محدوده IP خوشه تقسیم می‌شود. آدرس‌های IP خوشه پویا ترجیحاً از محدوده بالایی تخصیص داده می‌شوند و به کاربران اجازه می‌دهند IPهای خوشه استاتیک را از محدوده پایینی با ریسک کم تصادم اختصاص دهند. برای جزئیات بیشتر به [Avoiding collisions](/docs/reference/networking/virtual-ips/#avoiding-collisions) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceInternalTrafficPolicy.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceInternalTrafficPolicy.md new file mode 100644 index 0000000000000..a6f331f5527c5 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceInternalTrafficPolicy.md @@ -0,0 +1,24 @@ +--- +title: ServiceInternalTrafficPolicy +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.25" + - stage: stable + defaultValue: true + fromVersion: "1.26" + toVersion: "1.27" + +removed: true +--- +فیلد `internalTrafficPolicy` را در سرویس‌ها فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceLBNodePortControl.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceLBNodePortControl.md new file mode 100644 index 0000000000000..1575f5fe2afb1 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceLBNodePortControl.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: ServiceLBNodePortControl +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.20" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.25" + +removed: true +--- +فیلد `allocateLoadBalancerNodePorts` را در سرویس‌ها فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceLoadBalancerClass.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceLoadBalancerClass.md new file mode 100644 index 0000000000000..17411b0ca7629 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceLoadBalancerClass.md @@ -0,0 +1,27 @@ +--- +# Removed from Kubernetes +title: ServiceLoadBalancerClass +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.25" + +removed: true +--- +فیلد `loadBalancerClass` را در سرویس‌ها فعال می‌کند. برای جزئیات بیشتر به [Specifying class of load balancer implementation](/docs/concepts/services-networking/service/#load-balancer-class) + مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceLoadBalancerFinalizer.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceLoadBalancerFinalizer.md new file mode 100644 index 0000000000000..828923cad6c1f --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceLoadBalancerFinalizer.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: ServiceLoadBalancerFinalizer +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.15" + toVersion: "1.15" + - stage: beta + defaultValue: true + fromVersion: "1.16" + toVersion: "1.16" + - stage: stable + defaultValue: true + fromVersion: "1.17" + toVersion: "1.20" + +removed: true +--- +فعال کردن محافظت نهایی برای متعادل‌کننده‌های بار سرویس. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceNodeExclusion.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceNodeExclusion.md new file mode 100644 index 0000000000000..91fe40ad6b798 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceNodeExclusion.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: ServiceNodeExclusion +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.8" + toVersion: "1.18" + - stage: beta + defaultValue: true + fromVersion: "1.19" + toVersion: "1.20" + - stage: stable + defaultValue: true + fromVersion: "1.21" + toVersion: "1.22" + +removed: true +--- +فعال کردن امکان حذف گره‌ها از متعادل‌کننده‌های بار ایجاد شده توسط یک ارائه‌دهنده ابری. یک گره در صورتی واجد شرایط حذف است که با برچسب "`node.kubernetes.io/exclude-from-external-load-balancers`" مشخص شده باشد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceNodePortStaticSubrange.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceNodePortStaticSubrange.md new file mode 100644 index 0000000000000..e2fb8d4350c4e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceNodePortStaticSubrange.md @@ -0,0 +1,24 @@ +--- +title: ServiceNodePortStaticSubrange +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.27" + toVersion: "1.27" + - stage: beta + defaultValue: true + fromVersion: "1.28" + toVersion: "1.28" + - stage: stable + defaultValue: true + fromVersion: "1.29" + toVersion: "1.30" + +removed: true +--- +استفاده از استراتژی‌های مختلف تخصیص پورت را برای سرویس‌های NodePort فعال می‌کند. برای جزئیات بیشتر، به [reserve NodePort ranges to avoid collisions](/docs/concepts/services-networking/service/#avoid-nodeport-collisions). مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceTopology.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceTopology.md new file mode 100644 index 0000000000000..68b560b725429 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceTopology.md @@ -0,0 +1,22 @@ +--- +# Removed from Kubernetes +title: ServiceTopology +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.17" + toVersion: "1.19" + - stage: deprecated + defaultValue: false + fromVersion: "1.20" + toVersion: "1.22" + +removed: true +--- +سرویس را فعال کنید تا ترافیک را بر اساس توپولوژی گره خوشه مسیریابی کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceTrafficDistribution.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceTrafficDistribution.md new file mode 100644 index 0000000000000..fb3a8294e1942 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ServiceTrafficDistribution.md @@ -0,0 +1,24 @@ +--- +title: ServiceTrafficDistribution +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.30" + toVersion: "1.30" + - stage: beta + defaultValue: true + fromVersion: "1.31" + toVersion: "1.32" + - stage: stable + defaultValue: true + locked: true + fromVersion: "1.33" + +--- +امکان استفاده از فیلد اختیاری `spec.trafficDistribution` در سرویس‌ها را فراهم می‌کند. این فیلد روشی برای بیان ترجیحات نحوه توزیع ترافیک به نقاط پایانی سرویس ارائه می‌دهد. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SetHostnameAsFQDN.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SetHostnameAsFQDN.md new file mode 100644 index 0000000000000..18f61ec891ec9 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SetHostnameAsFQDN.md @@ -0,0 +1,27 @@ +--- +# Removed from Kubernetes +title: SetHostnameAsFQDN +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.19" + toVersion: "1.19" + - stage: beta + defaultValue: true + fromVersion: "1.20" + toVersion: "1.21" + - stage: stable + defaultValue: true + fromVersion: "1.22" + toVersion: "1.24" + +removed: true +--- +قابلیت تنظیم نام دامنه کاملاً واجد شرایط (FQDN) را به عنوان نام میزبان یک پاد فعال کنید. به [Pod's `setHostnameAsFQDN` field](/docs/concepts/services-networking/dns-pod-service/#pod-sethostnameasfqdn-field). + مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SidecarContainers.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SidecarContainers.md new file mode 100644 index 0000000000000..c7a25e9bac061 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SidecarContainers.md @@ -0,0 +1,23 @@ +--- +title: SidecarContainers +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.28" + toVersion: "1.28" + - stage: beta + defaultValue: true + fromVersion: "1.29" + toVersion: "1.32" + - stage: stable + defaultValue: true + locked: true + fromVersion: "1.33" +--- +اجازه دهید `restartPolicy` یک کانتینر init را روی `Always` تنظیم کنیم تا کانتینر به یک کانتینر sidecar (کانتینرهای init قابل راه‌اندازی مجدد) تبدیل شود. +برای جزئیات بیشتر به [Sidecar containers and restartPolicy](/docs/concepts/workloads/pods/sidecar-containers/) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SizeMemoryBackedVolumes.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SizeMemoryBackedVolumes.md new file mode 100644 index 0000000000000..e5fe4f2481cf7 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SizeMemoryBackedVolumes.md @@ -0,0 +1,21 @@ +--- +title: SizeMemoryBackedVolumes +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.20" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.31" + - stage: stable + defaultValue: true + fromVersion: "1.32" +--- +فعال کردن kubelets برای تعیین محدودیت اندازه برای volume های دارای حافظه (عمدتاً volume های `emptyDir`)). diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SkipReadOnlyValidationGCE.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SkipReadOnlyValidationGCE.md new file mode 100644 index 0000000000000..a9bd6e652fbf6 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SkipReadOnlyValidationGCE.md @@ -0,0 +1,20 @@ +--- +title: SkipReadOnlyValidationGCE +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.28" + toVersion: "1.28" + - stage: deprecated + defaultValue: true + fromVersion: "1.29" + toVersion: "1.30" + +removed: true +--- +از اعتبارسنجی اینکه حجم‌های GCE PersistentDisk در حالت فقط خواندنی هستند، صرف نظر کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StableLoadBalancerNodeSet.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StableLoadBalancerNodeSet.md new file mode 100644 index 0000000000000..d199670db0042 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StableLoadBalancerNodeSet.md @@ -0,0 +1,20 @@ +--- +title: StableLoadBalancerNodeSet +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.29" + - stage: stable + defaultValue: true + fromVersion: "1.30" + toVersion: "1.31" + +removed: true +--- +امکان پیکربندی مجدد متعادل‌کننده بار کمتر توسط کنترل‌کننده سرویس (KCCM) را به عنوان تأثیری از تغییر وضعیت گره فراهم می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StartupProbe.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StartupProbe.md new file mode 100644 index 0000000000000..606cce79a501b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StartupProbe.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: StartupProbe +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.16" + toVersion: "1.17" + - stage: beta + defaultValue: true + fromVersion: "1.18" + toVersion: "1.19" + - stage: stable + defaultValue: true + fromVersion: "1.20" + toVersion: "1.23" + +removed: true +--- +کاوشگر [startup](/docs/concepts/workloads/pods/pod-lifecycle/#when-should-you-use-a-startup-probe) را در kubelet فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StatefulSetAutoDeletePVC.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StatefulSetAutoDeletePVC.md new file mode 100644 index 0000000000000..550e30cadd018 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StatefulSetAutoDeletePVC.md @@ -0,0 +1,24 @@ +--- +title: StatefulSetAutoDeletePVC +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.23" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.31" + - stage: stable + defaultValue: true + fromVersion: "1.32" +--- +اجازه استفاده از فیلد اختیاری `.spec.persistentVolumeClaimRetentionPolicy` را می‌دهد، که کنترل حذف PVCها را در چرخه حیات StatefulSet فراهم می‌کند. + +برای جزئیات بیشتر به [PersistentVolumeClaim retention](/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention) مراجعه کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StatefulSetMinReadySeconds.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StatefulSetMinReadySeconds.md new file mode 100644 index 0000000000000..4015f7ae55146 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StatefulSetMinReadySeconds.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: StatefulSetMinReadySeconds +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.22" + toVersion: "1.22" + - stage: beta + defaultValue: true + fromVersion: "1.23" + toVersion: "1.24" + - stage: stable + defaultValue: true + fromVersion: "1.25" + toVersion: "1.26" + +removed: true +--- +به کنترلر StatefulSet اجازه می‌دهد تا `minReadySeconds` را رعایت کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StatefulSetStartOrdinal.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StatefulSetStartOrdinal.md new file mode 100644 index 0000000000000..518e759986c1d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StatefulSetStartOrdinal.md @@ -0,0 +1,21 @@ +--- +title: StatefulSetStartOrdinal +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.26" + toVersion: "1.26" + - stage: beta + defaultValue: true + fromVersion: "1.27" + toVersion: "1.30" + - stage: stable + defaultValue: true + fromVersion: "1.31" +--- +پیکربندی عدد ترتیبی شروع را در یک StatefulSet مجاز کنید. برای جزئیات بیشتر به [Start ordinal](/docs/concepts/workloads/controllers/statefulset/#start-ordinal) مراجعه کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageCapacityScoring.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageCapacityScoring.md new file mode 100644 index 0000000000000..1e0157cfed3e6 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageCapacityScoring.md @@ -0,0 +1,15 @@ +--- +title: StorageCapacityScoring +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" +--- + +گیت ویژگی `VolumeCapacityPriority` در نسخه ۱.۳۲ برای پشتیبانی از فضای ذخیره‌سازی که به صورت ایستا تأمین می‌شوند، استفاده می‌شد. از نسخه ۱.۳۳، گیت ویژگی جدید `StorageCapacityScoring` جایگزین گیت قدیمی `VolumeCapacityPriority` شده و پشتیبانی از فضای ذخیره‌سازی پویا را نیز به آن اضافه کرده است. +هنگامی که `StorageCapacityScoring` فعال باشد، افزونه VolumeBinding در kube-scheduler برای امتیازدهی به گره‌ها بر اساس ظرفیت ذخیره‌سازی روی هر یک از آنها توسعه داده می‌شود.[Storage Capacity](/docs/concepts/storage/storage-capacity/) \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageNamespaceIndex.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageNamespaceIndex.md new file mode 100644 index 0000000000000..5e5620607fbe3 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageNamespaceIndex.md @@ -0,0 +1,21 @@ +--- +title: StorageNamespaceIndex +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.30" + toVersion: "1.32" + - stage: deprecated + defaultValue: true + fromVersion: "1.33" + + +--- +یک شاخص‌گذار فضای نام را برای منابع دارای محدوده فضای نام در حافظه پنهان سرور API فعال می‌کند تا عملیات فهرست‌بندی را تسریع بخشد. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageObjectInUseProtection.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageObjectInUseProtection.md new file mode 100644 index 0000000000000..a4b850ba6a355 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageObjectInUseProtection.md @@ -0,0 +1,22 @@ +--- +# Removed from Kubernetes +title: StorageObjectInUseProtection +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.10" + toVersion: "1.10" + - stage: stable + defaultValue: true + fromVersion: "1.11" + toVersion: "1.24" + +removed: true +--- +اگر هنوز از اشیاء PersistentVolume یا PersistentVolumeClaim استفاده می‌شود، حذف آنها را به تعویق بیندازید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageVersionAPI.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageVersionAPI.md new file mode 100644 index 0000000000000..88c471b6c16d8 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageVersionAPI.md @@ -0,0 +1,13 @@ +--- +title: StorageVersionAPI +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.20" +--- +فعال کردن [storage version API](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#storageversion-v1alpha1-internal-apiserver-k8s-io). \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageVersionHash.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageVersionHash.md new file mode 100644 index 0000000000000..65f039a215787 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageVersionHash.md @@ -0,0 +1,17 @@ +--- +title: StorageVersionHash +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.14" + toVersion: "1.14" + - stage: beta + defaultValue: true + fromVersion: "1.15" +--- +به سرورهای API اجازه دهید تا هش نسخه ذخیره‌سازی را در فرآیند کشف افشا کنند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageVersionMigrator.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageVersionMigrator.md new file mode 100644 index 0000000000000..aa9d23551ba2e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StorageVersionMigrator.md @@ -0,0 +1,13 @@ +--- +title: StorageVersionMigrator +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.30" +--- +مهاجرت نسخه ذخیره‌سازی را فعال می‌کند. برای جزئیات بیشتر به [Migrate Kubernetes Objects Using Storage Version Migration](/docs/tasks/manage-kubernetes-objects/storage-version-migration) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StreamingCollectionEncodingToJSON.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StreamingCollectionEncodingToJSON.md new file mode 100644 index 0000000000000..31ca44bef3a10 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StreamingCollectionEncodingToJSON.md @@ -0,0 +1,14 @@ +--- +title: StreamingCollectionEncodingToJSON +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: true + fromVersion: "1.33" + +--- +به رمزگذار JSON سرور API اجازه دهید مجموعه‌ها را به صورت آیتم به آیتم، به جای همه به طور همزمان، رمزگذاری کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StreamingCollectionEncodingToProtobuf.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StreamingCollectionEncodingToProtobuf.md new file mode 100644 index 0000000000000..33d5e8db13eb9 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StreamingCollectionEncodingToProtobuf.md @@ -0,0 +1,14 @@ +--- +title: StreamingCollectionEncodingToProtobuf +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: true + fromVersion: "1.33" + +--- +به رمزگذار Protobuf سرور API اجازه دهید تا مجموعه‌ها را به صورت آیتم به آیتم، به جای همه به طور همزمان، رمزگذاری کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StreamingProxyRedirects.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StreamingProxyRedirects.md new file mode 100644 index 0000000000000..afb25bd852ca3 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StreamingProxyRedirects.md @@ -0,0 +1,30 @@ +--- +# Removed from Kubernetes +title: StreamingProxyRedirects +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.5" + toVersion: "1.5" + - stage: beta + defaultValue: true + fromVersion: "1.6" + toVersion: "1.17" + - stage: deprecated + defaultValue: true + fromVersion: "1.18" + toVersion: "1.21" + - stage: deprecated + defaultValue: false + fromVersion: "1.22" + toVersion: "1.24" + +removed: true +--- +به سرور API دستور می‌دهد تا ریدایرکت‌ها را از backend (kubelet) برای درخواست‌های استریمینگ رهگیری (و دنبال) کند. نمونه‌هایی از درخواست‌های استریمینگ شامل درخواست‌های `exec`، `attach` و `port-forward` می‌شود. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StrictCostEnforcementForVAP.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StrictCostEnforcementForVAP.md new file mode 100644 index 0000000000000..ec07a4807489a --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StrictCostEnforcementForVAP.md @@ -0,0 +1,19 @@ +--- +title: StrictCostEnforcementForVAP +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.30" + toVersion: "1.31" + - stage: stable + defaultValue: true + fromVersion: "1.32" +--- +اعتبارسنجی دقیق هزینه‌های CEL را برای ValidatingAdmissionPolicies اعمال کنید. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StrictCostEnforcementForWebhooks.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StrictCostEnforcementForWebhooks.md new file mode 100644 index 0000000000000..07d9b6a6a89bb --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StrictCostEnforcementForWebhooks.md @@ -0,0 +1,18 @@ +--- +title: StrictCostEnforcementForWebhooks +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.31" + toVersion: "1.31" + - stage: stable + defaultValue: true + fromVersion: "1.32" +--- +اعتبارسنجی دقیق هزینه CEL را برای `matchConditions` در وب‌هوک‌های پذیرش اعمال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StrictIPCIDRValidation.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StrictIPCIDRValidation.md new file mode 100644 index 0000000000000..6f5e28af6cce2 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StrictIPCIDRValidation.md @@ -0,0 +1,16 @@ +--- +title: StrictIPCIDRValidation +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.33" +--- +از اعتبارسنجی سختگیرانه‌تری برای فیلدهای حاوی آدرس‌های IP و مقادیر CIDR استفاده کنید. +به طور خاص، با فعال شدن این دروازه ویژگی، اکتت‌های درون آدرس‌های IPv4 مجاز به داشتن هیچ `0` اولیه نیستند و مقادیر IPv6 نگاشت شده با IPv4 (به عنوان مثال +`::ffff:192.168.0.1`) ممنوع هستند. این نوع مقادیر می‌توانند به طور بالقوه باعث مشکلات امنیتی شوند، زمانی که اجزای مختلف رشته یکسانی را به عنوان اشاره به آدرس‌های IP مختلف تفسیر می‌کنند (مانند CVE-2021-29923). +این سخت‌گیری فقط برای فیلدهای موجود در انواع API داخلی اعمال می‌شود و شامل انواع منابع سفارشی، مقادیر موجود در فایل‌های پیکربندی Kubernetes یا آرگومان‌های خط فرمان نمی‌شود. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StructuredAuthenticationConfiguration.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StructuredAuthenticationConfiguration.md new file mode 100644 index 0000000000000..17d51ede37ec5 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StructuredAuthenticationConfiguration.md @@ -0,0 +1,17 @@ +--- +title: StructuredAuthenticationConfiguration +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.29" + - stage: beta + defaultValue: true + fromVersion: "1.30" +--- +برای سرور API،[structured authentication configuration](/docs/reference/access-authn-authz/authentication/#configuring-the-api-server) را فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/StructuredAuthorizationConfiguration.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StructuredAuthorizationConfiguration.md new file mode 100644 index 0000000000000..f3d71eccbfbbe --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/StructuredAuthorizationConfiguration.md @@ -0,0 +1,21 @@ +--- +title: StructuredAuthorizationConfiguration +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.29" + - stage: beta + defaultValue: true + fromVersion: "1.30" + toVersion: "1.31" + - stage: stable + defaultValue: true + fromVersion: "1.32" +--- +پیکربندی مجوز ساختاریافته را فعال کنید، به طوری که مدیران خوشه بتوانند بیش از یک [authorization webhook](/docs/reference/access-authn-authz/webhook/) را در زنجیره کنترل‌کننده سرور API مشخص کنند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SupplementalGroupsPolicy.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SupplementalGroupsPolicy.md new file mode 100644 index 0000000000000..87572964fb58b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SupplementalGroupsPolicy.md @@ -0,0 +1,17 @@ +--- +title: SupplementalGroupsPolicy +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.31" + toVersion: "1.32" + - stage: beta + defaultValue: true + fromVersion: "1.33" +--- +پشتیبانی از کنترل دقیق SupplementalGroups را فعال می‌کند. برای جزئیات بیشتر، به [Configure fine-grained SupplementalGroups control for a Pod](/content/en/docs/tasks/configure-pod-container/security-context/#supplementalgroupspolicy). مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SupportIPVSProxyMode.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SupportIPVSProxyMode.md new file mode 100644 index 0000000000000..1a177d460c436 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SupportIPVSProxyMode.md @@ -0,0 +1,30 @@ +--- +# Removed from Kubernetes +title: SupportIPVSProxyMode +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.8" + toVersion: "1.8" + - stage: beta + defaultValue: false + fromVersion: "1.9" + toVersion: "1.9" + - stage: beta + defaultValue: true + fromVersion: "1.10" + toVersion: "1.10" + - stage: stable + defaultValue: true + fromVersion: "1.11" + toVersion: "1.20" + +removed: true +--- +فعال کردن ارائه تعادل بار سرویس درون خوشه‌ای با استفاده از IPVS. برای جزئیات بیشتر به [service proxies](/docs/reference/networking/virtual-ips/) مراجعه کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SupportNodePidsLimit.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SupportNodePidsLimit.md new file mode 100644 index 0000000000000..f3c2e4c52d32d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SupportNodePidsLimit.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: SupportNodePidsLimit +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.14" + toVersion: "1.14" + - stage: beta + defaultValue: true + fromVersion: "1.15" + toVersion: "1.19" + - stage: stable + defaultValue: true + fromVersion: "1.20" + toVersion: "1.23" + +removed: true +--- +پشتیبانی از محدود کردن PIDها را در Node فعال کنید. پارامتر `pid=` در گزینه‌های `--system-reserved` و `--kube-reserved` را می‌توان مشخص کرد تا اطمینان حاصل شود که تعداد مشخص‌شده از شناسه‌های فرآیند به ترتیب برای کل سیستم و برای سرویس‌های سیستم Kubernetes رزرو می‌شوند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SupportPodPidsLimit.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SupportPodPidsLimit.md new file mode 100644 index 0000000000000..c8664f76655e3 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SupportPodPidsLimit.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: SupportPodPidsLimit +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.10" + toVersion: "1.13" + - stage: beta + defaultValue: true + fromVersion: "1.14" + toVersion: "1.19" + - stage: stable + defaultValue: true + fromVersion: "1.20" + toVersion: "1.23" + +removed: true +--- +پشتیبانی از محدود کردن PIDها در Podها را فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SuspendJob.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SuspendJob.md new file mode 100644 index 0000000000000..eb90e9d6a0312 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SuspendJob.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: SuspendJob +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.21" + - stage: beta + defaultValue: true + fromVersion: "1.22" + toVersion: "1.23" + - stage: stable + defaultValue: true + fromVersion: "1.24" + toVersion: "1.25" + +removed: true +--- +پشتیبانی از تعلیق و از سرگیری کارها را فعال کنید. برای جزئیات بیشتر، به [the Jobs docs ](/docs/concepts/workloads/controllers/job/) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/Sysctls.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/Sysctls.md new file mode 100644 index 0000000000000..b56f3f3a4a371 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/Sysctls.md @@ -0,0 +1,21 @@ +--- +title: Sysctls +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.11" + toVersion: "1.20" + - stage: stable + defaultValue: true + fromVersion: "1.21" + toVersion: "1.22" + +removed: true +--- +پشتیبانی از پارامترهای هسته با فضای نام (sysctls) را که می‌توانند برای هر پاد تنظیم شوند، فعال کنید. برای جزئیات بیشتر به [sysctls](/docs/tasks/administer-cluster/sysctl-cluster/) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/SystemdWatchdog.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SystemdWatchdog.md new file mode 100644 index 0000000000000..54365ed16ee27 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/SystemdWatchdog.md @@ -0,0 +1,14 @@ +--- +title: SystemdWatchdog +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.32" +--- +اجازه استفاده از systemd watchdog برای نظارت بر وضعیت سلامت kubelet. +برای جزئیات بیشتر به [Kubelet Systemd Watchdog](/docs/reference/node/systemd-watchdog/) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/TTLAfterFinished.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TTLAfterFinished.md new file mode 100644 index 0000000000000..ae22e97fa8c8d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TTLAfterFinished.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: TTLAfterFinished +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.12" + toVersion: "1.20" + - stage: beta + defaultValue: true + fromVersion: "1.21" + toVersion: "1.22" + - stage: stable + defaultValue: true + fromVersion: "1.23" + toVersion: "1.24" + +removed: true +--- +به یک [controller TTL](/docs/concepts/workloads/controllers/ttlafterfinished/) اجازه دهید تا منابع را پس از اتمام اجرا پاکسازی کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/TaintBasedEvictions.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TaintBasedEvictions.md new file mode 100644 index 0000000000000..e54addefb78c0 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TaintBasedEvictions.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: TaintBasedEvictions +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.6" + toVersion: "1.12" + - stage: beta + defaultValue: true + fromVersion: "1.13" + toVersion: "1.17" + - stage: stable + defaultValue: true + fromVersion: "1.18" + toVersion: "1.20" + +removed: true +--- +فعال کردن حذف پادها از گره‌ها بر اساس آلودگی‌های روی گره‌ها و تلرانس‌های روی پادها. برای جزئیات بیشتر به [taints and tolerations](/docs/concepts/scheduling-eviction/taint-and-toleration/) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/TaintNodesByCondition.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TaintNodesByCondition.md new file mode 100644 index 0000000000000..e8302ea3a28c2 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TaintNodesByCondition.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: TaintNodesByCondition +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.8" + toVersion: "1.11" + - stage: beta + defaultValue: true + fromVersion: "1.12" + toVersion: "1.16" + - stage: stable + defaultValue: true + fromVersion: "1.17" + toVersion: "1.18" + +removed: true +--- +فعال کردن گره‌های آلوده‌سازی خودکار بر اساس [ node conditions](/docs/concepts/architecture/nodes/#condition). \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/TokenRequest.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TokenRequest.md new file mode 100644 index 0000000000000..70bcf1a37f95b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TokenRequest.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: TokenRequest +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.10" + toVersion: "1.11" + - stage: beta + defaultValue: true + fromVersion: "1.12" + toVersion: "1.19" + - stage: stable + defaultValue: true + fromVersion: "1.20" + toVersion: "1.21" + +removed: true +--- +نقطه پایانی `TokenRequest` را روی منابع حساب سرویس فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/TokenRequestProjection.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TokenRequestProjection.md new file mode 100644 index 0000000000000..a0516a59392ae --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TokenRequestProjection.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: TokenRequestProjection +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.11" + toVersion: "1.11" + - stage: beta + defaultValue: true + fromVersion: "1.12" + toVersion: "1.19" + - stage: stable + defaultValue: true + fromVersion: "1.20" + toVersion: "1.21" + +removed: true +--- +تزریق توکن‌های حساب سرویس را به یک Pod از طریق یک [`projected` volume](/docs/concepts/storage/volumes/#projected) فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/TopologyAwareHints.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TopologyAwareHints.md new file mode 100644 index 0000000000000..6753ba5d07195 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TopologyAwareHints.md @@ -0,0 +1,27 @@ +--- +title: TopologyAwareHints +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.22" + - stage: beta + defaultValue: false + fromVersion: "1.23" + toVersion: "1.23" + - stage: beta + defaultValue: true + fromVersion: "1.24" + toVersion: "1.32" + - stage: stable + defaultValue: true + locked: true + fromVersion: "1.33" +--- +مسیریابی آگاه از توپولوژی را بر اساس نکات توپولوژی در EndpointSlices فعال می‌کند. برای جزئیات بیشتر به [Topology Aware +Hints](/docs/concepts/services-networking/topology-aware-routing/) مراجعه کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/TopologyManager.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TopologyManager.md new file mode 100644 index 0000000000000..52ca45b5639b9 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TopologyManager.md @@ -0,0 +1,24 @@ +--- +title: TopologyManager +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.16" + toVersion: "1.17" + - stage: beta + defaultValue: true + fromVersion: "1.18" + toVersion: "1.26" + - stage: stable + defaultValue: true + fromVersion: "1.27" + toVersion: "1.28" + +removed: true +--- +فعال کردن مکانیزمی برای هماهنگی تخصیص منابع سخت‌افزاری دقیق برای اجزای مختلف در Kubernetes. به [Control Topology Management Policies on a node](/docs/tasks/administer-cluster/topology-manager/).مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/TopologyManagerPolicyAlphaOptions.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TopologyManagerPolicyAlphaOptions.md new file mode 100644 index 0000000000000..98f45a7645b28 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TopologyManagerPolicyAlphaOptions.md @@ -0,0 +1,16 @@ +--- +title: TopologyManagerPolicyAlphaOptions +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.26" +--- +امکان تنظیم دقیق سیاست‌های مدیریت توپولوژی، +آزمایشی، گزینه‌های آلفا-کیفیت. +این دروازه ویژگی از *گروهی* از گزینه‌های مدیریت توپولوژی که سطح کیفیت آنها آلفا است، محافظت می‌کند. +این دروازه ویژگی هرگز به مرحله بتا یا پایدار ارتقا پیدا نمی‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/TopologyManagerPolicyBetaOptions.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TopologyManagerPolicyBetaOptions.md new file mode 100644 index 0000000000000..c329fcf6d6104 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TopologyManagerPolicyBetaOptions.md @@ -0,0 +1,20 @@ +--- +title: TopologyManagerPolicyBetaOptions +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.26" + toVersion: "1.27" + - stage: beta + defaultValue: true + fromVersion: "1.28" +--- +امکان تنظیم دقیق سیاست‌های مدیریت توپولوژی، +آزمایشی، گزینه‌های با کیفیت بتا. +این دروازه ویژگی از *گروهی* از گزینه‌های مدیریت توپولوژی که سطح کیفیت آنها بتا است، محافظت می‌کند. +این دروازه ویژگی هرگز به حالت پایدار ارتقا پیدا نمی‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/TopologyManagerPolicyOptions.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TopologyManagerPolicyOptions.md new file mode 100644 index 0000000000000..7757f99a87357 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TopologyManagerPolicyOptions.md @@ -0,0 +1,21 @@ +--- +title: TopologyManagerPolicyOptions +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.26" + toVersion: "1.27" + - stage: beta + defaultValue: true + fromVersion: "1.28" + toVersion: "1.31" + - stage: stable + defaultValue: true + fromVersion: "1.32" +--- +فعال کردن [fine-tuning](/docs/tasks/administer-cluster/topology-manager/#topology-manager-policy-options) از سیاست‌های مدیریت توپولوژی. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/TranslateStreamCloseWebsocketRequests.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TranslateStreamCloseWebsocketRequests.md new file mode 100644 index 0000000000000..272e0670d3f9e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/TranslateStreamCloseWebsocketRequests.md @@ -0,0 +1,17 @@ +--- +title: TranslateStreamCloseWebsocketRequests +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.29" + - stage: beta + defaultValue: true + fromVersion: "1.30" +--- +اجازه دهید WebSocket زیرپروتکل فرمان از راه دور (`exec`، `cp`، `attach`) را از کلاینت‌هایی که نسخه 5 (v5) زیرپروتکل را درخواست می‌کنند، پخش کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/UnauthenticatedHTTP2DOSMitigation.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/UnauthenticatedHTTP2DOSMitigation.md new file mode 100644 index 0000000000000..defd73e6b5294 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/UnauthenticatedHTTP2DOSMitigation.md @@ -0,0 +1,17 @@ +--- +title: UnauthenticatedHTTP2DOSMitigation +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.28" + toVersion: "1.28" + - stage: beta + defaultValue: true + fromVersion: "1.29" +--- +کاهش حملات انکار سرویس (DoS) HTTP/2 را برای کلاینت‌های احراز هویت نشده فعال می‌کند. Kubernetes نسخه‌های ۱.۲۸.۰ تا ۱.۲۸.۲ شامل این ویژگی نمی‌شوند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/UnknownVersionInteroperabilityProxy.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/UnknownVersionInteroperabilityProxy.md new file mode 100644 index 0000000000000..a792d1303712b --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/UnknownVersionInteroperabilityProxy.md @@ -0,0 +1,13 @@ +--- +title: UnknownVersionInteroperabilityProxy +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.28" +--- +درخواست‌های منابع پروکسی به سرور kube-apiser صحیح، زمانی که چندین سرور kube-apiser با نسخه‌های مختلف وجود دارد. برای اطلاعات بیشتر به [Mixed version proxy](/docs/concepts/architecture/mixed-version-proxy/) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/UserNamespacesPodSecurityStandards.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/UserNamespacesPodSecurityStandards.md new file mode 100644 index 0000000000000..442ce158494b6 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/UserNamespacesPodSecurityStandards.md @@ -0,0 +1,13 @@ +--- +title: UserNamespacesPodSecurityStandards +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" +--- +فعال کردن سیاست‌های استانداردهای امنیتی پاد برای پادهایی که با فضاهای نام اجرا می‌شوند. شما باید مقدار این دروازه ویژگی را به طور مداوم در تمام گره‌های خوشه خود تنظیم کنید، و همچنین باید `UserNamespacesSupport` را برای استفاده از این ویژگی فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/UserNamespacesStatelessPodsSupport.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/UserNamespacesStatelessPodsSupport.md new file mode 100644 index 0000000000000..83eab507ec246 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/UserNamespacesStatelessPodsSupport.md @@ -0,0 +1,16 @@ +--- +title: UserNamespacesStatelessPodsSupport +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.25" + toVersion: "1.27" + +removed: true +--- +پشتیبانی از فضای نام کاربر را برای پادهای بدون وضعیت فعال کنید. این ویژگی در نسخه Kubernetes نسخه ۱.۲۸ با ویژگی `UserNamespacesSupport` جایگزین شد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/UserNamespacesSupport.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/UserNamespacesSupport.md new file mode 100644 index 0000000000000..c7571f1767757 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/UserNamespacesSupport.md @@ -0,0 +1,23 @@ +--- +title: UserNamespacesSupport +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.28" + toVersion: "1.29" + - stage: beta + defaultValue: false + fromVersion: "1.30" + toVersion: "1.32" + - stage: beta + defaultValue: true + fromVersion: "1.33" + +--- +پشتیبانی از فضای نیم اسپیس را برای پادها فعال کنید. + diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ValidateProxyRedirects.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ValidateProxyRedirects.md new file mode 100644 index 0000000000000..d188fa6385d89 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ValidateProxyRedirects.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: ValidateProxyRedirects +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.12" + toVersion: "1.13" + - stage: beta + defaultValue: true + fromVersion: "1.14" + toVersion: "1.21" + - stage: deprecated + defaultValue: true + fromVersion: "1.22" + toVersion: "1.24" + +removed: true +--- +این پرچم کنترل می‌کند که آیا سرور API باید تأیید کند که تغییر مسیرها فقط به همان میزبان دنبال می‌شوند یا خیر. فقط در صورتی استفاده می‌شود که پرچم `StreamingProxyRedirects` فعال باشد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ValidatingAdmissionPolicy.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ValidatingAdmissionPolicy.md new file mode 100644 index 0000000000000..a388a56a570c7 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ValidatingAdmissionPolicy.md @@ -0,0 +1,24 @@ +--- +title: ValidatingAdmissionPolicy +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.26" + toVersion: "1.27" + - stage: beta + defaultValue: false + fromVersion: "1.28" + toVersion: "1.29" + - stage: stable + defaultValue: true + fromVersion: "1.30" + toVersion: "1.31" + +removed: true +--- +پشتیبانی از اعتبارسنجی‌های CEL که در کنترل پذیرش استفاده می‌شوند را در [ValidatingAdmissionPolicy](/docs/reference/access-authn-authz/validating-admission-policy/) فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeAttributesClass.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeAttributesClass.md new file mode 100644 index 0000000000000..341a4eedcfdbb --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeAttributesClass.md @@ -0,0 +1,18 @@ +--- +title: VolumeAttributesClass +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.29" + toVersion: "1.30" + - stage: beta + defaultValue: false + fromVersion: "1.31" +--- +پشتیبانی از VolumeAttributesClasses را فعال کنید. +برای اطلاعات بیشتر به [Volume Attributes Classes](/docs/concepts/storage/volume-attributes-classes/) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeCapacityPriority.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeCapacityPriority.md new file mode 100644 index 0000000000000..ea11896ec9855 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeCapacityPriority.md @@ -0,0 +1,16 @@ +--- +title: VolumeCapacityPriority +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.21" + toVersion: "1.32" + +removed: true +--- +پشتیبانی از اولویت‌بندی گره‌ها در توپولوژی‌های مختلف بر اساس ظرفیت PV موجود را فعال کنید. این ویژگی در نسخه ۱.۳۳ به `StorageCapacityScoring` تغییر نام داده است. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumePVCDataSource.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumePVCDataSource.md new file mode 100644 index 0000000000000..93cb7652fe049 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumePVCDataSource.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: VolumePVCDataSource +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.15" + toVersion: "1.15" + - stage: beta + defaultValue: true + fromVersion: "1.16" + toVersion: "1.17" + - stage: stable + defaultValue: true + fromVersion: "1.18" + toVersion: "1.21" + +removed: true +--- +پشتیبانی از مشخص کردن یک PVC موجود به عنوان منبع داده را فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeScheduling.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeScheduling.md new file mode 100644 index 0000000000000..2b278d6ae36a6 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeScheduling.md @@ -0,0 +1,27 @@ +--- +# Removed from Kubernetes +title: VolumeScheduling +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.9" + toVersion: "1.9" + - stage: beta + defaultValue: true + fromVersion: "1.10" + toVersion: "1.12" + - stage: stable + defaultValue: true + fromVersion: "1.13" + toVersion: "1.16" + +removed: true +--- +زمان‌بندی آگاه از توپولوژی حجم را فعال کنید و اتصال PersistentVolumeClaim +(PVC) را از تصمیمات زمان‌بندی آگاه کنید. همچنین استفاده از نوع حجم [`local`](/docs/concepts/storage/volumes/#local) را هنگام استفاده همراه با دروازه ویژگی `PersistentLocalVolumes` امکان‌پذیر می‌سازد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeSnapshotDataSource.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeSnapshotDataSource.md new file mode 100644 index 0000000000000..3ea141e395652 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeSnapshotDataSource.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: VolumeSnapshotDataSource +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.12" + toVersion: "1.16" + - stage: beta + defaultValue: true + fromVersion: "1.17" + toVersion: "1.19" + - stage: stable + defaultValue: true + fromVersion: "1.20" + toVersion: "1.22" + +removed: true +--- +پشتیبانی از منبع داده‌ی اسنپ‌شات حجمی را فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeSubpath.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeSubpath.md new file mode 100644 index 0000000000000..0db6b607b5182 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeSubpath.md @@ -0,0 +1,18 @@ +--- +# Removed from Kubernetes +title: VolumeSubpath +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: stable + defaultValue: true + fromVersion: "1.10" + toVersion: "1.24" + +removed: true +--- +اجازه می‌دهد یک زیرمسیر از یک حجم را در یک کانتینر نصب کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeSubpathEnvExpansion.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeSubpathEnvExpansion.md new file mode 100644 index 0000000000000..9398e30d09633 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/VolumeSubpathEnvExpansion.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: VolumeSubpathEnvExpansion +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.14" + toVersion: "1.14" + - stage: beta + defaultValue: true + fromVersion: "1.15" + toVersion: "1.16" + - stage: stable + defaultValue: true + fromVersion: "1.17" + toVersion: "1.24" + +removed: true +--- +فیلد `subPathExpr` را برای بسط متغیرهای محیطی به یک `subPath` فعال کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/WarningHeaders.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WarningHeaders.md new file mode 100644 index 0000000000000..222bb0b0a1193 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WarningHeaders.md @@ -0,0 +1,22 @@ +--- +# Removed from Kubernetes +title: WarningHeaders +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: true + fromVersion: "1.19" + toVersion: "1.21" + - stage: stable + defaultValue: true + fromVersion: "1.22" + toVersion: "1.24" + +removed: true +--- +اجازه ارسال هدرهای هشدار در پاسخ‌های API. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/WatchBookmark.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WatchBookmark.md new file mode 100644 index 0000000000000..9360b515cd1a9 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WatchBookmark.md @@ -0,0 +1,24 @@ +--- +title: WatchBookmark +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.15" + toVersion: "1.15" + - stage: beta + defaultValue: true + fromVersion: "1.16" + toVersion: "1.16" + - stage: stable + defaultValue: true + fromVersion: "1.17" + toVersion: "1.32" + +removed: true +--- +پشتیبانی از رویدادهای نشانک‌گذاری‌شده‌ی ساعت را فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/WatchCacheInitializationPostStartHook.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WatchCacheInitializationPostStartHook.md new file mode 100644 index 0000000000000..142d7ce646049 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WatchCacheInitializationPostStartHook.md @@ -0,0 +1,15 @@ +--- +title: WatchCacheInitializationPostStartHook +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.31" + +--- +فعال کردن post-start-hook برای مقداردهی اولیه watchcache به عنوان بخشی از readyz (با timeout). \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/WatchFromStorageWithoutResourceVersion.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WatchFromStorageWithoutResourceVersion.md new file mode 100644 index 0000000000000..923e8c79acbce --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WatchFromStorageWithoutResourceVersion.md @@ -0,0 +1,19 @@ +--- +title: WatchFromStorageWithoutResourceVersion +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.30" + toVersion: "1.32" + - stage: deprecated + defaultValue: false + fromVersion: "1.33" + + +--- +امکان ارائه watchهای بدون `resourceVersion` از حافظه را فراهم می‌کند. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/WatchList.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WatchList.md new file mode 100644 index 0000000000000..b19246648de45 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WatchList.md @@ -0,0 +1,21 @@ +--- +title: WatchList +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.27" + toVersion: "1.31" + - stage: beta + defaultValue: true + fromVersion: "1.32" + toVersion: "1.32" + - stage: beta + defaultValue: false + fromVersion: "1.33" +--- +پشتیبانی از [streaming initial state of objects in watch requests](/docs/reference/using-api/api-concepts/#streaming-lists). را فعال کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/WatchListClient.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WatchListClient.md new file mode 100644 index 0000000000000..6208caf91e5d4 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WatchListClient.md @@ -0,0 +1,16 @@ +--- +title: WatchListClient +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.30" +--- +به یک کلاینت API اجازه می‌دهد تا به جای دریافت یک لیست کامل، جریانی از داده‌ها را درخواست کند. +این قابلیت در `client-go` موجود است و نیاز به فعال بودن ویژگی +[WatchList](/docs/reference/command-line-tools-reference/feature-gates/) در سرور دارد. +اگر `WatchList` در سرور پشتیبانی نشود، کلاینت به طور یکپارچه به یک درخواست لیست استاندارد برمی‌گردد. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/WinDSR.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WinDSR.md new file mode 100644 index 0000000000000..50c34a3758284 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WinDSR.md @@ -0,0 +1,18 @@ +--- +title: WinDSR +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.14" + toVersion: "1.32" + - stage: beta + defaultValue: true + fromVersion: "1.33" + +--- +به kube-proxy اجازه می‌دهد تا متعادل‌کننده‌های بار DSR را برای ویندوز ایجاد کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/WinOverlay.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WinOverlay.md new file mode 100644 index 0000000000000..c063c39af7a39 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WinOverlay.md @@ -0,0 +1,17 @@ +--- +title: WinOverlay +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.14" + toVersion: "1.19" + - stage: beta + defaultValue: true + fromVersion: "1.20" +--- +به kube-proxy اجازه می‌دهد تا در حالت همپوشانی برای ویندوز اجرا شود. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsCPUAndMemoryAffinity.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsCPUAndMemoryAffinity.md new file mode 100644 index 0000000000000..533d9ff31e39d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsCPUAndMemoryAffinity.md @@ -0,0 +1,15 @@ +--- +title: WindowsCPUAndMemoryAffinity +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" +--- + +پشتیبانی از CPU و Memory Affinity را با استفاده از [CPUManager](/docs/tasks/administer-cluster/cpu-management-policies/#windows-support)، [MemoryManager](/docs/tasks/administer-cluster/memory-manager/#windows-support) و مدیریت توپولوژی به گره‌های ویندوز اضافه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsEndpointSliceProxying.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsEndpointSliceProxying.md new file mode 100644 index 0000000000000..d4b7e0cadd76e --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsEndpointSliceProxying.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: WindowsEndpointSliceProxying +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.19" + toVersion: "1.20" + - stage: beta + defaultValue: true + fromVersion: "1.21" + toVersion: "1.21" + - stage: stable + defaultValue: true + fromVersion: "1.22" + toVersion: "1.24" + +removed: true +--- +وقتی فعال باشد، kube-proxy که روی ویندوز اجرا می‌شود، از EndpointSlices به عنوان منبع داده اصلی به جای Endpoints استفاده می‌کند و امکان مقیاس‌پذیری و بهبود عملکرد را فراهم می‌کند. به [فعال‌سازی Endpoint Slices](/docs/concepts/services-networking/endpoint-slices/) مراجعه کنید. diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsGMSA.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsGMSA.md new file mode 100644 index 0000000000000..724d61f4782ae --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsGMSA.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: WindowsGMSA +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.14" + toVersion: "1.15" + - stage: beta + defaultValue: true + fromVersion: "1.16" + toVersion: "1.17" + - stage: stable + defaultValue: true + fromVersion: "1.18" + toVersion: "1.18" + +removed: true +--- +انتقال مشخصات اعتبارنامه GMSA را از پادها به زمان‌های اجرای کانتینر فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsGracefulNodeShutdown.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsGracefulNodeShutdown.md new file mode 100644 index 0000000000000..55858bcc84806 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsGracefulNodeShutdown.md @@ -0,0 +1,17 @@ +--- +title: WindowsGracefulNodeShutdown +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.32" + +--- +پشتیبانی از خاموش کردن ظریف گره ویندوز را در kubelet فعال می‌کند. +در طول خاموش شدن سیستم، kubelet تلاش می‌کند تا رویداد خاموش شدن را تشخیص دهد +و به طور ظریف پادهای در حال اجرا روی گره را خاتمه دهد. برای جزئیات بیشتر به +[Graceful Node Shutdown](/docs/concepts/architecture/nodes/#graceful-node-shutdown) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsHostNetwork.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsHostNetwork.md new file mode 100644 index 0000000000000..bfb0bf6ba5192 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsHostNetwork.md @@ -0,0 +1,19 @@ +--- +title: WindowsHostNetwork +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: true + fromVersion: "1.26" + toVersion: "1.32" + - stage: deprecated + defaultValue: false + fromVersion: "1.33" + + +--- +پشتیبانی از اتصال کانتینرهای ویندوز به فضای نام شبکه میزبان‌ها را فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsHostProcessContainers.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsHostProcessContainers.md new file mode 100644 index 0000000000000..7b62afbb8288f --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsHostProcessContainers.md @@ -0,0 +1,24 @@ +--- +title: WindowsHostProcessContainers +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.22" + toVersion: "1.22" + - stage: beta + defaultValue: true + fromVersion: "1.23" + toVersion: "1.25" + - stage: stable + defaultValue: true + fromVersion: "1.26" + toVersion: "1.27" + +removed: true +--- +پشتیبانی از کانتینرهای Windows HostProcess را فعال می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsRunAsUserName.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsRunAsUserName.md new file mode 100644 index 0000000000000..57965a0f9cf1d --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/WindowsRunAsUserName.md @@ -0,0 +1,26 @@ +--- +# Removed from Kubernetes +title: WindowsRunAsUserName +content_type: feature_gate + +_build: + list: never + render: false + +stages: + - stage: alpha + defaultValue: false + fromVersion: "1.16" + toVersion: "1.16" + - stage: beta + defaultValue: true + fromVersion: "1.17" + toVersion: "1.17" + - stage: stable + defaultValue: true + fromVersion: "1.18" + toVersion: "1.20" + +removed: true +--- +پشتیبانی از اجرای برنامه‌ها در کانتینرهای ویندوز را با یک کاربر غیر پیش‌فرض فعال کنید. برای جزئیات بیشتر به [Configuring RunAsUserName](/docs/tasks/configure-pod-container/configure-runasusername) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/ZeroLimitedNominalConcurrencyShares.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ZeroLimitedNominalConcurrencyShares.md new file mode 100644 index 0000000000000..4a24fb0b6e9b1 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/ZeroLimitedNominalConcurrencyShares.md @@ -0,0 +1,20 @@ +--- +title: ZeroLimitedNominalConcurrencyShares +content_type: feature_gate +_build: + list: never + render: false + +stages: + - stage: beta + defaultValue: false + fromVersion: "1.29" + toVersion: "1.29" + - stage: stable + defaultValue: true + fromVersion: "1.30" + toVersion: "1.31" + +removed: true +--- +به [priority & fairness](/docs/concepts/cluster-administration/flow-control/) در سرور API اجازه دهید تا از مقدار صفر برای فیلد `nominalConcurrencyShares` در بخش `limited` از سطح اولویت استفاده کند. \ No newline at end of file diff --git a/content/fa/docs/reference/command-line-tools-reference/feature-gates/index.md b/content/fa/docs/reference/command-line-tools-reference/feature-gates/index.md new file mode 100644 index 0000000000000..483a7295e32a4 --- /dev/null +++ b/content/fa/docs/reference/command-line-tools-reference/feature-gates/index.md @@ -0,0 +1,100 @@ +--- +title: دروازه‌های ویژگی +weight: 10 +content_type: concept +card: + name: reference + weight: 60 +--- + + +این صفحه شامل مروری بر دروازه‌های ویژگی مختلفی است که یک مدیر می‌تواند در اجزای مختلف Kubernetes مشخص کند. + +برای توضیح مراحل یک ویژگی، به [feature stages](#feature-stages) مراجعه کنید. + + +## Overview + +دروازه‌های ویژگی مجموعه‌ای از جفت‌های key=value هستند که ویژگی‌های Kubernetes را توصیف می‌کنند. +شما می‌توانید این ویژگی‌ها را با استفاده از پرچم خط فرمان `--feature-gates` در هر کامپوننت Kubernetes فعال یا غیرفعال کنید. +هر کامپوننت Kubernetes به شما امکان می‌دهد مجموعه‌ای از دروازه‌های ویژگی را که مربوط به آن کامپوننت هستند فعال یا غیرفعال کنید. +از پرچم `-h` برای مشاهده مجموعه کاملی از دروازه‌های ویژگی برای همه کامپوننت‌ها استفاده کنید. +برای تنظیم دروازه‌های ویژگی برای یک کامپوننت، مانند kubelet، از پرچم `--feature-gates` که به لیستی از جفت‌های ویژگی اختصاص داده شده است، استفاده کنید: + +```shell +--feature-gates=...,GracefulNodeShutdown=true +``` + +جداول زیر خلاصه‌ای از دروازه‌های ویژگی هستند که می‌توانید روی اجزای مختلف Kubernetes تنظیم کنید. + +- ستون "Since" شامل انتشار Kubernetes هنگام معرفی یک ویژگی یا تغییر مرحله انتشار آن است. +- ستون "Until" اگر خالی نباشد، شامل آخرین انتشار Kubernetes است که در آن هنوز می‌توانید از یک دروازه ویژگی استفاده کنید. +- اگر یک ویژگی در حالت آلفا یا بتا باشد، می‌توانید ویژگی ذکر شده را در جدول [Alpha/Beta feature gate table](#feature-gates-for-alpha-or-beta-features). پیدا کنید. +- اگر یک ویژگی پایدار است، می‌توانید تمام مراحل آن ویژگی را که در جدول [Graduated/Deprecated feature gate table](#feature-gates-for-graduated-or-deprecated-features). ذکر شده است، پیدا کنید. - جدول [Graduated/Deprecated feature gate table](#feature-gates-for-graduated-or-deprecated-features) + +همچنین ویژگی‌های منسوخ‌شده و حذف‌شده را فهرست می‌کند. + + +{{< note >}} +برای مراجعه به دروازه‌های ویژگی قدیمی که حذف شده‌اند، لطفاً به [feature gates removed](/docs/reference/command-line-tools-reference/feature-gates-removed/). مراجعه کنید. +{{< /note >}} + + +### Feature gates for Alpha or Beta features + +{{< feature-gate-table include="alpha,beta" caption="Feature gates for features in Alpha or Beta states" >}} + + +### Feature gates for graduated or deprecated features + +{{< feature-gate-table include="ga,deprecated" caption="Feature Gates for Graduated or Deprecated Features" >}} + +## Using a feature + +### Feature stages + + +یک ویژگی می‌تواند در مرحله *Alpha*، *بتا* یا *GA* باشد. +یک ویژگی *Alpha* به معنای: + + +* به طور پیش‌فرض غیرفعال است. +* ممکن است دارای اشکال باشد. فعال کردن این ویژگی ممکن است اشکالات را آشکار کند. +* پشتیبانی از این ویژگی ممکن است در هر زمانی و بدون اطلاع قبلی قطع شود. +* ممکن است API در نسخه‌های بعدی نرم‌افزار بدون اطلاع قبلی به روش‌های ناسازگار تغییر کند. +* به دلیل افزایش خطر اشکالات و عدم پشتیبانی بلندمدت، فقط برای استفاده در خوشه‌های آزمایشی کوتاه‌مدت توصیه می‌شود. + +یک ویژگی *Beta* به این معنی است: + +* معمولاً به طور پیش‌فرض فعال است. گروه‌های API بتا [disabled by default](https://github.com/kubernetes/enhancements/tree/master/keps/sig-architecture/3136-beta-apis-off-by-default). +* این ویژگی به خوبی آزمایش شده است. فعال کردن این ویژگی ایمن تلقی می‌شود. +* پشتیبانی از این ویژگی به طور کلی قطع نخواهد شد، اگرچه جزئیات ممکن است تغییر کند. +*طرحواره و/یا معنای اشیاء ممکن است در نسخه بتا یا پایدار بعدی به روش‌های ناسازگار تغییر کند. وقتی این اتفاق بیفتد، ما دستورالعمل‌هایی برای مهاجرت به نسخه بعدی ارائه خواهیم داد. این ممکن است نیاز به حذف، ویرایش و ایجاد مجدد اشیاء API داشته باشد. فرآیند ویرایش ممکن است نیاز به کمی تفکر داشته باشد. این ممکن است نیاز به زمان از کار افتادن برنامه‌هایی که به این ویژگی متکی هستند، داشته باشد. +* به دلیل احتمال تغییرات ناسازگار در نسخه‌های بعدی، فقط برای کاربردهای غیر حیاتی تجاری توصیه می‌شود. اگر چندین خوشه دارید که می‌توانند به طور مستقل ارتقا یابند، ممکن است بتوانید این محدودیت را کاهش دهید. + +{{< note >}} +لطفاً ویژگی‌های *Beta* را امتحان کنید و در مورد آنها بازخورد دهید! +پس از خروج از نسخه بتا، ممکن است ایجاد تغییرات بیشتر برای ما عملی نباشد. + +{{< /note >}} + +یک ویژگی *General Availability* (GA) همچنین به عنوان یک ویژگی *stable* شناخته می‌شود. این به معنی: + +* این ویژگی همیشه فعال است؛ شما نمی‌توانید آن را غیرفعال کنید. +* دیگر به گیت ویژگی مربوطه نیازی نیست +* نسخه‌های پایدار ویژگی‌ها در نرم‌افزار منتشر شده برای بسیاری از نسخه‌های بعدی ظاهر خواهند شد. + +## List of feature gates {#feature-gates} + +هر دروازه ویژگی برای فعال/غیرفعال کردن یک ویژگی خاص طراحی شده است. + + +{{< feature-gate-list include="alpha,beta,ga,deprecated" >}} + +## {{% heading "whatsnext" %}} + +* [deprecation policy](/docs/reference/using-api/deprecation-policy/) برای Kubernetes، رویکرد پروژه برای حذف ویژگی‌ها و اجزا را توضیح می‌دهد. +* از Kubernetes 1.24، APIهای بتای جدید به طور پیش‌فرض فعال نیستند. هنگام فعال کردن یک ویژگی بتا، باید منابع API مرتبط را نیز فعال کنید. +به عنوان مثال، برای فعال کردن یک منبع خاص مانند +`storage.k8s.io/v1beta1/csistoragecapacities`، `--runtime-config=storage.k8s.io/v1beta1/csistoragecapacities` را تنظیم کنید. +برای جزئیات بیشتر در مورد پرچم‌های خط فرمان، به [API Versioning](/docs/reference/using-api/#api-versioning) مراجعه کنید. diff --git a/content/fa/docs/reference/glossary/addons.md b/content/fa/docs/reference/glossary/addons.md new file mode 100644 index 0000000000000..5f4cd52f432ea --- /dev/null +++ b/content/fa/docs/reference/glossary/addons.md @@ -0,0 +1,16 @@ +--- +title: افزونه‌ها +id: addons +date: 2019-12-15 +full_link: /docs/concepts/cluster-administration/addons/ +short_description: > + منابعی که عملکرد کوبرنتیز را گسترش می‌دهند. + +aka: +tags: +- tool +--- + منابعی که عملکرد کوبرنتیز را گسترش می‌دهند. + + +[نصب افزونه‌ها](/docs/concepts/cluster-administration/addons/) اطلاعات بیشتری در مورد استفاده از افزونه‌ها در خوشه شما ارائه می‌دهد و برخی از افزونه‌های محبوب را فهرست می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/glossary/admission-controller.md b/content/fa/docs/reference/glossary/admission-controller.md new file mode 100644 index 0000000000000..115ae74c28396 --- /dev/null +++ b/content/fa/docs/reference/glossary/admission-controller.md @@ -0,0 +1,20 @@ +--- +title: مسئول پذیرش +id: admission-controller +date: 2019-06-28 +full_link: /docs/reference/access-authn-authz/admission-controllers/ +short_description: > + قطعه کدی که درخواست‌های ارسالی به سرور Kubernetes API را قبل از ماندگاری شیء، رهگیری می‌کند. + +aka: +tags: +- extension +- security +--- +قطعه کدی که درخواست‌های ارسالی به سرور Kubernetes API را قبل از ماندگاری شیء، رهگیری می‌کند. + + + +کنترل‌کننده‌های پذیرش برای سرور API کوبرنتیز قابل پیکربندی هستند و می‌توانند "اعتبارسنجی"، "تغییر" یا هر دو باشند. هر کنترل‌کننده پذیرش می‌تواند درخواست را رد کند. کنترل‌کننده‌های تغییر ممکن است اشیاء پذیرفته‌شده را تغییر دهند؛ کنترل‌کننده‌های اعتبارسنجی ممکن است این کار را نکنند. + +* [کنترل‌کننده‌های پذیرش در مستندات کوبرنتیز](/docs/reference/access-authn-authz/admission-controllers/) \ No newline at end of file diff --git a/content/fa/docs/reference/glossary/affinity.md b/content/fa/docs/reference/glossary/affinity.md new file mode 100644 index 0000000000000..66bec422c5718 --- /dev/null +++ b/content/fa/docs/reference/glossary/affinity.md @@ -0,0 +1,22 @@ +--- +title: وابستگی +id: affinity +date: 2019-01-11 +full_link: /docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity +short_description: > + قوانینی که توسط زمانبند برای تعیین محل قرارگیری پادها استفاده می‌شود +aka: +tags: +- fundamental +--- + +در Kubernetes، _affinity_ مجموعه‌ای از قوانین است که به برنامه‌ریز در مورد محل قرارگیری پادها راهنمایی می‌کند. + + +دو نوع affinity وجود دارد: +* [node affinity](/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity) +* [pod-to-pod affinity](/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity) + +قوانین با استفاده از Kubernetes {{< glossary_tooltip term_id="label" text="برچسب‌ها">}} +و {{< glossary_tooltip term_id="selector" text="انتخابگرها">}} که در {{< glossary_tooltip term_id="pod" text="پادها">}} مشخص شده‌اند تعریف می‌شوند، +و بسته به اینکه چقدر می‌خواهید Scheduler آنها را سخت‌گیرانه اعمال کند، می‌توانند اجباری (required) یا ترجیحی (preferred) باشند. diff --git a/content/fa/docs/reference/glossary/aggregation-layer.md b/content/fa/docs/reference/glossary/aggregation-layer.md new file mode 100644 index 0000000000000..817afacf36222 --- /dev/null +++ b/content/fa/docs/reference/glossary/aggregation-layer.md @@ -0,0 +1,19 @@ +--- +title: لایه تجمیع +id: aggregation-layer +date: 2018-10-08 +full_link: /docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/ +short_description: > + لایه تجمیع به شما امکان می‌دهد APIهای اضافی به سبک کوبرنتیز را در خوشه خود نصب کنید. + +aka: +tags: +- architecture +- extension +- operation +--- + لایه تجمیع به شما امکان می‌دهد APIهای اضافی به سبک کوبرنتیز را در خوشه خود نصب کنید. + + + +وقتی {{< glossary_tooltip text="سرور API کوبرنتیز" term_id="kube-apiserver" >}} را برای [پشتیبانی از APIهای اضافی](/docs/tasks/extend-kubernetes/configure-aggregation-layer/) پیکربندی کرده‌اید، می‌توانید اشیای `APIService` را برای «ادعا کردن» یک مسیر URL در API کوبرنتیز اضافه کنید. diff --git a/content/fa/docs/reference/glossary/annotation.md b/content/fa/docs/reference/glossary/annotation.md new file mode 100644 index 0000000000000..ef228dca340d5 --- /dev/null +++ b/content/fa/docs/reference/glossary/annotation.md @@ -0,0 +1,16 @@ +--- +title: حاشیه‌نویسی +id: annotation +date: 2018-04-12 +full_link: /docs/concepts/overview/working-with-objects/annotations +short_description: > + یک جفت کلید-مقدار که برای الصاق فراداده‌های دلخواه و غیرشناسایی به اشیاء استفاده می‌شود. +aka: +tags: +- fundamental +--- + یک جفت کلید-مقدار که برای الصاق فراداده‌های دلخواه و غیرشناسایی به اشیاء استفاده می‌شود. + + + +فراداده‌های موجود در یک حاشیه‌نویسی می‌توانند کوچک یا بزرگ، ساختاریافته یا بدون ساختار باشند و می‌توانند شامل کاراکترهایی باشند که توسط {{< glossary_tooltip text="labels" term_id="label" >}} مجاز نیستند. کلاینت‌هایی مانند ابزارها و کتابخانه‌ها می‌توانند این فراداده‌ها را بازیابی کنند. diff --git a/content/fa/docs/reference/glossary/api-eviction.md b/content/fa/docs/reference/glossary/api-eviction.md new file mode 100644 index 0000000000000..80f792399ebdc --- /dev/null +++ b/content/fa/docs/reference/glossary/api-eviction.md @@ -0,0 +1,23 @@ +--- +title: اخراج با ابتکار API +id: api-eviction +date: 2021-04-27 +full_link: /docs/concepts/scheduling-eviction/api-eviction/ +short_description: > + حذف آغاز شده توسط API فرآیندی است که طی آن شما از API حذف برای ایجاد یک شیء حذف که باعث خاتمه غلاف دلپذیر می‌شود، استفاده می‌کنید. +aka: +tags: +- operation +--- +تبعید آغازشده توسط API فرایندی است که در آن از [API تبعید](/docs/reference/generated/kubernetes-api/{{}}/#create-eviction-pod-v1-core) برای ایجاد یک شیء `Eviction` استفاده می‌کنید که خاتمه‌ی نرم (graceful) پاد را راه‌اندازی می‌کند. + + + +شما می‌توانید درخواست تبعید را هم با فراخوانی مستقیم API تبعید از طریق یک کلاینت سرور API کوبرنتیز، مانند دستور `kubectl drain`، ارسال کنید. +وقتی یک شیء `Eviction` ایجاد شود، سرور API پاد را خاتمه می‌دهد. + +تبعید آغازشده توسط API از [`PodDisruptionBudgets`](/docs/tasks/run-application/configure-pdb/) و [`terminationGracePeriodSeconds`](/docs/concepts/workloads/pods/pod-lifecycle#pod-termination) پیکربندی‌شده‌ی شما پیروی می‌کند. + +تبعید آغازشده توسط API با [تبعید بر اثر فشار گره](/docs/concepts/scheduling-eviction/node-pressure-eviction/) یکسان نیست. + +* برای اطلاعات بیشتر به [تبعید آغازشده توسط API](/docs/concepts/scheduling-eviction/api-eviction/) مراجعه کنید. diff --git a/content/fa/docs/reference/glossary/api-group.md b/content/fa/docs/reference/glossary/api-group.md new file mode 100644 index 0000000000000..9615a07df7662 --- /dev/null +++ b/content/fa/docs/reference/glossary/api-group.md @@ -0,0 +1,19 @@ +--- +title: گروه API +id: api-group +date: 2019-09-02 +full_link: /docs/concepts/overview/kubernetes-api/#api-groups-and-versioning +short_description: > + مجموعه‌ای از مسیرهای مرتبط در API کوبرنتیز. + +aka: +tags: +- fundamental +- architecture +--- +مجموعه‌ای از مسیرهای مرتبط در API کوبرنتیز. + + +شما می‌توانید هر گروه API را با تغییر پیکربندی سرور API خود فعال یا غیرفعال کنید. همچنین می‌توانید مسیرهای مربوط به منابع خاص را غیرفعال یا فعال نمایید. گروه API افزودن قابلیت به API کوبرنتیز را آسان‌تر می‌کند. گروه API در مسیر REST و در فیلد `apiVersion` یک شیء سریال‌شده مشخص می‌شود. + +* برای اطلاعات بیشتر [گروه API](/docs/concepts/overview/kubernetes-api/#api-groups-and-versioning) را بخوانید. diff --git a/content/fa/docs/reference/glossary/api-resource.md b/content/fa/docs/reference/glossary/api-resource.md new file mode 100644 index 0000000000000..436ee55673d0d --- /dev/null +++ b/content/fa/docs/reference/glossary/api-resource.md @@ -0,0 +1,17 @@ +--- +title: منبع API +id: api-resource +date: 2025-02-09 +full_link: /docs/reference/using-api/api-concepts/#standard-api-terminology +short_description: > + یک موجودیت کوبرنتیز، که نشان‌دهنده‌ی یک نقطه‌ی پایانی روی سرور کوبرنتیز API است. +aka: + - Resource +tags: +- architecture +--- +یک موجودیت در سیستم نوع کوبرنتیز، متناظر با یک نقطه‌انتهایی در {{< glossary_tooltip text="رابط برنامه‌نویسی کوبرنتیز" term_id="kubernetes-api" >}}. +یک منبع معمولاً نمایانگر یک {{< glossary_tooltip text="شیء" term_id="object" >}} است. +برخی از منابع نمایانگر عملیاتی روی اشیاء دیگر هستند، مانند بررسی مجوز. + +هر منبع یک نقطه‌انتهایی HTTP (URI) در سرور API کوبرنتیز را نمایش می‌دهد و طرح‌واره اشیاء یا عملیات روی آن منبع را تعریف می‌کند. \ No newline at end of file diff --git a/content/fa/docs/reference/glossary/app-container.md b/content/fa/docs/reference/glossary/app-container.md new file mode 100644 index 0000000000000..f25bb2e782923 --- /dev/null +++ b/content/fa/docs/reference/glossary/app-container.md @@ -0,0 +1,18 @@ +--- +title: کانتینر برنامه +id: app-container +date: 2019-02-12 +full_link: +short_description: > + کانتینری که برای اجرای بخشی از یک بار کاری استفاده می‌شود. با کانتینر init مقایسه کنید. + +aka: +tags: +- workload +--- + کانتینرهای برنامه (یا اپلیکیشن) {{< glossary_tooltip text="کانتینرها" term_id="container" >}} در یک {{< glossary_tooltip text="پاد" term_id="pod" >}} هستند که پس از اتمام هر {{< glossary_tooltip text="کانتینر‌های init" term_id="init-container" >}} اجرا می‌شوند. + + + +کانتینر init به شما اجازه می‌دهد جزئیات راه‌اندازی را که برای کل {{< glossary_tooltip text="بارکاری" term_id="workload" >}} مهم است و پس از شروع کانتینر برنامه نیازی به ادامه اجرا ندارند، جدا نگه دارید. +اگر برای یک پاد هیچ کانتینر init پیکربندی نشده باشد، تمام کانتینرهای آن پاد، کانتینر برنامه محسوب می‌شوند. diff --git a/content/fa/docs/reference/glossary/application-architect.md b/content/fa/docs/reference/glossary/application-architect.md new file mode 100644 index 0000000000000..6508a2979b4ca --- /dev/null +++ b/content/fa/docs/reference/glossary/application-architect.md @@ -0,0 +1,17 @@ +--- +title: معمار برنامه کاربردی +id: application-architect +date: 2018-04-12 +full_link: +short_description: > + شخصی که مسئول طراحی سطح بالای یک برنامه کاربردی است. + +aka: +tags: +- user-type +--- + شخصی که مسئول طراحی سطح بالای یک برنامه کاربردی است. + + + +یک معمار تضمین می‌کند که پیاده‌سازی یک برنامه به آن اجازه می‌دهد تا با اجزای اطراف خود به روشی مقیاس‌پذیر و قابل نگهداری تعامل داشته باشد. اجزای اطراف شامل پایگاه‌های داده، زیرساخت ثبت وقایع و سایر میکروسرویس‌ها هستند. diff --git a/content/fa/docs/reference/glossary/application-developer.md b/content/fa/docs/reference/glossary/application-developer.md new file mode 100644 index 0000000000000..79e034e33c91a --- /dev/null +++ b/content/fa/docs/reference/glossary/application-developer.md @@ -0,0 +1,17 @@ +--- +title: توسعه‌دهنده اپلیکیشن +id: application-developer +date: 2018-04-12 +full_link: +short_description: > + شخصی که برنامه‌ای می‌نویسد که در یک خوشه کوبرنتیز اجرا می‌شود. + +aka: +tags: +- user-type +--- + شخصی که برنامه‌ای می‌نویسد که در یک خوشه کوبرنتیز اجرا می‌شود. + + + +یک توسعه‌دهنده‌ی اپلیکیشن روی یک بخش از اپلیکیشن تمرکز می‌کند. مقیاس تمرکز آنها ممکن است از نظر اندازه به طور قابل توجهی متفاوت باشد. diff --git a/content/fa/docs/reference/glossary/applications.md b/content/fa/docs/reference/glossary/applications.md new file mode 100644 index 0000000000000..dd6ac949e64ce --- /dev/null +++ b/content/fa/docs/reference/glossary/applications.md @@ -0,0 +1,12 @@ +--- +title: اپلیکیشن +id: applications +date: 2019-05-12 +full_link: +short_description: > + لایه‌ای که برنامه‌های مختلف کانتینر شده در آن اجرا می‌شوند. +aka: +tags: +- fundamental +--- + لایه‌ای که برنامه‌های مختلف کانتینر شده در آن اجرا می‌شوند. diff --git a/content/fa/docs/reference/glossary/approver.md b/content/fa/docs/reference/glossary/approver.md new file mode 100644 index 0000000000000..c9a9b57a711cb --- /dev/null +++ b/content/fa/docs/reference/glossary/approver.md @@ -0,0 +1,17 @@ +--- +title: تأییدکننده +id: approver +date: 2018-04-12 +full_link: +short_description: > + شخصی که می‌تواند مشارکت‌های کد کوبرنتیز را بررسی و تأیید کند. + +aka: +tags: +- community +--- + شخصی که می‌تواند مشارکت‌های کد کوبرنتیز را بررسی و تأیید کند. + + + +در حالی که بررسی کد بر کیفیت و صحت کد متمرکز است، تأیید بر پذیرش جامع یک مشارکت متمرکز است. پذیرش جامع شامل سازگاری رو به عقب/رو به جلو، رعایت API و قراردادهای پرچم، مسائل جزئی عملکرد و صحت، تعامل با سایر بخش‌های سیستم و موارد دیگر می‌شود. وضعیت تأییدکننده به بخشی از پایگاه کد محدود می‌شود. قبلاً به تأییدکنندگان، نگهدارندگان گفته می‌شد. diff --git a/content/fa/docs/reference/glossary/cadvisor.md b/content/fa/docs/reference/glossary/cadvisor.md new file mode 100644 index 0000000000000..18c4b0af5c5ac --- /dev/null +++ b/content/fa/docs/reference/glossary/cadvisor.md @@ -0,0 +1,16 @@ +--- +title: cAdvisor +id: cadvisor +date: 2021-12-09 +full_link: https://github.com/google/cadvisor/ +short_description: > + ابزاری که درک درستی از میزان استفاده از منابع و ویژگی‌های عملکرد کانتینرها ارائه می‌دهد +aka: +tags: +- tool +--- +cAdvisor (Container Advisor) به کاربران {{< glossary_tooltip text="کانتینرها" term_id="container" >}} کمک می‌کند تا با مصرف منابع و ویژگی‌های عملکرد کانتینرهای در حال اجرای خود آشنا شوند. + + + +این ابزار یک دیمن در حال اجرا است که اطلاعات مربوط به کانتینرهای در حال اجرا را جمع‌آوری، تجمیع، پردازش و صادر می‌کند. به طور مشخص، برای هر کانتینر پارامترهای جداسازی منابع، مصرف تاریخی منابع، نمودارهای هیستوگرام مصرف کامل منابع در طول زمان و آمار شبکه را نگهداری می‌کند. این داده‌ها به تفکیک کانتینر و در سطح کل ماشین صادر می‌شوند. diff --git a/content/fa/docs/reference/glossary/certificate.md b/content/fa/docs/reference/glossary/certificate.md new file mode 100644 index 0000000000000..25c34b50291e9 --- /dev/null +++ b/content/fa/docs/reference/glossary/certificate.md @@ -0,0 +1,17 @@ +--- +title: گواهی +id: certificate +date: 2018-04-12 +full_link: /docs/tasks/tls/managing-tls-in-a-cluster/ +short_description: > + یک فایل رمزنگاری‌شده‌ی امن که برای اعتبارسنجی دسترسی به خوشه کوبرنتیز استفاده می‌شود. + +aka: +tags: +- security +--- + یک فایل رمزنگاری‌شده‌ی امن که برای اعتبارسنجی دسترسی به خوشه کوبرنتیز استفاده می‌شود. + + + +گواهینامه‌ها به برنامه‌های درون یک خوشه کوبرنتیز امکان دسترسی ایمن به API کوبرنتیز را می‌دهند. گواهینامه‌ها تأیید می‌کنند که کلاینت‌ها مجاز به دسترسی به API هستند. diff --git a/content/fa/docs/reference/glossary/cgroup.md b/content/fa/docs/reference/glossary/cgroup.md new file mode 100644 index 0000000000000..0dfdc3eb46c49 --- /dev/null +++ b/content/fa/docs/reference/glossary/cgroup.md @@ -0,0 +1,17 @@ +--- +title: cgroup (control group) +id: cgroup +date: 2019-06-25 +full_link: +short_description: > + گروهی از فرآیندهای لینوکس با جداسازی منابع، حسابداری و محدودیت‌های اختیاری. + +aka: +tags: +- fundamental +--- +گروهی از فرآیندهای لینوکس با جداسازی منابع، حسابداری و محدودیت‌های اختیاری. + + + +cgroup یک ویژگی هسته لینوکس است که میزان استفاده از منابع (پردازنده، حافظه، ورودی/خروجی دیسک، شبکه) را برای مجموعه‌ای از فرآیندها محدود، محاسبه و ایزوله می‌کند.. diff --git a/content/fa/docs/reference/glossary/cidr.md b/content/fa/docs/reference/glossary/cidr.md new file mode 100644 index 0000000000000..a1a513f8636c3 --- /dev/null +++ b/content/fa/docs/reference/glossary/cidr.md @@ -0,0 +1,18 @@ +--- +title: CIDR +id: cidr +date: 2019-11-12 +full_link: +short_description: > + CIDR یک نمادگذاری برای توصیف بلوک‌های آدرس‌های IP است و به طور گسترده در پیکربندی‌های مختلف شبکه استفاده می‌شود. + +aka: +tags: +- networking +--- +CIDR (Classless Inter-Domain Routing) یک نگاشت برای توصیف بلوک‌های آدرس IP است و به‌طور گسترده در پیکربندی‌های مختلف شبکه استفاده می‌شود. + + + +در زمینه کوبرنتیز، به هر {{< glossary_tooltip text="گره" term_id="node" >}} با استفاده از یک آدرس شروع و یک ماسک زیرشبکه در قالب CIDR، محدوده‌ای از آدرس‌های IP اختصاص داده می‌شود. این امکان را فراهم می‌کند که هر {{< glossary_tooltip text="پاد" term_id="pod" >}} یک آدرس IP یکتا دریافت کند. اگرچه این مفهوم در اصل برای IPv4 ارائه شد، اما CIDR به IPv6 نیز گسترش یافته است. + diff --git a/content/fa/docs/reference/glossary/cla.md b/content/fa/docs/reference/glossary/cla.md new file mode 100644 index 0000000000000..da904afb896d2 --- /dev/null +++ b/content/fa/docs/reference/glossary/cla.md @@ -0,0 +1,18 @@ +--- +title: CLA (توافقنامه مجوز مشارکت‌کننده) +id: cla +date: 2018-04-12 +full_link: https://github.com/kubernetes/community/blob/master/CLA.md +short_description: > + شرایطی که تحت آن یک مشارکت‌کننده، مجوزی را برای مشارکت‌های خود به یک پروژه متن‌باز اعطا می‌کند. + +aka: +tags: +- community +--- + شرایطی که تحت آن یک {{< glossary_tooltip text="مشارکت‌کننده" term_id="contributor" >}} به یک پروژه متن‌باز برای مشارکت‌های خود مجوز اعطا می‌کند. + + + +CLAs به حل اختلافات حقوقی مربوط به مطالب مشارکتی و مالکیت فکری (IP) کمک می‌کنند. + diff --git a/content/fa/docs/reference/glossary/cloud-controller-manager.md b/content/fa/docs/reference/glossary/cloud-controller-manager.md new file mode 100644 index 0000000000000..1f641166f9dfc --- /dev/null +++ b/content/fa/docs/reference/glossary/cloud-controller-manager.md @@ -0,0 +1,19 @@ +--- +title: مدیر کنترل‌کننده ابری +id: cloud-controller-manager +date: 2018-04-12 +full_link: /docs/concepts/architecture/cloud-controller/ +short_description: > + کامپوننت صفحه کنترل که Kubernetes را با ارائه دهندگان ابری شخص ثالث ادغام می‌کند. +aka: +tags: +- architecture +- operation +--- + یک جزء از {{< glossary_tooltip text="صف کنترل" term_id="control-plane" >}} کوبرنتیز است که منطق کنترلی مخصوص ابر را در خود جای داده است. مدیر کنترل ابری به شما اجازه می‌دهد خوشه‌تان را به API ارائه‌دهنده ابری‌تان متصل کنید و اجزایی که با آن پلتفرم ابری تعامل دارند را از اجزایی که تنها با خوشه شما تعامل می‌کنند جدا می‌کند. + + + +با جدا کردن منطق تعامل‌پذیری بین کوبرنتیز و زیرساخت ابری زیربنایی، جزء cloud-controller-manager به ارائه‌دهندگان ابری امکان می‌دهد ویژگی‌ها را با سرعتی متفاوت نسبت به پروژه اصلی کوبرنتیز عرضه کنند. + + diff --git a/content/fa/docs/reference/glossary/cloud-provider.md b/content/fa/docs/reference/glossary/cloud-provider.md new file mode 100644 index 0000000000000..b851547dc90e5 --- /dev/null +++ b/content/fa/docs/reference/glossary/cloud-provider.md @@ -0,0 +1,23 @@ +--- +title: ارائه دهنده ابر +id: cloud-provider +date: 2018-04-12 +short_description: > + سازمانی که پلتفرم رایانش ابری ارائه می‌دهد. + +aka: +- Cloud Service Provider +tags: +- community +--- + یک کسب و کار یا سازمان دیگر که یک پلتفرم رایانش ابری ارائه می‌دهد. + + + +ارائه‌دهندگان ابری، که گاهی ارائه‌دهندگان خدمات ابری (Cloud Service Providers یا CSPها) نامیده می‌شوند، پلتفرم‌ها یا خدمات رایانش ابری را ارائه می‌کنند. + +بسیاری از ارائه‌دهندگان ابری زیرساخت مدیریت‌شده (که گاهی زیرساخت به‌عنوان خدمت یا Infrastructure as a Service – IaaS نامیده می‌شود) ارائه می‌دهند. +با زیرساخت مدیریت‌شده، ارائه‌دهنده ابری مسئول سرورها، ذخیره‌سازی و شبکه است، در حالی که شما لایه‌های بالاتر مانند اجرای خوشه کوبرنتیز را مدیریت می‌کنید. + +همچنین می‌توانید کوبرنتیز را به‌صورت سرویس مدیریت‌شده پیدا کنید؛ که گاهی پلتفرم به‌عنوان خدمت یا Platform as a Service – PaaS نامیده می‌شود. +با کوبرنتیز مدیریت‌شده، ارائه‌دهنده ابری شما مسئول صفحه کنترل کوبرنتیز و {{< glossary_tooltip term_id="node" text="گره‌ها" >}} و زیرساخت‌های وابسته به آن‌ها (شبکه، ذخیره‌سازی و احتمالاً سایر اجزا مانند متوازن‌کننده‌های بار) است. diff --git a/content/fa/docs/reference/glossary/cluster-architect.md b/content/fa/docs/reference/glossary/cluster-architect.md new file mode 100644 index 0000000000000..e5d943161cad4 --- /dev/null +++ b/content/fa/docs/reference/glossary/cluster-architect.md @@ -0,0 +1,18 @@ +--- +title: معمار خوشه‌ +id: cluster-architect +date: 2018-04-12 +full_link: +short_description: > + شخصی که زیرساختی را طراحی می‌کند که شامل یک یا چند خوشه Kubernetes است. + +aka: +tags: +- user-type +--- + شخصی که زیرساختی را طراحی می‌کند که شامل یک یا چند خوشه Kubernetes است. + + + +معماران خوشه به بهترین روش‌ها برای سیستم‌های توزیع‌شده، مانند دسترسی‌پذیری بالا و امنیت، اهمیت می‌دهند. + diff --git a/content/fa/docs/reference/glossary/cluster-infrastructure.md b/content/fa/docs/reference/glossary/cluster-infrastructure.md new file mode 100644 index 0000000000000..ed61032bc92b4 --- /dev/null +++ b/content/fa/docs/reference/glossary/cluster-infrastructure.md @@ -0,0 +1,13 @@ +--- +title: زیرساخت خوشه‌ +id: cluster-infrastructure +date: 2019-05-12 +full_link: +short_description: > + لایه زیرساخت، ماشین‌های مجازی، شبکه، گروه‌های امنیتی و موارد دیگر را فراهم و نگهداری می‌کند. + +aka: +tags: +- operation +--- + لایه زیرساخت، ماشین‌های مجازی، شبکه، گروه‌های امنیتی و موارد دیگر را فراهم و نگهداری می‌کند. diff --git a/content/fa/docs/reference/glossary/cluster-operations.md b/content/fa/docs/reference/glossary/cluster-operations.md new file mode 100644 index 0000000000000..169d4885e2922 --- /dev/null +++ b/content/fa/docs/reference/glossary/cluster-operations.md @@ -0,0 +1,17 @@ +--- +title: عملیات خوشه +id: cluster-operations +date: 2019-05-12 +full_link: +short_description: > + کاری که در مدیریت یک خوشه Kubernetes انجام می‌شود. + +aka: +tags: +- operation +--- + کاری که در مدیریت یک خوشه کوبرنتیز انجام می‌شود: مدیریت عملیات روزمره و هماهنگی به‌روزرسانی‌ها. + + + +نمونه‌هایی از کارهای عملیات خوشه شامل موارد زیر است: استقرار {{< glossary_tooltip text="گره" term_id="node" >}}های جدید برای مقیاس‌بندی خوشه؛ انجام به‌روزرسانی نرم‌افزار؛ اجرای کنترل‌های امنیتی؛ افزودن یا حذف ذخیره‌سازی؛ پیکربندی شبکه خوشه؛ مدیریت قابلیت مشاهده در سطح خوشه؛ و پاسخ به رویدادها. diff --git a/content/fa/docs/reference/glossary/cluster-operator.md b/content/fa/docs/reference/glossary/cluster-operator.md new file mode 100644 index 0000000000000..5ae0505d237d9 --- /dev/null +++ b/content/fa/docs/reference/glossary/cluster-operator.md @@ -0,0 +1,22 @@ +--- +title: عملگر خوشه +id: cluster-operator +date: 2018-04-12 +full_link: +short_description: > + شخصی که خوشهها را پیکربندی، کنترل و نظارت می‌کند. + +aka: +tags: +- user-type +--- + شخصی که خوشهها را پیکربندی، کنترل و نظارت می‌کند. + + + +مسئولیت اصلی آن‌ها حفظ فعال و در حال کار بودن یک خوشه است، که ممکن است شامل فعالیت‌های نگهداری دوره‌ای یا ارتقاءها باشد.
+ +{{< note >}} +اپراتورهای خوشه با [الگوی Operator](/docs/concepts/extend-kubernetes/operator/) که API کوبرنتیز را گسترش می‌دهد، تفاوت دارند. +{{< /note >}} + diff --git a/content/fa/docs/reference/glossary/cluster.md b/content/fa/docs/reference/glossary/cluster.md new file mode 100644 index 0000000000000..2bf8f21067b59 --- /dev/null +++ b/content/fa/docs/reference/glossary/cluster.md @@ -0,0 +1,19 @@ +--- +title: خوشه +id: cluster +date: 2019-06-15 +full_link: +short_description: > + مجموعه‌ای از ماشین‌های کاری، به نام گره‌ها، که برنامه‌های کانتینر شده را اجرا می‌کنند. هر خوشه حداقل یک گره کارگر دارد. +aka: +tags: +- fundamental +- operation +--- +مجموعه‌ای از ماشین‌های کاری، که {{< glossary_tooltip text="گره‌ها" term_id="node" >}} نامیده می‌شوند، +که برنامه‌های کانتینری‌شده را اجرا می‌کنند. هر خوشه حداقل یک گره کاری دارد. + + +گره(های) کاری میزبان {{< glossary_tooltip text="پادها" term_id="pod" >}} هستند که اجزای بارکاری برنامه را تشکیل می‌دهند. +{{< glossary_tooltip text="صف کنترل" term_id="control-plane" >}}، گره‌های کاری و پادهای خوشه را مدیریت می‌کند. +در محیط‌های تولیدی، معمولاً صف کنترل روی چندین کامپیوتر اجرا می‌شود و یک خوشه معمولاً شامل چندین گره است تا تحمل خطا و دسترسی‌پذیری بالا را فراهم کند. diff --git a/content/fa/docs/reference/glossary/cncf.md b/content/fa/docs/reference/glossary/cncf.md new file mode 100644 index 0000000000000..7d79ee8539579 --- /dev/null +++ b/content/fa/docs/reference/glossary/cncf.md @@ -0,0 +1,13 @@ +--- +title: بنیاد محاسبات بومی ابری (CNCF) +id: cncf +date: 2019-05-26 +full_link: https://cncf.io/ +short_description: > + بنیاد محاسبات بومی ابری + +aka: +tags: +- community +--- + بنیاد محاسبات بومی ابری (CNCF) بن‌سازه‌های پایدار ایجاد می‌کند و جامعه‌ای پیرامون [پروژه‌ها](https://www.cncf.io/projects/) پرورش می‌دهد که کانتینرها را به‌عنوان بخشی از معماری میکروسرویس‌ها ارکسترا diff --git a/content/fa/docs/reference/glossary/cni.md b/content/fa/docs/reference/glossary/cni.md new file mode 100644 index 0000000000000..f420d5f224f64 --- /dev/null +++ b/content/fa/docs/reference/glossary/cni.md @@ -0,0 +1,18 @@ +--- +title: رابط شبکه کانتینر (CNI) +id: cni +date: 2018-05-25 +full_link: /docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/ +short_description: > + افزونه‌های رابط شبکه کانتینر (CNI) نوعی افزونه شبکه هستند که به مشخصات appc/CNI پایبند هستند. + + +aka: +tags: +- networking +--- + افزونه‌های رابط شبکه کانتینر (CNI) نوعی افزونه شبکه هستند که به مشخصات appc/CNI پایبند هستند. + + + +* برای اطلاعات بیشتر در مورد کوبرنتیز و CNI، به [**پلاگین‌های شبکه**](/docs/concepts/extend-kubernetes/compute-storage-net/network-plugins/) مراجعه کنید. \ No newline at end of file diff --git a/content/fa/docs/reference/glossary/code-contributor.md b/content/fa/docs/reference/glossary/code-contributor.md new file mode 100644 index 0000000000000..085cca1fdd803 --- /dev/null +++ b/content/fa/docs/reference/glossary/code-contributor.md @@ -0,0 +1,19 @@ +--- +title: مشارکت‌کننده کد +id: code-contributor +date: 2018-04-12 +full_link: https://github.com/kubernetes/community/tree/master/contributors/devel +short_description: > + شخصی که کد پایگاه داده متن‌باز Kubernetes را توسعه داده و در آن مشارکت می‌کند. + +aka: +tags: +- community +- user-type +--- + شخصی که کد پایگاه داده متن‌باز Kubernetes را توسعه داده و در آن مشارکت می‌کند. + + + +آن‌ها همچنین یک {{< glossary_tooltip text="عضو جامعه" term_id="member" >}} فعال هستند که در یک یا چند {{< glossary_tooltip text="گروه‌های علاقه‌مندی ویژه (SIGها)" term_id="sig" >}} شرکت می‌کنند. + diff --git a/content/fa/docs/reference/glossary/configmap.md b/content/fa/docs/reference/glossary/configmap.md new file mode 100644 index 0000000000000..0046f1abdffbf --- /dev/null +++ b/content/fa/docs/reference/glossary/configmap.md @@ -0,0 +1,18 @@ +--- +title: ConfigMap +id: configmap +date: 2018-04-12 +full_link: /docs/concepts/configuration/configmap/ +short_description: > + یک شیء API که برای ذخیره داده‌های غیرمحرمانه در جفت‌های کلید-مقدار استفاده می‌شود. می‌تواند به عنوان متغیرهای محیطی، آرگومان‌های خط فرمان یا فایل‌های پیکربندی در یک حجم استفاده شود. + +aka: +tags: +- core-object +--- +یک شیء API است که برای ذخیره داده‌های غیرمحرمانه به‌صورت جفت‌های کلید–مقدار استفاده می‌شود. +{{< glossary_tooltip text="پادها" term_id="pod" >}} می‌توانند ConfigMapها را به‌عنوان متغیرهای محیطی، آرگومان‌های خط فرمان یا به‌عنوان فایل‌های پیکربندی در یک {{< glossary_tooltip text="والوم" term_id="volume" >}} مصرف کنند. + + + +یک ConfigMap به شما اجازه می‌دهد پیکربندی وابسته به محیط را از {{< glossary_tooltip text="تصاویر کانتینر" term_id="image" >}} جدا کنید، تا برنامه‌های شما به‌راحتی قابل حمل باشند. diff --git a/content/fa/docs/reference/glossary/container-env-variables.md b/content/fa/docs/reference/glossary/container-env-variables.md new file mode 100644 index 0000000000000..977d549d28bf0 --- /dev/null +++ b/content/fa/docs/reference/glossary/container-env-variables.md @@ -0,0 +1,17 @@ +--- +title: متغیرهای محیطی کانتینر +id: container-env-variables +date: 2018-04-12 +full_link: /docs/concepts/containers/container-environment/ +short_description: > + متغیرهای محیطی کانتینر، جفت‌های نام=مقدار هستند که اطلاعات مفیدی را در مورد کانتینرهای در حال اجرا در یک پاد ارائه می‌دهند. + +aka: +tags: +- fundamental +--- + متغیرهای محیطی کانتینر، جفت‌های نام=مقدار هستند که اطلاعات مفیدی را در مورد کانتینرهای در حال اجرا در یک {{< glossary_tooltip text="پاد" term_id="pod" >}} ارائه می‌دهند. + + + +متغیرهای محیطی کانتینر اطلاعاتی را فراهم می‌کنند که توسط برنامه‌های کانتینری در حال اجرا نیاز است و همچنین اطلاعاتی درباره منابع مهم برای {{< glossary_tooltip text="کانتینرها" term_id="container" >}} ارائه می‌دهند. برای مثال، جزئیات سیستم فایل، اطلاعات مربوط به خود کانتینر و سایر منابع خوشه مانند نقاط پایانی سرویس. diff --git a/content/fa/docs/reference/glossary/container-lifecycle-hooks.md b/content/fa/docs/reference/glossary/container-lifecycle-hooks.md new file mode 100644 index 0000000000000..d423ee69418e4 --- /dev/null +++ b/content/fa/docs/reference/glossary/container-lifecycle-hooks.md @@ -0,0 +1,17 @@ +--- +title: قلاب‌های چرخه عمر کانتینر +id: container-lifecycle-hooks +date: 2018-10-08 +full_link: /docs/concepts/containers/container-lifecycle-hooks/ +short_description: > + قلاب‌های چرخه عمر، رویدادها را در چرخه عمر مدیریت کانتینر نمایش می‌دهند و به کاربر اجازه می‌دهند هنگام وقوع رویدادها، کدی را اجرا کند. + +aka: +tags: +- extension +--- + قلاب‌های چرخه عمر، رویدادها را در چرخه عمر مدیریت {{< glossary_tooltip text="کانتینر" term_id="container" >}} نمایش می‌دهند و به کاربر اجازه می‌دهند هنگام وقوع رویدادها، کدی را اجرا کند. + + + +دو قلاب در معرض کانتینرها قرار دارند: PostStart که بلافاصله پس از ایجاد کانتینر اجرا می‌شود و PreStop که مسدودکننده است و بلافاصله قبل از خاتمه کانتینر فراخوانی می‌شود. \ No newline at end of file diff --git a/content/fa/docs/reference/glossary/container-runtime.md b/content/fa/docs/reference/glossary/container-runtime.md new file mode 100644 index 0000000000000..e992dd8188073 --- /dev/null +++ b/content/fa/docs/reference/glossary/container-runtime.md @@ -0,0 +1,21 @@ +--- +title: زمان اجرای کانتینر +id: container-runtime +date: 2019-06-05 +full_link: /docs/setup/production-environment/container-runtimes +short_description: > + زمان اجرای کانتینر، نرم‌افزاری است که مسئول اجرای کانتینرها است. + +aka: +tags: +- fundamental +- workload +--- + یک جزء بنیادی که به کوبرنتیز امکان اجرای مؤثر کانتینرها را می‌دهد. + این جزء مسئول مدیریت اجرای کانتینرها و چرخه عمر آن‌ها در محیط کوبرنتیز است. + + + +کوبرنتیز از محیط‌های اجرای کانتینر مانند +{{< glossary_tooltip term_id="containerd" >}}، {{< glossary_tooltip term_id="cri-o" >}} +و هر پیاده‌سازی دیگری از [CRI کوبرنتیز (رابط اجرای کانتینر)](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md) پشتیبانی می‌کند. diff --git a/content/fa/docs/reference/glossary/container.md b/content/fa/docs/reference/glossary/container.md new file mode 100644 index 0000000000000..b6224b27baf9f --- /dev/null +++ b/content/fa/docs/reference/glossary/container.md @@ -0,0 +1,19 @@ +--- +title: کانتینر +id: container +date: 2018-04-12 +full_link: /docs/concepts/containers/ +short_description: > + یک ایمیج اجرایی سبک و قابل حمل که شامل نرم‌افزار و تمام وابستگی‌های آن است. + +aka: +tags: +- fundamental +- workload +--- + یک ایمیج اجرایی سبک و قابل حمل که شامل نرم‌افزار و تمام وابستگی‌های آن است. + + + +کانتینرها برنامه‌ها را از زیرساخت میزبان اصلی جدا می‌کنند تا استقرار در محیط‌های ابری یا سیستم‌عامل‌های مختلف آسان‌تر شود و مقیاس‌پذیری آسان‌تری داشته باشند. +برنامه‌هایی که درون کانتینرها اجرا می‌شوند، برنامه‌های کانتینری‌شده نامیده می‌شوند. فرآیند دسته‌بندی این برنامه‌ها و وابستگی‌های آنها در یک تصویر کانتینر، کانتینرسازی نامیده می‌شود. \ No newline at end of file diff --git a/content/fa/docs/reference/glossary/containerd.md b/content/fa/docs/reference/glossary/containerd.md new file mode 100644 index 0000000000000..5796f5e31e822 --- /dev/null +++ b/content/fa/docs/reference/glossary/containerd.md @@ -0,0 +1,17 @@ +--- +title: containerd +id: containerd +date: 2019-05-14 +full_link: https://containerd.io/docs/ +short_description: > + یک محیط اجرای کانتینر با تأکید بر سادگی، استحکام و قابلیت حمل + +aka: +tags: +- tool +--- + یک محیط اجرای کانتینر با تأکید بر سادگی، استحکام و قابلیت حمل + + + +containerd یک محیط اجرای {{< glossary_tooltip text="کانتینر" term_id="container" >}} است که به‌صورت یک دیمن در لینوکس یا ویندوز اجرا می‌شود. containerd مسئول دریافت و ذخیره تصاویر کانتینر، اجرای کانتینرها، فراهم‌سازی دسترسی شبکه و موارد دیگر است. diff --git a/content/fa/docs/reference/glossary/contributor.md b/content/fa/docs/reference/glossary/contributor.md new file mode 100644 index 0000000000000..e6bcfeddc8e8d --- /dev/null +++ b/content/fa/docs/reference/glossary/contributor.md @@ -0,0 +1,18 @@ +--- +title: مشارکت‌کننده +id: contributor +date: 2018-04-12 +full_link: +short_description: > + کسی که کد، مستندات یا وقت خود را برای کمک به پروژه یا جامعه Kubernetes اهدا می‌کند. + +aka: +tags: +- community +--- + کسی که کد، مستندات یا وقت خود را برای کمک به پروژه یا جامعه Kubernetes اهدا می‌کند. + + + +مشارکت‌ها شامل pull requestها (PR)، issueها، بازخورد، شرکت در {{< glossary_tooltip text="گروه‌های علاقه‌مندی ویژه (SIG)" term_id="sig" >}} یا سازماندهی رویدادهای جامعه است. + diff --git a/content/fa/docs/reference/glossary/control-plane.md b/content/fa/docs/reference/glossary/control-plane.md new file mode 100644 index 0000000000000..f8e7099efcb09 --- /dev/null +++ b/content/fa/docs/reference/glossary/control-plane.md @@ -0,0 +1,25 @@ +--- +title: صفحه کنترل +id: control-plane +date: 2019-05-12 +full_link: +short_description: > + لایه هماهنگ‌سازی کانتینر که API و رابط‌ها را برای تعریف، استقرار و مدیریت چرخه عمر کانتینرها در معرض دید قرار می‌دهد.. + +aka: +tags: +- fundamental +--- + لایه هماهنگ‌سازی کانتینر که API و رابط‌ها را برای تعریف، استقرار و مدیریت چرخه عمر کانتینرها در معرض دید قرار می‌دهد. + + + +این لایه از اجزای مختلفی تشکیل شده است، مانند (اما محدود به): + +* {{< glossary_tooltip text="etcd" term_id="etcd" >}} +* {{< glossary_tooltip text="سرور API" term_id="kube-apiserver" >}} +* {{< glossary_tooltip text="زمان‌بند" term_id="kube-scheduler" >}} +* {{< glossary_tooltip text="مدیر کنترل" term_id="kube-controller-manager" >}} +* {{< glossary_tooltip text="مدیر کنترل ابری" term_id="cloud-controller-manager" >}} + +این اجزا می‌توانند به‌عنوان سرویس‌های سنتی سیستم‌عامل (دایمون) یا به‌صورت کانتینر اجرا شوند. میزبان‌هایی که این اجزا روی آن‌ها اجرا می‌شدند، Historically به‌عنوان {{< glossary_tooltip text="مسترها" term_id="master" >}} شناخته می‌شدند. diff --git a/content/fa/docs/reference/glossary/controller.md b/content/fa/docs/reference/glossary/controller.md new file mode 100644 index 0000000000000..421bde4ab1227 --- /dev/null +++ b/content/fa/docs/reference/glossary/controller.md @@ -0,0 +1,21 @@ +--- +title: کنترل کننده +id: controller +date: 2018-04-12 +full_link: /docs/concepts/architecture/controller/ +short_description: > + یک حلقه کنترلی که وضعیت مشترک خوشه را از طریق apiserver رصد می‌کند و با ایجاد تغییرات، سعی در انتقال وضعیت فعلی به سمت وضعیت مطلوب دارد. + +aka: +tags: +- architecture +- fundamental +--- +در کوبرنتیز، کنترلرها حلقه‌های کنترلی هستند که وضعیت {{< glossary_tooltip term_id="cluster" text="خوشه" >}} شما را زیر نظر می‌گیرند و سپس در صورت نیاز تغییراتی را اعمال یا درخواست می‌کنند. +هر کنترلر سعی می‌کند وضعیت فعلی خوشه را به وضعیت مطلوب نزدیک‌تر کند. + + + +کنترلرها وضعیت مشترک خوشه شما را از طریق {{< glossary_tooltip term_id="kube-apiserver" text="سرور API" >}} (جزئی از {{< glossary_tooltip term_id="control-plane" text="صف کنترل" >}}) مشاهده می‌کنند. + +برخی از کنترلرها همچنین در داخل صف کنترل اجرا می‌شوند و حلقه‌های کنترلی را فراهم می‌کنند که برای عملیات کوبرنتیز اساسی‌اند. به‌عنوان مثال: کنترلر استقرار (deployment controller)، کنترلر daemonset، کنترلر namespace و کنترلر persistent volume (و دیگر موارد) همگی درون {{< glossary_tooltip term_id="kube-controller-manager" text="مدیر کنترل" >}} اجرا می‌شوند. diff --git a/content/fa/docs/reference/glossary/cri-o.md b/content/fa/docs/reference/glossary/cri-o.md new file mode 100644 index 0000000000000..2128ca0b0f412 --- /dev/null +++ b/content/fa/docs/reference/glossary/cri-o.md @@ -0,0 +1,22 @@ +--- +title: CRI-O +id: cri-o +date: 2019-05-14 +full_link: https://cri-o.io/#what-is-cri-o +short_description: > + یک کانتینر سبک مخصوص Kubernetes + +aka: +tags: +- tool +--- +یک ابزار که به شما امکان می‌دهد از زمان‌اجراهای کانتینر OCI با CRI کوبرنتس استفاده کنید. + + + +CRI-O پیاده‌سازی {{< glossary_tooltip term_id="cri" >}} +است تا استفاده از زمان‌اجراهای {{< glossary_tooltip text="container" term_id="container" >}} +سازگار با مشخصات زمان‌اجرا Open Container Initiative (OCI) +[runtime spec](https://www.github.com/opencontainers/runtime-spec) را ممکن سازد. + +استقرار CRI-O اجازه می‌دهد کوبرنتس از هر زمان‌اجرای سازگار با OCI به‌عنوان زمان‌اجرای کانتینر برای اجرای {{< glossary_tooltip text="Pods" term_id="pod" >}} استفاده کند و تصاویر کانتینر OCI را از رجیستری‌های راه دور دریافت نماید. diff --git a/content/fa/docs/reference/glossary/cri.md b/content/fa/docs/reference/glossary/cri.md new file mode 100644 index 0000000000000..6ffc379d6d42b --- /dev/null +++ b/content/fa/docs/reference/glossary/cri.md @@ -0,0 +1,19 @@ +--- +title: رابط زمان اجرای کانتینر (CRI) +id: cri +date: 2021-11-24 +full_link: /docs/concepts/architecture/cri +short_description: > + پروتکلی برای ارتباط بین kubelet و محیط اجرایی کانتینر محلی. + +aka: +tags: + - fundamental +--- + +پروتکل اصلی برای ارتباط بین {{< glossary_tooltip text="kubelet" term_id="kubelet" >}} و زمان‌اجرای کانتینر. + + + +رابط زمان‌اجرای کانتینر کوبرنتس (CRI) پروتکل اصلی [gRPC](https://grpc.io) را برای ارتباط بین {{< glossary_tooltip text="kubelet" term_id="kubelet" >}} و {{< glossary_tooltip text="container runtime" term_id="container-runtime" >}}، از جمله [کامپوننت‌های Node](/docs/concepts/architecture/#node-components)، تعریف می‌کند. + diff --git a/content/fa/docs/reference/glossary/cronjob.md b/content/fa/docs/reference/glossary/cronjob.md new file mode 100644 index 0000000000000..a0623d40984d6 --- /dev/null +++ b/content/fa/docs/reference/glossary/cronjob.md @@ -0,0 +1,18 @@ +--- +title: CronJob +id: cronjob +date: 2018-04-12 +full_link: /docs/concepts/workloads/controllers/cron-jobs/ +short_description: > + یک وظیفه تکرارشونده (یک Job) که طبق یک برنامه منظم اجرا می‌شود. + +aka: +tags: +- core-object +- workload +--- +مدیریت یک [Job](/docs/concepts/workloads/controllers/job/) که بر اساس زمان‌بندی دوره‌ای اجرا می‌شود. + + + +مشابه یک خط در فایل *crontab*، شی CronJob با استفاده از قالب [cron](https://en.wikipedia.org/wiki/Cron) زمان‌بندی خود را مشخص می‌کند. diff --git a/content/fa/docs/reference/glossary/csi.md b/content/fa/docs/reference/glossary/csi.md new file mode 100644 index 0000000000000..2db613ed61137 --- /dev/null +++ b/content/fa/docs/reference/glossary/csi.md @@ -0,0 +1,21 @@ +--- +title: رابط ذخیره‌سازی کانتینر (CSI) +id: csi +date: 2018-06-25 +full_link: /docs/concepts/storage/volumes/#csi +short_description: > + رابط ذخیره‌سازی کانتینر (CSI) یک رابط استاندارد برای نمایش سیستم‌های ذخیره‌سازی به کانتینرها تعریف می‌کند. + + +aka: +tags: +- storage +--- + رابط ذخیره‌سازی کانتینر (CSI) یک رابط استاندارد برای نمایش سیستم‌های ذخیره‌سازی به کانتینرها تعریف می‌کند. + + + +CSI به فروشندگان اجازه می‌دهد افزونه‌های ذخیره‌سازی سفارشی برای کوبرنتیز ایجاد کنند بدون افزودن آنها به مخزن کوبرنتیز (افزونه‌های خارج از درخت). برای استفاده از درایور CSI از یک ارائه‌دهنده ذخیره‌سازی، ابتدا باید [آن را در خوشه خود مستقر کنید](https://kubernetes-csi.github.io/docs/deploying.html). سپس خواهید توانست یک {{< glossary_tooltip text="Storage Class" term_id="storage-class" >}} ایجاد کنید که از آن درایور CSI استفاده می‌کند. + +* [CSI در مستندات کوبرنتیز](/docs/concepts/storage/volumes/#csi) +* [فهرست درایورهای CSI موجود](https://kubernetes-csi.github.io/docs/drivers.html) diff --git a/content/fa/docs/reference/glossary/customresourcedefinition.md b/content/fa/docs/reference/glossary/customresourcedefinition.md new file mode 100644 index 0000000000000..df95c0d4cef95 --- /dev/null +++ b/content/fa/docs/reference/glossary/customresourcedefinition.md @@ -0,0 +1,19 @@ +--- +title: CustomResourceDefinition +id: CustomResourceDefinition +date: 2018-04-12 +full_link: /docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/ +short_description: > + کد سفارشی که منبعی را برای اضافه کردن به سرور API Kubernetes شما بدون ساخت یک سرور سفارشی کامل تعریف می‌کند. + +aka: +tags: +- fundamental +- operation +- extension +--- + کد سفارشی که منبعی را برای اضافه کردن به سرور API Kubernetes شما بدون ساخت یک سرور سفارشی کامل تعریف می‌کند. + + + +تعریف منابع سفارشی به شما امکان می‌دهد در صورتی که منابع API با پشتیبانی عمومی نتوانند نیازهای شما را برآورده کنند، API کوبرنتیز را برای محیط خود گسترش دهید. \ No newline at end of file diff --git a/content/fa/docs/reference/glossary/daemonset.md b/content/fa/docs/reference/glossary/daemonset.md new file mode 100644 index 0000000000000..8fa4bfe559f4a --- /dev/null +++ b/content/fa/docs/reference/glossary/daemonset.md @@ -0,0 +1,19 @@ +--- +title: DaemonSet +id: daemonset +date: 2018-04-12 +full_link: /docs/concepts/workloads/controllers/daemonset +short_description: > + تضمین می‌کند که یک کپی از یک Pod در مجموعه‌ای از گره‌ها در یک خوشه در حال اجرا است. + +aka: +tags: +- fundamental +- core-object +- workload +--- + اطمینان می‌دهد که یک نسخه از {{< glossary_tooltip text="Pod" term_id="pod" >}} در میان مجموعه‌ای از گره‌ها در یک {{< glossary_tooltip text="cluster" term_id="cluster" >}} در حال اجرا باشد. + + + +برای استقرار دیمن‌های سیستمی مانند جمع‌آورنده‌های لاگ و عامل‌های نظارتی که معمولاً باید روی هر {{< glossary_tooltip term_id="node" >}} اجرا شوند، استفاده می‌گردد. diff --git a/content/fa/docs/reference/glossary/data-plane.md b/content/fa/docs/reference/glossary/data-plane.md new file mode 100644 index 0000000000000..20c0078f22893 --- /dev/null +++ b/content/fa/docs/reference/glossary/data-plane.md @@ -0,0 +1,13 @@ +--- +title: صفحه داده +id: data-plane +date: 2019-05-12 +full_link: +short_description: > + لایه‌ای که ظرفیت‌هایی مانند پردازنده، حافظه، شبکه و فضای ذخیره‌سازی را فراهم می‌کند تا کانتینرها بتوانند اجرا شوند و به شبکه متصل شوند. + +aka: +tags: +- fundamental +--- + لایه‌ای که ظرفیت‌هایی مانند پردازنده، حافظه، شبکه و فضای ذخیره‌سازی را فراهم می‌کند تا کانتینرها بتوانند اجرا شوند و به شبکه متصل شوند. diff --git a/content/fa/docs/reference/glossary/deployment.md b/content/fa/docs/reference/glossary/deployment.md new file mode 100644 index 0000000000000..03542612d66cc --- /dev/null +++ b/content/fa/docs/reference/glossary/deployment.md @@ -0,0 +1,20 @@ +--- +title: Deployment +id: deployment +date: 2018-04-12 +full_link: /docs/concepts/workloads/controllers/deployment/ +short_description: > + یک برنامه‌ی تکثیر شده را در خوشه شما مدیریت می‌کند. + +aka: +tags: +- fundamental +- core-object +- workload +--- +یک شی API که یک برنامه تکثیری را مدیریت می‌کند، معمولاً با اجرای Podها بدون وضعیت محلی. + + + +هر نسخه تکثیری توسط یک {{< glossary_tooltip term_id="pod" >}} نمایندگی می‌شود و Podها در میان {{< glossary_tooltip text="nodes" term_id="node" >}} یک خوشه پخش می‌شوند. +برای بارکاری‌هایی که نیاز به وضعیت محلی دارند، استفاده از {{< glossary_tooltip term_id="StatefulSet" >}} را مدنظر قرار دهید. diff --git a/content/fa/docs/reference/glossary/developer.md b/content/fa/docs/reference/glossary/developer.md new file mode 100644 index 0000000000000..f81dd2d3f221f --- /dev/null +++ b/content/fa/docs/reference/glossary/developer.md @@ -0,0 +1,19 @@ +--- +title: توسعه‌دهنده (ابهام‌زدایی) +id: developer +date: 2018-04-12 +full_link: +short_description: > + ممکن است به توسعه‌دهنده برنامه، مشارکت‌کننده کد یا توسعه‌دهنده پلتفرم اشاره داشته باشد. + +aka: +tags: +- community +- user-type +--- + ممکن است اشاره داشته باشد به: {{< glossary_tooltip text="Application Developer" term_id="application-developer" >}}, {{< glossary_tooltip text="Code Contributor" term_id="code-contributor" >}}, یا {{< glossary_tooltip text="Platform Developer" term_id="platform-developer" >}}. + + + +این اصطلاح چندمنظوره ممکن است بسته به زمینه معانی مختلفی داشته باشد. + diff --git a/content/fa/docs/reference/glossary/device-plugin.md b/content/fa/docs/reference/glossary/device-plugin.md new file mode 100644 index 0000000000000..5533d1dff3b4b --- /dev/null +++ b/content/fa/docs/reference/glossary/device-plugin.md @@ -0,0 +1,21 @@ +--- +title: افزونه دستگاه +id: device-plugin +date: 2019-02-02 +full_link: /docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/ +short_description: > + افزونه‌های نرم‌افزاری برای دسترسی پادها به دستگاه‌هایی که نیاز به راه‌اندازی یا تنظیمات خاص فروشنده دارند +aka: +tags: +- fundamental +- extension +--- + افزونه‌های دستگاه بر روی گره‌های {{< glossary_tooltip term_id="node" text="Nodes">}} اجرا می‌شوند و به {{< glossary_tooltip term_id="pod" text="Pods">}} دسترسی به منابعی مانند سخت‌افزار محلی که نیازمند مراحل راه‌اندازی یا پیکربندی خاص فروشنده است را فراهم می‌کنند. + + + +افزونه‌های دستگاه منابع را به {{< glossary_tooltip term_id="kubelet" text="kubelet" >}} اعلام می‌کنند تا Pod‌های کاری بتوانند از ویژگی‌های سخت‌افزاری مربوط به گره‌ای که آن Pod روی آن اجرا می‌شود استفاده کنند. شما می‌توانید یک افزونه دستگاه را به‌صورت {{< glossary_tooltip term_id="daemonset" >}} مستقر کنید یا نرم‌افزار افزونه دستگاه را مستقیماً روی هر گره هدف نصب نمایید. + +برای اطلاعات بیشتر به +[Device Plugins](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) +مراجعه کنید. diff --git a/content/fa/docs/reference/glossary/disruption.md b/content/fa/docs/reference/glossary/disruption.md new file mode 100644 index 0000000000000..869e30a7aa023 --- /dev/null +++ b/content/fa/docs/reference/glossary/disruption.md @@ -0,0 +1,18 @@ +--- +title: اختلال +id: disruption +date: 2019-09-10 +full_link: /docs/concepts/workloads/pods/disruptions/ +short_description: > + رویدادی که منجر به از سرویس خارج شدن پاد(ها) می‌شود +aka: +tags: +- fundamental +--- + اختلال‌ها رویدادهایی هستند که منجر به خارج شدن یک یا چند {{< glossary_tooltip term_id="pod" text="Pods" >}} از سرویس می‌شوند. یک اختلال برای منابع بارکاری مانند {{< glossary_tooltip term_id="deployment" >}} که به Podهای آسیب‌دیده وابسته‌اند، پیامدهایی به همراه دارد. + + + +اگر شما به‌عنوان اپراتور خوشه، یک Pod را که به یک برنامه تعلق دارد حذف کنید، کوبرنتیز آن را «اختلال داوطلبانه» می‌نامد. اگر یک Pod به دلیل خرابی یک Node یا قطعی در یک ناحیه‌ی وسیع‌تر از دسترس خارج شود، کوبرنتیز آن را «اختلال غیرداوطلبانه» می‌نامد. + +برای اطلاعات بیشتر به [Disruptions](/docs/concepts/workloads/pods/disruptions/) مراجعه کنید. diff --git a/content/fa/docs/reference/glossary/docker.md b/content/fa/docs/reference/glossary/docker.md new file mode 100644 index 0000000000000..fb58095d53f72 --- /dev/null +++ b/content/fa/docs/reference/glossary/docker.md @@ -0,0 +1,17 @@ +--- +title: Docker +id: docker +date: 2018-04-12 +full_link: https://docs.docker.com/engine/ +short_description: > + Docker یک فناوری نرم‌افزاری است که مجازی‌سازی در سطح سیستم‌عامل (که به عنوان کانتینر نیز شناخته می‌شود) را فراهم می‌کند. + +aka: +tags: +- fundamental +--- +Docker (مخصوصاً Docker Engine) یک فناوری نرم‌افزاری است که مجازی‌سازی در سطح سیستم‌عامل، معروف به {{< glossary_tooltip text="containers" term_id="container" >}}، را فراهم می‌کند. + + + +Docker از ویژگی‌های جداسازی منابع کرنل لینوکس مانند cgroups و kernel namespaces و سیستم فایل‌های با قابلیت union مانند OverlayFS و دیگران استفاده می‌کند تا امکان اجرای کانتینرهای مستقل در یک نمونه لینوکس را فراهم آورد و از بار اضافی راه‌اندازی و نگهداری ماشین‌های مجازی (VMs) جلوگیری کند. diff --git a/content/fa/docs/reference/glossary/dockershim.md b/content/fa/docs/reference/glossary/dockershim.md new file mode 100644 index 0000000000000..8a0e5717c2e02 --- /dev/null +++ b/content/fa/docs/reference/glossary/dockershim.md @@ -0,0 +1,17 @@ +--- +title: Dockershim +id: dockershim +date: 2022-04-15 +full_link: /dockershim +short_description: > + جزئی از Kubernetes نسخه 1.23 و قبل از آن، که به اجزای سیستم Kubernetes اجازه می‌دهد تا با Docker Engine ارتباط برقرار کنند. + +aka: +tags: +- fundamental +--- +dockershim یک کامپوننت از کوبرنتیز نسخه 1.23 و قبل‌تر است. این امکان را برای {{< glossary_tooltip text="kubelet" term_id="kubelet" >}} فراهم می‌کند تا با {{< glossary_tooltip text="Docker Engine" term_id="docker" >}} ارتباط برقرار نماید. + + + +از نسخه 1.24 به بعد، dockershim از کوبرنتیز حذف شده است. برای اطلاعات بیشتر، به [پرسش‌های متداول Dockershim](/dockershim) مراجعه کنید. diff --git a/content/fa/docs/reference/glossary/downstream.md b/content/fa/docs/reference/glossary/downstream.md new file mode 100644 index 0000000000000..06dd544920967 --- /dev/null +++ b/content/fa/docs/reference/glossary/downstream.md @@ -0,0 +1,19 @@ +--- +title: پایین‌دست (ابهام‌زدایی) +id: downstream +date: 2018-04-12 +full_link: +short_description: > + ممکن است به کدی در بن‌سازه Kubernetes اشاره داشته باشد که به کدبیس اصلی Kubernetes یا یک مخزن منشعب شده وابسته است. + +aka: +tags: +- community +--- + ممکن است به کدی در بن‌سازه Kubernetes اشاره داشته باشد که به کدبیس اصلی Kubernetes یا یک مخزن منشعب شده وابسته است. + + + +* در **جامعه کوبرنتیز**: در مکالمات اغلب از *downstream* برای اشاره به بن‌سازه، کد یا ابزارهای شخص ثالثی استفاده می‌شود که به کد اصلی کوبرنتیز وابسته‌اند. برای مثال، یک قابلیت جدید در کوبرنتیز ممکن است توسط برنامه‌های *downstream* برای بهبود عملکردشان پذیرفته شود. +* در **GitHub** یا **git**: عرف بر این است که یک مخزن فورک‌شده را *downstream* بنامند، در حالی که مخزن منبع را *upstream* در نظر می‌گیرند. + diff --git a/content/fa/docs/reference/glossary/downward-api.md b/content/fa/docs/reference/glossary/downward-api.md new file mode 100644 index 0000000000000..a913451babbd2 --- /dev/null +++ b/content/fa/docs/reference/glossary/downward-api.md @@ -0,0 +1,24 @@ +--- +title: API رو به پایین +id: downward-api +date: 2022-03-21 +short_description: > + مکانیزمی برای نمایش مقادیر فیلدهای Pod و container به کدی که در یک container اجرا می‌شود. +aka: +full_link: /docs/concepts/workloads/pods/downward-api/ +tags: +- architecture +--- +مکانیزم کوبرنتیز برای در معرض قرار دادن مقادیر فیلدهای Pod و کانتینر به کد در حال اجرا در یک کانتینر. + +گاهی مفید است که یک کانتینر بدون نیاز به اعمال تغییرات در کد کانتینر که آن را مستقیماً به کوبرنتیز متصل می‌کند، اطلاعاتی درباره خود داشته باشد. + +Downward API کوبرنتیز به کانتینرها اجازه می‌دهد اطلاعاتی درباره خود یا زمینه‌شان در یک خوشه کوبرنتیز مصرف کنند. برنامه‌های درون کانتینر می‌توانند به آن اطلاعات دسترسی داشته باشند، بدون آنکه برنامه نیاز داشته باشد به‌عنوان یک کلاینت API کوبرنتیز عمل کند. + +دو روش برای در معرض قرار دادن فیلدهای Pod و کانتینر به یک کانتینر در حال اجرا وجود دارد: + +- استفاده از [متغیرهای محیطی](/docs/tasks/inject-data-application/environment-variable-expose-pod-information/) +- استفاده از یک حجم `downwardAPI`(/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/) + +این دو روش در مجموع به‌عنوان _downward API_ شناخته می‌شوند. + diff --git a/content/fa/docs/reference/glossary/drain.md b/content/fa/docs/reference/glossary/drain.md new file mode 100644 index 0000000000000..59890910894ea --- /dev/null +++ b/content/fa/docs/reference/glossary/drain.md @@ -0,0 +1,18 @@ +--- +title: تخلیه +id: drain +date: 2024-12-27 +full_link: +short_description: > + پادها را به طور ایمن از یک گره خارج می‌کند تا برای تعمیر و نگهداری یا حذف آماده شود. +tags: +- fundamental +- operation +--- +فرایند تخلیه ایمن {{< glossary_tooltip text="Pods" term_id="pod" >}} از یک {{< glossary_tooltip text="Node" term_id="node" >}} برای آماده‌سازی آن جهت نگه‌داری یا حذف از یک {{< glossary_tooltip text="cluster" term_id="cluster" >}}. + + + +دستور `kubectl drain` برای علامت‌گذاری یک {{< glossary_tooltip text="Node" term_id="node" >}} به‌عنوان خارج از سرویس استفاده می‌شود. +وقتی اجرا شود، همه {{< glossary_tooltip text="Pods" term_id="pod" >}} را از آن {{< glossary_tooltip text="Node" term_id="node" >}} بیرون می‌کند. +اگر یک درخواست تخلیه موقتاً رد شود، `kubectl drain` دوباره تلاش می‌کند تا همه {{< glossary_tooltip text="Pods" term_id="pod" >}} خاتمه یابند یا مهلت قابل پیکربندی تمام شود. diff --git a/content/fa/docs/reference/glossary/duration.md b/content/fa/docs/reference/glossary/duration.md new file mode 100644 index 0000000000000..3f5311b76c432 --- /dev/null +++ b/content/fa/docs/reference/glossary/duration.md @@ -0,0 +1,19 @@ +--- +title: مدت زمان +id: duration +date: 2024-10-05 +full_link: +short_description: > + یک مقدار رشته‌ای که نشان‌دهنده‌ی مدت زمان است. +tags: +- fundamental +--- +یک مقدار رشته‌ای که نشان‌دهنده‌ی مدت زمان است. + + + +فرمت یک مدت‌زمان (در کوبرنتیز) بر پایه نوع [`time.Duration`](https://pkg.go.dev/time#Duration) در زبان برنامه‌نویسی Go است. + +در APIهای کوبرنتیز که از مدت‌زمان‌ها استفاده می‌کنند، مقدار به‌صورت رشته‌ای از اعداد صحیح نامنفی به‌همراه پسوند واحد زمان بیان می‌شود. می‌توانید بیش از یک کمیت زمانی داشته باشید و مدت‌زمان برابر با مجموع آن کمیت‌های زمانی است. واحدهای زمان معتبر عبارت‌اند از «ns»، «µs» (یا «us»)، «ms»، «s»، «m» و «h». + +برای مثال: `5s` نشان‌دهنده مدت‌زمان پنج ثانیه است و `1m30s` نشان‌دهنده مدت‌زمان یک دقیقه و سی ثانیه است. diff --git a/content/fa/docs/reference/glossary/dynamic-volume-provisioning.md b/content/fa/docs/reference/glossary/dynamic-volume-provisioning.md new file mode 100644 index 0000000000000..662dd62db4afc --- /dev/null +++ b/content/fa/docs/reference/glossary/dynamic-volume-provisioning.md @@ -0,0 +1,18 @@ +--- +title: تأمین پویای volume +id: dynamicvolumeprovisioning +date: 2018-04-12 +full_link: /docs/concepts/storage/dynamic-provisioning +short_description: > + به کاربران اجازه می‌دهد تا درخواست ایجاد خودکار Volumeهای ذخیره‌سازی را بدهند. + +aka: +tags: +- storage +--- + به کاربران اجازه می‌دهد تا درخواست ایجاد خودکار {{< glossary_tooltip text="Volumes" term_id="volume" >}}های ذخیره‌سازی را بدهند. + + + +تأمین پویای حجم، نیاز مدیران خوشه را به پیش‌تخصیص ذخیره‌سازی از میان برمی‌دارد. در عوض، ذخیره‌سازی به‌طور خودکار بر اساس درخواست کاربر فراهم می‌شود. تأمین پویای حجم بر پایه یک شیء API به نام {{< glossary_tooltip text="StorageClass" term_id="storage-class" >}} است که به یک {{< glossary_tooltip text="Volume Plugin" term_id="volume-plugin" >}} اشاره می‌کند؛ این افزونه یک {{< glossary_tooltip text="Volume" term_id="volume" >}} را فراهم کرده و مجموعه‌ای از پارامترها را برای ارسال به Volume Plugin تعیین می‌کند. + diff --git a/content/fa/docs/reference/glossary/endpoint-slice.md b/content/fa/docs/reference/glossary/endpoint-slice.md new file mode 100644 index 0000000000000..128421f6aa31a --- /dev/null +++ b/content/fa/docs/reference/glossary/endpoint-slice.md @@ -0,0 +1,17 @@ +--- +title: EndpointSlice +id: endpoint-slice +date: 2018-04-12 +full_link: /docs/concepts/services-networking/endpoint-slices/ +short_description: > + EndpointSliceها آدرس‌های IP مربوط به Podها را با انتخابگرهای سرویس منطبق، ردیابی می‌کنند. + +aka: +tags: +- networking +--- +EndpointSliceها آدرس‌های IP پادهایی را که دارای {{< glossary_tooltip text="selectors" term_id="selector" >}} منطبق هستند، پیگیری می‌کنند. + + + +می‌توان EndpointSliceها را برای {{< glossary_tooltip text="Services" term_id="service" >}}ی که بدون تعیین انتخابگر هستند، به‌صورت دستی پیکربندی کرد. diff --git a/content/fa/docs/reference/glossary/endpoint.md b/content/fa/docs/reference/glossary/endpoint.md new file mode 100644 index 0000000000000..309f168e872be --- /dev/null +++ b/content/fa/docs/reference/glossary/endpoint.md @@ -0,0 +1,23 @@ +--- +title: نقاط پایانی +id: endpoints +date: 2020-04-23 +full_link: +short_description: > + نقطه پایانی یک سرویس، یکی از پادها (یا سرورهای خارجی) است که سرویس را پیاده‌سازی می‌کند. + +aka: +tags: +- networking +--- +نقطه پایانی یک {{< glossary_tooltip text="Service" term_id="service" >}} یکی از {{< glossary_tooltip text="Pods" term_id="pod" >}} (یا سرورهای خارجی) است که آن سرویس را پیاده‌سازی می‌کند. + + + +برای سرویس‌هایی با {{< glossary_tooltip text="selectors" term_id="selector" >}}، +کنترلر EndpointSlice به‌طور خودکار یک یا چند {{< +glossary_tooltip text="EndpointSlices" term_id="endpoint-slice" >}} ایجاد می‌کند +که آدرس‌های IP پادهای انتهاییِ انتخاب‌شده را ارائه می‌دهند. + +همچنین می‌توان EndpointSliceها را به‌صورت دستی ایجاد کرد تا نقاط پایانیِ +سرویس‌هایی را که selector مشخص نکرده‌اند، نشان دهند. diff --git a/content/fa/docs/reference/glossary/ephemeral-container.md b/content/fa/docs/reference/glossary/ephemeral-container.md new file mode 100644 index 0000000000000..cf6848962cecf --- /dev/null +++ b/content/fa/docs/reference/glossary/ephemeral-container.md @@ -0,0 +1,19 @@ +--- +title: کانتینر زودگذر +id: ephemeral-container +date: 2019-08-26 +full_link: /docs/concepts/workloads/pods/ephemeral-containers/ +short_description: > + نوعی کانتینر که می‌توانید به طور موقت درون یک Pod اجرا کنید. + +aka: +tags: +- fundamental +--- +یک نوع {{< glossary_tooltip term_id="container" >}} که می‌توانید آن را به‌طور موقت داخل یک {{< glossary_tooltip term_id="pod" >}} اجرا کنید. + + + +اگر می‌خواهید پادی را که با مشکل اجرا می‌شود بررسی کنید، می‌توانید یک کانتینر موقتی به آن پاد اضافه کرده و عملیات عیب‌یابی را انجام دهید. کانتینرهای موقتی هیچ تضمین منابع یا زمان‌بندی ندارند و نباید از آن‌ها برای اجرای هیچ بخشی از بار کاری اصلی استفاده کنید. + +کانتینرهای موقتی توسط {{< glossary_tooltip text="static pods" term_id="static-pod" >}} پشتیبانی نمی‌شوند. diff --git a/content/fa/docs/reference/glossary/etcd.md b/content/fa/docs/reference/glossary/etcd.md new file mode 100644 index 0000000000000..1561b07fda495 --- /dev/null +++ b/content/fa/docs/reference/glossary/etcd.md @@ -0,0 +1,20 @@ +--- +title: etcd +id: etcd +date: 2018-04-12 +full_link: /docs/tasks/administer-cluster/configure-upgrade-etcd/ +short_description: > + مخزن کلید-مقدارِ سازگار و با دسترسی بالا که به عنوان مخزن پشتیبان کوبرنتیز برای تمام داده‌های خوشه‌ای استفاده می‌شود. + +aka: +tags: +- architecture +- storage +--- + مخزن کلید-مقدارِ سازگار و با دسترسی بالا که به عنوان مخزن پشتیبان کوبرنتیز برای تمام داده‌های خوشه‌ای استفاده می‌شود. + + + +اگر خوشه کوبرنتیز شما از etcd به‌عنوان مخزن پشتیبان استفاده می‌کند، مطمئن شوید که برای داده‌ها یک طرح [پشتیبان‌گیری](/docs/tasks/administer-cluster/configure-upgrade-etcd/#backing-up-an-etcd-cluster) داشته باشید. + +می‌توانید اطلاعات عمیق درباره etcd را در [مستندات](https://etcd.io/docs/) رسمی بیابید. diff --git a/content/fa/docs/reference/glossary/event.md b/content/fa/docs/reference/glossary/event.md new file mode 100644 index 0000000000000..348023cdd7bda --- /dev/null +++ b/content/fa/docs/reference/glossary/event.md @@ -0,0 +1,23 @@ +--- +title: رویداد +id: event +date: 2022-01-16 +full_link: /docs/reference/kubernetes-api/cluster-resources/event-v1/ +short_description: > + رویدادها، اشیاء کوبرنتیز هستند که برخی از تغییرات حالت در سیستم را توصیف می‌کنند. +aka: +tags: +- core-object +- fundamental +--- +Event یک شیء کوبرنتیز است که تغییر وضعیت یا رخدادهای قابل توجه در سیستم را توصیف می‌کند. + + + +رویدادها زمان نگهداری محدودی دارند و محرک‌ها و پیام‌ها ممکن است با گذشت زمان تغییر کنند. +مصرف‌کنندگان رویداد نباید بر زمان‌بندی یک رویداد با دلیل مشخص که نشانگر محرکی پایدار باشد اتکا کنند، +یا انتظار داشته باشند رویدادهایی با آن دلیل همواره موجود بمانند. + +رویدادها باید به‌عنوان داده‌های تکمیلی اطلاع‌رسانیِ مبتنی بر بهترین تلاش در نظر گرفته شوند. + +در کوبرنتیز، [ممیزی](/docs/tasks/debug/debug-cluster/audit/) نوع متفاوتی از رکورد Event را تولید می‌کند (گروه API `audit.k8s.io`). diff --git a/content/fa/docs/reference/glossary/eviction.md b/content/fa/docs/reference/glossary/eviction.md new file mode 100644 index 0000000000000..2a57650c3accc --- /dev/null +++ b/content/fa/docs/reference/glossary/eviction.md @@ -0,0 +1,19 @@ +--- +title: اخراج +id: eviction +date: 2021-05-08 +full_link: /docs/concepts/scheduling-eviction/ +short_description: > + فرآیند خاتمه دادن به یک یا چند Pod روی گره‌ها +aka: +tags: +- operation +--- + +اخراج فرایند خاتمه دادن به یک یا چند پاد روی نودها است. + + + +دو نوع تخلیه وجود دارد: +* [اخراج در اثر فشار نود](/docs/concepts/scheduling-eviction/node-pressure-eviction/) +* [اخراج آغازشده توسط API](/docs/concepts/scheduling-eviction/api-eviction/) diff --git a/content/fa/docs/reference/glossary/extensions.md b/content/fa/docs/reference/glossary/extensions.md new file mode 100644 index 0000000000000..81b8236fef43e --- /dev/null +++ b/content/fa/docs/reference/glossary/extensions.md @@ -0,0 +1,18 @@ +--- +title: افزونه‌ها +id: Extensions +date: 2019-02-01 +full_link: /docs/concepts/extend-kubernetes/#extensions +short_description: > + افزونه‌ها اجزای نرم‌افزاری هستند که گسترش می‌یابند و عمیقاً با کوبرنتیز ادغام می‌شوند تا از انواع جدید سخت‌افزار پشتیبانی کنند. + +aka: +tags: +- fundamental +- extension +--- + افزونه‌ها اجزای نرم‌افزاری هستند که گسترش می‌یابند و عمیقاً با کوبرنتیز ادغام می‌شوند تا از انواع جدید سخت‌افزار پشتیبانی کنند. + + + +بسیاری از مدیران خوشه از نسخه میزبانی‌شده یا توزیعیِ کوبرنتیز استفاده می‌کنند. این خوشه‌ها با افزونه‌های از پیش نصب‌شده ارائه می‌شوند. در نتیجه، اغلب کاربران کوبرنتیز نیازی به نصب [افزونه‌ها](/docs/concepts/extend-kubernetes/) ندارند و تعداد بسیار کمی از کاربران لازم است افزونه‌های جدیدی بنویسند. diff --git a/content/fa/docs/reference/glossary/feature-gates.md b/content/fa/docs/reference/glossary/feature-gates.md new file mode 100644 index 0000000000000..e5498509fcb5b --- /dev/null +++ b/content/fa/docs/reference/glossary/feature-gates.md @@ -0,0 +1,21 @@ +--- +title: دروازه ویژگی +id: feature-gate +date: 2023-01-12 +full_link: /docs/reference/command-line-tools-reference/feature-gates/ +short_description: > + راهی برای کنترل فعال بودن یا نبودن یک ویژگی خاص کوبرنتیز. + +aka: +tags: +- fundamental +- operation +--- + +دروازه‌های ویژگی (Feature gates) مجموعه‌ای از کلیدها (رشته‌های مبهم) هستند که می‌توانید با آن‌ها تعیین کنید کدام قابلیت‌های کوبرنتیز در خوشه شما فعال باشند. + + + +می‌توانید این قابلیت‌ها را با استفاده از فلگ خط فرمان `--feature-gates` روی هر مؤلفه کوبرنتیز روشن یا خاموش کنید. +هر مؤلفه کوبرنتیز مجموعه‌ای از دروازه‌های ویژگی مرتبط با همان مؤلفه را برای فعال یا غیرفعال‌سازی در اختیار می‌گذارد. +مستندات کوبرنتیز فهرست کاملِ [دروازه‌های ویژگی](/docs/reference/command-line-tools-reference/feature-gates/) فعلی و مواردی را که کنترل می‌کنند ارائه می‌دهد. diff --git a/content/fa/docs/reference/glossary/finalizer.md b/content/fa/docs/reference/glossary/finalizer.md new file mode 100644 index 0000000000000..94d00f6389517 --- /dev/null +++ b/content/fa/docs/reference/glossary/finalizer.md @@ -0,0 +1,19 @@ +--- +title: نهایی کننده +id: finalizer +date: 2021-07-07 +full_link: /docs/concepts/overview/working-with-objects/finalizers/ +short_description: > + یک کلید فضای نامی که به کوبرنتیز می‌گوید تا زمان برآورده شدن شرایط خاص، قبل از حذف کامل یک شیء علامت‌گذاری شده برای حذف، منتظر بماند. +aka: +tags: +- fundamental +- operation +--- +Finalizerها کلیدهای namespaced هستند که به کوبرنتیز می‌گویند تا زمانی که شرایط خاصی برآورده نشده، منابع علامت‌گذاری‌شده برای حذف را به‌طور کامل حذف نکند. Finalizerها به {{}} هشدار می‌دهند تا منابعی را که شیء حذف‌شده مالک آن‌ها بوده پاک‌سازی کنند. + + + +وقتی به کوبرنتیز دستور می‌دهید شیئی را که دارای finalizer است حذف کند، API کوبرنتیز با مقداردهی به `.metadata.deletionTimestamp` آن شیء را برای حذف علامت‌گذاری کرده و کد وضعیت `202` (HTTP «Accepted») را برمی‌گرداند. شئ هدف در وضعیت terminating باقی می‌ماند تا صفحه کنترل یا دیگر مؤلفه‌ها اقدامات تعریف‌شده توسط finalizerها را انجام دهند. پس از تکمیل این اقدامات، کنترلر finalizerهای مربوطه را از شئ هدف حذف می‌کند. زمانی که فیلد `metadata.finalizers` خالی شود، کوبرنتیز حذف را کامل تلقی کرده و شیء را حذف می‌کند. + +می‌توانید از finalizerها برای کنترل {{}} منابع استفاده کنید. برای مثال، می‌توانید یک finalizer تعریف کنید تا پیش از آنکه کنترلر منبع هدف را حذف کند، منابع یا زیرساخت‌های مرتبط را پاک‌سازی نماید. diff --git a/content/fa/docs/reference/glossary/flexvolume.md b/content/fa/docs/reference/glossary/flexvolume.md new file mode 100644 index 0000000000000..48a8d6cb72d2a --- /dev/null +++ b/content/fa/docs/reference/glossary/flexvolume.md @@ -0,0 +1,22 @@ +--- +title: FlexVolume +id: flexvolume +date: 2018-06-25 +full_link: /docs/concepts/storage/volumes/#flexvolume +short_description: > + FlexVolume یک رابط منسوخ برای ایجاد افزونه‌های حجم خارج از درخت است. {{< glossary_tooltip text="Container Storage Interface" term_id="csi" >}} یک رابط جدیدتر است که چندین مشکل FlexVolume را برطرف می‌کند. + + +aka: +tags: +- storage +--- + FlexVolume یک رابط منسوخ برای ایجاد افزونه‌های حجم خارج از درخت است. {{< glossary_tooltip text="Container Storage Interface" term_id="csi" >}} یک رابط جدیدتر است که چندین مشکل FlexVolume را برطرف می‌کند. + + + +FlexVolumeها به کاربران اجازه می‌دهند درایورهای خود را بنویسند و پشتیبانی از حجم‌هایشان را در کوبرنتیز اضافه کنند. فایل‌های باینری درایور FlexVolume و وابستگی‌های آن باید روی ماشین‌های میزبان نصب شوند که به دسترسی ریشه نیاز دارد. گروه SIG Storage پیشنهاد می‌کند در صورت امکان یک درایور {{< glossary_tooltip text="CSI" term_id="csi" >}} پیاده‌سازی شود، زیرا محدودیت‌های FlexVolume را رفع می‌کند. + +* [FlexVolume در مستندات کوبرنتیز](/docs/concepts/storage/volumes/#flexvolume) +* [اطلاعات بیشتر درباره FlexVolumeها](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-storage/flexvolume.md) +* [سؤالات متداول افزونه حجم برای فروشندگان ذخیره‌سازی](https://github.com/kubernetes/community/blob/master/sig-storage/volume-plugin-faq.md) diff --git a/content/fa/docs/reference/glossary/garbage-collection.md b/content/fa/docs/reference/glossary/garbage-collection.md new file mode 100644 index 0000000000000..84a68d9a96cdc --- /dev/null +++ b/content/fa/docs/reference/glossary/garbage-collection.md @@ -0,0 +1,25 @@ +--- +title: جمع‌آوری زباله +id: garbage-collection +date: 2021-07-07 +full_link: /docs/concepts/architecture/garbage-collection/ +short_description: > + اصطلاحی کلی برای مکانیزم‌های مختلفی که کوبرنتیز برای پاک‌سازی منابع خوشه استفاده می‌کند. + +aka: +tags: +- fundamental +- operation +--- + +حذف زباله (Garbage collection) اصطلاحی کلی برای مکانیزم‌های مختلفی است که کوبرنتیز برای پاک‌سازی منابع خوشه به‌کار می‌برد. + + + +کوبرنتیز از حذف زباله برای پاک‌سازی منابعی همچون +[کانتینرها و تصاویر بدون استفاده](/docs/concepts/architecture/garbage-collection/#containers-images)، +[پادهای ناموفق](/docs/concepts/workloads/pods/pod-lifecycle/#pod-garbage-collection)، +[اشیائی که متعلق به منبع هدف هستند](/docs/concepts/overview/working-with-objects/owners-dependents/)، +[Jobهای تکمیل‌شده](/docs/concepts/workloads/controllers/ttlafterfinished/)، و منابعی +که منقضی شده یا با شکست مواجه شده‌اند، استفاده می‌کند. + diff --git a/content/fa/docs/reference/glossary/gateway.md b/content/fa/docs/reference/glossary/gateway.md new file mode 100644 index 0000000000000..c9fdfd2b25f2c --- /dev/null +++ b/content/fa/docs/reference/glossary/gateway.md @@ -0,0 +1,19 @@ +--- +title: API دروازه +id: gateway-api +date: 2023-10-19 +full_link: /docs/concepts/services-networking/gateway/ +short_description: > + یک API برای مدل‌سازی شبکه‌سازی سرویس در کوبرنتیز. + +aka: +tags: +- networking +- architecture +- extension +--- + مجموعه‌ای از گونه‌های API برای مدل‌سازی شبکه‌سازی سرویس در کوبرنتیز. + + + +Gateway API مجموعه‌ای از گونه‌های API قابل‌گسترش، نقش‌محور و آگاه از پروتکل را برای مدل‌سازی شبکه‌سازی سرویس در کوبرنتیز فراهم می‌کند. diff --git a/content/fa/docs/reference/glossary/group-version-resource.md b/content/fa/docs/reference/glossary/group-version-resource.md new file mode 100644 index 0000000000000..cdbf1dd2dee62 --- /dev/null +++ b/content/fa/docs/reference/glossary/group-version-resource.md @@ -0,0 +1,17 @@ +--- +title: منبع نسخه گروهی +id: gvr +date: 2023-07-24 +short_description: > + گروه API، نسخه API و نام یک API در کوبرنتیز. + +aka: ["GVR"] +tags: +- architecture +--- +روش نمایش یک منبع منحصربه‌فرد API کوبرنتیز. + + + +Group Version Resourceها (GVR) گروه API، نسخه API و منبع (نام نوع شیء همان‌طور که در URI نمایش داده می‌شود) مرتبط با دسترسی به شناسه مشخص یک شیء در کوبرنتیز را مشخص می‌کنند. +GVRها به شما اجازه می‌دهند اشیای مختلف کوبرنتیز را تعریف کرده و از یکدیگر متمایز کنید، و روشی برای دسترسی به اشیاء ارائه می‌کنند که حتی با تغییر APIها پایدار باقی بماند. diff --git a/content/fa/docs/reference/glossary/helm-chart.md b/content/fa/docs/reference/glossary/helm-chart.md new file mode 100644 index 0000000000000..277b1bb6cf4d1 --- /dev/null +++ b/content/fa/docs/reference/glossary/helm-chart.md @@ -0,0 +1,19 @@ +--- +title: Helm Chart +id: helm-chart +date: 2018-04-12 +full_link: https://helm.sh/docs/topics/charts/ +short_description: > + یک بسته از منابع ازپیش‌پیکربندی‌شده کوبرنتیز که می‌توان آن را با ابزار Helm مدیریت کرد. + +aka: +tags: +- tool +--- + یک بسته از منابع ازپیش‌پیکربندی‌شده کوبرنتیز که می‌توان آن را با ابزار Helm مدیریت کرد. + + + +چارت‌ها روشی قابل تکرار برای ایجاد و به‌اشتراک‌گذاری برنامه‌های کوبرنتیز فراهم می‌کنند. +یک چارت می‌تواند برای استقرار چیزی ساده مانند یک پاد memcached یا چیزی پیچیده مانند یک پشته کامل وب‌اپ با سرورهای HTTP، پایگاه‌های داده، کش‌ها و غیره استفاده شود. + diff --git a/content/fa/docs/reference/glossary/horizontal-pod-autoscaler.md b/content/fa/docs/reference/glossary/horizontal-pod-autoscaler.md new file mode 100644 index 0000000000000..26ca31788725c --- /dev/null +++ b/content/fa/docs/reference/glossary/horizontal-pod-autoscaler.md @@ -0,0 +1,18 @@ +--- +title: مقیاس‌دهنده خودکار افقی پاد +id: horizontal-pod-autoscaler +date: 2018-04-12 +full_link: /docs/tasks/run-application/horizontal-pod-autoscale/ +short_description: > + یک منبع API که تعداد رپلیکای پاد را بر اساس میزان استفاده هدف CPU یا اهداف سفارشی متریک به‌طور خودکار مقیاس می‌کند. + +aka: +- HPA +tags: +- operation +--- + یک منبع API که تعداد رپلیکای {{< glossary_tooltip term_id="pod" >}} را بر اساس میزان استفاده هدف CPU یا اهداف سفارشی متریک به‌طور خودکار مقیاس می‌کند. + + + +HPA معمولاً همراه با {{< glossary_tooltip text="ReplicationControllers" term_id="replication-controller" >}}، {{< glossary_tooltip text="Deployments" term_id="deployment" >}} یا {{< glossary_tooltip text="ReplicaSets" term_id="replica-set" >}} استفاده می‌شود. این قابلیت را نمی‌توان روی اشیائی که قابل مقیاس نیستند اعمال کرد؛ برای مثال {{< glossary_tooltip text="DaemonSets" term_id="daemonset" >}}. diff --git a/content/fa/docs/reference/glossary/host-aliases.md b/content/fa/docs/reference/glossary/host-aliases.md new file mode 100644 index 0000000000000..e43cc6d6f9bd1 --- /dev/null +++ b/content/fa/docs/reference/glossary/host-aliases.md @@ -0,0 +1,17 @@ +--- +title: نام‌های مستعار میزبان +id: HostAliases +date: 2019-01-31 +full_link: /docs/reference/generated/kubernetes-api/{{< param "version" >}}/#hostalias-v1-core +short_description: > + یک HostAliases نگاشتی میان نشانی IP و نام میزبان است که در فایل hosts یک پاد تزریق می‌شود. + +aka: +tags: +- operation +--- + یک HostAliases نگاشتی میان نشانی IP و نام میزبان است که در فایل hosts یک {{< glossary_tooltip text="Pod" term_id="pod" >}} تزریق می‌شود. + + + +[HostAliases](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#hostalias-v1-core) فهرستی اختیاری از نام‌های میزبان و نشانی‌های IP است که در صورت مشخص‌شدن، در فایل hosts پاد تزریق می‌شود. این گزینه فقط برای پادهایی معتبر است که hostNetwork نیستند. diff --git a/content/fa/docs/reference/glossary/image.md b/content/fa/docs/reference/glossary/image.md new file mode 100644 index 0000000000000..2303a4c53cd4d --- /dev/null +++ b/content/fa/docs/reference/glossary/image.md @@ -0,0 +1,17 @@ +--- +title: ایمیج +id: image +date: 2018-04-12 +full_link: +short_description: > + نمونه ذخیره‌شده‌ای از یک کانتینر که مجموعه نرم‌افزارهای لازم برای اجرای یک برنامه را در خود دارد. + +aka: +tags: +- fundamental +--- + نمونه ذخیره‌شده یک {{< glossary_tooltip term_id="container" >}} که مجموعه نرم‌افزارهای لازم برای اجرای یک برنامه را در خود دارد. + + + +روشی برای بسته‌بندی نرم‌افزار که امکان ذخیره‌سازی آن در یک رجیستری کانتینر، کشیدن به سامانه محلی و اجرای آن به‌عنوان یک برنامه را فراهم می‌کند. فراداده‌هایی نیز در ایمیج وجود دارد که می‌تواند مشخص کند چه اجرایی باید اجرا شود، چه کسی آن را ساخته است و اطلاعات دیگر. diff --git a/content/fa/docs/reference/glossary/immutable-infrastructure.md b/content/fa/docs/reference/glossary/immutable-infrastructure.md new file mode 100644 index 0000000000000..4ae982f78e0a0 --- /dev/null +++ b/content/fa/docs/reference/glossary/immutable-infrastructure.md @@ -0,0 +1,23 @@ +--- +title: زیرساخت تغییرناپذیر +id: immutable-infrastructure +date: 2024-03-25 +full_link: +short_description: > + زیرساخت تغییرناپذیر به زیرساخت رایانه‌ای (ماشین‌های مجازی، کانتینرها، تجهیزات شبکه) اشاره دارد که پس از استقرار دیگر قابل تغییر نیست. + +aka: +tags: +- architecture +--- + زیرساخت تغییرناپذیر به زیرساخت رایانه‌ای (ماشین‌های مجازی، کانتینرها، تجهیزات شبکه) اشاره دارد که پس از استقرار دیگر قابل تغییر نیست. + + + +تغییرناپذیری می‌تواند از طریق فرایندی خودکار که تغییرات غیرمجاز را بازنویسی می‌کند یا سیستمی که اساساً اجازه تغییر نمی‌دهد، اعمال شود. +{{< glossary_tooltip text="Containers" term_id="container" >}} نمونه خوبی از زیرساخت تغییرناپذیر هستند، زیرا ایجاد تغییرات پایدار در کانتینرها فقط با ساخت نسخه جدید کانتینر یا بازآفرینی کانتینر موجود از روی ایمیج آن امکان‌پذیر است. + +با جلوگیری یا شناسایی تغییرات غیرمجاز، زیرساخت‌های تغییرناپذیر شناسایی و کاهش ریسک‌های امنیتی را آسان‌تر می‌کنند. +عملیات چنین سیستمی بسیار ساده‌تر می‌شود، زیرا مدیران می‌توانند با اطمینان فرض کنند که هیچ‌کس اشتباه یا تغییری را بدون اطلاع‌رسانی اعمال نکرده است. +زیرساخت تغییرناپذیر دست در دست «زیرساخت به‌عنوان کد» پیش می‌رود؛ جایی که تمام خودکاریِ لازم برای ایجاد زیرساخت در کنترل نسخه (مانند Git) ذخیره می‌شود. +این ترکیب از تغییرناپذیری و کنترل نسخه به این معناست که یک گزارش حسابرسی ماندگار از هر تغییر مجاز در سیستم وجود دارد. diff --git a/content/fa/docs/reference/glossary/index.md b/content/fa/docs/reference/glossary/index.md new file mode 100644 index 0000000000000..b0d9d1c432b5f --- /dev/null +++ b/content/fa/docs/reference/glossary/index.md @@ -0,0 +1,15 @@ +--- +approvers: +- xirehat +title: واژه‌نامه +layout: glossary +noedit: true +body_class: glossary +default_active_tag: fundamental +weight: 5 +card: + name: reference + weight: 10 + title: واژه‌نامه +--- + diff --git a/content/fa/docs/reference/glossary/infrastructure-resource.md b/content/fa/docs/reference/glossary/infrastructure-resource.md new file mode 100644 index 0000000000000..5c01bfe2c4bbb --- /dev/null +++ b/content/fa/docs/reference/glossary/infrastructure-resource.md @@ -0,0 +1,22 @@ +--- +title: منبع (زیرساخت) +id: infrastructure-resource +date: 2025-02-09 +short_description: > + مقدار مشخصی از زیرساخت که برای مصرف در دسترس است (CPU، حافظه و غیره). + +aka: +tags: +- architecture +--- + قابلیت‌هایی که به یک یا چند {{< glossary_tooltip text="nodes" term_id="node" >}} (CPU، حافظه، GPUها و غیره) اختصاص داده می‌شود و برای مصرف توسط {{< glossary_tooltip text="Pods" term_id="pod" >}} در حال اجرا روی آن نودها در دسترس قرار می‌گیرد. + +کوبرنتیز همچنین از اصطلاح _منبع_ برای توصیف یک {{< glossary_tooltip text="API resource" term_id="api-resource" >}} استفاده می‌کند. + + + +رایانه‌ها امکانات سخت‌افزاری پایه‌ای را فراهم می‌کنند: توان پردازشی، حافظه ذخیره‌سازی، شبکه و غیره. +این منابع ظرفیت محدودی دارند که با واحد مناسب همان منبع اندازه‌گیری می‌شود (تعداد CPUها، بایت‌های حافظه و غیره). +کوبرنتیز منابع رایج را برای تخصیص به بارهای کاری مجرد می‌کند و از سازوکارهای ابتدایی سیستم‌عامل (برای مثال، {{< glossary_tooltip text="cgroups" term_id="cgroup" >}} در لینوکس) برای مدیریت مصرف توسط {{< glossary_tooltip text="workloads" term_id="workload" >}} بهره می‌برد. + +همچنین می‌توانید از [تخصیص پویای منابع](/docs/concepts/scheduling-eviction/dynamic-resource-allocation/) برای مدیریت خودکار تخصیص‌های پیچیده منابع استفاده کنید. diff --git a/content/fa/docs/reference/glossary/ingress.md b/content/fa/docs/reference/glossary/ingress.md new file mode 100644 index 0000000000000..b1491fe5af12f --- /dev/null +++ b/content/fa/docs/reference/glossary/ingress.md @@ -0,0 +1,19 @@ +--- +title: اینگرس +id: ingress +date: 2018-04-12 +full_link: /docs/concepts/services-networking/ingress/ +short_description: > + یک شیء API که دسترسی خارجی به سرویس‌های یک خوشه، معمولاً HTTP، را مدیریت می‌کند. + +aka: +tags: +- networking +- architecture +- extension +--- + یک شیء API که دسترسی خارجی به سرویس‌های یک خوشه، معمولاً HTTP، را مدیریت می‌کند. + + + +اینگرس ممکن است توازن بار، پایان‌دهی SSL و میزبانی مجازی مبتنی بر نام را فراهم کند. diff --git a/content/fa/docs/reference/glossary/init-container.md b/content/fa/docs/reference/glossary/init-container.md new file mode 100644 index 0000000000000..0298ab4436da9 --- /dev/null +++ b/content/fa/docs/reference/glossary/init-container.md @@ -0,0 +1,20 @@ +--- +title: کانتینر آغازگر +id: init-container +date: 2018-04-12 +full_link: /docs/concepts/workloads/pods/init-containers/ +short_description: > + یک یا چند کانتینر آغازگر که باید پیش از اجرای هر کانتینر برنامه به‌طور کامل اجرا شوند. +aka: +tags: +- fundamental +--- + یک یا چند کانتینر آغازگر {{< glossary_tooltip text="containers" term_id="container" >}} که باید پیش از اجرای هر کانتینر برنامه به‌طور کامل اجرا شوند. + + + +کانتینرهای آغازگر (init) شبیه کانتینرهای معمولیِ برنامه هستند، با یک تفاوت: کانتینرهای آغازگر باید پیش از آنکه هر کانتینر برنامه‌ای بتواند شروع به کار کند، به‌طور کامل اجرا شوند. کانتینرهای آغازگر به‌صورت سری اجرا می‌شوند؛ هر کانتینر آغازگر باید پیش از شروع کانتینر آغازگر بعدی به پایان برسد. + +برخلاف {{< glossary_tooltip text="sidecar containers" term_id="sidecar-container" >}}، کانتینرهای آغازگر پس از راه‌اندازی پاد همچنان در حال اجرا نمی‌مانند. + +برای اطلاعات بیشتر، [کانتینرهای آغازگر](/docs/concepts/workloads/pods/init-containers/) را مطالعه کنید. diff --git a/content/fa/docs/reference/glossary/istio.md b/content/fa/docs/reference/glossary/istio.md new file mode 100644 index 0000000000000..d867be29b9075 --- /dev/null +++ b/content/fa/docs/reference/glossary/istio.md @@ -0,0 +1,19 @@ +--- +title: Istio +id: istio +date: 2018-04-12 +full_link: https://istio.io/latest/about/service-mesh/#what-is-istio +short_description: > + یک پلتفرم متن‌باز (غیر اختصاصی به کوبرنتیز) که روشی یکنواخت برای یکپارچه‌سازی میکروسرویس‌ها، مدیریت جریان ترافیک، اعمال سیاست‌ها و تجمیع داده‌های تله‌متری فراهم می‌کند. + +aka: +tags: +- networking +- architecture +- extension +--- + یک پلتفرم متن‌باز (غیر مختص کوبرنتیز) که راهی یکنواخت برای یکپارچه‌سازی میکروسرویس‌ها، مدیریت جریان ترافیک، اعمال سیاست‌ها و جمع‌آوری داده‌های تله‌متری فراهم می‌کند. + + + +افزودن Istio نیازی به تغییر کد برنامه ندارد. این یک لایه زیرساختی میان سرویس و شبکه است که همراه با استقرار سرویس‌ها معمولاً «مش سرویس» (service mesh) نامیده می‌شود. صفحه کنترل Istio لایه مدیریت خوشه زیرین را انتزاع می‌کند؛ این پلتفرم می‌تواند کوبرنتیز، Mesosphere و غیره باشد. diff --git a/content/fa/docs/reference/glossary/job.md b/content/fa/docs/reference/glossary/job.md new file mode 100644 index 0000000000000..fda671313ed2b --- /dev/null +++ b/content/fa/docs/reference/glossary/job.md @@ -0,0 +1,19 @@ +--- +title: وظیفه +id: job +date: 2018-04-12 +full_link: /docs/concepts/workloads/controllers/job/ +short_description: > + یک وظیفه محدود یا دسته‌ای که تا تکمیل اجرا می‌شود. + +aka: +tags: +- fundamental +- core-object +- workload +--- + یک وظیفه محدود یا دسته‌ای که تا تکمیل اجرا می‌شود. + + + +یک Job یک یا چند شیء {{< glossary_tooltip term_id="pod" >}} ایجاد می‌کند و تضمین می‌کند که تعداد مشخصی از آن‌ها با موفقیت خاتمه یابند. با تکمیل موفق پادها، Job تکمیل‌های موفق را پیگیری می‌کند. diff --git a/content/fa/docs/reference/glossary/jwt.md b/content/fa/docs/reference/glossary/jwt.md new file mode 100644 index 0000000000000..01aea919232cf --- /dev/null +++ b/content/fa/docs/reference/glossary/jwt.md @@ -0,0 +1,20 @@ +--- +title: JSON Web Token (JWT) +id: jwt +date: 2023-01-17 +full_link: https://www.rfc-editor.org/rfc/rfc7519 +short_description: > + روشی برای نمایش ادعاهایی که باید بین دو طرف منتقل شوند. + +aka: +tags: +- security +- architecture +--- + روشی برای نمایش ادعاهایی که باید بین دو طرف منتقل شوند. + + + +JWTها می‌توانند به‌صورت دیجیتالی امضا و رمزگذاری شوند. کوبرنتیز از JWTها به‌عنوان +توکن‌های احراز هویت استفاده می‌کند تا هویت موجودیت‌هایی را که می‌خواهند در یک خوشه +اقداماتی انجام دهند، تأیید کند. diff --git a/content/fa/docs/reference/glossary/kops.md b/content/fa/docs/reference/glossary/kops.md new file mode 100644 index 0000000000000..aa1c7d3e6fe7f --- /dev/null +++ b/content/fa/docs/reference/glossary/kops.md @@ -0,0 +1,29 @@ +--- +title: kOps (Kubernetes Operation) +id: kops +date: 2018-04-12 +full_link: /docs/setup/production-environment/kops/ +short_description: > + kOps نه‌تنها به شما کمک می‌کند یک خوشه کوبرنتیز در سطح تولید با دسترس‌پذیری بالا ایجاد، نابود، ارتقا و نگهداری کنید، بلکه زیرساخت ابری موردنیاز را نیز فراهم می‌کند. + +aka: +tags: +- tool +- operation +--- + +`kOps` نه‌تنها به شما کمک می‌کند یک خوشه کوبرنتیز در سطح تولید و با دسترس‌پذیری بالا را ایجاد، نابود، ارتقا و نگهداری کنید، بلکه زیرساخت ابری موردنیاز را نیز فراهم می‌کند. + + + +{{< note >}} +AWS (Amazon Web Services) در حال حاضر به‌صورت رسمی پشتیبانی می‌شود؛ DigitalOcean، GCE و OpenStack در وضعیت بتا و Azure در وضعیت آلفا هستند. +{{< /note >}} + +`kOps` یک سیستم تأمین خودکار است: + * نصب کاملاً خودکار + * استفاده از DNS برای شناسایی خوشه‌ها + * خودترمیمی: همه‌چیز در گروه‌های مقیاس‌پذیری خودکار اجرا می‌شود + * پشتیبانی از چندین سیستم‌عامل (Amazon Linux، Debian، Flatcar، RHEL، Rocky و Ubuntu) + * پشتیبانی از دسترس‌پذیری بالا + * امکان تأمین مستقیم یا تولید مانیفست‌های Terraform diff --git a/content/fa/docs/reference/glossary/kube-apiserver.md b/content/fa/docs/reference/glossary/kube-apiserver.md new file mode 100644 index 0000000000000..241f889acf47b --- /dev/null +++ b/content/fa/docs/reference/glossary/kube-apiserver.md @@ -0,0 +1,21 @@ +--- +title: سرور API +id: kube-apiserver +date: 2018-04-12 +full_link: /docs/concepts/architecture/#kube-apiserver +short_description: > + مؤلفه کنترل پلین که API کوبرنتیز را ارائه می‌کند. + +aka: +- kube-apiserver +tags: +- architecture +- fundamental +--- + سرور API مؤلفه‌ای از {{< glossary_tooltip text="control plane" term_id="control-plane" >}} کوبرنتیز است که API کوبرنتیز را در معرض قرار می‌دهد. سرور API رابط جلوییِ کنترل پلین کوبرنتیز است. + + + +پیاده‌سازی اصلیِ سرور API کوبرنتیز، [kube-apiserver](/docs/reference/generated/kube-apiserver/) است. +kube-apiserver برای مقیاس‌پذیری افقی طراحی شده است—یعنی با استقرار نمونه‌های بیشتر مقیاس می‌شود. +می‌توانید چندین نمونه kube-apiserver را اجرا کرده و ترافیک را میان آن‌ها متعادل کنید. diff --git a/content/fa/docs/reference/glossary/kube-controller-manager.md b/content/fa/docs/reference/glossary/kube-controller-manager.md new file mode 100644 index 0000000000000..37d8bc1403761 --- /dev/null +++ b/content/fa/docs/reference/glossary/kube-controller-manager.md @@ -0,0 +1,18 @@ +--- +title: مدیر کنترل‌کننده کوبرنتیز +id: kube-controller-manager +date: 2018-04-12 +full_link: /docs/reference/command-line-tools-reference/kube-controller-manager/ +short_description: > + یک مؤلفه کنترل پلین که فرایندهای کنترلر را اجرا می‌کند. + +aka: +tags: +- architecture +- fundamental +--- + یک مؤلفه کنترل پلین که فرایندهای {{< glossary_tooltip text="controller" term_id="controller" >}} را اجرا می‌کند. + + + +از نظر منطقی، هر {{< glossary_tooltip text="controller" term_id="controller" >}} یک فرایند جداگانه است، اما برای کاهش پیچیدگی، همه آن‌ها در یک باینری واحد کامپایل شده و در یک فرایند واحد اجرا می‌شوند. diff --git a/content/fa/docs/reference/glossary/kube-proxy.md b/content/fa/docs/reference/glossary/kube-proxy.md new file mode 100644 index 0000000000000..1e415566f2fbf --- /dev/null +++ b/content/fa/docs/reference/glossary/kube-proxy.md @@ -0,0 +1,25 @@ +--- +title: پراکسی کوبرنتیز +id: kube-proxy +date: 2018-04-12 +full_link: /docs/reference/command-line-tools-reference/kube-proxy/ +short_description: > + `kube-proxy` یک پراکسی شبکه است که روی هر نود در خوشه اجرا می‌شود. + +aka: +tags: +- fundamental +- networking +--- + `kube-proxy` یک پراکسی شبکه است که روی هر +{{< glossary_tooltip text="node" term_id="node" >}} در خوشه شما اجرا می‌شود و بخشی از مفهوم +{{< glossary_tooltip term_id="service">}} کوبرنتیز را پیاده‌سازی می‌کند. + + + +[kube-proxy](/docs/reference/command-line-tools-reference/kube-proxy/) +قوانین شبکه را روی نودها نگهداری می‌کند. این قوانین شبکه امکان برقراری +ارتباط با پادهای شما را از نشست‌های شبکه داخل یا خارج از خوشه فراهم می‌سازد. + +kube-proxy در صورت وجود و در دسترس بودن، از لایه فیلتر بسته سیستم‌عامل استفاده می‌کند؛ +در غیر این صورت، kube-proxy خود ترافیک را هدایت می‌کند. diff --git a/content/fa/docs/reference/glossary/kube-scheduler.md b/content/fa/docs/reference/glossary/kube-scheduler.md new file mode 100644 index 0000000000000..1bc1035ff82f5 --- /dev/null +++ b/content/fa/docs/reference/glossary/kube-scheduler.md @@ -0,0 +1,22 @@ +--- +title: زمان‌بند کوبرنتیز +id: kube-scheduler +date: 2018-04-12 +full_link: /docs/reference/command-line-tools-reference/kube-scheduler/ +short_description: > + یک مؤلفه کنترل پلین که پادهای تازه ایجادشده بدون نود تخصیص‌یافته را پایش می‌کند و نودی را برای اجرای آن‌ها برمی‌گزیند. + +aka: +tags: +- architecture +--- + یک مؤلفه کنترل پلین که پادهای تازه ایجادشده‌ای را که نودی به آن‌ها اختصاص داده نشده است +({{< glossary_tooltip term_id="pod" text="Pods" >}} بی‌نود) پایش می‌کند و نودی را برای اجرای آن‌ها +({{< glossary_tooltip term_id="node" text="node" >}}) انتخاب می‌کند. + + + +عواملی که در تصمیم‌گیری زمان‌بندی در نظر گرفته می‌شوند عبارت‌اند از: +نیازهای منابع به‌صورت فردی و جمعی، محدودیت‌های سخت‌افزاری/نرم‌افزاری/سیاستی، +مشخصات همبستگی (affinity) و ناهمبستگی (anti-affinity)، محلی‌بودن داده‌ها، +تداخل میان بارهای کاری و ضرب‌الاجل‌ها. diff --git a/content/fa/docs/reference/glossary/kubeadm.md b/content/fa/docs/reference/glossary/kubeadm.md new file mode 100644 index 0000000000000..67294d05beac1 --- /dev/null +++ b/content/fa/docs/reference/glossary/kubeadm.md @@ -0,0 +1,18 @@ +--- +title: Kubeadm +id: kubeadm +date: 2018-04-12 +full_link: /docs/reference/setup-tools/kubeadm/ +short_description: > + ابزاری برای نصب سریع کوبرنتیز و راه‌اندازی یک خوشه ایمن. + +aka: +tags: +- tool +- operation +--- + ابزاری برای نصب سریع کوبرنتیز و راه‌اندازی یک خوشه ایمن. + + + +می‌توانید از kubeadm برای نصب هر دو جزء کنترل پلین و اجزای {{< glossary_tooltip text="worker node" term_id="node" >}} استفاده کنید. diff --git a/content/fa/docs/reference/glossary/kubectl.md b/content/fa/docs/reference/glossary/kubectl.md new file mode 100644 index 0000000000000..d378240400c58 --- /dev/null +++ b/content/fa/docs/reference/glossary/kubectl.md @@ -0,0 +1,22 @@ +--- +title: Kubectl +id: kubectl +date: 2018-04-12 +full_link: /docs/reference/kubectl/ +short_description: > + یک ابزار خط فرمان برای ارتباط با خوشه کوبرنتیز. + +aka: +- kubectl +tags: +- tool +- fundamental +--- + ابزاری خط فرمان برای ارتباط با {{< glossary_tooltip text="control plane" term_id="control-plane" >}} خوشه کوبرنتیز با استفاده از API کوبرنتیز است. + + + +می‌توانید با استفاده از `kubectl` اشیای کوبرنتیز را ایجاد، بازرسی، به‌روزرسانی و حذف کنید. + + +در انگلیسی، `kubectl` به‌طور رسمی /kjuːb/ /kənˈtɹəʊl/ («کیوب کنترل») تلفظ می‌شود. diff --git a/content/fa/docs/reference/glossary/kubelet.md b/content/fa/docs/reference/glossary/kubelet.md new file mode 100644 index 0000000000000..848183a5d53e6 --- /dev/null +++ b/content/fa/docs/reference/glossary/kubelet.md @@ -0,0 +1,17 @@ +--- +title: Kubelet +id: kubelet +date: 2018-04-12 +full_link: /docs/reference/generated/kubelet +short_description: > + یک عامل (agent) که روی هر نود در خوشه اجرا می‌شود و اطمینان می‌دهد کانتینرها در یک پاد در حال اجرا باشند. + +aka: +tags: +- fundamental +--- + یک عامل که روی هر {{< glossary_tooltip text="node" term_id="node" >}} در خوشه اجرا می‌شود و اطمینان می‌دهد {{< glossary_tooltip text="containers" term_id="container" >}} در یک {{< glossary_tooltip text="Pod" term_id="pod" >}} در حال اجرا باشند. + + + +[kubelet](/docs/reference/command-line-tools-reference/kubelet/) مجموعه‌ای از PodSpecهایی را که از طریق سازوکارهای مختلف فراهم می‌شوند دریافت می‌کند و اطمینان می‌دهد کانتینرهای توصیف‌شده در آن PodSpecها در حال اجرا و سالم باشند. kubelet کانتینرهایی را که توسط کوبرنتیز ایجاد نشده‌اند مدیریت نمی‌کند. diff --git a/content/fa/docs/reference/glossary/kubernetes-api.md b/content/fa/docs/reference/glossary/kubernetes-api.md new file mode 100644 index 0000000000000..b37d4fa5ac0fd --- /dev/null +++ b/content/fa/docs/reference/glossary/kubernetes-api.md @@ -0,0 +1,18 @@ +--- +title: Kubernetes API +id: kubernetes-api +date: 2018-04-12 +full_link: /docs/concepts/overview/kubernetes-api/ +short_description: > + برنامه‌ای که قابلیت‌های کوبرنتیز را از طریق یک رابط RESTful ارائه می‌دهد و وضعیت خوشه را ذخیره می‌کند. + +aka: +tags: +- fundamental +- architecture +--- + برنامه‌ای که قابلیت‌های کوبرنتیز را از طریق یک رابط RESTful ارائه می‌دهد و وضعیت خوشه را ذخیره می‌کند. + + + +منابع کوبرنتیز و «سوابق قصد» همگی به‌صورت اشیای API ذخیره می‌شوند و از طریق فراخوانی‌های RESTful به API تغییر می‌یابند. این API امکان مدیریت پیکربندی را به‌صورت اعلامی فراهم می‌کند. کاربران می‌توانند مستقیماً یا از طریق ابزارهایی مانند `kubectl` با Kubernetes API تعامل داشته باشند. هسته Kubernetes API منعطف است و می‌تواند برای پشتیبانی از منابع سفارشی نیز گسترش یابد. diff --git a/content/fa/docs/reference/glossary/label.md b/content/fa/docs/reference/glossary/label.md new file mode 100644 index 0000000000000..398d22c947c52 --- /dev/null +++ b/content/fa/docs/reference/glossary/label.md @@ -0,0 +1,17 @@ +--- +title: برچسب +id: label +date: 2018-04-12 +full_link: /docs/concepts/overview/working-with-objects/labels +short_description: > + اشیاء را با ویژگی‌های شناسایی‌کننده‌ای که برای کاربران معنادار و مرتبط هستند نشان می‌کند. + +aka: +tags: +- fundamental +--- + اشیاء را با ویژگی‌های شناسایی‌کننده‌ای که برای کاربران معنادار و مرتبط هستند نشان می‌کند. + + + +برچسب‌ها جفت‌های کلید/مقدار هستند که به اشیائی مانند {{< glossary_tooltip text="Pods" term_id="pod" >}} متصل می‌شوند. از آن‌ها برای سازمان‌دهی و انتخاب زیرمجموعه‌ای از اشیاء استفاده می‌شود. diff --git a/content/fa/docs/reference/glossary/limitrange.md b/content/fa/docs/reference/glossary/limitrange.md new file mode 100644 index 0000000000000..1ea487f99931b --- /dev/null +++ b/content/fa/docs/reference/glossary/limitrange.md @@ -0,0 +1,22 @@ +--- +title: محدوده محدودیت +id: limitrange +date: 2019-04-15 +full_link: /docs/concepts/policy/limit-range/ +short_description: > + محدودیت‌هایی را برای مصرف منابع هر کانتینر یا پاد در یک نام‌فضا فراهم می‌کند. + +aka: +tags: +- core-object +- fundamental +- architecture +related: + - pod + - container + +--- + محدودیت‌هایی را فراهم می‌کند تا مصرف منابع هر {{< glossary_tooltip text="Containers" term_id="container" >}} یا {{< glossary_tooltip text="Pods" term_id="pod" >}} در یک نام‌فضا را محدود کند. + + +LimitRange تعداد اشیائی را که می‌توان بر اساس نوعشان ایجاد کرد، و همچنین میزان منابع محاسباتی‌ای را که ممکن است توسط هر {{< glossary_tooltip text="Containers" term_id="container" >}} یا {{< glossary_tooltip text="Pods" term_id="pod" >}} در یک نام‌فضا درخواست یا مصرف شود، محدود می‌کند. diff --git a/content/fa/docs/reference/glossary/logging.md b/content/fa/docs/reference/glossary/logging.md new file mode 100644 index 0000000000000..f6c44a8cc05e9 --- /dev/null +++ b/content/fa/docs/reference/glossary/logging.md @@ -0,0 +1,18 @@ +--- +title: لاگ‌گیری +id: logging +date: 2019-04-04 +full_link: /docs/concepts/cluster-administration/logging/ +short_description: > + لاگ‌ها فهرست رویدادهایی هستند که توسط خوشه یا برنامه ثبت می‌شوند. + +aka: +tags: +- architecture +- fundamental +--- + لاگ‌ها فهرست رویدادهایی هستند که توسط {{< glossary_tooltip text="cluster" term_id="cluster" >}} یا برنامه ثبت می‌شوند. + + + +لاگ‌های برنامه و سیستم می‌توانند به شما کمک کنند درک کنید درون خوشه شما چه می‌گذرد. این لاگ‌ها به‌ویژه برای اشکال‌زدایی مشکلات و پایش فعالیت خوشه بسیار سودمند هستند. diff --git a/content/fa/docs/reference/glossary/managed-service.md b/content/fa/docs/reference/glossary/managed-service.md new file mode 100644 index 0000000000000..316dfeb786ccf --- /dev/null +++ b/content/fa/docs/reference/glossary/managed-service.md @@ -0,0 +1,18 @@ +--- +title: سرویس مدیریت‌شده +id: managed-service +date: 2018-04-12 +full_link: +short_description: > + یک ارائه نرم‌افزاری که توسط یک ارائه‌دهنده ثالث نگهداری می‌شود. + +aka: +tags: +- extension +--- + یک ارائه نرم‌افزاری که توسط یک ارائه‌دهنده ثالث نگهداری می‌شود. + + + +برخی نمونه‌های سرویس مدیریت‌شده عبارت‌اند از AWS EC2، Azure SQL Database و +GCP Pub/Sub؛ اما هر ارائه نرم‌افزاری‌ای که بتواند توسط یک برنامه استفاده شود می‌تواند سرویس مدیریت‌شده باشد. diff --git a/content/fa/docs/reference/glossary/manifest.md b/content/fa/docs/reference/glossary/manifest.md new file mode 100644 index 0000000000000..c68745c2c9a93 --- /dev/null +++ b/content/fa/docs/reference/glossary/manifest.md @@ -0,0 +1,18 @@ +--- +title: مانیفست +id: manifest +date: 2019-06-28 +short_description: > + مشخصات سریال‌شده یک یا چند شیء API کوبرنتیز. + +aka: +tags: +- fundamental +--- + مشخصات یک شیء API کوبرنتیز در قالب [JSON](https://www.json.org/json-en.html) + یا [YAML](https://yaml.org/) است. + + + +یک مانیفست وضعیت مطلوب یک شیء را مشخص می‌کند تا کوبرنتیز پس از اعمال مانیفست آن را حفظ کند. +در قالب YAML، هر فایل می‌تواند شامل چندین مانیفست باشد. diff --git a/content/fa/docs/reference/glossary/master.md b/content/fa/docs/reference/glossary/master.md new file mode 100644 index 0000000000000..77fe10939f24d --- /dev/null +++ b/content/fa/docs/reference/glossary/master.md @@ -0,0 +1,15 @@ +--- +title: مستر +id: master +date: 2020-04-16 +short_description: > + اصطلاحی قدیمی که به‌عنوان مترادف نودهایی به کار می‌رود که کنترل پلین را اجرا می‌کنند. + +aka: +tags: +- fundamental +--- + اصطلاحی قدیمی که به‌عنوان مترادف برای {{< glossary_tooltip text="nodes" term_id="node" >}} میزبان {{< glossary_tooltip text="control plane" term_id="control-plane" >}} به کار می‌رود. + + +این اصطلاح همچنان توسط برخی ابزارهای تأمین، مانند {{< glossary_tooltip text="kubeadm" term_id="kubeadm" >}}، و سرویس‌های مدیریت‌شده استفاده می‌شود تا {{< glossary_tooltip text="label" term_id="label" >}} کردن {{< glossary_tooltip text="nodes" term_id="node" >}} با `kubernetes.io/role` و کنترل جای‌گذاری {{< glossary_tooltip text="control plane" term_id="control-plane" >}} {{< glossary_tooltip text="pods" term_id="pod" >}} را امکان‌پذیر سازد. diff --git a/content/fa/docs/reference/glossary/member.md b/content/fa/docs/reference/glossary/member.md new file mode 100644 index 0000000000000..6e4433e139d88 --- /dev/null +++ b/content/fa/docs/reference/glossary/member.md @@ -0,0 +1,19 @@ +--- +title: عضو +id: member +date: 2018-04-12 +full_link: +short_description: > + یک مشارکت‌کننده فعال مستمر در جامعه K8s. + +aka: +tags: +- community +--- + یک {{< glossary_tooltip text="contributor" term_id="contributor" >}} فعال و مداوم در جامعه K8s. + + + +اعضا می‌توانند اِیشوها و درخواست‌های کشش (PR) به آن‌ها اختصاص داده شود و از طریق تیم‌های GitHub در {{< glossary_tooltip text="special interest groups (SIGs)" term_id="sig" >}} مشارکت کنند. +آزمون‌های پیش‌ارسال به‌طور خودکار برای PRهای اعضا اجرا می‌شود. +انتظار می‌رود یک عضو به‌عنوان مشارکت‌کننده‌ای فعال در جامعه باقی بماند. diff --git a/content/fa/docs/reference/glossary/minikube.md b/content/fa/docs/reference/glossary/minikube.md new file mode 100644 index 0000000000000..d0b5af5360504 --- /dev/null +++ b/content/fa/docs/reference/glossary/minikube.md @@ -0,0 +1,20 @@ +--- +title: Minikube +id: minikube +date: 2018-04-12 +full_link: /docs/tasks/tools/#minikube +short_description: > + ابزاری برای اجرای کوبرنتیز به‌صورت محلی. + +aka: +tags: +- fundamental +- tool +--- + ابزاری برای اجرای کوبرنتیز به‌صورت محلی. + + + +Minikube یک خوشه کوبرنتیز محلیِ تک‌گره‌ای یا چندگره‌ای را در یک ماشین مجازی روی رایانه شما اجرا می‌کند. +می‌توانید از Minikube برای +[امتحان کوبرنتیز در محیط آموزشی](/docs/tasks/tools/#minikube) استفاده کنید. diff --git a/content/fa/docs/reference/glossary/mirror-pod.md b/content/fa/docs/reference/glossary/mirror-pod.md new file mode 100644 index 0000000000000..ac2e93a71e2b6 --- /dev/null +++ b/content/fa/docs/reference/glossary/mirror-pod.md @@ -0,0 +1,21 @@ +--- +title: پاد آینه‌ای +id: mirror-pod +date: 2019-08-06 +short_description: > + شیئی در سرور API که یک پاد ایستا روی kubelet را دنبال می‌کند. + +aka: +tags: +- fundamental +--- + شیء {{< glossary_tooltip text="pod" term_id="pod" >}} که یک {{< glossary_tooltip text="kubelet" term_id="kubelet" >}} + برای نمایش یک {{< glossary_tooltip text="static pod" term_id="static-pod" >}} استفاده می‌کند. + + + +هنگامی که kubelet در پیکربندی خود یک پاد ایستا پیدا می‌کند، به‌طور خودکار تلاش می‌کند +یک شیء پاد در سرور API کوبرنتیز برای آن ایجاد کند. این به این معناست که پاد +روی سرور API قابل مشاهده خواهد بود، اما نمی‌توان آن را از آنجا کنترل کرد. + +(برای مثال، حذف یک پاد آینه‌ای باعث نمی‌شود که سرویس kubelet اجرای آن را متوقف کند). diff --git a/content/fa/docs/reference/glossary/mixed-version-proxy.md b/content/fa/docs/reference/glossary/mixed-version-proxy.md new file mode 100644 index 0000000000000..d3f55e3bbf393 --- /dev/null +++ b/content/fa/docs/reference/glossary/mixed-version-proxy.md @@ -0,0 +1,21 @@ +--- +title: پراکسی نسخه مختلط (MVP) +id: mvp +date: 2023-07-24 +full_link: /docs/concepts/architecture/mixed-version-proxy/ +short_description: > + ویژگی‌ای که به kube-apiserver امکان می‌دهد یک درخواست منبع را به سرور API همتای دیگری پروکسی کند. +aka: ["MVP"] +tags: +- architecture +--- + ویژگی‌ای برای اینکه kube-apiserver درخواست یک منبع را به سرور API همتای دیگری پروکسی کند. + + + +وقتی یک خوشه چندین سرور API با نسخه‌های متفاوت کوبرنتیز داشته باشد، +این ویژگی امکان می‌دهد درخواست‌های منبع توسط سرور API مناسب سرویس‌دهی شوند. + +MVP به‌صورت پیش‌فرض غیرفعال است و می‌توان آن را با فعال کردن +[دروازه ویژگی](/docs/reference/command-line-tools-reference/feature-gates/) به نام `UnknownVersionInteroperabilityProxy` +هنگام راه‌اندازی {{< glossary_tooltip text="API Server" term_id="kube-apiserver" >}} فعال کرد. diff --git a/content/fa/docs/reference/glossary/name.md b/content/fa/docs/reference/glossary/name.md new file mode 100644 index 0000000000000..f6a1c76ed7e01 --- /dev/null +++ b/content/fa/docs/reference/glossary/name.md @@ -0,0 +1,17 @@ +--- +title: نام +id: name +date: 2018-04-12 +full_link: /docs/concepts/overview/working-with-objects/names +short_description: > + رشته‌ای که توسط کلاینت فراهم می‌شود و در یک URL منبع به شیء اشاره می‌کند، مانند `/api/v1/pods/some-name`. + +aka: +tags: +- fundamental +--- + رشته‌ای که توسط کلاینت فراهم می‌شود و در یک URL منبع به شیء اشاره می‌کند، مانند `/api/v1/pods/some-name`. + + + +در هر زمان فقط یک شیء از یک نوع مشخص می‌تواند یک نام معین داشته باشد. با این حال، اگر آن شیء را حذف کنید، می‌توانید یک شیء جدید با همان نام ایجاد کنید. diff --git a/content/fa/docs/reference/glossary/namespace.md b/content/fa/docs/reference/glossary/namespace.md new file mode 100644 index 0000000000000..b6ef7761d2c8b --- /dev/null +++ b/content/fa/docs/reference/glossary/namespace.md @@ -0,0 +1,19 @@ +--- +title: فضای نام +id: namespace +date: 2018-04-12 +full_link: /docs/concepts/overview/working-with-objects/namespaces +short_description: > + انتزاعی که کوبرنتیز برای جداسازی گروهی از منابع درون یک خوشه به‌کار می‌بَرد. + +aka: +tags: +- fundamental +--- + انتزاعی که کوبرنتیز برای جداسازی گروه‌هایی از منابع درون یک {{< glossary_tooltip text="cluster" term_id="cluster" >}} به‌کار می‌بَرد. + + + +فضاهای نام برای سازمان‌دهی اشیاء در یک خوشه استفاده می‌شوند و روشی برای تقسیم منابع خوشه فراهم می‌کنند. +نام منابع باید درون یک فضای نام یکتا باشد، اما لزومی ندارد میان فضاهای نام مختلف یکتا باشد. +محدوده‌بندی مبتنی بر فضای نام تنها برای اشیای دارای فضای نام _(مانند Deployment، Service و …)_ کاربرد دارد و بر اشیای سراسری خوشه _(مانند StorageClass، Node، PersistentVolume و …)_ قابل اعمال نیست. diff --git a/content/fa/docs/reference/glossary/network-policy.md b/content/fa/docs/reference/glossary/network-policy.md new file mode 100644 index 0000000000000..323ad6e3ffbaa --- /dev/null +++ b/content/fa/docs/reference/glossary/network-policy.md @@ -0,0 +1,20 @@ +--- +title: سیاست شبکه +id: network-policy +date: 2018-04-12 +full_link: /docs/concepts/services-networking/network-policies/ +short_description: > + مشخصه‌ای که تعیین می‌کند گروه‌های پاد چگونه مجازند با یکدیگر و با دیگر نقاط پایانی شبکه ارتباط برقرار کنند. + +aka: +tags: +- networking +- architecture +- extension +- core-object +--- + مشخصه‌ای که تعیین می‌کند گروه‌های پاد چگونه مجازند با یکدیگر و با دیگر نقاط پایانی شبکه ارتباط برقرار کنند. + + + +سیاست‌های شبکه به شما کمک می‌کنند به‌شکل اعلامی پیکربندی کنید کدام پادها مجاز به اتصال به یکدیگر هستند، کدام فضاهای نام اجازه ارتباط دارند، و به‌صورت دقیق روی کدام شماره‌پورت‌ها هر سیاست اجرا شود. منابع `NetworkPolicy` از برچسب‌ها برای انتخاب پادها استفاده می‌کنند و قوانینی را تعریف می‌کنند که مشخص می‌کند چه ترافیکی به پادهای انتخاب‌شده مجاز است. سیاست‌های شبکه توسط افزونه شبکه‌ای که ارائه‌دهنده شبکه پشتیبانی می‌کند، پیاده‌سازی می‌شوند. توجه داشته باشید ایجاد یک منبع سیاست شبکه بدون وجود کنترلری که آن را پیاده‌سازی کند، اثری نخواهد داشت. diff --git a/content/fa/docs/reference/glossary/node-pressure-eviction.md b/content/fa/docs/reference/glossary/node-pressure-eviction.md new file mode 100644 index 0000000000000..7da6bf4d48f74 --- /dev/null +++ b/content/fa/docs/reference/glossary/node-pressure-eviction.md @@ -0,0 +1,22 @@ +--- +title: تخلیه در اثر فشار نود +id: node-pressure-eviction +date: 2021-05-13 +full_link: /docs/concepts/scheduling-eviction/node-pressure-eviction/ +short_description: > + تخلیه در اثر فشار نود فرایندی است که kubelet به‌صورت پیشگیرانه پادها را برای بازیابی منابع روی نودها از کار می‌اندازد. +aka: +- kubelet eviction +tags: +- operation +--- + تخلیه در اثر فشار نود فرایندی است که {{}} به‌طور پیشگیرانه پادها را خاتمه می‌دهد + تا منابع را روی نودها بازیابی کند. + + + +kubelet منابعی مانند CPU، حافظه، فضای دیسک و inodes سامانه فایل را روی نودهای خوشه شما پایش می‌کند. +وقتی یک یا چند مورد از این منابع به سطح مصرف مشخصی برسند، kubelet می‌تواند به‌طور پیشگیرانه یک یا چند پاد را +روی آن نود از کار بیندازد تا منابع را بازیابی کرده و از گرسنگی منابع جلوگیری کند. + +تخلیه در اثر فشار نود با [تخلیه آغازشده توسط API](/docs/concepts/scheduling-eviction/api-eviction/) تفاوت دارد. diff --git a/content/fa/docs/reference/glossary/node.md b/content/fa/docs/reference/glossary/node.md new file mode 100644 index 0000000000000..350c6b73f0d3a --- /dev/null +++ b/content/fa/docs/reference/glossary/node.md @@ -0,0 +1,22 @@ +--- +title: گره +id: node +date: 2018-04-12 +full_link: /docs/concepts/architecture/nodes/ +short_description: > + یک گره، ماشین کارگر در کوبرنتیز است. + +aka: +tags: +- core-object +- fundamental +--- + یک گره، ماشین کارگر در کوبرنتیز است. + + + +یک گره کارگر می‌تواند بسته به خوشه، یک ماشین مجازی یا ماشین فیزیکی باشد. +این ماشین شامل سرویس‌ها و دیمون‌های محلی لازم برای اجرای {{< glossary_tooltip text="Pods" term_id="pod" >}} است و توسط کنترل پلین مدیریت می‌شود. +دیمون‌های روی یک گره شامل {{< glossary_tooltip text="kubelet" term_id="kubelet" >}}، {{< glossary_tooltip text="kube-proxy" term_id="kube-proxy" >}} و یک زمان‌اجرای کانتینر که {{< glossary_tooltip text="CRI" term_id="cri" >}} را پیاده‌سازی می‌کند (مانند {{< glossary_tooltip term_id="docker" >}}) هستند. + +در نسخه‌های اولیه کوبرنتیز، گره‌ها «Minion» نامیده می‌شدند. diff --git a/content/fa/docs/reference/glossary/object.md b/content/fa/docs/reference/glossary/object.md new file mode 100644 index 0000000000000..132ce88b4fdf6 --- /dev/null +++ b/content/fa/docs/reference/glossary/object.md @@ -0,0 +1,21 @@ +--- +title: شیء +id: object +date: 2020-10-12 +full_link: /docs/concepts/overview/working-with-objects/#kubernetes-objects +short_description: > + یک موجودیت در سیستم کوبرنتیز که بخشی از وضعیت خوشه شما را نمایندگی می‌کند. +aka: +tags: +- architecture +- fundamental +--- +یک موجودیت در سیستم کوبرنتیز است. یک شیء یک +{{< glossary_tooltip text="API resource" term_id="api-resource" >}} است که API کوبرنتیز +برای نمایش وضعیت خوشه شما از آن استفاده می‌کند. + +یک شیء در کوبرنتیز معمولاً «رکوردی از قصد» است—پس از اینکه شیء را ایجاد می‌کنید، +{{< glossary_tooltip text="control plane" term_id="control-plane" >}} کوبرنتیز به‌طور مداوم تلاش می‌کند +اطمینان یابد موردی که این شیء نمایندگی می‌کند واقعاً وجود داشته باشد. +با ایجاد یک شیء، در واقع به سیستم کوبرنتیز می‌گویید که می‌خواهید آن بخش از بار کاری +خوشه‌ٔ شما چه شکلی داشته باشد؛ این همان وضعیت مطلوب خوشه شما است. diff --git a/content/fa/docs/reference/glossary/operator-pattern.md b/content/fa/docs/reference/glossary/operator-pattern.md new file mode 100644 index 0000000000000..bed25cf25de87 --- /dev/null +++ b/content/fa/docs/reference/glossary/operator-pattern.md @@ -0,0 +1,23 @@ +--- +title: الگوی اپراتور +id: operator-pattern +date: 2019-05-21 +full_link: /docs/concepts/extend-kubernetes/operator/ +short_description: > + یک کنترلر تخصصی برای مدیریت یک منبع سفارشی + +aka: +tags: +- architecture +--- + [الگوی اپراتور](/docs/concepts/extend-kubernetes/operator/) یک طرح سیستم +است که یک {{< glossary_tooltip term_id="controller" >}} را به یک یا چند منبع سفارشی پیوند می‌دهد. + + + +می‌توانید با افزودن کنترلرهای اضافی به خوشه خود، فراتر از کنترلرهای داخلیِ +کوبرنتیز، آن را گسترش دهید. + +اگر یک برنامه در حال اجرا به‌عنوان کنترلر عمل کند و دسترسی API برای انجام وظایف +روی یک منبع سفارشی تعریف‌شده در کنترل پلین داشته باشد، این نمونه‌ای از +الگوی اپراتور است. diff --git a/content/fa/docs/reference/glossary/persistent-volume-claim.md b/content/fa/docs/reference/glossary/persistent-volume-claim.md new file mode 100644 index 0000000000000..3189cc85fcd16 --- /dev/null +++ b/content/fa/docs/reference/glossary/persistent-volume-claim.md @@ -0,0 +1,18 @@ +--- +title: درخواست حجم پایدار +id: persistent-volume-claim +date: 2018-04-12 +full_link: /docs/concepts/storage/persistent-volumes/#persistentvolumeclaims +short_description: > + منابع ذخیره‌سازی تعریف‌شده در یک PersistentVolume را مطالبه می‌کند تا بتوان آن را به‌عنوان یک وُلِیوم در یک کانتینر مونت کرد. + +aka: +tags: +- core-object +- storage +--- + منابع ذخیره‌سازی تعریف‌شده در یک {{< glossary_tooltip text="PersistentVolume" term_id="persistent-volume" >}} را مطالبه می‌کند تا بتوان آن را به‌عنوان یک وُلِیوم در یک {{< glossary_tooltip text="container" term_id="container" >}} مونت کرد. + + + +مقدار فضای ذخیره‌سازی، نحوه دسترسی به آن (فقط‌خواندنی، خواندن‌نوشتن و/یا انحصاری) و چگونگی بازیابی آن (نگه‌داشتن، بازیافت یا حذف) را مشخص می‌کند. جزئیات خود فضای ذخیره‌سازی در شیء PersistentVolume توصیف شده است. diff --git a/content/fa/docs/reference/glossary/persistent-volume.md b/content/fa/docs/reference/glossary/persistent-volume.md new file mode 100644 index 0000000000000..ebeea13ddb4ec --- /dev/null +++ b/content/fa/docs/reference/glossary/persistent-volume.md @@ -0,0 +1,20 @@ +--- +title: حجم پایدار +id: persistent-volume +date: 2018-04-12 +full_link: /docs/concepts/storage/persistent-volumes/ +short_description: > + یک شیء API که نمایانگر بخشی از فضای ذخیره‌سازی در خوشه است؛ به‌عنوان یک منبع پلاگ‌شدنی عمومی در دسترس است و فراتر از چرخه عمر هر پاد به حیات خود ادامه می‌دهد. + +aka: +tags: +- core-object +- storage +--- + یک شیء API که نمایانگر بخشی از فضای ذخیره‌سازی در خوشه است؛ به‌عنوان یک منبع پلاگ‌شدنی عمومی در دسترس است و فراتر از چرخه عمر هر {{< glossary_tooltip text="Pod" term_id="pod" >}} پایدار می‌ماند. + + + +PersistentVolumeها (PV) یک API ارائه می‌دهند که جزئیات نحوه تأمین فضای ذخیره‌سازی را از نحوه مصرف آن جدا می‌کند. +PVها مستقیماً در سناریوهایی استفاده می‌شوند که فضای ذخیره‌سازی می‌تواند از پیش ایجاد شود (تأمین ایستا). +برای سناریوهایی که نیاز به فضای ذخیره‌سازی در لحظه دارند (تأمین پویا)، به‌جای PV از PersistentVolumeClaimها (PVC) استفاده می‌شود. diff --git a/content/fa/docs/reference/glossary/platform-developer.md b/content/fa/docs/reference/glossary/platform-developer.md new file mode 100644 index 0000000000000..b17eb38733bad --- /dev/null +++ b/content/fa/docs/reference/glossary/platform-developer.md @@ -0,0 +1,24 @@ +--- +title: توسعه‌دهنده پلتفرم +id: platform-developer +date: 2018-04-12 +full_link: +short_description: > + فردی که پلتفرم کوبرنتیز را بر اساس نیازهای پروژه خود سفارشی می‌کند. + +aka: +tags: +- user-type +--- + فردی که پلتفرم کوبرنتیز را بر اساس نیازهای پروژه خود سفارشی می‌کند. + + + +یک توسعه‌دهنده پلتفرم ممکن است—برای مثال—از +[منابع سفارشی](/docs/concepts/extend-kubernetes/api-extension/custom-resources/) +یا +[گسترش API کوبرنتیز با لایه تجمیع](/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/) +استفاده کند تا قابلیت‌هایی را به نمونه کوبرنتیز خود بیفزاید که به‌طور خاص برای برنامه‌شان لازم است. +برخی توسعه‌دهندگان پلتفرم همچنین {{< glossary_tooltip text="contributors" term_id="contributor" >}} هستند و +افزونه‌هایی را توسعه می‌دهند که به جامعه کوبرنتیز اهدا می‌شود. +دیگران افزونه‌های تجاری متن‌بسته یا ویژه سایت توسعه می‌دهند. diff --git a/content/fa/docs/reference/glossary/pod-disruption-budget.md b/content/fa/docs/reference/glossary/pod-disruption-budget.md new file mode 100644 index 0000000000000..cda2da6041b4a --- /dev/null +++ b/content/fa/docs/reference/glossary/pod-disruption-budget.md @@ -0,0 +1,25 @@ +--- +id: pod-disruption-budget +title: بودجه اختلال پاد +full-link: /docs/concepts/workloads/pods/disruptions/ +date: 2019-02-12 +short_description: > + شیئی که تعداد پادهای یک برنامه تکرارشده را که هم‌زمان به‌دلیل اختلالات داوطلبانه از دسترس خارج می‌شوند، محدود می‌کند. + +aka: + - PDB +related: + - pod + - container +tags: + - operation +--- + + یک [بودجه اختلال پاد](/docs/concepts/workloads/pods/disruptions/) به مالک برنامه اجازه می‌دهد + شیئی برای یک برنامه تکرارشده بسازد که تضمین کند تعداد یا درصد مشخصی از + {{< glossary_tooltip text="Pods" term_id="pod" >}} با برچسب تعیین‌شده در هیچ لحظه‌ای + به‌صورت داوطلبانه حذف یا جابه‌جا نشوند. + + + +اختلالات غیرداوطلبانه را نمی‌توان با PDB جلوگیری کرد؛ با این حال، این اختلالات در بودجه حساب می‌شوند. diff --git a/content/fa/docs/reference/glossary/pod-disruption.md b/content/fa/docs/reference/glossary/pod-disruption.md new file mode 100644 index 0000000000000..81f2c0ec48e2e --- /dev/null +++ b/content/fa/docs/reference/glossary/pod-disruption.md @@ -0,0 +1,23 @@ +--- +title: اختلال پاد +id: pod-disruption +full_link: /docs/concepts/workloads/pods/disruptions/ +date: 2021-05-12 +short_description: > + فرایندی که در آن پادها روی گره‌ها به‌صورت داوطلبانه یا غیرداوطلبانه خاتمه می‌یابند. + +aka: +related: + - pod + - container +tags: + - operation +--- + +[اختلال پاد](/docs/concepts/workloads/pods/disruptions/) فرایندی است که در آن +پادها روی گره‌ها به‌صورت داوطلبانه یا غیرداوطلبانه خاتمه می‌یابند. + + + +اختلالات داوطلبانه عمداً توسط مالکان برنامه یا مدیران خوشه آغاز می‌شوند. +اختلالات غیرداوطلبانه غیرعمدی هستند و می‌توانند بر اثر مشکلات اجتناب‌ناپذیر مانند کمبود منابع گره‌ها یا حذف‌های تصادفی ایجاد شوند. diff --git a/content/fa/docs/reference/glossary/pod-lifecycle.md b/content/fa/docs/reference/glossary/pod-lifecycle.md new file mode 100644 index 0000000000000..f1bebc7aaa6ea --- /dev/null +++ b/content/fa/docs/reference/glossary/pod-lifecycle.md @@ -0,0 +1,19 @@ +--- +title: چرخه عمر پاد +id: pod-lifecycle +date: 2019-02-17 +full-link: /docs/concepts/workloads/pods/pod-lifecycle/ +related: + - pod + - container +tags: + - fundamental +short_description: > + توالی وضعیت‌هایی که یک پاد در طول عمر خود طی می‌کند. + +--- + توالی وضعیت‌هایی که یک پاد در طول عمر خود طی می‌کند. + + + +[چرخه عمر پاد](/docs/concepts/workloads/pods/pod-lifecycle/) با فازهای یک پاد تعریف می‌شود. پنج فاز ممکن برای پاد وجود دارد: Pending، Running، Succeeded، Failed و Unknown. توضیح سطح بالای وضعیت پاد در فیلد `phase` از [PodStatus](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#podstatus-v1-core) خلاصه می‌شود. diff --git a/content/fa/docs/reference/glossary/pod-priority.md b/content/fa/docs/reference/glossary/pod-priority.md new file mode 100644 index 0000000000000..a3ddac3e24901 --- /dev/null +++ b/content/fa/docs/reference/glossary/pod-priority.md @@ -0,0 +1,17 @@ +--- +title: اولویت پاد +id: pod-priority +date: 2019-01-31 +full_link: /docs/concepts/scheduling-eviction/pod-priority-preemption/#pod-priority +short_description: > + اولویت پاد میزان اهمیت یک پاد را نسبت به پادهای دیگر نشان می‌دهد. + +aka: +tags: +- operation +--- + اولویت پاد میزان اهمیت یک {{< glossary_tooltip term_id="pod" >}} را نسبت به پادهای دیگر نشان می‌دهد. + + + +[اولویت پاد](/docs/concepts/scheduling-eviction/pod-priority-preemption/#pod-priority) امکان تعیین اولویت زمان‌بندی یک پاد را بالاتر یا پایین‌تر از سایر پادها فراهم می‌کند—ویژگی‌ای مهم برای بارهای کاری در خوشه‌های تولیدی. diff --git a/content/fa/docs/reference/glossary/pod-security-policy.md b/content/fa/docs/reference/glossary/pod-security-policy.md new file mode 100644 index 0000000000000..2a4a088960417 --- /dev/null +++ b/content/fa/docs/reference/glossary/pod-security-policy.md @@ -0,0 +1,21 @@ +--- +title: سیاست امنیتی پاد +id: pod-security-policy +date: 2018-04-12 +full_link: /docs/concepts/security/pod-security-policy/ +short_description: > + امکان مجوزدهی دقیق برای ایجاد و به‌روزرسانی پاد را فراهم می‌کند. + +aka: +tags: +- core-object +- fundamental +--- + امکان مجوزدهی دقیق برای ایجاد و به‌روزرسانی {{< glossary_tooltip term_id="pod" >}} را فراهم می‌کند. + + + +یک منبع در سطح خوشه که جنبه‌های حساس به امنیتِ مشخصات پاد را کنترل می‌کند. اشیای `PodSecurityPolicy` مجموعه‌ای از شرایط را تعریف می‌کنند که یک پاد باید با آن‌ها اجرا شود تا در سیستم پذیرفته شود، و همچنین مقادیر پیش‌فرض را برای فیلدهای مرتبط تعیین می‌کنند. کنترل «سیاست امنیتی پاد» به‌عنوان یک کنترلر پذیرش اختیاری پیاده‌سازی شده است. + +`PodSecurityPolicy` از نسخه v1.21 کوبرنتیز منسوخ و در v1.25 حذف شد. +به‌عنوان جایگزین، از [Pod Security Admission](/docs/concepts/security/pod-security-admission/) یا یک افزونه پذیرش شخص ثالث استفاده کنید. diff --git a/content/fa/docs/reference/glossary/pod-template.md b/content/fa/docs/reference/glossary/pod-template.md new file mode 100644 index 0000000000000..9f251e03cfcce --- /dev/null +++ b/content/fa/docs/reference/glossary/pod-template.md @@ -0,0 +1,28 @@ +--- +title: قالب پاد +id: pod-template +date: 2024-10-13 +short_description: > + قالبی برای ایجاد پادها. + +aka: + - pod template +tags: +- core-object + +--- +یک شیء API که قالبی برای ایجاد {{< glossary_tooltip text="Pods" term_id="pod" >}} تعریف می‌کند. +رابط PodTemplate همچنین در تعاریف API برای مدیریت بار کاری، مانند +{{< glossary_tooltip text="Deployment" term_id="deployment" >}} یا +{{< glossary_tooltip text="StatefulSets" term_id="StatefulSet" >}}, تعبیه شده است. + + + +قالب‌های پاد به شما اجازه می‌دهند فراداده مشترک (مانند برچسب‌ها یا قالبی برای نام پاد جدید) +و نیز وضعیت مطلوب یک پاد را مشخص کنید. +کنترلرهای [مدیریت بار کاری](/docs/concepts/workloads/controllers/) از قالب‌های پاد +(که در شیء دیگری مانند Deployment یا StatefulSet جای گرفته‌اند) +برای تعریف و مدیریت یک یا چند {{< glossary_tooltip text="Pods" term_id="pod" >}} استفاده می‌کنند. +وقتی چندین پاد بر اساس یک قالب واحد ایجاد شوند، به آن‌ها +{{< glossary_tooltip term_id="replica" text="رپلیکا" >}} گفته می‌شود. +اگرچه می‌توانید یک شیء PodTemplate را مستقیماً ایجاد کنید، معمولاً نیازی به این کار ندارید. diff --git a/content/fa/docs/reference/glossary/pod.md b/content/fa/docs/reference/glossary/pod.md new file mode 100644 index 0000000000000..6d6cb30b0f3bb --- /dev/null +++ b/content/fa/docs/reference/glossary/pod.md @@ -0,0 +1,18 @@ +--- +title: پاد +id: pod +date: 2018-04-12 +full_link: /docs/concepts/workloads/pods/ +short_description: > + یک پاد نمایانگر مجموعه‌ای از کانتینرهای در حال اجرا در خوشه شما است. + +aka: +tags: +- core-object +- fundamental +--- + کوچک‌ترین و ساده‌ترین شیء کوبرنتیز. یک پاد نمایانگر مجموعه‌ای از {{< glossary_tooltip text="containers" term_id="container" >}} در حال اجرا روی خوشه شما است. + + + +یک پاد معمولاً برای اجرای یک کانتینر اصلی تنظیم می‌شود. همچنین می‌تواند کانتینرهای سایدکار اختیاری را اجرا کند که ویژگی‌های کمکی مانند لاگ‌گیری را اضافه می‌کنند. پادها معمولاً توسط یک {{< glossary_tooltip term_id="deployment" >}} مدیریت می‌شوند. diff --git a/content/fa/docs/reference/glossary/preemption.md b/content/fa/docs/reference/glossary/preemption.md new file mode 100644 index 0000000000000..58fb88d4b9069 --- /dev/null +++ b/content/fa/docs/reference/glossary/preemption.md @@ -0,0 +1,17 @@ +--- +title: پیش‌دستی +id: preemption +date: 2019-01-31 +full_link: /docs/concepts/scheduling-eviction/pod-priority-preemption/#preemption +short_description: > + منطق پیش‌دستی در کوبرنتیز به یک پاد معلق کمک می‌کند با تخلیه پادهای کم‌اولویت روی همان گره، گره مناسب خود را بیابد. + +aka: +tags: +- operation +--- + منطق پیش‌دستی در کوبرنتیز به یک {{< glossary_tooltip term_id="pod" >}} معلق کمک می‌کند با تخلیه پادهای کم‌اولویت موجود روی آن {{< glossary_tooltip term_id="node" >}}، گره مناسب خود را بیابد. + + + +اگر یک پاد نتواند زمان‌بندی شود، زمان‌بند تلاش می‌کند [پیش‌دستی](/docs/concepts/scheduling-eviction/pod-priority-preemption/#preemption) کرده و پادهای کم‌اولویت را تخلیه کند تا زمان‌بندی پاد معلق ممکن شود. diff --git a/content/fa/docs/reference/glossary/priority-class.md b/content/fa/docs/reference/glossary/priority-class.md new file mode 100644 index 0000000000000..86cf40a819fda --- /dev/null +++ b/content/fa/docs/reference/glossary/priority-class.md @@ -0,0 +1,20 @@ +--- +title: کلاس اولویت +id: priority-class +date: 2024-03-19 +full_link: /docs/concepts/scheduling-eviction/pod-priority-preemption/#priorityclass +short_description: > + نگاشتی از یک نام کلاس به اولویت زمان‌بندی که یک پاد باید داشته باشد. +aka: +tags: +- core-object +--- + یک PriorityClass کلاسی نام‌گذاری‌شده برای اولویت زمان‌بندی است که باید به پادهای آن کلاس اختصاص یابد. + + + +یک [PriorityClass](/docs/concepts/scheduling-eviction/pod-priority-preemption/#how-to-use-priority-and-preemption) +شیئی غیرِ نام‌فضا‌دار است که یک نام را به یک مقدار عددی اولویت برای یک {{< glossary_tooltip term_id="pod" text="Pod" >}} نگاشت می‌کند. +نام در فیلد `metadata.name` و مقدار اولویت در فیلد `value` مشخص می‌شود. +مقادیر اولویت در بازه -2147483648 تا 1000000000 (شامل هر دو حد) قرار دارند؛ +اعداد بزرگ‌تر نشان‌دهنده اولویت بالاتر هستند. \ No newline at end of file diff --git a/content/fa/docs/reference/glossary/probe.md b/content/fa/docs/reference/glossary/probe.md new file mode 100644 index 0000000000000..23b4d039299cd --- /dev/null +++ b/content/fa/docs/reference/glossary/probe.md @@ -0,0 +1,17 @@ +--- +title: Probe +id: probe +date: 2023-03-21 +full_link: /docs/concepts/workloads/pods/pod-lifecycle/#container-probes + +short_description: > + بررسی دوره‌ای که kubelet روی یک کانتینر در یک پاد انجام می‌دهد. + +tags: +- tool +--- + بررسی‌ای است که {{< glossary_tooltip text="kubelet" term_id="kubelet" >}} به‌طور دوره‌ای روی یک کانتینرِ در حال اجرای یک پاد انجام می‌دهد تا وضعیت و سلامت آن را تعیین کرده و چرخه عمر کانتینر را به‌روز کند. + + + +برای اطلاعات بیشتر، [پروب‌های کانتینر](/docs/concepts/workloads/pods/pod-lifecycle/#container-probes) را بخوانید. diff --git a/content/fa/docs/reference/glossary/proxy.md b/content/fa/docs/reference/glossary/proxy.md new file mode 100644 index 0000000000000..66ce77ebb0250 --- /dev/null +++ b/content/fa/docs/reference/glossary/proxy.md @@ -0,0 +1,25 @@ +--- +title: پراکسی +id: proxy +date: 2019-09-10 +short_description: > + برنامه‌ای که به‌عنوان واسطه بین کلاینت‌ها و سرورها عمل می‌کند. + +aka: +tags: +- networking +--- + در محاسبات، پراکسی سروری است که به‌عنوان واسطه برای یک سرویس راه دور عمل می‌کند. + + + +کلاینت با پراکسی تعامل می‌کند؛ پراکسی داده‌های کلاینت را به سرور واقعی منتقل می‌کند؛ +سرور واقعی به پراکسی پاسخ می‌دهد؛ پراکسی پاسخ سرور واقعی را به کلاینت می‌فرستد. + +[kube-proxy](/docs/reference/command-line-tools-reference/kube-proxy/) یک +پراکسی شبکه است که روی هر گره در خوشه شما اجرا می‌شود و بخشی از مفهوم +{{< glossary_tooltip term_id="service">}} کوبرنتیز را پیاده‌سازی می‌کند. + +می‌توانید kube-proxy را به‌عنوان یک سرویس پراکسی ساده در فضای کاربری اجرا کنید. +اگر سیستم‌عامل شما از آن پشتیبانی می‌کند، می‌توانید به‌جای آن kube-proxy را در حالت ترکیبی اجرا کنید +که با مصرف منابع سیستمی کمتر، همان اثر کلی را به دست می‌آورد. diff --git a/content/fa/docs/reference/glossary/qos-class.md b/content/fa/docs/reference/glossary/qos-class.md new file mode 100644 index 0000000000000..6bb2ced64d3a1 --- /dev/null +++ b/content/fa/docs/reference/glossary/qos-class.md @@ -0,0 +1,23 @@ +--- +title: QoS Class +id: qos-class +date: 2019-04-15 +full_link: /docs/concepts/workloads/pods/pod-qos/ +short_description: > + QoS Class (Quality of Service Class) provides a way for Kubernetes to classify pods within the cluster into several classes and make decisions about scheduling and eviction. + +aka: +tags: +- fundamental +- architecture +related: + - pod + +--- + QoS Class (Quality of Service Class) provides a way for Kubernetes to classify Pods within the cluster into several classes and make decisions about scheduling and eviction. + + +QoS Class of a Pod is set at creation time based on its compute resources requests and limits settings. QoS classes are used to make decisions about Pods scheduling and eviction. +Kubernetes can assign one of the following QoS classes to a Pod: `Guaranteed`, `Burstable` or `BestEffort`. + + diff --git a/content/fa/docs/reference/glossary/quantity.md b/content/fa/docs/reference/glossary/quantity.md new file mode 100644 index 0000000000000..17d29e7ca0c20 --- /dev/null +++ b/content/fa/docs/reference/glossary/quantity.md @@ -0,0 +1,25 @@ +--- +title: کمیت +id: quantity +date: 2018-08-07 +full_link: +short_description: > + نمایش اعداد کوچک یا بزرگ به‌صورت عدد صحیح با استفاده از پسوندهای SI. + +aka: +tags: +- fundamental + +--- + نمایش اعداد کوچک یا بزرگ به‌صورت عدد صحیح با استفاده از پسوندهای [SI](https://en.wikipedia.org/wiki/International_System_of_Units). + + + +کمیت‌ها نمایش اعداد کوچک یا بزرگ هستند که از یادداشت فشرده عدد صحیح همراه با پسوندهای SI استفاده می‌کنند. +اعداد کسری با واحد میلی نمایش داده می‌شوند، در حالی که اعداد بزرگ می‌توانند با واحدهای کیلو، مگا یا گیگا بیان شوند. + +به‌عنوان مثال، عدد `1.5` به‌صورت `1500m` نمایش داده می‌شود، در حالی که عدد `1000` می‌تواند به‌صورت `1k` و `1000000` به‌صورت `1M` بیان شود. همچنین می‌توانید از پسوندهای [نمادگذاری دودویی](https://en.wikipedia.org/wiki/Binary_prefix) استفاده کنید؛ عدد 2048 را می‌توان به شکل `2Ki` نوشت. + +واحدهای ده‌دهی (توانِ ۱۰) پذیرفته‌شده عبارت‌اند از: `m` (میلی)، `k` (کیلو، عمداً با حروف کوچک)، `M` (مگا)، `G` (گیگا)، `T` (ترا)، `P` (پتا)، `E` (اگزا). + +واحدهای دودویی (توانِ ۲) پذیرفته‌شده عبارت‌اند از: `Ki` (کیبی)، `Mi` (مبی)، `Gi` (گیبی)، `Ti` (تبی)، `Pi` (پبی)، `Ei` (اِکسی). diff --git a/content/fa/docs/reference/glossary/rbac.md b/content/fa/docs/reference/glossary/rbac.md new file mode 100644 index 0000000000000..0989f812dfa22 --- /dev/null +++ b/content/fa/docs/reference/glossary/rbac.md @@ -0,0 +1,32 @@ +--- +title: RBAC (Role-Based Access Control) +id: rbac +date: 2018-04-12 +full_link: /docs/reference/access-authn-authz/rbac/ +short_description: > + تصمیم‌گیری‌های مجوزدهی را مدیریت می‌کند و به مدیران اجازه می‌دهد خط‌مشی‌های دسترسی را به‌صورت پویا از طریق Kubernetes API پیکربندی کنند. + +aka: +tags: +- security +- fundamental +--- + تصمیم‌گیری‌های مجوزدهی را مدیریت می‌کند و به مدیران اجازه می‌دهد خط‌مشی‌های دسترسی را به‌صورت پویا از طریق {{< glossary_tooltip text="Kubernetes API" term_id="kubernetes-api" >}} پیکربندی کنند. + + + +RBAC از چهار نوع شیء در کوبرنتیز استفاده می‌کند: + +Role +: قوانین مجوز را در یک فضای نام مشخص تعریف می‌کند. + +ClusterRole +: قوانین مجوز را در سطح کل خوشه تعریف می‌کند. + +RoleBinding +: مجوزهای تعریف‌شده در یک Role را به مجموعه‌ای از کاربران در یک فضای نام مشخص اعطا می‌کند. + +ClusterRoleBinding +: مجوزهای تعریف‌شده در یک ClusterRole را به مجموعه‌ای از کاربران در سطح کل خوشه اعطا می‌کند. + +برای اطلاعات بیشتر، [RBAC](/docs/reference/access-authn-authz/rbac/) را ببینید. diff --git a/content/fa/docs/reference/glossary/replica-set.md b/content/fa/docs/reference/glossary/replica-set.md new file mode 100644 index 0000000000000..b013bd50c59e3 --- /dev/null +++ b/content/fa/docs/reference/glossary/replica-set.md @@ -0,0 +1,21 @@ +--- +title: ReplicaSet +id: replica-set +date: 2018-04-12 +full_link: /docs/concepts/workloads/controllers/replicaset/ +short_description: > + ReplicaSet تضمین می‌کند که تعداد مشخصی از رپلیکای پاد به‌طور همزمان در حال اجرا باشند. + +aka: +tags: +- fundamental +- core-object +- workload +--- + یک ReplicaSet (هدفش این است که) مجموعه‌ای از پادهای رپلیکا را در هر لحظه در حال اجرا نگه دارد. + + + +اشیای بارکاری مانند {{< glossary_tooltip term_id="deployment" >}} از ReplicaSet استفاده می‌کنند +تا بر اساس مشخصات آن ReplicaSet اطمینان یابند تعداد پیکربندی‌شده‌ای از +{{< glossary_tooltip term_id="pod" text="Pods" >}} در خوشه شما در حال اجرا باشند. diff --git a/content/fa/docs/reference/glossary/replica.md b/content/fa/docs/reference/glossary/replica.md new file mode 100644 index 0000000000000..1860b8f829cf2 --- /dev/null +++ b/content/fa/docs/reference/glossary/replica.md @@ -0,0 +1,25 @@ +--- +title: Replica +id: replica +date: 2023-06-11 +full_link: +short_description: > + رپلیکاها نسخه‌های کپی پادها هستند که با حفظ نمونه‌های یکسان، دسترس‌پذیری، مقیاس‌پذیری و تحمل خطا را تضمین می‌کنند. +aka: +tags: +- fundamental +- workload +--- + یک نسخه کپی از یک {{< glossary_tooltip text="Pod" term_id="pod" >}} یا مجموعه‌ای از پادها. +رپلیکاها با نگهداری چندین نمونه یکسان از یک پاد، دسترس‌پذیری بالا، مقیاس‌پذیری و تحمل خطا را فراهم می‌کنند. + + + +رپلیکاها در کوبرنتیز معمولاً برای دستیابی به وضعیت مطلوب برنامه و قابلیت اطمینان به‌کار می‌روند. +آن‌ها امکان مقیاس و توزیع بار کاری را میان چند گره در خوشه فراهم می‌کنند. + +با تعیین تعداد رپلیکا در یک Deployment یا ReplicaSet، کوبرنتیز تضمین می‌کند که +تعداد مشخص‌شده نمونه‌ها در حال اجرا باشد و در صورت نیاز این تعداد را به‌طور خودکار تنظیم می‌کند. + +مدیریت رپلیکاها امکان متعادل‌سازی بار کارا، به‌روزرسانی غلتان و +قابلیت خودترمیم را در یک خوشه کوبرنتیز فراهم می‌کند. diff --git a/content/fa/docs/reference/glossary/replication-controller.md b/content/fa/docs/reference/glossary/replication-controller.md new file mode 100644 index 0000000000000..2d767c0093abb --- /dev/null +++ b/content/fa/docs/reference/glossary/replication-controller.md @@ -0,0 +1,26 @@ +--- +title: ReplicationController +id: replication-controller +date: 2018-04-12 +full_link: +short_description: > + یک شیء API (منسوخ) که یک برنامه تکرارشده را مدیریت می‌کند. + +aka: +tags: +- workload +- core-object +--- + یک منبع بارکاری که یک برنامه تکرارشده را مدیریت می‌کند و تضمین می‌کند +تعداد مشخصی از نمونه‌های یک {{< glossary_tooltip text="Pod" term_id="pod" >}} در حال اجرا باشند. + + + +کنترل پلین تضمین می‌کند که تعداد تعریف‌شده‌ای از پادها در حال اجرا بمانند، +حتی اگر بعضی از پادها از کار بیفتند، شما پادها را به‌صورت دستی حذف کنید +یا بیش از حد پاد به‌اشتباه راه‌اندازی شود. + +{{< note >}} +ReplicationController منسوخ شده است. به +{{< glossary_tooltip text="Deployment" term_id="deployment" >}} مراجعه کنید که مشابه است. +{{< /note >}} diff --git a/content/fa/docs/reference/glossary/resource-quota.md b/content/fa/docs/reference/glossary/resource-quota.md new file mode 100644 index 0000000000000..3de0eababf4b8 --- /dev/null +++ b/content/fa/docs/reference/glossary/resource-quota.md @@ -0,0 +1,19 @@ +--- +title: سهمیه منابع +id: resource-quota +date: 2018-04-12 +full_link: /docs/concepts/policy/resource-quotas/ +short_description: > + محدودیت‌هایی را فراهم می‌کند که مصرف تجمعی منابع در هر فضای نام را محدود می‌کند. + +aka: +tags: +- fundamental +- operation +- architecture +--- + محدودیت‌هایی را فراهم می‌کند که مصرف تجمعی منابع در هر {{< glossary_tooltip term_id="namespace" >}} را محدود می‌کند. + + + +تعداد اشیائی را که می‌توان بر اساس نوع در یک فضای نام ایجاد کرد، و همچنین مجموع منابع محاسباتی‌ای را که ممکن است توسط منابع در آن پروژه مصرف شود، محدود می‌کند. diff --git a/content/fa/docs/reference/glossary/reviewer.md b/content/fa/docs/reference/glossary/reviewer.md new file mode 100644 index 0000000000000..f4ede6b290cdd --- /dev/null +++ b/content/fa/docs/reference/glossary/reviewer.md @@ -0,0 +1,17 @@ +--- +title: بازبین +id: reviewer +date: 2018-04-12 +full_link: +short_description: > + فردی که کد را از نظر کیفیت و درستی در بخشی از پروژه بررسی می‌کند. + +aka: +tags: +- community +--- + فردی که کد را از نظر کیفیت و درستی در بخشی از پروژه بررسی می‌کند. + + + +بازبین‌ها هم از پایگاه کد و هم از اصول مهندسی نرم‌افزار آگاهی دارند. وضعیت بازبین به بخشی از پایگاه کد محدود می‌شود. diff --git a/content/fa/docs/reference/glossary/secret.md b/content/fa/docs/reference/glossary/secret.md new file mode 100644 index 0000000000000..714d027ea2b03 --- /dev/null +++ b/content/fa/docs/reference/glossary/secret.md @@ -0,0 +1,27 @@ +--- +title: Secret +id: secret +date: 2018-04-12 +full_link: /docs/concepts/configuration/secret/ +short_description: > + اطلاعات حساس مانند گذرواژه‌ها، توکن‌های OAuth و کلیدهای SSH را ذخیره می‌کند. + +aka: +tags: +- core-object +- security +--- + اطلاعات حساس مانند گذرواژه‌ها، توکن‌های OAuth و کلیدهای SSH را ذخیره می‌کند. + + + +Secret‌ها کنترل بیشتری بر نحوه استفاده از اطلاعات حساس در اختیار شما می‌گذارند و +خطر افشای تصادفی را کاهش می‌دهند. مقادیر Secret به‌صورت رشته‌های base64 کدگذاری می‌شوند و +به‌طور پیش‌فرض بدون رمزنگاری ذخیره می‌شوند، اما می‌توان آن‌ها را طوری پیکربندی کرد که +[در حالت سکون رمزنگاری شوند](/docs/tasks/administer-cluster/encrypt-data/#ensure-all-secrets-are-encrypted). + +یک {{< glossary_tooltip text="Pod" term_id="pod" >}} می‌تواند به روش‌های گوناگون به Secret ارجاع دهد؛ +برای نمونه از طریق ماونت یک وُلِیوم یا به‌صورت متغیر محیطی. +Secretها برای داده‌های محرمانه طراحی شده‌اند و +[ConfigMapها](/docs/tasks/configure-pod-container/configure-pod-configmap/) +برای داده‌های غیرمحرمانه در نظر گرفته شده‌اند. diff --git a/content/fa/docs/reference/glossary/security-context.md b/content/fa/docs/reference/glossary/security-context.md new file mode 100644 index 0000000000000..0503c8f329fe2 --- /dev/null +++ b/content/fa/docs/reference/glossary/security-context.md @@ -0,0 +1,23 @@ +--- +title: Security Context +id: security-context +date: 2018-04-12 +full_link: /docs/tasks/configure-pod-container/security-context/ +short_description: > + فیلد securityContext تنظیمات امتیاز و کنترل دسترسی برای یک پاد یا کانتینر را تعریف می‌کند. + +aka: +tags: +- security +--- + فیلد `securityContext` تنظیمات امتیاز و کنترل دسترسی را برای +یک {{< glossary_tooltip text="Pod" term_id="pod" >}} یا +{{< glossary_tooltip text="container" term_id="container" >}} تعریف می‌کند. + + + +در یک `securityContext` می‌توانید موارد زیر را تعریف کنید: کاربری که فرایندها با آن اجرا می‌شوند، +گروهی که فرایندها با آن اجرا می‌شوند و تنظیمات امتیاز. +همچنین می‌توانید سیاست‌های امنیتی را پیکربندی کنید (برای نمونه: SELinux، AppArmor یا seccomp). + +تنظیم `PodSpec.securityContext` برای همه کانتینرهای یک پاد اعمال می‌شود. diff --git a/content/fa/docs/reference/glossary/selector.md b/content/fa/docs/reference/glossary/selector.md new file mode 100644 index 0000000000000..546e5c4cbce88 --- /dev/null +++ b/content/fa/docs/reference/glossary/selector.md @@ -0,0 +1,17 @@ +--- +title: انتخاب‌گر +id: selector +date: 2018-04-12 +full_link: /docs/concepts/overview/working-with-objects/labels/ +short_description: > + به کاربران اجازه می‌دهد فهرستی از منابع را بر اساس برچسب‌ها فیلتر کنند. + +aka: +tags: +- fundamental +--- + به کاربران اجازه می‌دهد فهرستی از منابع را بر اساس {{< glossary_tooltip text="labels" term_id="label" >}} فیلتر کنند. + + + +هنگام پرس‌وجوی فهرست منابع، سلکتورها اعمال می‌شوند تا آن‌ها را بر اساس برچسب‌ها فیلتر کنند. diff --git a/content/fa/docs/reference/glossary/service-account.md b/content/fa/docs/reference/glossary/service-account.md new file mode 100644 index 0000000000000..aeded5f8efc92 --- /dev/null +++ b/content/fa/docs/reference/glossary/service-account.md @@ -0,0 +1,18 @@ +--- +title: ServiceAccount +id: service-account +date: 2018-04-12 +full_link: /docs/tasks/configure-pod-container/configure-service-account/ +short_description: > + هویت لازم برای فرآیندهایی که در یک پاد اجرا می‌شوند را فراهم می‌کند. + +aka: +tags: +- fundamental +- core-object +--- + هویتی برای فرآیندهایی فراهم می‌کند که در یک {{< glossary_tooltip text="Pod" term_id="pod" >}} اجرا می‌شوند. + + + +وقتی فرآیندهای درون پاد به خوشه دسترسی پیدا می‌کنند، سرور API آن‌ها را به‌عنوان یک حساب سرویس مشخص (برای مثال `default`) احراز هویت می‌کند. هنگام ایجاد یک پاد، اگر حساب سرویس مشخص نکنید، به‌طور خودکار حساب سرویس پیش‌فرض در همان {{< glossary_tooltip text="Namespace" term_id="namespace" >}} به آن اختصاص داده می‌شود. diff --git a/content/fa/docs/reference/glossary/service-catalog.md b/content/fa/docs/reference/glossary/service-catalog.md new file mode 100644 index 0000000000000..6c2dfc2869a08 --- /dev/null +++ b/content/fa/docs/reference/glossary/service-catalog.md @@ -0,0 +1,17 @@ +--- +title: کاتالوگ سرویس +id: service-catalog +date: 2018-04-12 +full_link: +short_description: > + یک API افزونه‌ای پیشین که به برنامه‌های در حال اجرای خوشه‌های کوبرنتیز اجازه می‌داد به‌آسانی از ارائه‌های نرم‌افزاری مدیریت‌شده خارجی، مانند سرویس پایگاه داده ارائه‌شده توسط یک ارائه‌دهنده ابری، استفاده کنند. + +aka: +tags: +- extension +--- + یک API افزونه‌ای پیشین که به برنامه‌های در حال اجرای خوشه‌های کوبرنتیز اجازه می‌داد به‌آسانی از ارائه‌های نرم‌افزاری مدیریت‌شده خارجی، مانند سرویس پایگاه داده ارائه‌شده توسط یک ارائه‌دهنده ابری، استفاده کنند. + + + +راهکاری برای فهرست‌کردن، تأمین و پیوند با {{< glossary_tooltip text="Managed Services" term_id="managed-service" >}} خارجی فراهم می‌کرد، بی‌آنکه نیاز به دانش دقیق درباره نحوه ایجاد یا مدیریت آن خدمات باشد. diff --git a/content/fa/docs/reference/glossary/service.md b/content/fa/docs/reference/glossary/service.md new file mode 100644 index 0000000000000..44d01cd433cb2 --- /dev/null +++ b/content/fa/docs/reference/glossary/service.md @@ -0,0 +1,25 @@ +--- +title: سرویس +id: service +date: 2018-04-12 +full_link: /docs/concepts/services-networking/service/ +short_description: > + روشی برای در معرض قرار دادن یک برنامه در حال اجرا روی مجموعه‌ای از پادها به‌عنوان یک سرویس شبکه. +tags: +- fundamental +- core-object +--- + روشی برای در معرض قرار دادن یک برنامه شبکه‌ای که به‌صورت یک یا چند +{{< glossary_tooltip text="Pods" term_id="pod" >}} در خوشه شما اجرا می‌شود. + + + +مجموعه پادهایی که یک سرویس هدف قرار می‌دهد (معمولاً) با یک +{{< glossary_tooltip text="selector" term_id="selector" >}} تعیین می‌شود. اگر پادهای بیشتری اضافه یا حذف شوند، +مجموعه پادهای منطبق با این سلکتور تغییر خواهد کرد. سرویس تضمین می‌کند که ترافیک شبکه +بتواند به مجموعه فعلی پادهای این بار کاری هدایت شود. + +سرویس‌های کوبرنتیز یا از شبکه IP (IPv4، IPv6 یا هر دو) استفاده می‌کنند، یا یک نام خارجی را در +سامانه نام دامنه (DNS) ارجاع می‌دهند. + +انتزاع سرویس سازوکارهای دیگری مانند Ingress و Gateway را ممکن می‌سازد. diff --git a/content/fa/docs/reference/glossary/shuffle-sharding.md b/content/fa/docs/reference/glossary/shuffle-sharding.md new file mode 100644 index 0000000000000..edfbb09be7813 --- /dev/null +++ b/content/fa/docs/reference/glossary/shuffle-sharding.md @@ -0,0 +1,22 @@ +--- +title: Shuffle-sharding +id: shuffle-sharding +date: 2020-03-04 +full_link: +short_description: > + روشی برای تخصیص درخواست‌ها به صف‌ها که ایزوله‌سازی بهتری نسبت به «هش باقیمانده به تعداد صف‌ها» فراهم می‌کند. + +aka: +tags: +- fundamental +--- + روشی برای تخصیص درخواست‌ها به صف‌ها که ایزوله‌سازی بهتری نسبت به «هش باقیمانده به تعداد صف‌ها» فراهم می‌کند. + + + +اغلب دغدغه ما جداسازی جریان‌های مختلفِ درخواست از یکدیگر است تا یک جریان پُرشدت نتواند جریان‌های کم‌شدت را از میدان به در کند. +یک راه ساده برای قرار دادن درخواست‌ها در صف‌ها آن است که برخی ویژگی‌های درخواست را هش کرده و باقیمانده تقسیم بر تعداد صف‌ها را به‌عنوان شاخص صف به کار گیریم. تابع هش، ویژگی‌هایی از درخواست را دریافت می‌کند که با جریان‌های ترافیک همسو هستند؛ برای نمونه در اینترنت معمولاً ۵‌تاییِ نشانی مبدأ و مقصد، پروتکل، و پورت مبدأ و مقصد استفاده می‌شود. + +این طرح ساده مبتنی بر هش چنین خاصیتی دارد که هر جریان پُرشدت، تمام جریان‌های کم‌شدتِ هَش‌شده به همان صف را کنار می‌زند. برای ایزوله‌سازی مناسب تعداد زیادی جریان، به تعداد زیادی صف نیاز است که دردسرساز است. شافل‌شاردینگ تکنیکی چابک‌تر است که می‌تواند جریان‌های کم‌شدت را بهتر از جریان‌های پُرشدت جدا کند. در اصطلاح شافل‌شاردینگ از استعاره «تقسیم یک دست ورق از یک دسته کارت» بهره می‌برد؛ هر صف یک «کارت» استعاری است. این تکنیک با هش‌کردن ویژگی‌های شناسایی جریان آغاز می‌شود تا یک مقدار هش با ده‌ها بیت یا بیشتر تولید کند. سپس از این مقدار هش به‌عنوان منبع تصادفی برای «بر زدن» دسته و «دادن» یک دست کارت (صف) استفاده می‌شود. همه صف‌های داده‌شده بررسی می‌شوند و درخواست در یکی از صف‌های بررسی‌شده با کوتاه‌ترین طول قرار می‌گیرد. + +با اندازه دستِ نسبتاً کوچک، بررسی همه کارت‌های داده‌شده هزینه زیادی ندارد و یک جریان کم‌شدت شانس خوبی دارد که از تأثیر یک جریان پُرشدت بگریزد. با اندازه دست بزرگ، بررسی صف‌های داده‌شده هزینه‌بر است و برای جریان‌های کم‌شدت دشوارتر می‌شود که از اثر جمعیِ مجموعه‌ای از جریان‌های پُرشدت بگریزند. بنابراین، اندازه دست باید با دقت انتخاب شود. diff --git a/content/fa/docs/reference/glossary/sidecar-container.md b/content/fa/docs/reference/glossary/sidecar-container.md new file mode 100644 index 0000000000000..3fc9b0d4eca04 --- /dev/null +++ b/content/fa/docs/reference/glossary/sidecar-container.md @@ -0,0 +1,19 @@ +--- +title: کانتینر سایدکار +id: sidecar-container +date: 2018-04-12 +full_link: +short_description: > + یک کانتینر کمکی که در سراسر چرخه عمر یک پاد در حال اجرا باقی می‌ماند. +full_link: /docs/concepts/workloads/pods/sidecar-containers/ +tags: +- fundamental +--- + یک یا چند {{< glossary_tooltip text="containers" term_id="container" >}} که معمولاً پیش از شروع کانتینرهای برنامه اجرا می‌شوند. + + + +کانتینرهای سایدکار مشابه کانتینرهای معمولیِ برنامه هستند، اما هدف متفاوتی دارند: سایدکار یک سرویس محلی در سطح پاد را برای کانتینر اصلی برنامه فراهم می‌کند. +برخلاف {{< glossary_tooltip text="init containers" term_id="init-container" >}}، کانتینرهای سایدکار پس از راه‌اندازی پاد همچنان در حال اجرا می‌مانند. + +برای اطلاعات بیشتر، [کانتینرهای سایدکار](/docs/concepts/workloads/pods/sidecar-containers/) را بخوانید. diff --git a/content/fa/docs/reference/glossary/sig.md b/content/fa/docs/reference/glossary/sig.md new file mode 100644 index 0000000000000..f9dc3b4ce4851 --- /dev/null +++ b/content/fa/docs/reference/glossary/sig.md @@ -0,0 +1,20 @@ +--- +title: SIG (گروه علاقه‌مندی ویژه) +id: sig +date: 2018-04-12 +full_link: https://github.com/kubernetes/community/blob/master/sig-list.md#special-interest-groups +short_description: > + اعضای جامعه که به‌طور جمعی بخشی یا جنبه‌ای مستمر از پروژه متن‌باز بزرگ‌تر کوبرنتیز را مدیریت می‌کنند. + +aka: +tags: +- community +--- + {{< glossary_tooltip text="Community members" term_id="member" >}} که به‌طور جمعی بخشی یا جنبه‌ای مستمر از پروژه متن‌باز بزرگ‌تر کوبرنتیز را مدیریت می‌کنند. + + + +اعضا در یک SIG علاقه مشترکی به پیشبرد حوزه‌ای خاص دارند، مانند معماری، ماشین‌آلات API یا مستندسازی. +SIGها باید از [دستورالعمل‌های راهبری SIG](https://github.com/kubernetes/community/blob/master/committee-steering/governance/sig-governance.md) پیروی کنند، اما می‌توانند سیاست مشارکت و کانال‌های ارتباطی خود را داشته باشند. + +برای اطلاعات بیشتر، مخزن [kubernetes/community](https://github.com/kubernetes/community) و فهرست فعلی [SIGها و گروه‌های کاری](https://github.com/kubernetes/community/blob/master/sig-list.md) را ببینید. diff --git a/content/fa/docs/reference/glossary/spec.md b/content/fa/docs/reference/glossary/spec.md new file mode 100644 index 0000000000000..4c0cc0d4c0210 --- /dev/null +++ b/content/fa/docs/reference/glossary/spec.md @@ -0,0 +1,22 @@ +--- +title: مشخصات +id: spec +date: 2023-12-17 +full_link: /docs/concepts/overview/working-with-objects/#object-spec-and-status +short_description: > + این فیلد در مانیفست‌های کوبرنتیز حالت یا پیکربندی مطلوب برای اشیای خاص کوبرنتیز را تعریف می‌کند. + +aka: +tags: +- fundamental +- architecture +--- + تعیین می‌کند هر شیء—مانند Pod یا Service—چگونه باید پیکربندی شود و چه وضعیت مطلوبی داشته باشد. + + + +تقریباً هر شیء کوبرنتیز دو فیلد تو در تو دارد که پیکربندی آن را کنترل می‌کنند: **spec** و **status** شیء. +برای اشیائی که فیلد spec دارند، هنگام ایجاد شیء باید آن را تنظیم کنید و ویژگی‌هایی را که می‌خواهید منبع داشته باشد—یعنی وضعیت مطلوبش—توصیف کنید. + +محتوای spec بسته به نوع شیء (Pod، StatefulSet، Service و …) متفاوت است و می‌تواند مواردی مانند کانتینرها، وُلِیوم‌ها، رپلیکاها، پورت‌ها +و سایر تنظیمات ویژه هر نوع شیء را شامل شود. این فیلد مشخص می‌کند که کوبرنتیز باید چه وضعیتی را برای شیء تعریف‌شده حفظ کند. diff --git a/content/fa/docs/reference/glossary/statefulset.md b/content/fa/docs/reference/glossary/statefulset.md new file mode 100644 index 0000000000000..562622dfb8dff --- /dev/null +++ b/content/fa/docs/reference/glossary/statefulset.md @@ -0,0 +1,24 @@ +--- +title: StatefulSet +id: statefulset +date: 2018-04-12 +full_link: /docs/concepts/workloads/controllers/statefulset/ +short_description: > + یک StatefulSet استقرار و مقیاس‌گذاری مجموعه‌ای از پادها را با ذخیره‌سازی پایدار و شناسه‌های ماندگار برای هر پاد مدیریت می‌کند. + +aka: +tags: +- fundamental +- core-object +- workload +- storage +--- + استقرار و مقیاس‌گذاری مجموعه‌ای از {{< glossary_tooltip text="Pods" term_id="pod" >}} را مدیریت می‌کند *و ضمانت‌هایی درباره ترتیب و یکتایی* این پادها ارائه می‌دهد. + + + +مانند یک {{< glossary_tooltip term_id="deployment" >}}، یک StatefulSet پادهایی را که بر اساس مشخصات کانتینر یکسان هستند مدیریت می‌کند. +اما برخلاف Deployment، StatefulSet برای هر یک از پادهای خود یک هویت چسبنده حفظ می‌کند. این پادها از یک مشخصات واحد ایجاد می‌شوند ولی قابل تعویض نیستند؛ هر پاد یک شناسه پایدار دارد که در طول هر زمان‌بندی مجدد حفظ می‌شود. + +اگر می‌خواهید برای بار کاری خود از وُلِیوم‌های ذخیره‌سازی برای فراهم‌کردن پایداری داده استفاده کنید، می‌توانید StatefulSet را به‌عنوان بخشی از راه‌حل به کار بگیرید. +گرچه پادهای منفرد در یک StatefulSet ممکن است دچار خطا شوند، اما شناسه‌های پایدار پادها تطبیق وُلِیوم‌های موجود با پادهای جدیدی را که جایگزین پادهای ازکارافتاده می‌شوند آسان‌تر می‌کند. diff --git a/content/fa/docs/reference/glossary/static-pod.md b/content/fa/docs/reference/glossary/static-pod.md new file mode 100644 index 0000000000000..ed801b51b2370 --- /dev/null +++ b/content/fa/docs/reference/glossary/static-pod.md @@ -0,0 +1,21 @@ +--- +title: پاد ایستا +id: static-pod +date: 2019-02-12 +full_link: /docs/tasks/configure-pod-container/static-pod/ +short_description: > + یک پاد که مستقیماً توسط دیمون kubelet روی یک گره مشخص مدیریت می‌شود. + +aka: +tags: +- fundamental +--- + +یک {{< glossary_tooltip text="pod" term_id="pod" >}} که مستقیماً توسط دیمون {{< glossary_tooltip text="kubelet" term_id="kubelet" >}} +روی یک گره مشخص مدیریت می‌شود. + + + +بدون اینکه سرور API آن را مشاهده کند. + +پادهای ایستا از {{< glossary_tooltip text="ephemeral containers" term_id="ephemeral-container" >}} پشتیبانی نمی‌کنند. diff --git a/content/fa/docs/reference/glossary/storage-class.md b/content/fa/docs/reference/glossary/storage-class.md new file mode 100644 index 0000000000000..34b0f6d83505b --- /dev/null +++ b/content/fa/docs/reference/glossary/storage-class.md @@ -0,0 +1,20 @@ +--- +title: Storage Class +id: storageclass +date: 2018-04-12 +full_link: /docs/concepts/storage/storage-classes +short_description: > + یک StorageClass روشی برای توصیف انواع مختلف ذخیره‌سازی موجود توسط مدیران فراهم می‌کند. + +aka: +tags: +- core-object +- storage +--- + یک StorageClass روشی برای توصیف انواع مختلف ذخیره‌سازی موجود توسط مدیران فراهم می‌کند. + + + +StorageClassها می‌توانند به سطوح کیفیت سرویس، سیاست‌های پشتیبان‌گیری یا سیاست‌های دلخواه تعیین‌شده توسط مدیران خوشه نگاشت شوند. +هر StorageClass شامل فیلدهای `provisioner`، `parameters` و `reclaimPolicy` است که هنگام نیاز به تأمین پویای یک {{< glossary_tooltip text="Persistent Volume" term_id="persistent-volume" >}} متعلق به آن کلاس به‌کار می‌روند. +کاربران می‌توانند با استفاده از نام یک شیء StorageClass، کلاس موردنظر خود را درخواست کنند. diff --git a/content/fa/docs/reference/glossary/sysctl.md b/content/fa/docs/reference/glossary/sysctl.md new file mode 100644 index 0000000000000..0d09298c0d498 --- /dev/null +++ b/content/fa/docs/reference/glossary/sysctl.md @@ -0,0 +1,19 @@ +--- +title: sysctl +id: sysctl +date: 2019-02-12 +full_link: /docs/tasks/administer-cluster/sysctl-cluster/ +short_description: > + رابطی برای خواندن و تنظیم پارامترهای هسته یونیکس + +aka: +tags: +- tool +--- + `sysctl` یک رابط نیمه‌استاندارد برای خواندن یا تغییر ویژگی‌های هسته در حال اجرای یونیکس است. + + + +در سیستم‌های شبه‌یونیکس، `sysctl` هم نام ابزاری است که مدیران برای مشاهده و تغییر این تنظیمات استفاده می‌کنند و هم فراخوانی سیستمی که این ابزار از آن بهره می‌برد. + +زمان‌اجرای {{< glossary_tooltip text="Container" term_id="container" >}} و افزونه‌های شبکه ممکن است برای کارکرد صحیح به تنظیم مقادیر `sysctl` به‌شکلی مشخص وابسته باشند. diff --git a/content/fa/docs/reference/glossary/taint.md b/content/fa/docs/reference/glossary/taint.md new file mode 100644 index 0000000000000..769cbc56fa730 --- /dev/null +++ b/content/fa/docs/reference/glossary/taint.md @@ -0,0 +1,17 @@ +--- +title: Taint +id: taint +date: 2019-01-11 +full_link: /docs/concepts/scheduling-eviction/taint-and-toleration/ +short_description: > + یک شیء هسته‌ای که شامل سه ویژگی اجباری است: کلید، مقدار و اثر. Taintها از زمان‌بندی پادها روی نودها یا گروه‌های نود جلوگیری می‌کنند. + +aka: +tags: +- fundamental +--- + یک شیء هسته‌ای که شامل سه ویژگی اجباری است: کلید، مقدار و اثر. Taintها از زمان‌بندی {{< glossary_tooltip text="Pods" term_id="pod" >}} روی {{< glossary_tooltip text="nodes" term_id="node" >}} یا گروه‌های نود جلوگیری می‌کنند. + + + +Taintها و {{< glossary_tooltip text="tolerations" term_id="toleration" >}} با هم کار می‌کنند تا اطمینان حاصل شود پادها روی نودهای نامناسب زمان‌بندی نمی‌شوند. یک یا چند Taint به یک نود اعمال می‌شود. یک نود باید تنها پادهایی را زمان‌بندی کند که Tolerationهای متناسب با Taintهای پیکربندی‌شده را داشته باشند. diff --git a/content/fa/docs/reference/glossary/toleration.md b/content/fa/docs/reference/glossary/toleration.md new file mode 100644 index 0000000000000..67656ff89e68f --- /dev/null +++ b/content/fa/docs/reference/glossary/toleration.md @@ -0,0 +1,18 @@ +--- +title: Toleration +id: toleration +date: 2019-01-11 +full_link: /docs/concepts/scheduling-eviction/taint-and-toleration/ +short_description: > + یک شیء هسته‌ای که شامل سه ویژگی اجباری است: کلید، مقدار و اثر. Tolerationها امکان زمان‌بندی پادها روی نودها یا گروه‌های نود با Taintهای منطبق را فراهم می‌کنند. + +aka: +tags: +- core-object +- fundamental +--- + یک شیء هسته‌ای که شامل سه ویژگی اجباری است: کلید، مقدار و اثر. Tolerationها امکان زمان‌بندی پادها روی نودها یا گروه‌های نود با {{< glossary_tooltip text="taints" term_id="taint" >}} منطبق را فراهم می‌کنند. + + + +Tolerationها و {{< glossary_tooltip text="taints" term_id="taint" >}} با هم کار می‌کنند تا اطمینان حاصل شود پادها روی نودهای نامناسب زمان‌بندی نمی‌شوند. یک یا چند Toleration به یک {{< glossary_tooltip text="pod" term_id="pod" >}} اعمال می‌شود. یک Toleration نشان می‌دهد که آن {{< glossary_tooltip text="pod" term_id="pod" >}} مجاز است (اما مجبور نیست) روی نودها یا گروه‌های نود با {{< glossary_tooltip text="taints" term_id="taint" >}} منطبق زمان‌بندی شود. diff --git a/content/fa/docs/reference/glossary/uid.md b/content/fa/docs/reference/glossary/uid.md new file mode 100644 index 0000000000000..9696b2439ab0b --- /dev/null +++ b/content/fa/docs/reference/glossary/uid.md @@ -0,0 +1,17 @@ +--- +title: UID +id: uid +date: 2018-04-12 +full_link: /docs/concepts/overview/working-with-objects/names +short_description: > + رشته‌ای که توسط سیستم کوبرنتیز تولید می‌شود تا اشیاء را به‌طور منحصر‌به‌فرد شناسایی کند. + +aka: +tags: +- fundamental +--- + رشته‌ای که توسط سیستم کوبرنتیز تولید می‌شود تا اشیاء را به‌طور منحصر‌به‌فرد شناسایی کند. + + + +هر شیئی که در طول عمر یک خوشه کوبرنتیز ایجاد شود، یک UID متمایز دارد. این UID برای تفکیک رخدادهای تاریخیِ موجودیت‌های مشابه در نظر گرفته شده است. diff --git a/content/fa/docs/reference/glossary/upstream.md b/content/fa/docs/reference/glossary/upstream.md new file mode 100644 index 0000000000000..1ad08c2d84130 --- /dev/null +++ b/content/fa/docs/reference/glossary/upstream.md @@ -0,0 +1,18 @@ +--- +title: Upstream (ابهام‌زدایی) +id: upstream +date: 2018-04-12 +full_link: +short_description: > + ممکن است به موارد زیر اشاره کند: هسته کوبرنتیز یا مخزن مبنایی که یک مخزن از آن منشعب شده است. + +aka: +tags: +- community +--- + ممکن است به موارد زیر اشاره کند: هسته کوبرنتیز یا مخزن مبنایی که یک مخزن از آن منشعب شده است. + + + +* در **جامعه کوبرنتیز**: در مکالمات غالباً از «upstream» برای اشاره به کد پایه کوبرنتیز استفاده می‌شود، که بن‌سازه عمومی، کدهای دیگر یا ابزارهای ثالث بر آن تکیه دارند. برای مثال، [اعضای جامعه](#term-member) ممکن است پیشنهاد کنند که یک قابلیت «به upstream منتقل شود» تا به جای افزونه یا ابزار ثالث، در کد پایه هسته قرار گیرد. +* در **GitHub** یا **git**: رویه این است که مخزن اصلی را «upstream» بنامند، در حالی که مخزن منشعب‌شده «downstream» محسوب می‌شود. diff --git a/content/fa/docs/reference/glossary/userns.md b/content/fa/docs/reference/glossary/userns.md new file mode 100644 index 0000000000000..6fbd4edb11dfc --- /dev/null +++ b/content/fa/docs/reference/glossary/userns.md @@ -0,0 +1,23 @@ +--- +title: فضای نام کاربری +id: userns +date: 2021-07-13 +full_link: https://man7.org/linux/man-pages/man7/user_namespaces.7.html +short_description: > + ویژگی هسته لینوکس برای شبیه‌سازی امتیازات کاربر ریشه برای کاربران بدون امتیاز. + +aka: +tags: +- security +--- + +ویژگی هسته که امکان شبیه‌سازی دسترسی ریشه را فراهم می‌کند. برای «کانتینرهای بدون ریشه» استفاده می‌شود. + + + +فضاهای نام کاربری (User namespaces) ویژگی‌ای از هسته لینوکس هستند که به یک کاربر غیرریشه اجازه می‌دهند امتیازات کاربر ریشه (superuser) را شبیه‌سازی کند، +برای مثال برای اجرای کانتینرها بدون نیاز به دسترسی ریشه خارج از کانتینر. + +فضای نام کاربری در کاهش آسیب‌های ناشی از حملات احتمالی فرار از کانتینر مؤثر است. + +در زمینه فضاهای نام کاربری، منظور از فضای نام یک ویژگی هسته لینوکس است و به فضای نام در معنای کوبرنتیز اشاره نمی‌کند. diff --git a/content/fa/docs/reference/glossary/volume-plugin.md b/content/fa/docs/reference/glossary/volume-plugin.md new file mode 100644 index 0000000000000..a58ceea0623e0 --- /dev/null +++ b/content/fa/docs/reference/glossary/volume-plugin.md @@ -0,0 +1,17 @@ +--- +title: افزونه حجم +id: volumeplugin +date: 2018-04-12 +full_link: +short_description: > + یک Volume Plugin امکان یکپارچه‌سازی فضای ذخیره‌سازی را درون یک {{< glossary_tooltip text="Pod" term_id="pod" >}} فراهم می‌کند. + +aka: +tags: +- storage +--- + یک Volume Plugin امکان یکپارچه‌سازی فضای ذخیره‌سازی را درون یک {{< glossary_tooltip text="Pod" term_id="pod" >}} فراهم می‌کند. + + + +یک Volume Plugin به شما اجازه می‌دهد تا وُلِیوم‌های ذخیره‌سازی را متصل و مونت کنید تا یک {{< glossary_tooltip text="Pod" term_id="pod" >}} بتواند از آن‌ها استفاده کند. افزونه‌های حجم می‌توانند _in tree_ یا _out of tree_ باشند. افزونه‌های _in tree_ بخشی از مخزن کد کوبرنتیز هستند و از چرخه انتشار آن پیروی می‌کنند. افزونه‌های _out of tree_ به‌طور مستقل توسعه داده می‌شوند. diff --git a/content/fa/docs/reference/glossary/volume.md b/content/fa/docs/reference/glossary/volume.md new file mode 100644 index 0000000000000..3a832aedc35e1 --- /dev/null +++ b/content/fa/docs/reference/glossary/volume.md @@ -0,0 +1,20 @@ +--- +title: حجم +id: volume +date: 2018-04-12 +full_link: /docs/concepts/storage/volumes/ +short_description: > + پوشه‌ای حاوی داده که برای کانتینرهای درون یک {{< glossary_tooltip term_id="pod" >}} قابل دسترسی است. + +aka: +tags: +- fundamental +--- + پوشه‌ای حاوی داده که برای {{< glossary_tooltip text="containers" term_id="container" >}} در یک {{< glossary_tooltip term_id="pod" >}} قابل دسترسی است. + + + +یک حجم کوبرنتیز به اندازه عمر پادِ احاطه‌کننده خود زنده می‌ماند. +بنابراین حجم بیش از طول عمر هر کانتینری که درون پاد اجرا می‌شود باقی می‌ماند و داده‌های موجود در حجم حتی پس از راه‌اندازی مجدد کانتینرها حفظ می‌شوند. + +برای اطلاعات بیشتر، به [مفاهیم ذخیره‌سازی](/docs/concepts/storage/) مراجعه کنید. diff --git a/content/fa/docs/reference/glossary/watch.md b/content/fa/docs/reference/glossary/watch.md new file mode 100644 index 0000000000000..f42f46a47fb87 --- /dev/null +++ b/content/fa/docs/reference/glossary/watch.md @@ -0,0 +1,19 @@ +--- +title: پایش +id: watch +date: 2024-07-02 +full_link: /docs/reference/using-api/api-concepts/#api-verbs +short_description: > + فعلی که برای پیگیری تغییرات یک شیء در کوبرنتیز به‌صورت جریان به‌کار می‌رود. +aka: +tags: +- API verb +- fundamental +--- +فعلی که برای پیگیری تغییرات یک شیء در کوبرنتیز به‌صورت جریان به‌کار می‌رود و برای تشخیص بهینه تغییرات استفاده می‌شود. + + + +فعلی که برای پیگیری تغییرات یک شیء در کوبرنتیز به‌صورت جریان به‌کار می‌رود. پایش‌ها امکان تشخیص بهینه تغییرات را فراهم می‌کنند؛ برای مثال، یک {{< glossary_tooltip term_id="controller" text="controller">}} که نیاز دارد هر زمان یک ConfigMap تغییر کرد مطلع شود، می‌تواند به‌جای پیمایش مداوم از پایش استفاده کند. + +برای اطلاعات بیشتر به [تشخیص بهینه تغییرات در مفاهیم API](/docs/reference/using-api/api-concepts/#efficient-detection-of-changes) مراجعه کنید. diff --git a/content/fa/docs/reference/glossary/wg.md b/content/fa/docs/reference/glossary/wg.md new file mode 100644 index 0000000000000..eecbaacf78848 --- /dev/null +++ b/content/fa/docs/reference/glossary/wg.md @@ -0,0 +1,19 @@ +--- +title: WG (گروه کاری) +id: wg +date: 2018-04-12 +full_link: https://github.com/kubernetes/community/blob/master/sig-list.md#master-working-group-list +short_description: > + تسهیل بحث و/یا پیاده‌سازی پروژه‌ای کوتاه‌مدت، باریک‌محدوده یا جداشده برای یک کمیته، {{< glossary_tooltip text="SIG" term_id="sig" >}} یا تلاش میان‌SIG. + +aka: +tags: +- community +--- + تسهیل بحث و/یا پیاده‌سازی پروژه‌ای کوتاه‌مدت، باریک‌محدوده یا جداشده برای یک کمیته، {{< glossary_tooltip text="SIG" term_id="sig" >}} یا تلاش میان‌SIG. + + + +گروه‌های کاری روشی برای سازمان‌دهی افراد جهت انجام یک کار مشخص هستند. + +برای اطلاعات بیشتر، مخزن [kubernetes/community](https://github.com/kubernetes/community) و فهرست فعلی [SIGها و گروه‌های کاری](https://github.com/kubernetes/community/blob/master/sig-list.md) را ببینید. diff --git a/content/fa/docs/reference/glossary/workload.md b/content/fa/docs/reference/glossary/workload.md new file mode 100644 index 0000000000000..e9b533820246a --- /dev/null +++ b/content/fa/docs/reference/glossary/workload.md @@ -0,0 +1,19 @@ +--- +title: Workload +id: workload +date: 2019-02-13 +full_link: /docs/concepts/workloads/ +short_description: > + Workload به یک برنامه در حال اجرا روی کوبرنتیز اشاره دارد. + +aka: +tags: +- fundamental +--- + Workload به یک برنامه در حال اجرا روی کوبرنتیز اشاره دارد. + + + +اشیاء اصلی مختلفی که انواع یا بخش‌های متفاوتی از یک Workload را نمایندگی می‌کنند شامل DaemonSet، Deployment، Job، ReplicaSet و StatefulSet هستند. + +برای مثال، یک Workload که شامل یک سرور وب و یک پایگاه داده است ممکن است پایگاه داده را در یک {{< glossary_tooltip term_id="StatefulSet" >}} و سرور وب را در یک {{< glossary_tooltip term_id="Deployment" >}} اجرا کند. diff --git a/content/fa/docs/reference/kubectl/_index.md b/content/fa/docs/reference/kubectl/_index.md new file mode 100644 index 0000000000000..35a08d22c9558 --- /dev/null +++ b/content/fa/docs/reference/kubectl/_index.md @@ -0,0 +1,557 @@ +--- +title: ابزار خط فرمان (kubectl) +content_type: مرجع +weight: 110 +no_list: true +card: + name: مرجع + title: ابزار خط فرمان + weight: 20 +--- + + +{{< glossary_definition prepend="Kubernetes provides a" term_id="kubectl" length="short" >}} + +این ابزار «kubectl» نام دارد. + +برای پیکربندی، `kubectl` به دنبال فایلی با نام `config` در دایرکتوری `$HOME/.kube` می‌گردد. +شما می‌توانید با تنظیم متغیر محیطی [kubeconfig](/docs/concepts/configuration/organize-cluster-access-kubeconfig/) یا با تنظیم پرچم `[`--kubeconfig`](/docs/concepts/configuration/organize-cluster-access-kubeconfig/)`، فایل‌های دیگری را مشخص کنید. + +این مرور کلی، سینتکس `kubectl` را پوشش می‌دهد، عملیات دستور را شرح می‌دهد و مثال‌های رایج را ارائه می‌دهد. +برای جزئیات بیشتر در مورد هر دستور، شامل تمام پرچم‌ها و زیردستورات پشتیبانی شده، به مستندات مرجع +[kubectl](/docs/reference/kubectl/generated/kubectl/) مراجعه کنید. + +برای دستورالعمل‌های نصب، به [Installing kubectl](/docs/tasks/tools/#kubectl) مراجعه کنید. +برای راهنمای سریع، به [cheat sheet](/docs/reference/kubectl/quick-reference/) مراجعه کنید. +اگر به استفاده از ابزار خط فرمان `docker` عادت دارید، [`kubectl` for Docker Users](/docs/reference/kubectl/docker-cli-to-kubectl/) برخی از دستورات معادل را برای Kubernetes توضیح می‌دهد. + + + +## Syntax + +برای اجرای دستورات `kubectl` از پنجره ترمینال خود، از سینتکس زیر استفاده کنید: + +```shell +kubectl [command] [TYPE] [NAME] [flags] +``` + +که در آن `command`، `TYPE`، `NAME` و `flags` عبارتند از: + +* `command`: عملیاتی را که می‌خواهید روی یک یا چند منبع انجام دهید مشخص می‌کند، برای مثال `create`، `get`، `describe`، `delete`. + +* `TYPE`: نوع منبع (#resource-types) را مشخص می‌کند. انواع منابع به حروف کوچک و بزرگ حساس نیستند و می‌توانید حالت مفرد، جمع یا اختصاری آنها را مشخص کنید. برای مثال، دستورات زیر خروجی یکسانی تولید می‌کنند: + + ```shell + kubectl get pod pod1 + kubectl get pods pod1 + kubectl get po pod1 + ``` + +* `NAME`: نام منبع را مشخص می‌کند. نام‌ها به حروف کوچک و بزرگ حساس هستند. اگر نام حذف شود، جزئیات همه منابع نمایش داده می‌شود، برای مثال `kubectl get pods`. + +هنگام انجام عملیاتی روی چندین منبع، می‌توانید هر منبع را بر اساس نوع و نام مشخص کنید یا یک یا چند فایل را مشخص کنید: + + + * برای مشخص کردن منابع بر اساس نوع و نام: + +* برای گروه‌بندی منابع اگر همه از یک نوع باشند: `TYPE1 name1 name2 name<#>`.
+مثال: `kubectl get pod example-pod1 example-pod2` + +* برای مشخص کردن چندین نوع منبع به صورت جداگانه: `TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>`.
+مثال: `kubectl get pod/example-pod1 replicationcontroller/example-rc1` + * برای مشخص کردن منابع با یک یا چند فایل: `-f file1 -f file2 -f file<#>` + +* [Use YAML rather than JSON](/docs/concepts/configuration/overview/#general-configuration-tips) +زیرا YAML معمولاً کاربرپسندتر است، مخصوصاً برای فایل‌های پیکربندی.
+مثال: `kubectl get -f ./pod.yaml` + +* `flags`: پرچم‌های اختیاری را مشخص می‌کند. برای مثال، می‌توانید از پرچم‌های `-s` یا `--server` برای مشخص کردن آدرس و پورت سرور Kubernetes API استفاده کنید. +
+ +{{< caution >}} +پرچم‌هایی که از خط فرمان مشخص می‌کنید، مقادیر پیش‌فرض و هر متغیر محیطی مربوطه را لغو می‌کنند. +{{< /caution >}} + +اگر به کمک نیاز دارید، `kubectl help` را از پنجره ترمینال اجرا کنید. + +## احراز هویت درون خوشه و لغو فضای نام + +به طور پیش‌فرض، `kubectl` ابتدا بررسی می‌کند که آیا درون یک pod و بنابراین در یک خوشه در حال اجرا است یا خیر. این کار با بررسی متغیرهای محیطی `KUBERNETES_SERVICE_HOST` و `KUBERNETES_SERVICE_PORT` و وجود فایل توکن حساب سرویس در `/var/run/secrets/kubernetes.io/serviceaccount/token` آغاز می‌شود. در صورت وجود هر سه مورد، احراز هویت درون خوشه انجام می‌شود. + +برای حفظ سازگاری با نسخه‌های قبلی، اگر متغیر محیطی `POD_NAMESPACE` در طول احراز هویت درون خوشه‌ای تنظیم شود، فضای نام پیش‌فرض را از توکن حساب سرویس لغو می‌کند. هرگونه مانیفست یا ابزاری که به پیش‌فرض بودن فضای نام متکی است، تحت تأثیر این امر قرار خواهد گرفت. + +**`POD_NAMESPACE` متغیر محیطی** + +اگر متغیر محیطی `POD_NAMESPACE` تنظیم شده باشد، عملیات cli روی منابع namespaced به طور پیش‌فرض روی مقدار متغیر تنظیم می‌شوند. برای مثال، اگر متغیر روی `seattle` تنظیم شده باشد، `kubectl get pods` پادهایی را در فضای نام `seattle` برمی‌گرداند. دلیل این امر این است که پادها `یک منبع namespaced هستند و هیچ فضای نامی در دستور ارائه نشده است. خروجی `kubectl api-resources` را بررسی کنید تا مشخص شود که آیا یک منبع namespaced شده است یا خیر. + +استفاده صریح از `--namespace ` این رفتار را لغو می‌کند. + +**نحوه مدیریت توکن‌های ServiceAccount توسط kubectl** + +اگر: + +* فایل توکن حساب سرویس Kubernetes در آدرس +`/var/run/secrets/kubernetes.io/serviceaccount/token` نصب شده باشد، و +* متغیر محیطی `KUBERNETES_SERVICE_HOST` تنظیم شده باشد، و +* متغیر محیطی `KUBERNETES_SERVICE_PORT` تنظیم شده باشد، و +* شما به طور صریح فضای نامی را در خط فرمان kubectl مشخص نکرده باشید + +در این صورت kubectl فرض می‌کند که در خوشه شما در حال اجرا است. ابزار kubectl فضای نام آن ServiceAccount (که همان فضای نام Pod است) را جستجو می‌کند و بر اساس آن فضای نام عمل می‌کند. این با آنچه در خارج از یک خوشه اتفاق می‌افتد متفاوت است؛ وقتی kubectl خارج از یک خوشه اجرا می‌شود و شما فضای نامی را مشخص نکرده باشید، دستور kubectl بر اساس فضای نامی که برای زمینه فعلی در پیکربندی کلاینت شما تنظیم شده است عمل می‌کند. برای تغییر فضای نام پیش‌فرض برای kubectl خود، می‌توانید از دستور زیر استفاده کنید: + +```shell +kubectl config set-context --current --namespace= +``` + +## Operations + +جدول زیر شامل توضیحات کوتاه و سینتکس کلی برای تمام عملیات `kubectl` است: + +Operation | Syntax | Description +-------------------- | -------------------- | -------------------- +`alpha` | `kubectl alpha SUBCOMMAND [flags]` | دستورات موجود مربوط به ویژگی‌های آلفا را که به طور پیش‌فرض در خوشههای Kubernetes فعال نیستند، فهرست کنید. +`annotate` | kubectl annotate (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags] | حاشیه‌نویسی‌های یک یا چند منبع را اضافه یا به‌روزرسانی کنید. +`api-resources` | `kubectl api-resources [flags]` | فهرست منابع API موجود. +`api-versions` | `kubectl api-versions [flags]` | فهرست نسخه‌های API موجود. +`apply` | `kubectl apply -f FILENAME [flags]`| اعمال یک تغییر پیکربندی به یک منبع از یک فایل یا stdin. +`attach` | `kubectl attach POD -c CONTAINER [-i] [-t] [flags]` | برای مشاهده جریان خروجی یا تعامل با کانتینر (stdin)، به یک کانتینر در حال اجرا متصل می‌شود. +`auth` | `kubectl auth [flags] [options]` | بررسی مجوزها. +`autoscale` | kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [flags] | به طور خودکار مجموعه پادهایی را که توسط یک کنترل‌کننده تکثیر مدیریت می‌شوند، مقیاس‌بندی می‌کند. +`certificate` | `kubectl certificate SUBCOMMAND [options]` | تغییر منابع گواهی. +`cluster-info` | `kubectl cluster-info [flags]` | نمایش اطلاعات نقطه پایانی در مورد سرور اصلی و سرویس‌های موجود در خوشه. +`تکمیل` | `تکمیل kubectl SHELL [options]` | کد تکمیل پوسته را برای پوسته مشخص شده (bash یا zsh) خروجی می‌دهد. + +`config` | `kubectl config SUBCOMMAND [flags]` | فایل‌های kubeconfig را تغییر می‌دهد. برای جزئیات بیشتر به زیردستورات جداگانه مراجعه کنید. +`convert` | `kubectl convert -f FILENAME [options]` | تبدیل فایل‌های پیکربندی بین نسخه‌های مختلف API. هر دو فرمت YAML و JSON پذیرفته می‌شوند. توجه - نصب افزونه `kubectl-convert` الزامی است. +`cordon` | `kubectl cordon NODE [options]` | علامت‌گذاری گره به عنوان غیرقابل برنامه‌ریزی. +`cp` | `kubectl cp `cp` | `kubectl cp [options]` | کپی فایل‌ها و دایرکتوری‌ها به و از کانتینرها. +`create` | `kubectl create -f FILENAME [flags]` | ایجاد یک یا چند منبع از یک فایل یا stdin. +`delete` | kubectl delete (-f FILENAME | TYPE [NAME | /NAME | -l label | --all]) [flags] | حذف منابع از یک فایل، stdin یا با مشخص کردن انتخابگرهای برچسب، نام‌ها، انتخابگرهای منبع یا منابع. +`describe` | kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | /NAME | -l label]) [flags] | نمایش وضعیت دقیق یک یا چند منبع. +`diff` | `kubectl diff -f FILENAME [flags]`| فایل تفاوت یا stdin در برابر پیکربندی زنده. +`drain` | `kubectl drain NODE [options]` | گره را برای آماده‌سازی جهت تعمیر و نگهداری تخلیه کنید. +`edit` | kubectl edit (-f FILENAME | TYPE NAME | TYPE/NAME) [flags] | ویرایش و به‌روزرسانی تعریف یک یا چند منبع روی سرور با استفاده از ویرایشگر پیش‌فرض. +`events` | `kubectl events` | فهرست رویدادها +`exec` | `kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [-- COMMAND [args...]]` | اجرای یک دستور روی یک کانتینر در یک pod. +`explain` | `kubectl explain TYPE [--recursive=false] [flags]` | دریافت مستندات منابع مختلف. به عنوان مثال podها، گره‌ها، سرویس‌ها و غیره. +`expose` | kubectl expose (-f FILENAME | TYPE NAME | TYPE/NAME) [--port=port] [--protocol=TCP|UDP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type] [flags] | یک کنترل‌کننده، سرویس یا غلاف تکثیر را به عنوان یک سرویس جدید Kubernetes افشا کنید. +`get` | kubectl get (-f FILENAME | TYPE [NAME | /NAME | -l label]) [--watch] [--sort-by=FIELD] [[-o | --output]=OUTPUT_FORMAT] [flags] | یک یا چند منبع را فهرست می‌کند. +`kustomize` | `kubectl kustomize [flags] [options]` | مجموعه‌ای از منابع API تولید شده از دستورالعمل‌های موجود در فایل kustomization.yaml را فهرست می‌کند. آرگومان باید مسیر دایرکتوری حاوی فایل یا یک URL مخزن git با پسوند مسیر باشد که همان را نسبت به ریشه مخزن مشخص می‌کند. +`label` | برچسب kubectl (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags] | برچسب‌های یک یا چند منبع را اضافه یا به‌روزرسانی کنید. +`logs` | `kubectl logs POD [-c CONTAINER] [--follow] [flags]` | گزارش‌های مربوط به یک کانتینر در یک pod را چاپ کنید. +`options` | `kubectl options` | فهرست گزینه‌های سراسری خط فرمان، که برای همه دستورات اعمال می‌شوند. +`patch` | kubectl patch (-f FILENAME | TYPE NAME | TYPE/NAME) --patch PATCH [flags] | به‌روزرسانی یک یا چند فیلد از یک منبع با استفاده از فرآیند استراتژیک ادغام پچ. +`plugin` | `kubectl plugin [flags] [options]` | ابزارهایی برای تعامل با افزونه‌ها فراهم می‌کند. +`port-forward` | `kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] [flags]` | یک یا چند پورت محلی را به یک pod فوروارد می‌کند. +`proxy` | `kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] [flags]` | یک پروکسی برای سرور API کوبرنتیز اجرا کنید. +`replace` | `kubectl replace -f FILENAME` | جایگزینی یک منبع از یک فایل یا stdin. +`rollout` | `kubectl rollout SUBCOMMAND [options]` | مدیریت rollout یک منبع. انواع منابع معتبر عبارتند از: deployments، daemonsets و statefulsets. +`run` | kubectl run NAME --image=image [--env="key=value"] [--port=port] [--dry-run=server|client|none] [--overrides=inline-json] [flags] | یک تصویر مشخص شده را روی خوشه اجرا کن. +`scale` | kubectl scale (-f FILENAME | TYPE NAME | TYPE/NAME) --replicas=COUNT [--resource-version=version] [--current-replicas=count] [flags] | اندازه کنترل‌کننده تکثیر مشخص‌شده را به‌روزرسانی می‌کند. +`set` | `kubectl set SUBCOMMAND [options]` | پیکربندی منابع برنامه. +`taint` | `kubectl taint NODE NAME KEY_1=VAL_1:TAINT_EFFECT_1 ... KEY_N=VAL_N:TAINT_EFFECT_N [options]` | taintها را در یک یا چند گره به‌روزرسانی کنید. +`top` | kubectl top (POD | NODE) ​​[flags] [options] | نمایش میزان استفاده از منابع (CPU/Memory/Storage) از pod یا گره. +`uncordon` | `kubectl uncordon NODE [options]` | علامت‌گذاری گره به عنوان قابل زمان‌بندی. +`version` | `kubectl version [--client] [flags]` | نمایش نسخه Kubernetes در حال اجرا روی کلاینت و سرور. +`wait` | kubectl wait ([-f FILENAME] | resource.group/resource.name | resource.group [(-l label | --all)]) [--for=delete|--for condition=available] [options] | آزمایشی: منتظر یک شرط خاص روی یک یا چند منبع بمانید. + +برای کسب اطلاعات بیشتر در مورد عملیات دستور، به مستندات مرجع [kubectl](/docs/reference/kubectl/kubectl/) مراجعه کنید. + +## انواع منابع + +جدول زیر شامل لیستی از انواع منابع پشتیبانی شده و نام‌های مستعار اختصاری آنها است. + +(این خروجی را می‌توان از `kubectl api-resources` بازیابی کرد و از Kubernetes 1.25.0 دقیق بود.) + +| NAME | SHORTNAMES | APIVERSION | NAMESPACED | KIND | +|---|---|---|---|---| +| `bindings` | | v1 | true | Binding | +| `componentstatuses` | `cs` | v1 | false | ComponentStatus | +| `configmaps` | `cm` | v1 | true | ConfigMap | +| `endpoints` | `ep` | v1 | true | Endpoints | +| `events` | `ev` | v1 | true | Event | +| `limitranges` | `limits` | v1 | true | LimitRange | +| `namespaces` | `ns` | v1 | false | Namespace | +| `nodes` | `no` | v1 | false | Node | +| `persistentvolumeclaims` | `pvc` | v1 | true | PersistentVolumeClaim | +| `persistentvolumes` | `pv` | v1 | false | PersistentVolume | +| `pods` | `po` | v1 | true | Pod | +| `podtemplates` | | v1 | true | PodTemplate | +| `replicationcontrollers` | `rc` | v1 | true | ReplicationController | +| `resourcequotas` | `quota` | v1 | true | ResourceQuota | +| `secrets` | | v1 | true | Secret | +| `serviceaccounts` | `sa` | v1 | true | ServiceAccount | +| `services` | `svc` | v1 | true | Service | +| `mutatingwebhookconfigurations` | | admissionregistration.k8s.io/v1 | false | MutatingWebhookConfiguration | +| `validatingwebhookconfigurations` | | admissionregistration.k8s.io/v1 | false | ValidatingWebhookConfiguration | +| `customresourcedefinitions` | `crd,crds` | apiextensions.k8s.io/v1 | false | CustomResourceDefinition | +| `apiservices` | | apiregistration.k8s.io/v1 | false | APIService | +| `controllerrevisions` | | apps/v1 | true | ControllerRevision | +| `daemonsets` | `ds` | apps/v1 | true | DaemonSet | +| `deployments` | `deploy` | apps/v1 | true | Deployment | +| `replicasets` | `rs` | apps/v1 | true | ReplicaSet | +| `statefulsets` | `sts` | apps/v1 | true | StatefulSet | +| `tokenreviews` | | authentication.k8s.io/v1 | false | TokenReview | +| `localsubjectaccessreviews` | | authorization.k8s.io/v1 | true | LocalSubjectAccessReview | +| `selfsubjectaccessreviews` | | authorization.k8s.io/v1 | false | SelfSubjectAccessReview | +| `selfsubjectrulesreviews` | | authorization.k8s.io/v1 | false | SelfSubjectRulesReview | +| `subjectaccessreviews` | | authorization.k8s.io/v1 | false | SubjectAccessReview | +| `horizontalpodautoscalers` | `hpa` | autoscaling/v2 | true | HorizontalPodAutoscaler | +| `cronjobs` | `cj` | batch/v1 | true | CronJob | +| `jobs` | | batch/v1 | true | Job | +| `certificatesigningrequests` | `csr` | certificates.k8s.io/v1 | false | CertificateSigningRequest | +| `leases` | | coordination.k8s.io/v1 | true | Lease | +| `endpointslices` | | discovery.k8s.io/v1 | true | EndpointSlice | +| `events` | `ev` | events.k8s.io/v1 | true | Event | +| `flowschemas` | | flowcontrol.apiserver.k8s.io/v1beta2 | false | FlowSchema | +| `prioritylevelconfigurations` | | flowcontrol.apiserver.k8s.io/v1beta2 | false | PriorityLevelConfiguration | +| `ingressclasses` | | networking.k8s.io/v1 | false | IngressClass | +| `ingresses` | `ing` | networking.k8s.io/v1 | true | Ingress | +| `networkpolicies` | `netpol` | networking.k8s.io/v1 | true | NetworkPolicy | +| `runtimeclasses` | | node.k8s.io/v1 | false | RuntimeClass | +| `poddisruptionbudgets` | `pdb` | policy/v1 | true | PodDisruptionBudget | +| `podsecuritypolicies` | `psp` | policy/v1beta1 | false | PodSecurityPolicy | +| `clusterrolebindings` | | rbac.authorization.k8s.io/v1 | false | ClusterRoleBinding | +| `clusterroles` | | rbac.authorization.k8s.io/v1 | false | ClusterRole | +| `rolebindings` | | rbac.authorization.k8s.io/v1 | true | RoleBinding | +| `roles` | | rbac.authorization.k8s.io/v1 | true | Role | +| `priorityclasses` | `pc` | scheduling.k8s.io/v1 | false | PriorityClass | +| `csidrivers` | | storage.k8s.io/v1 | false | CSIDriver | +| `csinodes` | | storage.k8s.io/v1 | false | CSINode | +| `csistoragecapacities` | | storage.k8s.io/v1 | true | CSIStorageCapacity | +| `storageclasses` | `sc` | storage.k8s.io/v1 | false | StorageClass | +| `volumeattachments` | | storage.k8s.io/v1 | false | VolumeAttachment | + +## گزینه های خروجی + + +برای کسب اطلاعات در مورد نحوه قالب‌بندی یا مرتب‌سازی خروجی دستورات خاص، از بخش‌های زیر استفاده کنید. برای جزئیات بیشتر در مورد اینکه کدام دستورات از گزینه‌های مختلف خروجی پشتیبانی می‌کنند، به مستندات مرجع [kubectl](/docs/reference/kubectl/kubectl/) مراجعه کنید. + +### فرمت کردن خروجی + + +قالب خروجی پیش‌فرض برای همه دستورات `kubectl`، قالب متن ساده قابل خواندن توسط انسان است. برای خروجی دادن جزئیات به پنجره ترمینال خود با فرمتی خاص، می‌توانید پرچم‌های `-o` یا `--output` را به یک دستور `kubectl` پشتیبانی شده اضافه کنید. + + +#### Syntax + +```shell +kubectl [command] [TYPE] [NAME] -o +``` + +بسته به عملیات `kubectl`، فرمت‌های خروجی زیر پشتیبانی می‌شوند: + +Output format | Description +--------------| ----------- +`-o custom-columns=` | چاپ یک جدول با استفاده از لیستی از [custom columns](#custom-columns) که با کاما از هم جدا شده‌اند. +`-o custom-columns-file=` | چاپ یک جدول با استفاده از الگوی [custom columns](#custom-columns) در فایل ``. +`-o json` | خروجی یک شیء API با فرمت JSON. +`-o jsonpath=