Mac安裝Etcd,配置Etcd可視化頁面Etcd Browser

一、Etcd簡介

一個由coreos 開發的分佈式服務系統,內部採用 raft 協議作爲一致性算法。作爲服務發現系統,有以下的特點:

  • 簡單:安裝配置簡單,而且提供了 HTTP API 進行交互,使用也很簡單
  • 安全:支持 SSL 證書驗證
  • 快速:根據官方提供的 benchmark 數據,單實例支持每秒 2k+ 讀操作
  • 可靠:採用 raft 算法,實現分佈式系統數據的可用性和一致性

在這篇文章編寫的時候,etcd 已經發布了 3.3.13 版本,被被用在 CoreOS、kubernetes、Cloud Foundry 等項目中。

etcd 目前默認使用 2379 端口提供 HTTP API 服務2380 端口和 peer 通信(這兩個端口已經被 IANA 官方預留給 etcd)。在之前的版本中,可能會分別使用 4001 和 7001,在使用的過程中需要注意這個區別。

雖然 etcd 也支持單點部署,但是在生產環境中推薦集羣方式部署。由於etcd內部使用投票機制,一般 etcd 節點數會選擇 3、5、7等奇數。etcd 會保證所有的節點都會保存數據,並保證數據的一致性和正確性。

二、Mac下安裝Etcd

使用brew工具進行安裝。

2.1 查看候選安裝包,執行命令brew search etcd

$ brew search etcd

執行結果如下所示:

==> Formulae
etcd ✔                                                                                              netcdf

==> Casks
qlnetcdf

2.2 安裝etcd,執行命令brew install etcd

$ brew install etcd

執行結果如下所示:

Updating Homebrew...
==> Auto-updated Homebrew!
Updated 5 taps (openresty/brew, homebrew/cask-versions, homebrew/core, homebrew/cask and homebrew/services).
==> New Formulae
allureofthestars                 contentful-cli                   dust                             k3d                              newman                           spirv-tools
anime-downloader                 cpp-gsl                          erlang@21                        k6                               openkim-models                   swig@3
antibody                         csvq                             gatsby-cli                       kim-api                          otf2                             termshark
appstream-glib                   cubelib                          gcc@8                            ktlint                           pipx                             [email protected]
atlantis                         cxxopts                          heatshrink                       leela-zero                       pprint                           terraformer
boringtun                        cypher-shell                     helmsman                         libevhtp                         procs                            virgil
catch2                           dbmate                           hey                              libzt                            proteinortho                     yapf
cfn-lint                         deno                             include-what-you-use             lizard                           [email protected]
cjson                            devspace                         ipopt                            [email protected]                     scdoc
clojure-lsp                      docker-machine-driver-vmware     itk                              molten-vk                        scws
clzip                            drone-cli                        janet                            netlify-cli                      spice-gtk
==> Updated Formulae
argon2 ✔                                eccodes                                 imageoptim-cli                          minizinc                                rpm
boost ✔                                 efl                                     imake                                   mk-configure                            rrdtool
cmake ✔                                 eiffelstudio                            imapsync                                mkl-dnn                                 rsyslog
composer ✔                              elasticsearch                           influxdb                                mksh                                    rt-audio
dep ✔                                   [email protected]                       inlets                                  mkvtoolnix                              rtags
freetds ✔                               elixir                                  interactive-rebase-tool                 mlt                                     rtmidi
gettext ✔                               embree                                  ios-sim                                 mmark                                   rtv
git ✔                                   emscripten                              ios-webkit-debug-proxy                  mmseqs2                                 ruby-build
glib ✔                                  encfs                                   iperf3                                  molecule                                rust
go ✔                                    enchant                                 ipfs                                    monero                                  rustup-init
imagemagick ✔                           enigma                                  ipython                                 monetdb                                 s-search
kafka ✔                                 enscript                                ircii                                   mongo-c-driver                          salt
kubernetes-cli ✔                        envconsul                               irssi                                   mongoose                                sassc
libevent ✔                              epubcheck                               isl                                     mono-libgdiplus                         saxon
libidn2 ✔                               erlang                                  ispc                                    mosquitto                               sbcl
libpq ✔                                 erlang@19                               istioctl                                mp3splt                                 scala
mysql ✔                                 erlang@20                               itstool                                 mpck                                    scalapack
nginx ✔                                 eslint                                  ivykis                                  mpd                                     scalariform
node ✔                                  etcd                                    jadx                                    mpdscribble                             sccache
openresty/brew/openresty ✔              ethereum                                jailkit                                 mpich                                   sceptre
openresty/brew/openresty-openssl ✔      etl                                     jbig2dec                                mplayer                                 schismtracker
openssl ✔                               ettercap                                jboss-forge                             mpop                                    scipy
[email protected] ✔                           evince                                  jdnssec-tools                           mps-youtube                             scmpuff
[email protected] ✔                               exiftool                                jdupes                                  mruby                                   scrcpy
pyenv ✔                                 exiv2                                   jena                                    msgpack                                 scrollkeeper
readline ✔                              expat                                   jenkins                                 msitools                                sd
redis ✔                                 exploitdb                               jenkins-job-builder                     msktutil                                sdb
scons ✔                                 eye-d3                                  jenkins-lts                             msmtp                                   sdcc
source-highlight ✔                      f3                                      jfrog-cli-go                            mtools                                  sdcv
tmux ✔                                  faas-cli                                jhiccup                                 mu                                      sdl2_ttf
wget ✔                                  fastme                                  jhipster                                mujs                                    sec
abyss                                   faudio                                  jigdo                                   mupdf                                   serd
ack                                     fceux                                   jmxterm                                 mupdf-tools                             serf
acpica                                  ffmpeg                                  jnettop                                 mutt                                    serve
agda                                    ffsend                                  john                                    mvnvm                                   serverless
aide                                    fftw                                    joplin                                  [email protected]                               sfcgal
akamai                                  fibjs                                   jp2a                                    mysqltuner                              shadowsocks-libev
akka                                    file-formula                            jruby                                   n                                       shared-mime-info
aliyun-cli                              fio                                     jsdoc3                                  nagios                                  shc
allure                                  firebase-cli                            json-fortran                            nano                                    shfmt
alot                                    flatbuffers                             json-glib                               nanopb-generator                        ship
amazon-ecs-cli                          flex                                    json_spirit                             nativefier                              shogun
ammonite-repl                           flintrock                               jsonnet                                 nats-streaming-server                   shpotify
amqp-cpp                                flow                                    jsonschema2pojo                         nave                                    shyaml
amtk                                    fluid-synth                             juju                                    ncdc                                    silk
angle-grinder                           fluxctl                                 jump                                    ncmpc                                   simple-scan
angular-cli                             fn                                      just                                    ncmpcpp                                 simple-tiles
anjuta                                  fobis                                   jvgrep                                  nco                                     sipp
annie                                   folly                                   kahip                                   ndpi                                    sipsak
ansible                                 fontforge                               kallisto                                needle                                  siril
ansifilter                              fonttools                               kapacitor                               neo4j                                   sk
ant                                     fourstore                               khal                                    neomutt                                 skaffold
[email protected]                                 fq                                      khard                                   neovim                                  skktools
anyenv                                  freeciv                                 kibana                                  netcdf                                  skopeo
apache-archiva                          freedink                                kitchen-sync                            netdata                                 sleepwatcher
apache-arrow-glib                       freeradius-server                       klavaro                                 nethack                                 sleuthkit
apache-drill                            frpc                                    knot                                    netpbm                                  smali
apache-geode                            frps                                    knot-resolver                           newsboat                                smimesign
apache-spark                            frugal                                  kobalt                                  newt                                    sn0int
app-engine-python                       fs-uae                                  kops                                    nexus                                   snownews
apt-dater                               fselect                                 kore                                    nghttp2                                 socat
aqbanking                               fuse-emulator                           kotlin                                  nifi-registry                           sofia-sip
arangodb                                fuseki                                  krb5                                    nim                                     solr
aravis                                  futhark                                 kubecfg                                 nlopt                                   [email protected]
argyll-cms                              gabedit                                 kubeless                                nnn                                     sonobuoy
armadillo                               galen                                   kubeprod                                node-build                              sops
arpack                                  gammu                                   kubernetes-helm                         node@10                                 source-to-image
artifactory                             gandi.cli                               kubernetes-service-catalog-client       node@8                                  sourcekitten
asciidoctor                             gauge                                   kustomize                               node_exporter                           sourcery
asciidoctorj                            gawk                                    kyoto-cabinet                           nodenv                                  spades
asdf                                    gbdfed                                  kyoto-tycoon                            nomad                                   sparse
ask-cli                                 gcab                                    lablgtk                                 nordugrid-arc                           sphinx-doc
aspectj                                 gcc                                     lammps                                  noti                                    spice-protocol
astrometry-net                          gcc@5                                   landscaper                              notmuch                                 spin
atari800                                gcc@6                                   lapack                                  nss                                     spirv-cross
atk                                     gcc@7                                   lasi                                    ntfs-3g                                 sqlcipher
atkmm                                   gcsfuse                                 lasso                                   ntl                                     sqlmap
atlassian-cli                           gdal                                    laszip                                  numpy                                   sratom
atomist-cli                             gdb                                     latex2html                              nwchem                                  srt
audacious                               gdcm                                    latexml                                 nzbget                                  sshfs
auditbeat                               gdk-pixbuf                              lazygit                                 ocaml-num                               sshtrix
augeas                                  gdl                                     lbdb                                    ocrmypdf                                sslh
autorest                                gdmap                                   lcdf-typetools                          octave                                  sslscan
avra                                    gearsystem                              ldapvi                                  odpi                                    sslsplit
avro-c                                  gecode                                  ldc                                     ola                                     stellar-core
avro-cpp                                geeqie                                  ledger                                  ompl                                    step
avro-tools                              gegl                                    lego                                    oniguruma                               stk
awf                                     gel                                     lensfun                                 opa                                     stout
aws-iam-authenticator                   genact                                  leveldb                                 open-mpi                                streamripper
aws-okta                                gengetopt                               lf                                      openapi-generator                       strongswan
aws-sdk-cpp                             genometools                             lgogdownloader                          openblas                                stunnel
awscli                                  geoipupdate                             libb2                                   opencascade                             subversion
axel                                    geos                                    libbitcoin                              opencc                                  suil
azure-cli                               gerbv                                   libbitcoin-blockchain                   opencoarrays                            suite-sparse
azure-storage-cpp                       getdns                                  libbitcoin-client                       openconnect                             sundials
b2-tools                                gexiv2                                  libbitcoin-database                     opencv                                  superlu
babel                                   ghc                                     libbitcoin-explorer                     opencv@3                                supervisor
babl                                    ghex                                    libbitcoin-network                      openfortivpn                            swagger-codegen
badtouch                                ghostscript                             libbitcoin-node                         openh264                                swagger-codegen@2
balena-cli                              ghq                                     libbitcoin-protocol                     openimageio                             swi-prolog
ballerina                               ghr                                     libbitcoin-server                       openresty/brew/openresty-debug          swift-protobuf
baobab                                  gibo                                    libbluray                               openshift-cli                           swiftformat
bartycrouch                             gifsicle                                libcddb                                 openslide                               swiftlint
basex                                   git-cinnabar                            libcdio                                 opensubdiv                              swig
bash                                    git-cola                                libcdr                                  openvdb                                 swimat
bat                                     git-flow-avh                            libchamplain                            operator-sdk                            sylpheed
bazel                                   git-fresh                               libcoap                                 orbit                                   sync_gateway
beanstalkd                              git-ftp                                 libcroco                                orc-tools                               syncthing
bear                                    git-lfs                                 libdap                                  osc                                     synfig
bedops                                  git-quick-stats                         libdazzle                               oscats                                  sysbench
bee                                     git-recent                              libdc1394                               osm-gps-map                             talloc
bettercap                               git-remote-hg                           libebml                                 osm2pgrouting                           taskell
bgpstream                               git-review                              libedit                                 osmosis                                 tass64
binaryen                                git-secret                              liberasurecode                          ospray                                  tbb
bind                                    git-town                                libestr                                 osquery                                 tcpreplay
binwalk                                 gitfs                                   libetonyek                              osrm-backend                            tcsh
bison                                   gitg                                    libev                                   owfs                                    tdlib
bit                                     gitlab-runner                           libfabric                               p11-kit                                 teleconsole
bitcoin                                 gitleaks                                libfixbuf                               packer                                  telegraf
bitlbee                                 gitless                                 libgaiagraphics                         packmol                                 teleport
bitrise                                 gjs                                     libgda                                  paket                                   template-glib
bitwarden-cli                           gkrellm                                 libgdata                                pam-u2f                                 tepl
blast                                   glade                                   libgee                                  pandoc                                  terraform
bluepill                                glances                                 libgeotiff                              pandoc-crossref                         terraforming
bookloupe                               glib-networking                         libgit2                                 pango                                   terragrunt
boost-bcp                               glibmm                                  libgit2-glib                            pangomm                                 terrahub
boost-build                             glooctl                                 libglade                                paperkey                                testssl
boost-mpi                               glslang                                 libglademm                              paps                                    texmath
boost-python                            glyr                                    libgnomecanvas                          parallel                                tfenv
boost-python3                           gmic                                    libgnomecanvasmm                        parallelstl                             thefuck
botan                                   gmime                                   libgsf                                  pari                                    tiger-vnc
bowtie2                                 gmsh                                    libgtop                                 passenger                               tika
braid                                   gmt                                     libgweather                             patchelf                                tile38
buildifier                              gnome-autoar                            libhttpseverywhere                      payara                                  tippecanoe
buildkit                                gnome-builder                           libical                                 pcapplusplus                            tkdiff
buku                                    gnome-latex                             libiconv                                pcb                                     tmux-xpanes
bundletool                              gnome-recipes                           libidl                                  pcb2gcode                               tmuxinator-completion
bwfmetaedit                             gnome-themes-standard                   libimagequant                           pcl                                     tokei
byobu                                   gnu-getopt                              libinfinity                             pdal                                    tomcat
byteman                                 gnu-indent                              libiptcdata                             pdf2htmlex                              tomcat@7
bzt                                     gnu-typist                              libjson-rpc-cpp                         pdf2svg                                 tomcat@8
cadaver                                 gnu-units                               libjwt                                  pdfgrep                                 tomee-plus
caffe                                   gnumeric                                liblas                                  pdfpc                                   tomee-webprofile
cairo                                   gnunet                                  liblinear                               pdftoipe                                topgrade
calcurse                                gnupg                                   liblqr                                  pdns                                    tor
calicoctl                               gnuplot                                 libltc                                  pdnsrec                                 torsocks
camlp4                                  gnuradio                                liblunar                                peg-markdown                            tox
cargo-completion                        gnutls                                  libmagic                                percona-xtrabackup                      traefik
carla                                   goaccess                                libmatroska                             perl                                    trafficserver
cataclysm                               gobby                                   libmp3splt                              peru                                    translate-shell
catimg                                  gobject-introspection                   libmpd                                  petsc                                   travis
cattle                                  gobuster                                libmpdclient                            petsc-complex                           treefrog
cc65                                    godep                                   libmtp                                  pgbadger                                trezor-agent
ccache                                  goffice                                 libmwaw                                 pgcli                                   triton
ccextractor                             golang-migrate                          libmypaint                              pgformatter                             ttyd
ccls                                    gollum                                  libnfs                                  pgplot                                  tundra
center-im                               golo                                    libnice                                 pgrouting                               txr
certbot                                 gom                                     libnids                                 phoronix-test-suite                     typescript
cf4ocl                                  gomplate                                libnotify                               php                                     u-boot-tools
cfengine                                goocanvas                               libntlm                                 php-cs-fixer                            ucloud
cfr-decompiler                          goofys                                  libodfgen                               [email protected]                                 ufraw
cgal                                    google-authenticator-libpam             libofx                                  phpmyadmin                              uhd
cgit                                    google-benchmark                        libomp                                  phpstan                                 ultralist
cglm                                    googler                                 libopenmpt                              phpunit                                 unbound
cgrep                                   gopass                                  libosinfo                               physfs                                  uncrustify
chafa                                   gor                                     libpeas                                 picard-tools                            ungit
chakra                                  goreleaser                              libphonenumber                          picat                                   unp64
chamber                                 gosu                                    libpqxx                                 pick                                    unrar
charm                                   gpa                                     libprotoident                           pidgin                                  unzip
checkbashisms                           gpac                                    libpsl                                  pijul                                   upscaledb
checkstyle                              gpgme                                   libpst                                  pilosa                                  urdfdom_headers
chicken                                 gpredict                                libpulsar                               pinboard-notes-backup                   userspace-rcu
chrome-export                           gpsbabel                                libqalculate                            pinfo                                   utf8proc
chronograf                              gpsim                                   libquicktime                            pioneers                                util-linux
circleci                                gqview                                  librasterlite                           planck                                  utimer
citus                                   gr-osmosdr                              librdkafka                              plantuml                                uwsgi
clang-format                            gradio                                  libre                                   platformio                              v8
cloc                                    gradle                                  librealsense                            plplot                                  vagrant-completion
clojure                                 grafana                                 librem                                  plzip                                   vala
clozure-cl                              grails                                  libressl                                pmd                                     valabind
clutter                                 grakn                                   librest                                 pms                                     vamp-plugin-sdk
clutter-gst                             graph-tool                              librsvg                                 pngquant                                varnish
clutter-gtk                             graphviz                                libsass                                 pod2man                                 vault
cmark-gfm                               grib-api                                libsecret                               ponyc                                   vault-cli
cmocka                                  gromacs                                 libshout                                poppler                                 vcdimager
cockroach                               groovy                                  libsigc++                               postgresql                              vegeta
cocoapods                               groovysdk                               libsmf                                  postgresql@10                           velero
cogl                                    grpc                                    libsodium                               [email protected]                          verilator
cointop                                 grpcurl                                 libsoup                                 [email protected]                          vert.x
collectd                                grsync                                  libspectre                              [email protected]                          vfuse
commandbox                              gsmartcontrol                           libspectrum                             postgrest                               vice
conan                                   gspell                                  libssh2                                 pqiv                                    viewvc
conserver                               gssdp                                   libsvm                                  pre-commit                              vim
consul                                  gst-editing-services                    libswiften                              prefixsuffix                            [email protected]
convox                                  gst-libav                               libtorrent-rasterbar                    presto                                  vips
coq                                     gst-plugins-bad                         libtrace                                prettier                                visp
corectl                                 gst-plugins-base                        libuninameslist                         profanity                               volt
corsixth                                gst-plugins-good                        libuv                                   proguard                                vowpal-wabbit
cp2k                                    gst-plugins-ugly                        libvirt                                 proj                                    vte
cpansearch                              gst-python                              libvirt-glib                            prometheus                              vte3
cppad                                   gst-rtsp-server                         libwpd                                  protobuf-c                              vtk
cppcheck                                gst-validate                            libwpg                                  protoc-gen-go                           vulkan-headers
cpprestsdk                              gstreamer                               libxc                                   prototool                               vultr
cql                                     gstreamermm                             libxlsxwriter                           pspg                                    wabt
cracklib                                gtk+                                    libxml++                                psql2csv                                wandio
crc32c                                  gtk+3                                   libxml++3                               pstoedit                                wartremover
cromwell                                gtk-chtheme                             libxo                                   pulumi                                  watchexec
crosstool-ng                            gtk-doc                                 libzdb                                  pumba                                   wdfs
crowdin                                 gtk-gnutella                            lighttpd                                pure-ftpd                               wdiff
cryfs                                   gtk-mac-integration                     lilv                                    purescript                              webdis
cryptol                                 gtk-vnc                                 linkerd                                 pushpin                                 webpack
crystal                                 gtkdatabox                              lldpd                                   py2cairo                                websocat
crystal-icr                             gtkextra                                llvm                                    py3cairo                                websocketd
csound                                  gtkglext                                lmod                                    pybind11                                webtorrent-cli
cucumber-cpp                            gtkmm                                   logstash                                pygobject                               weechat
curl                                    gtkmm3                                  logtalk                                 pygobject3                              wesnoth
curl-openssl                            gtksourceview                           loudmouth                               pygtk                                   whois
curlftpfs                               gtksourceview3                          lsd                                     pygtkglext                              widelands
cutter                                  gtksourceview4                          luarocks                                pygtksourceview                         wildfly-as
cython                                  gtksourceviewmm                         lv2                                     pypy                                    wimlib
dartsim                                 gtksourceviewmm3                        lwtools                                 pypy3                                   wine
datetime-fortran                        gtkspell3                               lxc                                     pyside                                  winetricks
dav1d                                   gtranslator                             lynis                                   qalculate-gtk                           wiredtiger
davix                                   gts                                     lysp                                    qbs                                     wireguard-go
dbus-glib                               gucharmap                               lz4                                     qca                                     wireguard-tools
dc3dd                                   guile                                   lzip                                    qd                                      wiremock-standalone
dcd                                     gupnp                                   mackup                                  qemu                                    wireshark
dcm2niix                                gupnp-av                                macvim                                  qmmp                                    wla-dx
dehydrated                              gupnp-tools                             mafft                                   qpdf                                    wmctrl
dependency-check                        gwenhywfar                              magic-wormhole                          qrupdate                                wp-cli
desktop-file-utils                      gwyddion                                mailutils                               qt                                      wp-cli-completion
dfc                                     gx                                      mame                                    quantlib                                wtf
dfmt                                    gxml                                    mariadb                                 quazip                                  wv
dhall                                   h3                                      mariadb-connector-c                     quicktype                               wxmaxima
dhall-json                              hadolint                                [email protected]                            quilt                                   wxpython
diff-pdf                                hana                                    [email protected]                            qwt                                     xboard
diff-so-fancy                           hapi-fhir-cli                           mat2                                    r                                       xcodegen
diffoscope                              harfbuzz                                math-comp                               rabbitmq                                xctool
digdag                                  haskell-stack                           maxima                                  radare2                                 xmake
dita-ot                                 hbase                                   maxwell                                 rancid                                  xmrig
django-completion                       hdf5                                    mbedtls                                 range-v3                                xonsh
dmd                                     [email protected]                                mcabber                                 raylib                                  xpdf
dnscontrol                              hebcal                                  mdbook                                  rbspy                                   xplanet
dnscrypt-proxy                          heimdal                                 mdbtools                                rclone                                  xsane
dnstwist                                helmfile                                mdds                                    rdesktop                                xsimd
docfx                                   herrie                                  mdk                                     rdup                                    yaf
docker                                  hexyl                                   media-info                              re2                                     yamllint
docker-completion                       hfstospell                              mednafen                                reattach-to-user-namespace              yara
docker-compose                          highlight                               megatools                               rebar3                                  yarn
docker-compose-completion               hledger                                 memcached                               recode                                  yash
docker-credential-helper                hlint                                   mercurial                               recon-ng                                yelp-tools
docker-machine-driver-xhyve             homeassistant-cli                       mesa                                    recoverjpeg                             ykman
doctl                                   homebank                                meson                                   redo                                    yle-dl
dopewars                                http-parser                             mesos                                   redshift                                you-get
double-conversion                       httpd                                   metaproxy                               remind                                  youtube-dl
dovecot                                 httping                                 metricbeat                              reposurgeon                             yq
druid                                   hub                                     mgba                                    reprepro                                yubico-piv-tool
dscanner                                hugo                                    micronaut                               restic                                  z3
dspdfviewer                             hunspell                                micropython                             restview                                zenity
dub                                     hydra                                   midgard2                                rhino                                   zim
duc                                     hyperfine                               midnight-commander                      riemann                                 zimg
duck                                    hyperkit                                mighttpd2                               riff                                    zlog
dungeon                                 hypre                                   mikutter                                rke                                     zola
duo_unix                                i2p                                     mill                                    rmlint                                  zsh-autosuggestions
dwdiff                                  i2pd                                    minbif                                  rocksdb                                 zshdb
dynare                                  iamy                                    mingw-w64                               roll
e2fsprogs                               ibex                                    minimal-racket                          rom-tools
easy-tag                                icecream                                minio                                   root
easyengine                              imagemagick@6                           minio-mc                                roswell
==> Renamed Formulae
gnatsd -> nats-server
==> Deleted Formulae
compose2kube          erlang@18             gtk-murrine-engine    js-test-driver        node@6                [email protected]            tomcat@6              varnish@4             xmoto
dsd                   gtk-engines           [email protected]             minisat               rlvm                  [email protected]             typesafe-activator    whirr

==> Downloading https://homebrew.bintray.com/bottles/etcd-3.3.13.mojave.bottle.tar.gz
==> Downloading from https://akamai.bintray.com/17/1767fd0f8122f4d4b29b19fdec99bbf6c434afa900a616149b07540d8991cd9d?__gda__=exp=1562122526~hmac=31e01a89b759090f188af8482af90ed9fa14b2940bb0651b1ac8b7
######################################################################## 100.0%
==> Pouring etcd-3.3.13.mojave.bottle.tar.gz
==> Caveats
To have launchd start etcd now and restart at login:
  brew services start etcd
Or, if you don't want/need a background service you can just run:
  etcd
==> Summary
🍺  /usr/local/Cellar/etcd/3.3.13: 9 files, 49MB
==> `brew cleanup` has not been run in 30 days, running now...
Removing: /Users/jack/Library/Logs/Homebrew/automake... (64B)

如果需要開機啓動etcd,那麼可以執行命令brew services start etcd。

如果不需要開機啓動,只是簡單使用,那麼直接執行命令etcd:

$ etcd

執行結果如下所示:

2019-07-03 17:00:50.443272 I | etcdmain: etcd Version: 3.3.13
2019-07-03 17:00:50.443414 I | etcdmain: Git SHA: GitNotFound
2019-07-03 17:00:50.443422 I | etcdmain: Go Version: go1.12.4
2019-07-03 17:00:50.443437 I | etcdmain: Go OS/Arch: darwin/amd64
2019-07-03 17:00:50.443447 I | etcdmain: setting maximum number of CPUs to 4, total number of available CPUs is 4
2019-07-03 17:00:50.443460 N | etcdmain: failed to detect default host (default host not supported on darwin_amd64)
2019-07-03 17:00:50.443474 W | etcdmain: no data-dir provided, using default data-dir ./default.etcd
2019-07-03 17:00:50.445897 I | embed: listening for peers on http://localhost:2380
2019-07-03 17:00:50.446235 I | embed: listening for client requests on localhost:2379
2019-07-03 17:00:50.455582 I | etcdserver: name = default
2019-07-03 17:00:50.455622 I | etcdserver: data dir = default.etcd
2019-07-03 17:00:50.455640 I | etcdserver: member dir = default.etcd/member
2019-07-03 17:00:50.455664 I | etcdserver: heartbeat = 100ms
2019-07-03 17:00:50.455676 I | etcdserver: election = 1000ms
2019-07-03 17:00:50.455691 I | etcdserver: snapshot count = 100000
2019-07-03 17:00:50.455725 I | etcdserver: advertise client URLs = http://localhost:2379
2019-07-03 17:00:50.455793 I | etcdserver: initial advertise peer URLs = http://localhost:2380
2019-07-03 17:00:50.455853 I | etcdserver: initial cluster = default=http://localhost:2380
2019-07-03 17:00:50.549110 I | etcdserver: starting member 8e9e05c52164694d in cluster cdf818194e3a8c32
2019-07-03 17:00:50.549334 I | raft: 8e9e05c52164694d became follower at term 0
2019-07-03 17:00:50.549380 I | raft: newRaft 8e9e05c52164694d [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]
2019-07-03 17:00:50.549393 I | raft: 8e9e05c52164694d became follower at term 1
2019-07-03 17:00:50.583394 W | auth: simple token is not cryptographically signed
2019-07-03 17:00:50.599580 I | etcdserver: starting server... [version: 3.3.13, cluster version: to_be_decided]
2019-07-03 17:00:50.599843 I | etcdserver: 8e9e05c52164694d as single-node; fast-forwarding 9 ticks (election ticks 10)
2019-07-03 17:00:50.599884 E | etcdserver: cannot monitor file descriptor usage (cannot get FDUsage on darwin)
2019-07-03 17:00:50.601119 I | etcdserver/membership: added member 8e9e05c52164694d [http://localhost:2380] to cluster cdf818194e3a8c32
2019-07-03 17:00:51.354949 I | raft: 8e9e05c52164694d is starting a new election at term 1
2019-07-03 17:00:51.356658 I | raft: 8e9e05c52164694d became candidate at term 2
2019-07-03 17:00:51.356929 I | raft: 8e9e05c52164694d received MsgVoteResp from 8e9e05c52164694d at term 2
2019-07-03 17:00:51.356957 I | raft: 8e9e05c52164694d became leader at term 2
2019-07-03 17:00:51.356967 I | raft: raft.node: 8e9e05c52164694d elected leader 8e9e05c52164694d at term 2
2019-07-03 17:00:51.357503 I | etcdserver: setting up the initial cluster version to 3.3
2019-07-03 17:00:51.362463 N | etcdserver/membership: set the initial cluster version to 3.3
2019-07-03 17:00:51.362787 I | etcdserver: published {Name:default ClientURLs:[http://localhost:2379]} to cluster cdf818194e3a8c32
2019-07-03 17:00:51.362879 I | embed: ready to serve client requests
2019-07-03 17:00:51.362938 I | etcdserver/api: enabled capabilities for version 3.3
2019-07-03 17:00:51.367846 N | embed: serving insecure client requests on 127.0.0.1:2379, this is strongly discouraged!

從執行結果中可以看出:

  • etcdserver: name = default, name表示節點名稱,默認爲default。
  • etcdserver: data dir = default.etcd,data-dir保存日誌和快照的目錄,默認爲當前工作目錄“./default.etcd/”。
  • etcdserver: initial advertise peer URLs = http://localhost:2380,通過http://localhost:2380,和集羣中其他節點通信。
  • etcdserver: advertise client URLs = http://localhost:2379,通過http://localhost:2379,對外提供HTTP API服務,供客戶端交互。如果配置webui,就使用這個地址。
  • etcdserver: heartbeat = 100ms leader發送心跳到followers的間隔時間。
  • etcdserver: election = 1000ms 重新投票的超時時間,如果follow在該時間間隔沒有收到心跳包,會觸發重新投票,默認爲1000ms
  • 集羣和每個節點都會生成一個 uuid。
  • 啓動的時候,會運行 raft協議,選舉出 leader。

三、安裝etcd webui

在安裝etcd webui之前,請確保已安裝node工具。使用brew search node命令,可以查看候選安裝包;使用brew install node命令,即可安裝node工具。

使用git命令下載etcd webui代碼,並修改配置文件:

$ git clone https://github.com/henszey/etcd-browser.git
$ cd etcd-browser/
$ vim server.js  

編輯server.js,修改內容如下:

var etcdHost = process.env.ETCD_HOST || '127.0.0.1'; // || '172.17.42.1';
var etcdPort = process.env.ETCD_PORT || 2379; // 4001
var serverPort = process.env.SERVER_PORT || 8000;

將etcd host修改爲本機,將etcd port修改爲2379(對於舊版etcd,修改爲4001)。

在安裝etcd webui之前,務必先啓動etcd。

啓動etcd webui,執行命令:

node server.js

執行結果如下所示:

proxy /api requests to etcd on 127.0.0.1:2379
etc-browser listening on port 8000

在瀏覽器中,直接訪問:http://127.0.0.1:8000/,響應頁面如下:

至此,mac下安裝etcd成功,配置etcd可視化頁面etcd webui成功。

參考資料:

https://www.infoq.cn/article/etcd-interpretation-application-scenario-implement-principle

https://blog.csdn.net/arctan90/article/details/77835944

https://www.cnblogs.com/laoqing/p/8967549.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章