diff options
author | Konrad Bańka <k.banka@samsung.com> | 2021-01-25 07:44:49 +0100 |
---|---|---|
committer | Konrad Bańka <k.banka@samsung.com> | 2021-01-25 10:37:24 +0100 |
commit | e1d62ce450daaba624e5ff73fec4dbafd1af8b89 (patch) | |
tree | 58feb0b49e2b05e82716b3f21e54a2358a1aee52 | |
parent | 8ab4fba7165b3b9418730cb1cdd424346925a93f (diff) |
[COMMON][ETCD] Skip startup self-discovery for etcd nodes
Current startup script of etcd checks whether all assumed other nodes
are already running, before proceeding. This check, however, also
includes checking localhost, but due to using headless service
statefulset pod DNS discovery, it doesnt succeed immediately.
In some deployments k8s DNS server may be laggy, thus failing startup
script to finish before liveness check. This patch fixes such failures
of 1 pod etcd clusters, and improves startup time for any size ones.
Signed-off-by: Konrad Bańka <k.banka@samsung.com>
Issue-ID: OOM-2668
Change-Id: I2f9263a0f4964b0a495631775d0cbbceef25e85b
-rw-r--r-- | kubernetes/common/etcd/templates/statefulset.yaml | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kubernetes/common/etcd/templates/statefulset.yaml b/kubernetes/common/etcd/templates/statefulset.yaml index f5592bd252..e39b8c4ca2 100644 --- a/kubernetes/common/etcd/templates/statefulset.yaml +++ b/kubernetes/common/etcd/templates/statefulset.yaml @@ -133,6 +133,10 @@ spec: # we should wait for other pods to be up before trying to join # otherwise we got "no such host" errors when trying to resolve other members for i in $(seq 0 $((${INITIAL_CLUSTER_SIZE} - 1))); do + if [ "${SET_NAME}-${i}" == "${HOSTNAME}" ]; then + echo "Skipping self-checking" + continue + fi while true; do echo "Waiting for ${SET_NAME}-${i}.${SERVICE_NAME} to come up" ping -W 1 -c 1 ${SET_NAME}-${i}.${SERVICE_NAME} > /dev/null && break |