<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Документація v3.7 on etcd</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.7/</link><description>Recent content in Документація v3.7 on etcd</description><generator>Hugo</generator><language>uk</language><atom:link href="https://andygol-etcd.netlify.app/uk/docs/v3.7/index.xml" rel="self" type="application/rss+xml"/><item><title>Швидкий старт</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.7/quickstart/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.7/quickstart/</guid><description>&lt;p&gt;Дотримуйтесь цих інструкцій, щоб локально встановити, запустити і протестувати кластер, що складається з одного члена etcd:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Встановіть etcd з попередньо зібраних двійкових файлів або з коду. Докладні відомості наведено у розділі &lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.7/install/"&gt;Встановлення&lt;/a&gt;.&lt;/p&gt;
&lt;div class="alert alert-warning" role="alert"&gt;
&lt;p&gt;&lt;strong&gt;Важливо&lt;/strong&gt;: Переконайтеся, що ви виконали останній крок інструкцій з встановлення, щоб переконатися, що &lt;code&gt;etcd&lt;/code&gt; є у вашій змінній PATH.&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Запустіть &lt;code&gt;etcd&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; etcd
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;{&amp;#34;level&amp;#34;:&amp;#34;info&amp;#34;,&amp;#34;ts&amp;#34;:&amp;#34;2021-09-17T09:19:32.783-0400&amp;#34;,&amp;#34;caller&amp;#34;:&amp;#34;etcdmain/etcd.go:72&amp;#34;,&amp;#34;msg&amp;#34;:... }
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;⋮
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="alert alert-info" role="alert"&gt;
&lt;p&gt;&lt;strong&gt;Примітка&lt;/strong&gt;: Вивід, який створює &lt;code&gt;etcd&lt;/code&gt; є &lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.7/op-guide/configuration/#logging"&gt;журналами&lt;/a&gt; — логи інформаційного рівня можна ігнорувати.&lt;/p&gt;</description></item><item><title>Встановлення</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.7/install/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.7/install/</guid><description>&lt;h2 id="requirements"&gt;Вимоги&lt;a class="td-heading-self-link" href="#requirements" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Перед встановленням etcd ознайомтеся з наступними сторінками:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.7/op-guide/supported-platform/"&gt;Підтримувані платформи&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.7/op-guide/hardware/"&gt;Рекомендація щодо апаратного забезпечення&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="install-pre-built-binaries"&gt;Встановлення з попередньо зібраних двійкових файлів&lt;a class="td-heading-self-link" href="#install-pre-built-binaries" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Найпростіший спосіб встановити etcd — з готових двійкових файлів:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Завантажте стиснутий файл архіву для вашої платформи з &lt;a href="https://github.com/etcd-io/etcd/releases/"&gt;Releases&lt;/a&gt;, вибравши реліз &lt;a href="https://github.com/etcd-io/etcd/releases/tag/v3.7.0"&gt;v3.7.0&lt;/a&gt; або пізніший.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Розпакуйте архівний файл. У результаті буде створено теку, яка міститиме двійкові файли.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Додайте виконувані двійкові файли до вашого шляху. Наприклад, перейменуйте та/або перемістіть двійкові файли до теки у вашому шляху (наприклад, &lt;code&gt;/usr/local/bin&lt;/code&gt;), або додайте до шляху теку, створену на попередньому кроці.&lt;/p&gt;</description></item><item><title>Функціональні можливості</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.7/feature-gates/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.7/feature-gates/</guid><description>&lt;!-- overview --&gt;
&lt;p&gt;Ця сторінка містить огляд різних функціональних можливостей, які адміністратор може вказати для etcd.&lt;/p&gt;
&lt;p&gt;Див. &lt;a href="#feature-stages"&gt;етапи функцій&lt;/a&gt; для їх пояснення.&lt;/p&gt;
&lt;!-- body --&gt;
&lt;h2 id="overview"&gt;Огляд&lt;a class="td-heading-self-link" href="#overview" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Функціональні можливості — це набір пар ключ=значення, які описують функції etcd. Ви можете увімкнути або вимкнути ці функції за допомогою прапорця &lt;code&gt;--feature-gates&lt;/code&gt; у командному рядку etcd.&lt;/p&gt;
&lt;p&gt;etcd дозволяє увімкнути або вимкнути набір функціональних можливостей. Використовуйте прапорець &lt;code&gt;-h&lt;/code&gt;, щоб переглянути повний набір функціональних можливостей. Щоб установити функціональні можливості, використовуйте прапорець &lt;code&gt;--feature-gates&lt;/code&gt; із вказаним списком пар функцій у командному рядку:&lt;/p&gt;</description></item><item><title>ЧаПи</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.7/faq/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.7/faq/</guid><description>&lt;h2 id="etcd-general"&gt;etcd, загальні питання&lt;a class="td-heading-self-link" href="#etcd-general" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="what-is-etcd"&gt;Що таке etcd?&lt;a class="td-heading-self-link" href="#what-is-etcd" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;etcd — це консистентне розподілене сховище ключ-значення. Головним чином використовується як окрема служба координації в розподілених системах. Розроблено для зберігання невеликої кількості даних, які можуть повністю поміститися в памʼяті.&lt;/p&gt;
&lt;h3 id="how-do-you-pronounce-etcd"&gt;Як вимовляється etcd?&lt;a class="td-heading-self-link" href="#how-do-you-pronounce-etcd" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;etcd вимовляється &lt;strong&gt;/ˈɛtsiːdiː/&lt;/strong&gt; і означає &amp;ldquo;розподілена тека &lt;code&gt;etc&lt;/code&gt;.&amp;rdquo;&lt;/p&gt;
&lt;h3 id="do-clients-have-to-send-requests-to-the-etcd-leader"&gt;Чи повинні клієнти надсилати запити до лідера etcd?&lt;a class="td-heading-self-link" href="#do-clients-have-to-send-requests-to-the-etcd-leader" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://raft.github.io/raft.pdf"&gt;Raft&lt;/a&gt; базується на лідері; лідер обробляє всі клієнтські запити, які потребують консенсусу кластера. Однак клієнт не повинен знати, який вузол є лідером. Будь-який запит, що вимагає консенсусу, надісланий до послідовника, автоматично пересилається до лідера. Запити, які не потребують консенсусу (наприклад, серіалізовані читання), можуть оброблятися будь-яким членом кластера.&lt;/p&gt;</description></item><item><title>Бібліотеки та інструменти</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.7/integrations/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.7/integrations/</guid><description>&lt;p&gt;Зверніть увагу, що сторонні бібліотеки та інструменти (не розміщені на &lt;a href="https://github.com/etcd-io"&gt;https://github.com/etcd-io&lt;/a&gt;), згадані нижче, не тестуються та не підтримуються командою etcd. Перед їх використанням рекомендується ознайомитися з ними та провести власне розслідування.&lt;/p&gt;
&lt;h2 id="tools"&gt;Інструменти&lt;a class="td-heading-self-link" href="#tools" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/etcd-io/etcd/tree/main/etcdctl"&gt;etcdctl&lt;/a&gt; - Клієнт командного рядка для etcd&lt;/li&gt;
&lt;li&gt;&lt;a href="https://npmjs.org/package/etcd-dump"&gt;etcd-dump&lt;/a&gt; - Утиліта командного рядка для дампу/відновлення etcd.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/xetorthio/etcd-fs"&gt;etcd-fs&lt;/a&gt; - Файлова система FUSE для etcd&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/rekby/etcddir"&gt;etcddir&lt;/a&gt; - Синхронізація etcd та локальної теки в реальному часі. Робота з windows та linux..&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/henszey/etcd-browser"&gt;etcd-browser&lt;/a&gt; - Веб-редактор ключів/значень для etcd з використанням AngularJS&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/datawisesystems/etcd-lock"&gt;etcd-lock&lt;/a&gt; - Реалізація вибору майстра та розподіленого r/w блокування з використанням etcd - Підтримує v2&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/matishsiao/etcd-console"&gt;etcd-console&lt;/a&gt; - Веб-редактор ключів/значень для etcd з використанням PHP&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/nikfoundas/etcd-viewer"&gt;etcd-viewer&lt;/a&gt; - Редактор/переглядач сховища ключів-значень etcd, написаний на Java&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/mickep76/etcdtool"&gt;etcdtool&lt;/a&gt; - Експорт/Імпорт/Редагування теки etcd у форматах JSON/YAML/TOML та перевірка теки за допомогою JSON-схеми&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/sinsharat/etcdloadtest"&gt;etcdloadtest&lt;/a&gt; - Клієнт командного рядка для навантажувального тестування etcd версії 3.0 і вище.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/olamilekan000/etcd-tui"&gt;etcd-tui&lt;/a&gt; - Сучасний інтерфейс користувача терміналу (TUI) для взаємодії з вашою базою даних etcd. Навігація ключами, перегляд значень, фільтрація даних та управління кластером etcd безпосередньо з терміналу.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://etcdfinder.github.io"&gt;etcdfinder&lt;/a&gt; - Швидкий, сучасний вебінтерфейс для etcd з миттєвим пошуком. Підтримує як etcd v2, так і v3.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ringtail/lucas"&gt;lucas&lt;/a&gt; - Вебпереглядач ключів-значень для кластера kubernetes etcd3.0+.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://etcdmanager.io"&gt;etcd-manager&lt;/a&gt; - Сучасний, ефективний, багатоплатформний та безкоштовний GUI та клієнтський інструмент для etcd 3.x. Доступний для Windows, Linux та Mac.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/gardener/etcd-backup-restore"&gt;etcd-backup-restore&lt;/a&gt; - Утиліта для періодичного та інкрементного резервного копіювання та відновлення etcd.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/gardener/etcd-druid"&gt;etcd-druid&lt;/a&gt; - Оператор Kubernetes для розгортання кластерів etcd та управління операціями другого дня.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/kubernetes-sigs/etcdadm"&gt;etcdadm&lt;/a&gt; - Інструмент командного рядка для управління кластером etcd.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ahrtr/etcd-defrag"&gt;etcd-defrag&lt;/a&gt; - Зручний у використанні та розумний інструмент дефрагментації etcd.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/tsonglew/intellij-etcdhelper"&gt;etcdhelper&lt;/a&gt; - Втулок платформи intellij для etcd.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="libraries"&gt;Бібліотеки&lt;a class="td-heading-self-link" href="#libraries" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Нижче наведено клієнтські бібліотеки etcd за мовами програмування.&lt;/p&gt;</description></item><item><title>Повідомлення про помилки</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.7/reporting_bugs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.7/reporting_bugs/</guid><description>&lt;p&gt;Якщо будь-яка частина проєкту etcd має помилки або помилки в документації, будь ласка, повідомте нам, &lt;a href="https://github.com/etcd-io/etcd/issues/new"&gt;відкривши тікет&lt;/a&gt;. Ми ставимося до багів і помилок дуже серйозно і вважаємо, що жодна проблема не є занадто малою. Перед створенням звіту про помилку, будь ласка, перевірте, чи не існує вже звіт про ту ж проблему.&lt;/p&gt;
&lt;p&gt;Щоб зробити звіт про помилку точним і легким для розуміння, будь ласка, спробуйте створювати звіти про помилки, які є:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Конкретними. Включайте якомога більше деталей: яка версія, яке середовище, яка конфігурація тощо. Якщо помилка повʼязана з роботою сервера etcd, будь ласка, додайте журнал etcd (початковий журнал з конфігурацією etcd особливо важливий).&lt;/p&gt;</description></item><item><title>Налаштування</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.7/tuning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.7/tuning/</guid><description>&lt;p&gt;Типові налаштування в etcd повинні добре працювати для встановлень у локальній мережі, де середня затримка мережі низька. Однак, при використанні etcd між кількома дата-центрами або в мережах з високою затримкою, налаштування інтервалу такту та тайм-ауту виборів можуть потребувати налаштування.&lt;/p&gt;
&lt;p&gt;Мережа не є єдиним джерелом затримки. На кожен запит і відповідь можуть впливати повільні диски як на лідері, так і на послідовнику. Кожен з цих тайм-аутів представляє загальний час від запиту до успішної відповіді від іншої машини.&lt;/p&gt;</description></item><item><title>Протокол служби виявлення</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.7/dev-internal/discovery_protocol/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.7/dev-internal/discovery_protocol/</guid><description>&lt;p&gt;Протокол служби виявлення допомагає новому учаснику etcd виявити всіх інших учасників у фазі завантаження кластера за допомогою спільного токена виявлення та списку точок доступу.&lt;/p&gt;
&lt;p&gt;Протокол служби виявлення використовується &lt;em&gt;лише&lt;/em&gt; на етапі запуску кластера і не може застосовуватися для переналаштування під час роботи або моніторингу кластера.&lt;/p&gt;
&lt;p&gt;Протокол використовує новий токен виявлення для завантаження одного &lt;em&gt;унікального&lt;/em&gt; кластера etcd. Памʼятайте, що один токен виявлення може представляти лише один кластер etcd. Як тільки протокол виявлення на цьому токені починається, навіть якщо він переривається на півдорозі, його не можна використовувати для завантаження іншого кластера etcd.&lt;/p&gt;</description></item><item><title>Домовленості ведення журналу</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.7/dev-internal/logging/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.7/dev-internal/logging/</guid><description>&lt;p&gt;etcd використовує бібліотеку &lt;a href="https://github.com/uber-go/zap"&gt;zap&lt;/a&gt; для ведення журналу виводу застосунків, категоризованого на &lt;em&gt;рівні&lt;/em&gt;. Рівень повідомлення журналу визначається відповідно до цих домовленостей:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Журнали DebugLevel зазвичай є обʼємними, і типово вимикаються у робочому середовищі.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Приклади:
&lt;ul&gt;
&lt;li&gt;Надсилання звичайного повідомлення до віддаленого вузла&lt;/li&gt;
&lt;li&gt;Запис елемента журналу на диск&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;InfoLevel є стандартним пріоритетом ведення журналу.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Приклади:
&lt;ul&gt;
&lt;li&gt;Конфігурація запуску&lt;/li&gt;
&lt;li&gt;Початок створення знімка&lt;/li&gt;
&lt;li&gt;Додавання нового вузла до кластера&lt;/li&gt;
&lt;li&gt;Додавання нового користувача до підсистеми автентифікації&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Журнали WarnLevel важливіші за Info, але не потребують окремого перегляду людиною.&lt;/p&gt;</description></item><item><title>Модулі Golang</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.7/dev-internal/modules/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.7/dev-internal/modules/</guid><description>&lt;p&gt;Проєкт etcd (з версії 3.5) організований у кілька &lt;a href="https://golang.org/ref/mod"&gt;golang модулів&lt;/a&gt;, розміщених в &lt;a href="https://golang.org/ref/mod#vcs-dir"&gt;одному репозиторії&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://andygol-etcd.netlify.app/docs/v3.7/dev-internal/img/modules.svg" alt="схема модулів"&gt;&lt;/p&gt;
&lt;p&gt;Існують наступні модулі:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;go.etcd.io/etcd/api/v3&lt;/strong&gt; — містить визначення API (наприклад, протоколи та бібліотеки, згенеровані протоколами), що визначають протокол звʼязку між клієнтами та сервером etcd.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;go.etcd.io/etcd/pkg/v3&lt;/strong&gt; — колекція пакунків утиліт, що використовуються etcd без привʼязки до самого etcd. Пакунок є належним тут лише якщо його можна буде в майбутньому перемістити в окремий репозиторій. Будь ласка, уникайте додавання сюди коду, який має багато залежностей, оскільки вони автоматично стають залежностями клієнтської бібліотеки (яку ми хочемо зберегти легкою).&lt;/p&gt;</description></item><item><title>Демонстрація</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.7/demo/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.7/demo/</guid><description>&lt;p&gt;Ця серія прикладів показує основні процедури роботи з кластером etcd.&lt;/p&gt;
&lt;h2 id="auth"&gt;Auth&lt;a class="td-heading-self-link" href="#auth" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;auth&lt;/code&gt;,&lt;code&gt;user&lt;/code&gt;,&lt;code&gt;role&lt;/code&gt; для автентифікації:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;ETCDCTL_API&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;ENDPOINTS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;localhost:2379
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ENDPOINTS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; role add root
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ENDPOINTS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; role get root
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ENDPOINTS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; user add root
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ENDPOINTS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; user grant-role root root
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ENDPOINTS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; user get root
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ENDPOINTS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; role add role0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ENDPOINTS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; role grant-permission role0 readwrite foo
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ENDPOINTS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; user add user0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ENDPOINTS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; user grant-role user0 role0
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ENDPOINTS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; auth &lt;span class="nb"&gt;enable&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# тепер всі запити клієнтів проходять через автентифікацію&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ENDPOINTS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; --user&lt;span class="o"&gt;=&lt;/span&gt;user0:123 put foo bar
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ENDPOINTS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; get foo
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# у дозволі відмовлено, імʼя користувача порожнє, оскільки запит не видає запит на автентифікацію&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ENDPOINTS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; --user&lt;span class="o"&gt;=&lt;/span&gt;user0:123 get foo
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# user0 може прочитати ключ foo&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;ENDPOINTS&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; --user&lt;span class="o"&gt;=&lt;/span&gt;user0:123 get foo1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item></channel></rss>