etcd — бұл конфигурациялық деректерді сақтау және кластерлерді үйлестіру үшін әзірленген сенімді таратылған key-value деректер қоймасы. Ол әртүрлі жүйелерде, мысалы, Kubernetes жүйесінде жоғары қолжетімділікті (HA) және ақаусыз жұмыс істеуді қамтамасыз ету үшін қолданылады.
Осы мақалада біз etcd-нің негізгі ұғымдары, принциптері және HA қамтамасыз ету үшін etcd баптауының қадамдарын қарастырамыз.
etcd HA негізгі ұғымдары
Деректерді репликациялау
etcd деректерді репликациялау үшін Raft консенсус алгоритмін пайдаланады. Raft алгоритмі барлық кластерлік түйіндер арасында деректердің келісілген күйін қамтамасыз етеді. Деректер кластердің барлық түйіндеріне репликацияланады, бұл бір түйіннің істен шығуы кезінде деректердің жоғалуына жол бермейді. Кластердің бөліну (split-brain) қаупін азайту және шешімдер қабылдау үшін кворумды қамтамасыз ету үшін тақ санды түйіндерді пайдалану ұсынылады (мысалы, 3, 5).
Кворум
Кворум — бұл шешімдер қабылдау және операцияларды растау үшін қолжетімді болуы керек түйіндердің ең аз саны. NN түйіні бар кластер үшін кворум N2+1\frac{N}{2} + 1 түйінін құрайды. Мысалы, 3 түйіні бар кластер үшін кворум 2 түйін болады, бұл кластер бір түйіннің істен шығуы кезінде жұмыс істейтінін білдіреді. Кворум қайшылықтардың алдын алу және деректердің келісімділігін қамтамасыз ету үшін қажет.
Failover және қалпына келтіру
Бір немесе бірнеше түйіндердің істен шығуы кезінде кластер қалған түйіндерді пайдалана отырып, кворумды қамтамасыз ету және жұмысын жалғастыру үшін автоматты түрде қалпына келе алады. Жаңа түйін кластерге деректердің толық репликациясын қалпына келтіру және тұрақтылықты арттыру үшін қосыла алады. etcd кластерді басқаруды жеңілдететін түйіндерді динамикалық қосу және жоюды қолдайды.
etcd HA баптауы
Кластер құру
etcd кластерін орналастырған кезде әрбір түйінді бірегей идентификаторлармен баптау және деректердің дұрыс репликациясын қамтамасыз ету үшін кластердегі барлық түйіндердің тізімін көрсету маңызды.
etcd түйінінің конфигурациясының мысалы:
etcd --name etcd-node-1 \
--initial-advertise-peer-urls http://192.168.0.1:2380 \
--listen-peer-urls http://192.168.0.1:2380 \
--listen-client-urls http://192.168.0.1:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://192.168.0.1:2379 \
--initial-cluster-token etcd-cluster-1 \
--initial-cluster etcd-node-1=http://192.168.0.1:2380,etcd-node-2=http://192.168.0.2:2380,etcd-node-3=http://192.168.0.3:2380 \
--initial-cluster-state new
3 түйінді кластер үшін атаулары мен мекенжайларын өзгерту арқылы басқа түйіндерде ұқсас командаларды орындау қажет:
etcd --name etcd-node-2 \
--initial-advertise-peer-urls http://192.168.0.2:2380 \
--listen-peer-urls http://192.168.0.2:2380 \
--listen-client-urls http://192.168.0.2:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://192.168.0.2:2379 \
--initial-cluster-token etcd-cluster-1 \
--initial-cluster etcd-node-1=http://192.168.0.1:2380,etcd-node-2=http://192.168.0.2:2380,etcd-node-3=http://192.168.0.3:2380 \
--initial-cluster-state new
etcd --name etcd-node-3 \
--initial-advertise-peer-urls http://192.168.0.3:2380 \
--listen-peer-urls http://192.168.0.3:2380 \
--listen-client-urls http://192.168.0.3:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://192.168.0.3:2379 \
--initial-cluster-token etcd-cluster-1 \
--initial-cluster etcd-node-1=http://192.168.0.1:2380,etcd-node-2=http://192.168.0.2:2380,etcd-node-3=http://192.168.0.3:2380 \
--initial-cluster-state new
Мониторинг және ескерту жүйесі
Prometheus сияқты мониторинг құралдарын пайдалану түйіндердің жағдайын, жауап беру уақытын және басқа көрсеткіштерді бақылауға мүмкіндік береді. Ескерту жүйесін баптау кластердің жұмысындағы ақаулар немесе ауытқулар туралы хабарламалар алуды қамтамасыз етеді.
Prometheus көмегімен etcd мониторингінің конфигурациясының мысалы:
-
etcd Metrics Exporter орнату:
bashetcd --listen-metrics-urls=http://192.168.0.1:2381
-
Prometheus конфигурациясы:
yamlscrape_configs: - job_name: 'etcd' static_configs: - targets: ['192.168.0.1:2381', '192.168.0.2:2381', '192.168.0.3:2381']
Резервтік көшіру және қалпына келтіру
Деректерді үнемі резервтік көшіру күрделі ақаулар жағдайында кластерді қалпына келтіруге мүмкіндік береді. Резервтік көшірудің автоматты сценарийлерін пайдалану ұсынылады.
Резервтік көшіру командасының мысалы:
etcdctl snapshot save /path/to/backup.db
Резервтік көшірмеден қалпына келтіру үшін:
etcdctl snapshot restore /path/to/backup.db \
--name etcd-node-1 \
--initial-cluster etcd-node-1=http://192.168.0.1:2380,etcd-node-2=http://192.168.0.2:2380,etcd-node-3=http://192.168.0.3:2380 \
--initial-advertise-peer-urls http://192.168.0.1:2380
Үздік тәжірибелер
-
Тақ санды түйіндерді пайдалану:
- Кворумды қамтамасыз ету және split-brain жағдайларын болдырмау үшін тақ санды түйіндерді пайдалану ұсынылады (мысалы, 3, 5).
-
Географиялық тұрғыдан таралған түйіндерді бөлу:
- Ақаусыздықты арттыру үшін түйіндерді әртүрлі деректер орталықтарында немесе географиялық аймақтарда орналастырыңыз.
-
Ресурстарды жеткілікті түрде резервтеу:
- Түйіндер шыңдық жүктемелерді өңдеу және жоғары өнімділікті қамтамасыз ету үшін жеткілікті ресурстарға (CPU, жад, дискілік кеңістік) ие екендігіне көз жеткізіңіз.
-
Қалпына келтіруді үнемі тексеру:
- Нақты ақаулар пайда болғанға дейін олардың жұмысқа қабілеттілігін тексеру және ықтимал мәселелерді анықтау үшін резервтік көшіру және қалпына келтіру процестерін үнемі тексеріп отырыңыз.
-
Мониторинг және ескерту жүйесі:
- Кластердің жағдайын бақылау және ықтимал мәселелер туралы хабарламалар алу үшін мониторинг және ескерту жүйесін баптаңыз. Бұл ақауларға жылдам әрекет етуге және тоқтап қалу уақытын азайтуға мүмкіндік береді.
-
Жаңарту және патч орнату:
- Соңғы қауіпсіздік түзетулері мен өнімділік жақсартуларын алу үшін etcd жүйесін үнемі жаңартып және патчтарды орнатып отырыңыз.
-
Қауіпсіздік үшін TLS/SSL пайдалану:
- Түйіндер мен клиенттер арасындағы трафикті шифрлау үшін TLS/SSL баптаңыз. Бұл деректерді ұстап қалудан және рұқсатсыз кіруден қорғауды қамтамасыз етеді.
etcd үшін TLS баптау мысалы:
-
Сертификаттар жасау:
bashopenssl genrsa -out ca-key.pem 2048 openssl req -new -x509 -key ca-key.pem -out ca.pem -days 3650 -subj "/CN=etcd-ca" openssl genrsa -out server-key.pem 2048 openssl req -new -key server-key.pem -out server.csr -subj "/CN=etcd-server" openssl x509 -req -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server.pem -days 3650
-
TLS пайдалана отырып etcd баптау:
bashetcd --name etcd-node-1 \ --initial-advertise-peer-urls https://192.168.0.1:2380 \ --listen-peer-urls https://192.168.0.1:2380 \ --listen-client-urls https://192.168.0.1:2379,https://127.0.0.1:2379 \ --advertise-client-urls https://192.168.0.1:2379 \ --initial-cluster-token etcd-cluster-1 \ --initial-cluster etcd-node-1=https://192.168.0.1:2380,etcd-node-2=https://192.168.0.2:2380,etcd-node-3=https://192.168.0.3:2380 \ --initial-cluster-state new \ --cert-file=/path/to/server.pem \ --key-file=/path/to/server-key.pem \ --trusted-ca-file=/path/to/ca.pem \ --peer-cert-file=/path/to/server.pem \ --peer-key-file=/path/to/server-key.pem \ --peer-trusted-ca-file=/path/to/ca.pem
Қорытынды
etcd HA таралған жүйелерде сенімді және ақаусыз инфрақұрылымды қамтамасыз ету үшін негізгі компонент болып табылады. Дұрыс баптау, мониторинг және деректердің үнемі резервтік көшірмелерін жасау ақаулардың тәуекелдерін азайтады және маңызды деректер мен қызметтердің жоғары қолжетімділігін қамтамасыз етеді.
Үздік тәжірибелерді ұстана отырып, сіз жүктемелерге төтеп беруге және жүйелеріңіздің үздіксіз жұмысын қамтамасыз етуге қабілетті тұрақты және қауіпсіз инфрақұрылымды жасай аласыз.
Реклама Google |
![]() |
Назар аударыңыз! Бұл мақала ресми құжат емес.Ақпаратты сақтықпен және сынақ ортасында пайдалану керек.
Заманауи сақтық көшірме жасау, репликациялау, деректерді синхрондау және төлемдік бағдарламадан қорғау жүйелерін құру туралы сұрақтарыңыз болса, қазіргі заманғы деректердің сақтық көшірмесін жасау және қалпына келтіру технологиялары бойынша кеңес алу үшін біздің компанияға хабарласыңыз . Біздің компанияның осы салада 20 жылдан астам тәжірибесі бар. |
Қазақстандағы резервтік көшірудің ең жақсы он тәжірибесі
- oVirt гипервизорын қорғау — терең талдау
- oVirt жүйесінен Proxmox жүйесіне виртуалды машинаны көшіру
- Proxmox-тан oVirt-ке виртуалды машинаны көшіру
- Kubernetes контейнерлерін қорғау — терең талдау
- Proxmox гипервизорын бұзудан қалай қорғауға болады - Терең талдау
- Fail2Ban-ды oVirt жүйесін қорғауда қолдану - Терең талдау
- oVirt гипервизорын сақтандыруды ұйымдастыру — Терең талдау
- Виртуалды машинаны гипервизорлар арасында Proxmox арқылы көшіру
- Proxmox гипервизорын виртуалды машиналардың оңтайлы жұмысын қамтамасыз ету үшін конфигурациялау
- Proxmox-те SSH арқылы root құқықтарының бұзылуынан қорғау: терең талдау