ETCD 3.4.3 не запускается с файлом systemd - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь запустить кластер ETCD 3.4.3 с одним узлом. Раньше я запускал кластер ETCD с тем же файлом конфигурации, но сейчас конфигурация не работает ни для одной версии ETCD. Сервер ETCD - это виртуальная машина (6.0.14r133895), созданная с использованием Vargrant (2.2.6)

. Я использую следующий системный файл для ETCD

[Unit]
Description=Etcd Server
Documentation=https://github.com/coreos/etcd
After=network.target

[Service]
User=etcd
Type=notify
EnvironmentFile=/etc/default/etcd.conf
ExecStart=/usr/local/bin/etcd

Restart=always
RestartSec=10s
LimitNOFILE=40000
TimeoutStartSec=0

[Install]
WantedBy=multi-user.target

Файл среды для конфигурации ETCD:как показано ниже

$ cat /etc/default/etcd.conf
ETCD_NAME=k8s-server-1
ETCD_INITIAL_ADVERTISE_PEER_URLS=https://k8s-server-1:2380
ETCD_LISTEN_PEER_URLS=https://0.0.0.0:2380
ETCD_LISTEN_CLIENT_URLS=https://0.0.0.0:2379
ETCD_ADVERTISE_CLIENT_URLS=https://k8s-server-1:2379,https://127.0.0.1:2379
ETCD_DISCOVERY=https://discovery.etcd.io/78dcc2d35f9a2c1d60f3d457d5a36bfe
ETCD_DISCOVERY_FALLBACK='exit'
ETCD_DATA_DIR=/var/lib/etcd/data
ETCD_WAL_DIR=/var/lib/etcd/wal
ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster
ETCD_CLIENT_CERT_AUTH=true
ETCD_TRUSTED_CA_FILE=/etc/tls/k8s/ca/ca.pem
ETCD_CERT_FILE=/etc/tls/k8s/etcd/k8s-server-1-client.pem
ETCD_KEY_FILE=/etc/tls/k8s/etcd/k8s-server-1-client-key.pem
ETCD_PEER_CLIENT_CERT_AUTH=true
ETCD_PEER_TRUSTED_CA_FILE=/etc/tls/k8s/ca/ca.pem
ETCD_PEER_CERT_FILE=/etc/tls/k8s/etcd/k8s-server-1-peer.pem
ETCD_PEER_KEY_FILE=/etc/tls/k8s/etcd/k8s-server-1-peer-key.pem
ETCD_HEARTBEAT_INTERVAL=6000
ETCD_ELECTION_TIMEOUT=30000
ETCD_ENABLE_V2=false
ETCD_LOG_LEVEL=debug
GOMAXPROCS=2

При использовании вышеуказанного конфига ETCD не запускается со следующей ошибкой

Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_ADVERTISE_CLIENT_URLS=https://k8s-server-1:2379,https://127.0.0.1:2379
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_CERT_FILE=/etc/tls/k8s/etcd/k8s-server-1-client.pem
Nov 04 05:41:28 k8s-server-1 etcd[15760]: [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_CLIENT_CERT_AUTH=true
Nov 04 05:41:28 k8s-server-1 etcd[15760]: [WARNING] Deprecated '--logger=capnslog' flag is set; use '--logger=zap' flag instead
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_DATA_DIR=/var/lib/etcd/data
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_DISCOVERY=https://discovery.etcd.io/78dcc2d35f9a2c1d60f3d457d5a36bfe
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_DISCOVERY_FALLBACK=exit
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_ELECTION_TIMEOUT=30000
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_ENABLE_V2=false
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_HEARTBEAT_INTERVAL=6000
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_INITIAL_ADVERTISE_PEER_URLS=https://k8s-server-1:2380
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_INITIAL_CLUSTER_TOKEN=etcd-cluster
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_KEY_FILE=/etc/tls/k8s/etcd/k8s-server-1-client-key.pem
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_LISTEN_CLIENT_URLS=https://0.0.0.0:2379
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_LISTEN_PEER_URLS=https://0.0.0.0:2380
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_LOG_LEVEL=debug
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_NAME=k8s-server-1
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_PEER_CERT_FILE=/etc/tls/k8s/etcd/k8s-server-1-peer.pem
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_PEER_CLIENT_CERT_AUTH=true
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_PEER_KEY_FILE=/etc/tls/k8s/etcd/k8s-server-1-peer-key.pem
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_PEER_TRUSTED_CA_FILE=/etc/tls/k8s/ca/ca.pem
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_TRUSTED_CA_FILE=/etc/tls/k8s/ca/ca.pem
Nov 04 05:41:28 k8s-server-1 etcd[15760]: recognized and used environment variable ETCD_WAL_DIR=/var/lib/etcd/wal
Nov 04 05:41:28 k8s-server-1 etcd[15760]: etcd Version: 3.4.3
Nov 04 05:41:28 k8s-server-1 etcd[15760]: Git SHA: 3cf2f69b5
Nov 04 05:41:28 k8s-server-1 etcd[15760]: Go Version: go1.12.12
Nov 04 05:41:28 k8s-server-1 etcd[15760]: Go OS/Arch: linux/amd64
Nov 04 05:41:28 k8s-server-1 etcd[15760]: setting maximum number of CPUs to 2, total number of available CPUs is 2
Nov 04 05:41:28 k8s-server-1 etcd[15760]: the server is already initialized as member before, starting as etcd member...
Nov 04 05:41:28 k8s-server-1 etcd[15760]: peerTLS: cert = /etc/tls/k8s/etcd/k8s-server-1-peer.pem, key = /etc/tls/k8s/etcd/k8s-server-1-peer-key.pem, trusted-ca = /etc/tls/k8s/ca/ca.pem, client-cert-auth = true, crl-file = 
Nov 04 05:41:28 k8s-server-1 etcd[15760]: name = k8s-server-1
Nov 04 05:41:28 k8s-server-1 etcd[15760]: data dir = /var/lib/etcd/data
Nov 04 05:41:28 k8s-server-1 etcd[15760]: member dir = /var/lib/etcd/data/member
Nov 04 05:41:28 k8s-server-1 etcd[15760]: dedicated WAL dir = /var/lib/etcd/wal
Nov 04 05:41:28 k8s-server-1 etcd[15760]: heartbeat = 6000ms
Nov 04 05:41:28 k8s-server-1 etcd[15760]: election = 30000ms
Nov 04 05:41:28 k8s-server-1 etcd[15760]: snapshot count = 100000
Nov 04 05:41:28 k8s-server-1 etcd[15760]: discovery URL= https://discovery.etcd.io/78dcc2d35f9a2c1d60f3d457d5a36bfe
Nov 04 05:41:28 k8s-server-1 etcd[15760]: advertise client URLs = https://127.0.0.1:2379,https://k8s-server-1:2379
Nov 04 05:41:28 k8s-server-1 etcd[15760]: {"level":"info","ts":1572846088.8206353,"caller":"netutil/netutil.go:112","msg":"resolved URL Host","url":"https://k8s-server-1:2380","host":"k8s-server-1:2380","resolved-addr":"127.0.1.1:2380"}
Nov 04 05:41:28 k8s-server-1 etcd[15760]: {"level":"info","ts":1572846088.8212357,"caller":"netutil/netutil.go:112","msg":"resolved URL Host","url":"https://k8s-server-1:2380","host":"k8s-server-1:2380","resolved-addr":"127.0.1.1:2380"}
Nov 04 05:41:33 k8s-server-1 etcd[15760]: failed to join discovery cluster (context deadline exceeded)
Nov 04 05:41:33 k8s-server-1 etcd[15760]: discovery token https://discovery.etcd.io/78dcc2d35f9a2c1d60f3d457d5a36bfe was used, but failed to bootstrap the cluster.
Nov 04 05:41:33 k8s-server-1 etcd[15760]: please generate a new discovery token and try to bootstrap again.
Nov 04 05:41:33 k8s-server-1 systemd[1]: etcd.service: Main process exited, code=exited, status=1/FAILURE
Nov 04 05:41:33 k8s-server-1 systemd[1]: etcd.service: Failed with result 'exit-code'.
Nov 04 05:41:33 k8s-server-1 systemd[1]: Failed to start Etcd Server.
-- Subject: Unit etcd.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
-- 
-- Unit etcd.service has failed.

Однако я могу запустить ETCD вручную, как показано ниже

$ sudo su etcd
etcd@k8s-server-1:~$ etcd --name $ETCD_NAME   \
    --initial-advertise-peer-urls $ETCD_INITIAL_ADVERTISE_PEER_URLS  \
    --advertise-client-urls $ETCD_ADVERTISE_CLIENT_URLS  \
    --client-cert-auth \
    --trusted-ca-file $ETCD_TRUSTED_CA_FILE  \
    --cert-file $ETCD_CERT_FILE  \
    --key-file $ETCD_KEY_FILE  \
    --peer-client-cert-auth  \
    --peer-trusted-ca-file $ETCD_PEER_TRUSTED_CA_FILE  \
    --peer-cert-file $ETCD_PEER_CERT_FILE  \
    --peer-key-file $ETCD_PEER_KEY_FILE  \
    --listen-peer-urls $ETCD_LISTEN_PEER_URLS  \
    --listen-client-urls $ETCD_LISTEN_CLIENT_URLS \
    --initial-cluster-token $ETCD_INITIAL_CLUSTER_TOKEN 

Как только я запускаю ETCD вручную, файл системного модуля продолжает работать с существующей конфигурацией. Может кто-нибудь, пожалуйста, скажите мне, почему ETCD не запускается с файлом systemd в начале.

1 Ответ

1 голос
/ 05 ноября 2019

Решена проблема удаления службы обнаружения для создания кластера. Вместо этого создан кластер с определенным IP-адресом узла. Также кажется, что механизм обнаружения ведет себя ненормально, если скорость интернета недостаточно высока.

...