{"id":2492,"date":"2021-03-25T15:09:12","date_gmt":"2021-03-25T07:09:12","guid":{"rendered":"http:\/\/39.97.231.10\/?p=2492"},"modified":"2021-03-25T15:09:12","modified_gmt":"2021-03-25T07:09:12","slug":"centos7%e5%ae%89%e8%a3%85%e9%83%a8%e7%bd%b2etcd%e9%9b%86%e7%be%a4","status":"publish","type":"post","link":"http:\/\/www.weijing.co\/?p=2492","title":{"rendered":"centos7\u5b89\u88c5\u90e8\u7f72etcd\u96c6\u7fa4"},"content":{"rendered":"<h2><strong>ETCD\u96c6\u7fa4\u8282\u70b9\uff1a<\/strong><\/h2>\n<table border=\\\"0\\\" align=\\\"left\\\">\n<tbody>\n<tr>\n<td>\u89d2\u8272<\/td>\n<td>\u7cfb\u7edf<\/td>\n<td>\u8282\u70b9<\/td>\n<\/tr>\n<tr>\n<td>master<\/td>\n<td>CentOS-7<\/td>\n<td>192.168.10.5<\/td>\n<\/tr>\n<tr>\n<td>node-1<\/td>\n<td>CentOS-7<\/td>\n<td>192.168.10.6<\/td>\n<\/tr>\n<tr>\n<td>node-2<\/td>\n<td>CentOS-7<\/td>\n<td>192.168.10.7<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<pre><\/pre>\n<h2><strong>yum\u5b89\u88c5etcd<\/strong><\/h2>\n<div>\n<pre>#\u914d\u7f6e\u963f\u91ccepel\u6e90\uff1a\nmv \/etc\/yum.repos.d\/epel.repo \/etc\/yum.repos.d\/epel.repo.backup\nmv \/etc\/yum.repos.d\/epel-testing.repo \/etc\/yum.repos.d\/epel-testing.repo.backup\nwget -O \/etc\/yum.repos.d\/epel.repo http:\/\/mirrors.aliyun.com\/repo\/epel-7.repo<\/pre>\n<\/div>\n<pre>yum\u00a0install\u00a0etcd\nyum list installed |grep\u00a0-i etcd<\/pre>\n<h2><\/h2>\n<h2><strong>Master\u914d\u7f6e\u4fee\u6539\u4ecb\u7ecd<\/strong><\/h2>\n<pre>\n[root@master etcd]# egrep -v \\\"^$|^#\\\" \/etc\/etcd\/etcd.conf\nETCD_DATA_DIR=\\\"\/var\/lib\/etcd\/default.etcd\\\" #etcd\u6570\u636e\u4fdd\u5b58\u76ee\u5f55\nETCD_LISTEN_PEER_URLS=\\\"http:\/\/192.168.10.5:2380\\\" #\u96c6\u7fa4\u5185\u90e8\u901a\u4fe1\u4f7f\u7528\u7684URL\nETCD_LISTEN_CLIENT_URLS=\\\"http:\/\/0.0.0.0:2379\\\" #\u4f9b\u5916\u90e8\u5ba2\u6237\u7aef\u4f7f\u7528\u7684url\nETCD_NAME=\\\"etcd01\\\" #etcd\u5b9e\u4f8b\u540d\u79f0\nETCD_INITIAL_ADVERTISE_PEER_URLS=\\\"http:\/\/192.168.10.5:2380\\\" #\u5e7f\u64ad\u7ed9\u96c6\u7fa4\u5185\u5176\u4ed6\u6210\u5458\u8bbf\u95ee\u7684URL\nETCD_ADVERTISE_CLIENT_URLS=\\\"http:\/\/0.0.0.0:2379\\\" #\u5e7f\u64ad\u7ed9\u5916\u90e8\u5ba2\u6237\u7aef\u4f7f\u7528\u7684url\nETCD_INITIAL_CLUSTER=\\\"etcd01=http:\/\/192.168.10.5:2380,etcd02=http:\/\/192.168.10.6:2380,etcd03=http:\/\/192.168.10.7:2380\\\" #\u521d\u59cb\u96c6\u7fa4\u6210\u5458\u5217\u8868\nETCD_INITIAL_CLUSTER_TOKEN=\\\"etcd-cluster\\\" #\u96c6\u7fa4\u7684\u540d\u79f0\nETCD_INITIAL_CLUSTER_STATE=\\\"new\\\" #\u521d\u59cb\u96c6\u7fa4\u72b6\u6001\uff0cnew\u4e3a\u65b0\u5efa\u96c6\u7fa4<\/pre>\n<h2><\/h2>\n<h2><strong>node1 etcd \u914d\u7f6e<\/strong><\/h2>\n<pre>[root@node1 etcd]# egrep -v \\\"^$|^#\\\" \/etc\/etcd\/etcd.conf\nETCD_DATA_DIR=\\\"\/var\/lib\/etcd\/default.etcd\\\"\nETCD_LISTEN_PEER_URLS=\\\"http:\/\/192.168.10.6:2380\\\"\nETCD_LISTEN_CLIENT_URLS=\\\"http:\/\/0.0.0.0:2379\\\"\nETCD_NAME=\\\"etcd02\\\"\nETCD_INITIAL_ADVERTISE_PEER_URLS=\\\"http:\/\/192.168.10.6:2380\\\"\nETCD_ADVERTISE_CLIENT_URLS=\\\"http:\/\/0.0.0.0:2379\\\"\nETCD_INITIAL_CLUSTER=\\\"etcd01=http:\/\/192.168.10.5:2380,etcd02=http:\/\/192.168.10.6:2380,etcd03=http:\/\/192.168.10.7:2380\\\"\nETCD_INITIAL_CLUSTER_TOKEN=\\\"etcd-cluster\\\"\nETCD_INITIAL_CLUSTER_STATE=\\\"exist\\\"<\/pre>\n<h2><strong>node2 etcd \u914d\u7f6e<\/strong><\/h2>\n<pre>[root@node2 ~]# egrep -v \\\"^$|^#\\\" \/etc\/etcd\/etcd.conf\nETCD_DATA_DIR=\\\"\/var\/lib\/etcd\/default.etcd\\\"\nETCD_LISTEN_PEER_URLS=\\\"http:\/\/192.168.10.7:2380\\\"\nETCD_LISTEN_CLIENT_URLS=\\\"http:\/\/0.0.0.0:2379\\\"\nETCD_NAME=\\\"etcd03\\\"\nETCD_INITIAL_ADVERTISE_PEER_URLS=\\\"http:\/\/192.168.10.7:2380\\\"\nETCD_ADVERTISE_CLIENT_URLS=\\\"http:\/\/0.0.0.0:2379\\\"\nETCD_INITIAL_CLUSTER=\\\"etcd01=http:\/\/192.168.10.5:2380,etcd02=http:\/\/192.168.10.6:2380,etcd03=http:\/\/192.168.10.7:2380\\\"\nETCD_INITIAL_CLUSTER_TOKEN=\\\"etcd-cluster\\\"\nETCD_INITIAL_CLUSTER_STATE=\\\"exist\\\"<\/pre>\n<h2><strong>\u6dfb\u52a0\u7cfb\u7edf\u670d\u52a1\u547d\u4ee4<\/strong><\/h2>\n<div class=\\\"cnblogs_Highlighter sh-gutter\\\">\n<div>\n<div id=\\\"highlighter_59741\\\" class=\\\"syntaxhighlighter  bash\\\">\n<table border=\\\"0\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\">\n<tbody>\n<tr>\n<td class=\\\"gutter\\\">\n<div class=\\\"line number1 index0 alt2\\\">1<\/div>\n<div class=\\\"line number2 index1 alt1\\\">2<\/div>\n<div class=\\\"line number3 index2 alt2\\\">3<\/div>\n<div class=\\\"line number4 index3 alt1\\\">4<\/div>\n<div class=\\\"line number5 index4 alt2\\\">5<\/div>\n<div class=\\\"line number6 index5 alt1\\\">6<\/div>\n<div class=\\\"line number7 index6 alt2\\\">7<\/div>\n<div class=\\\"line number8 index7 alt1\\\">8<\/div>\n<div class=\\\"line number9 index8 alt2\\\">9<\/div>\n<div class=\\\"line number10 index9 alt1\\\">10<\/div>\n<div class=\\\"line number11 index10 alt2\\\">11<\/div>\n<div class=\\\"line number12 index11 alt1\\\">12<\/div>\n<div class=\\\"line number13 index12 alt2\\\">13<\/div>\n<div class=\\\"line number14 index13 alt1\\\">14<\/div>\n<div class=\\\"line number15 index14 alt2\\\">15<\/div>\n<div class=\\\"line number16 index15 alt1\\\">16<\/div>\n<div class=\\\"line number17 index16 alt2\\\">17<\/div>\n<div class=\\\"line number18 index17 alt1\\\">18<\/div>\n<div class=\\\"line number19 index18 alt2\\\">19<\/div>\n<\/td>\n<td class=\\\"code\\\">\n<div class=\\\"container\\\">\n<div class=\\\"line number1 index0 alt2\\\"><code class=\\\"bash plain\\\">[root@localhost etcd]<\/code><code class=\\\"bash comments\\\"># cat \/usr\/lib\/systemd\/system\/etcd.service<\/code><\/div>\n<div class=\\\"line number2 index1 alt1\\\"><code class=\\\"bash plain\\\">[Service]<\/code><\/div>\n<div class=\\\"line number3 index2 alt2\\\"><code class=\\\"bash plain\\\">Type=notify<\/code><\/div>\n<div class=\\\"line number4 index3 alt1\\\"><code class=\\\"bash plain\\\">WorkingDirectory=<\/code><code class=\\\"bash plain\\\">\/var\/lib\/etcd\/<\/code><\/div>\n<div class=\\\"line number5 index4 alt2\\\"><code class=\\\"bash plain\\\">EnvironmentFile=-<\/code><code class=\\\"bash plain\\\">\/etc\/etcd\/etcd<\/code><code class=\\\"bash plain\\\">.conf<\/code><\/div>\n<div class=\\\"line number6 index5 alt1\\\"><code class=\\\"bash plain\\\">User=etcd<\/code><\/div>\n<div class=\\\"line number7 index6 alt2\\\"><code class=\\\"bash comments\\\"># set GOMAXPROCS to number of processors<\/code><\/div>\n<div class=\\\"line number8 index7 alt1\\\"><code class=\\\"bash plain\\\">ExecStart=<\/code><code class=\\\"bash plain\\\">\/bin\/bash<\/code>\u00a0<code class=\\\"bash plain\\\">-c \\\"GOMAXPROCS=$(nproc)\u00a0<\/code><code class=\\\"bash plain\\\">\/usr\/bin\/etcd<\/code>\u00a0<code class=\\\"bash plain\\\">\\\\<\/code><\/div>\n<div class=\\\"line number9 index8 alt2\\\"><code class=\\\"bash plain\\\">--name=\\\\\\\"${ETCD_NAME}\\\\\\\" \\\\<\/code><\/div>\n<div class=\\\"line number10 index9 alt1\\\"><code class=\\\"bash plain\\\">--data-<\/code><code class=\\\"bash functions\\\">dir<\/code><code class=\\\"bash plain\\\">=\\\\\\\"${ETCD_DATA_DIR}\\\\\\\" \\\\<\/code><\/div>\n<div class=\\\"line number11 index10 alt2\\\"><code class=\\\"bash plain\\\">--listen-peer-urls=\\\\\\\"${ETCD_LISTEN_PEER_URLS}\\\\\\\" \\\\<\/code><\/div>\n<div class=\\\"line number12 index11 alt1\\\"><code class=\\\"bash plain\\\">--listen-client-urls=\\\\\\\"${ETCD_LISTEN_CLIENT_URLS}\\\\\\\" \\\\<\/code><\/div>\n<div class=\\\"line number13 index12 alt2\\\"><code class=\\\"bash plain\\\">--initial-advertise-peer-urls=\\\\\\\"${ETCD_INITIAL_ADVERTISE_PEER_URLS}\\\\\\\" \\\\<\/code><\/div>\n<div class=\\\"line number14 index13 alt1\\\"><code class=\\\"bash plain\\\">--advertise-client-urls=\\\\\\\"${ETCD_ADVERTISE_CLIENT_URLS}\\\\\\\" \\\\<\/code><\/div>\n<div class=\\\"line number15 index14 alt2\\\"><code class=\\\"bash plain\\\">--initial-cluster=\\\\\\\"${ETCD_INITIAL_CLUSTER}\\\\\\\"\u00a0 \\\\<\/code><\/div>\n<div class=\\\"line number16 index15 alt1\\\"><code class=\\\"bash plain\\\">--initial-cluster-token=\\\\\\\"${ETCD_INITIAL_CLUSTER_TOKEN}\\\\\\\" \\\\<\/code><\/div>\n<div class=\\\"line number17 index16 alt2\\\"><code class=\\\"bash plain\\\">--initial-cluster-state=\\\\<\/code><code class=\\\"bash string\\\">\\\"${ETCD_INITIAL_CLUSTER_STATE}\\\\\\\"\\\"<\/code><\/div>\n<div class=\\\"line number18 index17 alt1\\\"><code class=\\\"bash plain\\\">Restart=on-failure<\/code><\/div>\n<div class=\\\"line number19 index18 alt2\\\"><code class=\\\"bash plain\\\">LimitNOFILE=65536<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<p>\u4ee5\u4e0a\u64cd\u4f5c\u5728 master\u3001node2\u3001node3 \u8282\u70b9\u4e0a\u90fd\u9700\u8981\u64cd\u4f5c,\u9700\u8981\u4fee\u6539\u5bf9\u5e94\u7684ip<\/p>\n<h2><strong>\u542f\u52a8 etcd<\/strong><\/h2>\n<p>\u4f9d\u6b21\u542f\u52a8 node1\u3001node2\u3001node3 \u8282\u70b9\u7684 etcd<\/p>\n<div class=\\\"cnblogs_Highlighter sh-gutter\\\">\n<div>\n<div id=\\\"highlighter_878137\\\" class=\\\"syntaxhighlighter  bash\\\">\n<table border=\\\"0\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\">\n<tbody>\n<tr>\n<td class=\\\"gutter\\\">\n<div class=\\\"line number1 index0 alt2\\\">1<\/div>\n<div class=\\\"line number2 index1 alt1\\\">2<\/div>\n<div class=\\\"line number3 index2 alt2\\\">3<\/div>\n<\/td>\n<td class=\\\"code\\\">\n<div class=\\\"container\\\">\n<div class=\\\"line number1 index0 alt2\\\"><code class=\\\"bash plain\\\">systemctl start etcd.service<\/code><\/div>\n<div class=\\\"line number2 index1 alt1\\\"><code class=\\\"bash plain\\\">systemctl status etcd.service<\/code><\/div>\n<div class=\\\"line number3 index2 alt2\\\"><code class=\\\"bash plain\\\">systemctl\u00a0<\/code><code class=\\\"bash functions\\\">enable<\/code>\u00a0<code class=\\\"bash plain\\\">etcd.service<\/code><\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<\/div>\n<h2><\/h2>\n<h2>\u9a8c\u8bc1 etcd\u96c6\u7fa4<\/h2>\n<pre># \u67e5\u770b\u96c6\u7fa4\u8282\u70b9\n[root@master etcd]# etcdctl member list\n315fd62e577c4037: name=etcd03 peerURLs=http:\/\/192.168.10.7:2380 clientURLs=http:\/\/0.0.0.0:2379 isLeader=false\n4c5d727d37966a87: name=etcd01 peerURLs=http:\/\/192.168.10.5:2380 clientURLs=http:\/\/0.0.0.0:2379 isLeader=true\nf617da66fb9b90ad: name=etcd02 peerURLs=http:\/\/192.168.10.6:2380 clientURLs=http:\/\/0.0.0.0:2379 isLeader=false\n#\u67e5\u770b\u96c6\u7fa4\u5065\u5eb7\u72b6\u6001\uff1a\n[root@master etcd]# etcdctl cluster-health\nmember 315fd62e577c4037 is healthy: got healthy result from http:\/\/0.0.0.0:2379\nmember 4c5d727d37966a87 is healthy: got healthy result from http:\/\/0.0.0.0:2379\nmember f617da66fb9b90ad is healthy: got healthy result from http:\/\/0.0.0.0:2379\ncluster is healthy\n<\/pre>\n<p>\u8bbe\u7f6e\u952e\u503c\uff1a<\/p>\n<pre>\u5728\u4e00\u4e2a\u8282\u70b9\u8bbe\u7f6e\u503c\n[root@master etcd]# etcdctl set \/test\/key \\\"test kubernetes\\\"\ntest kubernetes\n\u5728\u53e6\u4e00\u4e2a\u8282\u70b9\u83b7\u53d6\u503c\n[root@node1 etcd]# etcdctl get \/test\/key\ntest kubernetes\nkey\u5b58\u5728\u7684\u65b9\u5f0f\u548czookeeper\u7c7b\u4f3c\uff0c\u4e3a \/\u8def\u5f84\/key\n\u8bbe\u7f6e\u5b8c\u4e4b\u540e\uff0c\u5176\u4ed6\u96c6\u7fa4\u4e5f\u53ef\u4ee5\u67e5\u8be2\u5230\u8be5\u503c\n\u5982\u679cdir\u548ckey\u4e0d\u5b58\u5728\uff0c\u8be5\u547d\u4ee4\u4f1a\u521b\u5efa\u5bf9\u5e94\u7684\u9879<\/pre>\n<p>\u66f4\u65b0\u952e\u503c\uff1a<\/p>\n<pre>[root@master etcd]# etcdctl update \/test\/key \\\"test kubernetes cluster\\\"\ntest kubernetes cluster\n[root@node1 etcd]# etcdctl get \/test\/key\ntest kubernetes cluster<\/pre>\n<p>\u5220\u9664\u952e\u503c\uff1a<\/p>\n<pre>[root@master etcd]# etcdctl rm \/test\/key\nPrevNode.Value: test kubernetes cluster\n# \u5f53\u952e\u4e0d\u5b58\u5728\u65f6\uff0c\u4f1a\u62a5\u9519\n[root@node1 etcd]# etcdctl get \/test\/key\nError:  100: Key not found (\/test\/key) [15]<\/pre>\n<p>\u901a\u8fc7api\u63a5\u53e3\u9a8c\u8bc1<\/p>\n<pre>\u9a8c\u8bc1\u96c6\u7fa4\u7684\u72b6\u6001\uff0c\u4ece\u4e09\u4e2anode\u8fd4\u56de\u7684v2\/members\u6570\u636e\u662f\u4e00\u6837\u7684\u503c\u3002\ncurl -L <span class=\\\"hljs-attr\\\">http:<\/span><span class=\\\"hljs-comment\\\">\/\/127.0.0.1:2380\/v2\/members<\/span>\n\u901a\u8fc7curl\u6dfb\u52a0\u67e5\u8be2\u4fe1\u606f\ncurl -L http:\/\/127.0.0.1:32789\/v2\/keys\/foo -XPUT -d value=\\\"Hello foo\\\"\ncurl -L http:\/\/127.0.0.1:32789\/v2\/keys\/foo1\/foo1 -XPUT -d value=\\\"Hello foo1\\\"\ncurl -L http:\/\/127.0.0.1:32789\/v2\/keys\/foo2\/foo2 -XPUT -d value=\\\"Hello foo2\\\"\ncurl -L http:\/\/127.0.0.1:32789\/v2\/keys\/foo2\/foo21\/foo21 -XPUT -d value=\\\"Hello foo21\\\"\ncurl -L http:\/\/127.0.0.1:32787\/v2\/keys\/foo\ncurl -L http:\/\/127.0.0.1:32787\/v2\/keys\/foo2\ncurl -L http:\/\/127.0.0.1:32787\/v2\/keys\/foo2?recursive=true<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>ETCD\u96c6\u7fa4\u8282\u70b9\uff1a \u89d2\u8272 \u7cfb\u7edf \u8282\u70b9 master CentOS-7 192.168.10.5 node-1  &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"\" href=\"http:\/\/www.weijing.co\/?p=2492\"> <span class=\"screen-reader-text\">centos7\u5b89\u88c5\u90e8\u7f72etcd\u96c6\u7fa4<\/span> \u67e5\u770b\u5168\u6587 &raquo;<\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"default","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":""},"categories":[89,88],"tags":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"mailpoet_newsletter_max":false,"woocommerce_thumbnail":false,"woocommerce_single":false,"woocommerce_gallery_thumbnail":false,"shop_catalog":false,"shop_single":false,"shop_thumbnail":false},"uagb_author_info":{"display_name":"weijing","author_link":"http:\/\/www.weijing.co\/?author=4"},"uagb_comment_info":0,"uagb_excerpt":"ETCD\u96c6\u7fa4\u8282\u70b9\uff1a \u89d2\u8272 \u7cfb\u7edf \u8282\u70b9 master CentOS-7 192.168.10.5 node-1 &hellip;","_links":{"self":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts\/2492"}],"collection":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2492"}],"version-history":[{"count":0,"href":"http:\/\/www.weijing.co\/index.php?rest_route=\/wp\/v2\/posts\/2492\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2492"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2492"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.weijing.co\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2492"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}