许吉友 - 运维

etcd 配置详解

官方文档:https://etcd.io/docs/v3.4.0/op-guide/configuration/

可以通过配置文件,各种命令行标志和环境变量来配置etcd。

配置文件是一种YAML文件,其名称和值由一个或多个下面描述的命令行标志组成。为了使用此文件,请将文件路径指定为 --config-fileETCD_CONFIG_FILE 环境变量的值。 示例配置文件可以被用作起始点根据需要创建一个新的配置文件。

在命令行上设置的选项优先于环境中的选项。如果提供了配置文件,则其他命令行标志和环境变量将被忽略。例如,etcd --config-file etcd.conf.yml.sample --data-dir /tmp将忽略该--data-dir标志。

标志的环境变量的格式 --my-flagETCD_MY_FLAG 。它适用于所有标志。

官方使用的ETCD端口是 2379 和 2380,2379用于接收客户端请求,2380 用于 etcd 节点之间的对等通信。可以将etcd端口设置为接受TLS流量,非TLS流量,或同时接受TLS和非TLS流量。

要在Linux启动时使用自定义设置自动启动etcd,强烈建议使用 systemd单元。

配置

接下来介绍 etcd 所有的配置,共 65 项配置。etcd 的配置分成了几类,下面分类学习

Member flags

–name

–data-dir

–wal-dir

–snapshot-count

–heartbeat-interval

–election-timeout

–listen-peer-urls

–listen-client-urls

–max-snapshots

–max-wals

–cors

–quota-backend-bytes

–backend-batch-limit

–backend-bbolt-freelist-type

–max-txn-ops

–max-request-bytes

–grpc-keepalive-min-time

–grpc-keepalive-interval

–grpc-keepalive-timeout

Clustering flags

--initial-advertise-peer-urls, --initial-cluster, --initial-cluster-state, 和 --initial-cluster-token 会在启动新成员时使用,在重启一个成员时不会使用。

--discovery 为前缀的配置用于动态服务发现,详见: etcd动态发现.md

–initial-advertise-peer-urls

–initial-cluster

–initial-cluster-state

–initial-cluster-token

–advertise-client-urls

–discovery

–discovery-srv

–discovery-srv-name

–discovery-fallback

–discovery-proxy

–strict-reconfig-check

–auto-compaction-mode

–enable-v2

Proxy flags

“proxy” 仅支持 v2 版本的 API. 这里不学了。

Security flags

–ca-file

–cert-file

–key-file

–client-cert-auth

–client-cert-allowed-hostname

–trusted-ca-file

–auto-tls

–peer-ca-file

–peer-cert-file

–peer-key-file

–peer-client-cert-auth

–peer-crl-file

–peer-trusted-ca-file

–peer-auto-tls

–peer-cert-allowed-cn

–peer-cert-allowed-hostname

–cipher-suites

Logging flags

–logger

Available from v3.4. WARNING: --logger=capnslog to be deprecated in v3.5.

–log-outputs

–log-level

Available from v3.4.

–debug

WARNING: to be deprecated in v3.5.

–log-package-levels

WARNING: to be deprecated in v3.5.

Unsafe flags

使用不安全标志时请小心,因为它会破坏共识协议提供的保证。例如,如果群集中的其他成员仍然存在,可能会感到恐慌。使用这些标志时,请遵循说明。

–force-new-cluster

Miscellaneous flags

杂项

–version

–config-file

Profiling flags

–enable-pprof

–metrics

–listen-metrics-urls

Auth flags

–auth-token

–bcrypt-cost

Experimental flags

实验性的,不了解了。

####