Начну с установки базы не в под, а на мастера.
для быстрой установки можно воспользоваться скриптом
script.sh#!/bin/bash
ETCD_VERSION=${ETCD_VERSION:-v3.4.3}
curl -L https://github.com/coreos/etcd/releases/download/$ETCD_VERSION/etcd-$ETCD_VERSION-linux-amd64.tar.gz -o etcd-$ETCD_VERSION-linux-amd64.tar.gz
tar xzvf etcd-$ETCD_VERSION-linux-amd64.tar.gz
rm etcd-$ETCD_VERSION-linux-amd64.tar.gz
cd etcd-$ETCD_VERSION-linux-amd64
sudo cp etcd /usr/local/bin/
sudo cp etcdctl /usr/local/bin/
rm -rf etcd-$ETCD_VERSION-linux-amd64
etcdctl version
После установки сразу беру бэкап того что было пока не залез своими руками.
Тут важно понимать что для снятия бэкапа нужен рабочий демон etcd, но во время его накатки он наоборот должен лежать.
Cнятие снапшота etcdctl --cacert="/etc/kubernetes/pki/etcd/ca.pem" --cert="/etc/kubernetes/pki/etcd/192.168.253.181.pem" --key="/etc/kubernetes/pki/etcd/192.168.253.181-key.pem" snapshot save test.snap Накатка снапшота etcdctl --cacert="/etc/kubernetes/pki/etcd/ca.pem" --cert="/etc/kubernetes/pki/etcd/192.168.253.181.pem" --key="/etc/kubernetes/pki/etcd/192.168.253.181-key.pem" snapshot restore test.snap --data-dir /var/lib/etcd
Теперь нужно навыпускать сертификаты
Я тут опишу наиболее простой способ выпуска — с помощью cfssl
сначала ставлю необходимый софт из репы
apt-get install gcc make git -y
Теперь ставлю go
wget https://golang.org/dl/go1.15.6.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.15.6.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version
Ставлю cfssl
git clone https://github.com/cloudflare/cfssl/
cd cfssl
make
cp -p bin/cfssl /usr/bin/
cp -p bin/cfssljson /usr/bin/
Теперь можно готовить сертификаты
cd ~
git clone https://github.com/etcd-io/etcd
cd etcd/hack/tls-setup
тут нужно привести к правильному виду два файла
config/req-csr.json {
"CN": "etcd",
"hosts": [
"localhost",
"127.0.0.1",
"192.168.253.181",
"192.168.253.184",
"192.168.253.186"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"O": "autogenerated",
"OU": "etcd cluster",
"L": "the internet"
}
]
}
.PHONY: cfssl ca req clean CFSSL = @env PATH=$(GOPATH)/bin:$(PATH) cfssl JSON = env PATH=$(GOPATH)/bin:$(PATH) cfssljson all: ca req cfssl: HTTPS_PROXY=127.0.0.1:12639 go get -u -tags nopkcs11 github.com/cloudflare/cfssl/cmd/cfssl HTTPS_PROXY=127.0.0.1:12639 go get -u github.com/cloudflare/cfssl/cmd/cfssljson HTTPS_PROXY=127.0.0.1:12639 go get -u github.com/mattn/goreman ca: mkdir -p certs $(CFSSL) gencert -initca config/ca-csr.json | $(JSON) -bare certs/ca req: $(CFSSL) gencert \ -ca certs/ca.pem \ -ca-key certs/ca-key.pem \ -config config/ca-config.json \ config/req-csr.json | $(JSON) -bare certs/192.168.253.181 $(CFSSL) gencert \ -ca certs/ca.pem \ -ca-key certs/ca-key.pem \ -config config/ca-config.json \ config/req-csr.json | $(JSON) -bare certs/192.168.253.184 $(CFSSL) gencert \ -ca certs/ca.pem \ -ca-key certs/ca-key.pem \ -config config/ca-config.json \ config/req-csr.json | $(JSON) -bare certs/192.168.253.186 $(CFSSL) gencert \ -ca certs/ca.pem \ -ca-key certs/ca-key.pem \ -config config/ca-config.json \ config/req-csr.json | $(JSON) -bare certs/peer-192.168.253.181 $(CFSSL) gencert \ -ca certs/ca.pem \ -ca-key certs/ca-key.pem \ -config config/ca-config.json \ config/req-csr.json | $(JSON) -bare certs/peer-192.168.253.184 $(CFSSL) gencert \ -ca certs/ca.pem \ -ca-key certs/ca-key.pem \ -config config/ca-config.json \ config/req-csr.json | $(JSON) -bare certs/peer-192.168.253.186 clean: rm -rf certs
Эта конфигурация для трех нод, для кажой по две пары сертификат — ключ и корень. Одна для клиентов снаружи, другая для общения внутри кластера.
После получения сертификатов подменяю их на существующей ноде (если хочу чтобы kube-api работал подменяю и там)
примерная команда запуска выклядит так :
etcd --name=kuber1 --advertise-client-urls=https://192.168.253.181:2379 --initial-advertise-peer-urls=https://192.168.253.181:2380 --initial-cluster kuber1=https://192.168.253.181:2380,kuber4=https://192.168.253.184:2380,kuber6=https://192.168.253.186:2380 --listen-client-urls=https://127.0.0.1:2379,https://192.168.253.181:2379 --listen-peer-urls=https://192.168.253.181:2380 --listen-metrics-urls=http://127.0.0.1:2381 --client-cert-auth=true --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.pem --cert-file=/etc/kubernetes/pki/etcd/192.168.253.181.pem --key-file=/etc/kubernetes/pki/etcd/192.168.253.181-key.pem --peer-client-cert-auth=true --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.pem --peer-cert-file=/etc/kubernetes/pki/etcd/peer-192.168.253.181.pem --peer-key-file=/etc/kubernetes/pki/etcd/peer-192.168.253.181-key.pem --initial-cluster-token etcd-cluster-0 --initial-cluster-state existing --data-dir=/var/lib/etcd
теперь начинается подключение нод. Доставляю все необходимые сертификаты на соответсвтующие ноды, ставлю etcd и готовлю команды
Настройка первой ноды:
сначала проверяю member list
etcdctl --cacert="/etc/kubernetes/pki/etcd/ca.pem" --cert="/etc/kubernetes/pki/etcd/192.168.253.181.pem" --key="/etc/kubernetes/pki/etcd/192.168.253.181-key.pem" member list
нужно избавиться от localhost в определении ноды кластера
etcdctl --cacert="/etc/kubernetes/pki/etcd/ca.pem" --cert="/etc/kubernetes/pki/etcd/192.168.253.181.pem" --key="/etc/kubernetes/pki/etcd/192.168.253.181-key.pem" member update 8e9e05c52164694d --peer-urls="https://192.168.253.181:2380"
Добавляю вторую ноду:
etcdctl --cacert="/etc/kubernetes/pki/etcd/ca.pem" --cert="/etc/kubernetes/pki/etcd/192.168.253.181.pem" --key="/etc/kubernetes/pki/etcd/192.168.253.181-key.pem" member add kuber4 --peer-urls="https://192.168.253.184:2380"
Проверяю что добавилась и запускаю демона на ноде, делаю пока временной командой без ещё не добавленной третьей ноды кластера
etcd --name=kuber4 --advertise-client-urls=https://192.168.253.184:2379 --initial-advertise-peer-urls=https://192.168.253.184:2380 --initial-cluster kuber1=https://192.168.253.181:2380,kuber4=https://192.168.253.184:2380 --listen-client-urls=https://127.0.0.1:2379,https://192.168.253.184:2379 --listen-peer-urls=https://192.168.253.184:2380 --listen-metrics-urls=http://127.0.0.1:2381 --client-cert-auth=true --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.pem --cert-file=/etc/kubernetes/pki/etcd/192.168.253.184.pem --key-file=/etc/kubernetes/pki/etcd/192.168.253.184-key.pem --peer-client-cert-auth=true --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.pem --peer-cert-file=/etc/kubernetes/pki/etcd/peer-192.168.253.184.pem --peer-key-file=/etc/kubernetes/pki/etcd/peer-192.168.253.184-key.pem --initial-cluster-token etcd-cluster-0 --initial-cluster-state existing --data-dir=/var/lib/etcd
Убеждаюсь что она добавилась:
etcdctl --cacert="/etc/kubernetes/pki/etcd/ca.pem" --cert="/etc/kubernetes/pki/etcd/192.168.253.181.pem" --key="/etc/kubernetes/pki/etcd/192.168.253.181-key.pem" member list
Добавляю третью ноду :
etcdctl --cacert="/etc/kubernetes/pki/etcd/ca.pem" --cert="/etc/kubernetes/pki/etcd/192.168.253.181.pem" --key="/etc/kubernetes/pki/etcd/192.168.253.181-key.pem" member add kuber6 --peer-urls="https://192.168.253.186:2380"
Запускаю демона на третьей ноде уже полной командой:
etcd --name=kuber6 --advertise-client-urls=https://192.168.253.186:2379 --initial-advertise-peer-urls=https://192.168.253.186:2380 --initial-cluster kuber1=https://192.168.253.181:2380,kuber4=https://192.168.253.184:2380,kuber6=https://192.168.253.186:2380 --listen-client-urls=https://127.0.0.1:2379,https://192.168.253.186:2379 --listen-peer-urls=https://192.168.253.186:2380 --listen-metrics-urls=http://127.0.0.1:2381 --client-cert-auth=true --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.pem --cert-file=/etc/kubernetes/pki/etcd/192.168.253.186.pem --key-file=/etc/kubernetes/pki/etcd/192.168.253.186-key.pem --peer-client-cert-auth=true --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.pem --peer-cert-file=/etc/kubernetes/pki/etcd/peer-192.168.253.186.pem --peer-key-file=/etc/kubernetes/pki/etcd/peer-192.168.253.186-key.pem --initial-cluster-token etcd-cluster-0 --initial-cluster-state existing --data-dir=/var/lib/etcd
Проверяю что всё добавилось:
etcdctl --cacert="/etc/kubernetes/pki/etcd/ca.pem" --cert="/etc/kubernetes/pki/etcd/192.168.253.181.pem" --key="/etc/kubernetes/pki/etcd/192.168.253.181-key.pem" member list
Теперь меняю команду запуска на второй ноде.
Кластер собран, можно трамбовать запуск в systemd.
restos montreal
References:
https://www.google.gr/url?q=https://sketchfab.com/mariarhythm70
casino california
References:
https://airplayradio.com/todjoy1682355
soaring eagle casino
References:
https://xsurl.in/rodneybryan238
Der Anbieter ist vertrauenswürdig und verfügt über eine riesige Spielauswahl. Dementsprechend können wir selbstbewusst die wirklich besten Online-Casinos für Spieler aus Österreich präsentieren. Um den Titel „bestes Online-Casino“ zu ergattern, muss ein Anbieter viele Kriterien erfüllen. Der Anbieter stellt euch einen gigantischen Willkommensbonus, einen sicheren Rahmen für das Spiel und eine beeindruckende Auswahl zur Verfügung.
Aus diesem Grund hat CasinoOnline.de bei seiner Auswahl von deutschen Casinos online mit Echtgeld Spielen auch auf diesen Punkt geachtet. Sie sind bereit, online mit Echtgeld zu spielen. Zusätzlich zum 300 € Willkommensbonus erhalten Neuspieler auch noch 100 Freispiele gratis.
References:
https://online-spielhallen.de/beste-online-casinos-deutschland-top-10-nov-2025-2/
In der Regel sind diese Boni Teil von Willkommens- oder Anmeldeangeboten. Einen Bonus ohne Einzahlung in Höhe von 10 € zu erhalten, ist ganz einfach. Selbst wenn Sie nicht gewinnen, sammeln Sie wertvolle Erfahrungen. Kleinere, realistischere Boni sind sicherer und geben Ihnen trotzdem die Chance, Geld zu gewinnen. Es mag seltsam erscheinen, dass ein Casino Bargeld verschenkt, aber es ist eine kluge langfristige Strategie.
Bei diesen speziellen Angeboten bekommst du entweder für die Anmeldung ein Bonusguthaben oder einfach so über das Stammkundenprogramm zusätzliches Guthaben oder Freispiele spendiert. Mit diesem kannst du echte Geldgewinne erzielen. Dir werden Freispiele oder Bonusguthaben gutgeschrieben.
References:
https://online-spielhallen.de/hitnspin-casino-osterreich-jetzt-spielen-800-bonus/
oneida casino
References:
https://sketchfab.com/karatenoodle2
binions casino
References:
https://saveyoursite.date/story.php?title=treasury-casino-and-hotel-brisbane-a-guide-to-the-ultimate-entertainment-destination
android spinner example
References:
https://bbs.pku.edu.cn/v2/jump-to.php?url=https://blackcoin.co/everything-you-need-to-know-about-online-pokies-in-australia/
florida casinos
References:
https://pad.karuka.tech/WXGgvSt-QdeFsD4lKFNuCQ/
feather falls casino
References:
https://vuf.minagricultura.gov.co/Lists/Informacin%20Servicios%20Web/DispForm.aspx?ID=12124167
WVIP, alright everyone here to level up. I certainly intend on seeing if I can get to VIP status. You can start here by clicking: wvip
Stargame, yeah? Seems like a solid option. Pretty standard fare, but hey, sometimes that’s all you need. If you ain’t got anything else going on, stargame might just scratch that itch.
F12betBR, curto demais essa plataforma! Sempre tem umas promoções boas e as odds são bem interessantes. Já fiz uma fezinha! Confere aqui: f12betbr
It’s great seeing platforms like 365jl casino login blend tradition with modern tech! Responsible gaming is key, and verifying your identity (KYC) adds a layer of security – a smart move for everyone involved. Enjoy, but always play within your limits! 😊
Alright, just had a look at jl7bet.net. Good looking site and a decent range of games. Anyone else tried it? Pretty standard betting site, but it might have what you’re looking for. Take a look for yourself: jl7bet
368bet, not bad! Had a fun time exploring their casino games, and the sports betting section is pretty extensive. Withdrawal process was surprisingly fast. I’d say give it a go, you might just find your new favorite spot! All the best on 368bet
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me? https://www.binance.info/register?ref=IHJUI7TF