<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Завдання оператора on etcd</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/tasks/operator/</link><description>Recent content in Завдання оператора on etcd</description><generator>Hugo</generator><language>uk</language><atom:link href="https://andygol-etcd.netlify.app/uk/docs/v3.6/tasks/operator/index.xml" rel="self" type="application/rss+xml"/><item><title>Як налаштувати демонстраційний кластер etcd</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/tasks/operator/how-to-setup-cluster/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.6/tasks/operator/how-to-setup-cluster/</guid><description>&lt;p&gt;&lt;img src="https://storage.googleapis.com/etcd/demo/01_etcd_clustering_2016051001.gif" alt="01_etcd_clustering_2016050601"&gt;&lt;/p&gt;
&lt;p&gt;На кожному вузлі etcd вкажіть членів кластера:&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="nv"&gt;TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;token-01
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;CLUSTER_STATE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;new
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;NAME_1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;machine-1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;NAME_2&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;machine-2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;NAME_3&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;machine-3
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;HOST_1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;10.240.0.17
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;HOST_2&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;10.240.0.18
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;HOST_3&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;10.240.0.19
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;CLUSTER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;NAME_1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOST_1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380,&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;NAME_2&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOST_2&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380,&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;NAME_3&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOST_3&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&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="c1"&gt;# Для машини 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;THIS_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;NAME_1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOST_1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcd --data-dir&lt;span class="o"&gt;=&lt;/span&gt;data.etcd --name &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_NAME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-advertise-peer-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380 --listen-peer-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--advertise-client-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2379 --listen-client-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2379 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-cluster &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CLUSTER&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-cluster-state &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CLUSTER_STATE&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; --initial-cluster-token &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;TOKEN&lt;/span&gt;&lt;span class="si"&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;&lt;span class="c1"&gt;# Для машини 2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;THIS_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;NAME_2&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOST_2&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcd --data-dir&lt;span class="o"&gt;=&lt;/span&gt;data.etcd --name &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_NAME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-advertise-peer-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380 --listen-peer-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--advertise-client-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2379 --listen-client-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2379 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-cluster &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CLUSTER&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-cluster-state &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CLUSTER_STATE&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; --initial-cluster-token &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;TOKEN&lt;/span&gt;&lt;span class="si"&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;&lt;span class="c1"&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;THIS_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;NAME_3&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOST_3&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcd --data-dir&lt;span class="o"&gt;=&lt;/span&gt;data.etcd --name &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_NAME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-advertise-peer-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380 --listen-peer-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--advertise-client-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2379 --listen-client-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2379 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-cluster &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CLUSTER&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-cluster-state &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CLUSTER_STATE&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; --initial-cluster-token &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;TOKEN&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Або використовуйте наш публічний сервіс виявлення:&lt;/p&gt;</description></item><item><title>Як проводити вибори лідера в кластері etcd</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/tasks/operator/how-to-conduct-elections/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.6/tasks/operator/how-to-conduct-elections/</guid><description>&lt;h2 id="prerequisites"&gt;Передумови&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Переконайтеся, що &lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.6/install/"&gt;&lt;code&gt;etcd&lt;/code&gt;&lt;/a&gt; та &lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.6/install/"&gt;&lt;code&gt;etcdctl&lt;/code&gt;&lt;/a&gt; встановлені.&lt;/li&gt;
&lt;li&gt;Перевірте наявність активного кластера etcd.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="conduct-leader-election"&gt;Проведення виборів лідера&lt;a class="td-heading-self-link" href="#conduct-leader-election" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Команду &lt;code&gt;etcdctl&lt;/code&gt; використовують для проведення виборів лідера в кластері etcd. Вона гарантує, що лише один клієнт може стати лідером за раз.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;etcdctl --endpoints=$ENDPOINTS elect &amp;lt;election-name&amp;gt; [proposal]&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;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ENDPOINTS&lt;/span&gt; elect election-name p1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="options"&gt;Параметри&lt;a class="td-heading-self-link" href="#options" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;--endpoints : $ENDPOINTS&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Адреса кожного члена кластера etcd.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;election-name&lt;/code&gt; string&lt;/p&gt;
&lt;p&gt;Рядок ідентифікатора для виборів. Усі учасники, які конкурують за лідерство, мають використовувати однакову назву виборів.&lt;/p&gt;</description></item><item><title>Як перевірити стан кластера</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/tasks/operator/how-to-check-cluster-status/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.6/tasks/operator/how-to-check-cluster-status/</guid><description>&lt;h2 id="prerequisites"&gt;Передумови&lt;a class="td-heading-self-link" href="#prerequisites" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Встановить &lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.6/install/"&gt;&lt;code&gt;etcd&lt;/code&gt; та &lt;code&gt;etcdctl&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="check-overall-status"&gt;Перевірка загального стану&lt;a class="td-heading-self-link" href="#check-overall-status" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;endpoint status&lt;/code&gt; для перевірки загального стану кожної точки доступу, зазначеної у прапорці &lt;code&gt;--endpoints&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl endpoint status &lt;span class="o"&gt;(&lt;/span&gt;--endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ENDPOINTS&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;--cluster&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="options"&gt;Параметри&lt;a class="td-heading-self-link" href="#options" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;--cluster&lt;span class="o"&gt;[=&lt;/span&gt;false&lt;span class="o"&gt;]&lt;/span&gt;: використовувати всі точки доступу зі списку учасників кластера
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="check-health"&gt;Перевірка справності&lt;a class="td-heading-self-link" href="#check-health" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Використовуйте &lt;code&gt;endpoint health&lt;/code&gt; для перевірки справності кожної точки доступу, зазначеної у прапорці &lt;code&gt;--endpoints&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl endpoint health &lt;span class="o"&gt;(&lt;/span&gt;--endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ENDPOINTS&lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;--cluster&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="options-1"&gt;Параметри&lt;a class="td-heading-self-link" href="#options-1" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;--cluster&lt;span class="o"&gt;[=&lt;/span&gt;false&lt;span class="o"&gt;]&lt;/span&gt;: використовувати всі точки доступу зі списку учасників кластера
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="check-kv-hash"&gt;Перевірка хешу KV&lt;a class="td-heading-self-link" href="#check-kv-hash" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;endpoint hashkv&lt;/code&gt; для перевірки хешу історії KV кожної точки доступу, зазначеної у прапорці &lt;code&gt;--endpoints&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>Як зберегти базу даних</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/tasks/operator/how-to-save-database/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.6/tasks/operator/how-to-save-database/</guid><description>&lt;h2 id="pre-requisites"&gt;Передумови&lt;a class="td-heading-self-link" href="#pre-requisites" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.6/install/"&gt;Встановити etcdctl, etcdutl&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://andygol-etcd.netlify.app/uk/docs/v3.6/dev-guide/local_cluster/"&gt;Налаштувати локальний кластер&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="snapshot-a-database"&gt;Знімок бази даних&lt;a class="td-heading-self-link" href="#snapshot-a-database" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Використовуйте &lt;code&gt;snapshot&lt;/code&gt; для збереження знімка бази даних etcd на певний момент часу:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcdctl --endpoints&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$ENDPOINT&lt;/span&gt; snapshot save DB_NAME
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="global-options"&gt;Глобальні параметри&lt;a class="td-heading-self-link" href="#global-options" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;h4 id="etcdctl"&gt;etcdctl&lt;a class="td-heading-self-link" href="#etcdctl" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;--endpoints&lt;span class="o"&gt;=[&lt;/span&gt;127.0.0.1:2379&lt;span class="o"&gt;]&lt;/span&gt;, gRPC endpoints
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Знімок можна запросити лише з одного вузла etcd, тому прапорець &lt;code&gt;--endpoints&lt;/code&gt; повинен містити лише одну точку доступу.&lt;/p&gt;
&lt;h4 id="etcdutl"&gt;etcdutl&lt;a class="td-heading-self-link" href="#etcdutl" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h4&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;-w, --write-out string встановити формат виводу &lt;span class="o"&gt;(&lt;/span&gt;fields, json, protobuf, simple, table&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;типово &lt;span class="s2"&gt;&amp;#34;simple&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="example"&gt;Приклад&lt;a class="td-heading-self-link" href="#example" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;img src="https://storage.googleapis.com/etcd/demo/11_etcdctl_snapshot_2016051001.gif" alt="11_etcdctl_snapshot_2016051001"&gt;&lt;/p&gt;</description></item><item><title>Як додавати та видаляти учасників</title><link>https://andygol-etcd.netlify.app/uk/docs/v3.6/tasks/operator/how-to-deal-with-membership/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://andygol-etcd.netlify.app/uk/docs/v3.6/tasks/operator/how-to-deal-with-membership/</guid><description>&lt;p&gt;Використовуйте &lt;code&gt;member&lt;/code&gt; для додавання, видалення, оновлення членства:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://storage.googleapis.com/etcd/demo/13_etcdctl_member_2016062301.gif" alt="13_etcdctl_member_2016062301"&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="c1"&gt;# Для кожної машини&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;my-etcd-token-1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;CLUSTER_STATE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;new
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;NAME_1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;etcd-node-1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;NAME_2&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;etcd-node-2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;NAME_3&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;etcd-node-3
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;HOST_1&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;10.240.0.13
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;HOST_2&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;10.240.0.14
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;HOST_3&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;10.240.0.15
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;CLUSTER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;NAME_1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOST_1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380,&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;NAME_2&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOST_2&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380,&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;NAME_3&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOST_3&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380
&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;&lt;span class="c1"&gt;# Для вузла 1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;THIS_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;NAME_1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOST_1&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcd --data-dir&lt;span class="o"&gt;=&lt;/span&gt;data.etcd --name &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_NAME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-advertise-peer-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--listen-peer-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--advertise-client-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2379 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--listen-client-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2379 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-cluster &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CLUSTER&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-cluster-state &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CLUSTER_STATE&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-cluster-token &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;TOKEN&lt;/span&gt;&lt;span class="si"&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;&lt;span class="c1"&gt;# Для вузла 2&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;THIS_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;NAME_2&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOST_2&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcd --data-dir&lt;span class="o"&gt;=&lt;/span&gt;data.etcd --name &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_NAME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-advertise-peer-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--listen-peer-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--advertise-client-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2379 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--listen-client-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2379 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-cluster &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CLUSTER&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-cluster-state &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CLUSTER_STATE&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-cluster-token &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;TOKEN&lt;/span&gt;&lt;span class="si"&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;&lt;span class="c1"&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;THIS_NAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;NAME_3&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;HOST_3&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;etcd --data-dir&lt;span class="o"&gt;=&lt;/span&gt;data.etcd --name &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_NAME&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-advertise-peer-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--listen-peer-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2380 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--advertise-client-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2379 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--listen-client-urls http://&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;THIS_IP&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;:2379 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-cluster &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CLUSTER&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-cluster-state &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;CLUSTER_STATE&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	--initial-cluster-token &lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;TOKEN&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Потім замініть учасника за допомогою команд &lt;code&gt;member remove&lt;/code&gt; та &lt;code&gt;member add&lt;/code&gt;:&lt;/p&gt;</description></item></channel></rss>