<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Vault on DevOps-инженер &amp; CloudAdmin</title><link>https://ru-admin.github.io/tags/vault/</link><description>Recent content in Vault on DevOps-инженер &amp; CloudAdmin</description><generator>Hugo -- gohugo.io</generator><language>ru-RU</language><atom:link href="https://ru-admin.github.io/tags/vault/index.xml" rel="self" type="application/rss+xml"/><item><title>Геораспределённый кластер блокчейн-нод в Kubernetes</title><link>https://ru-admin.github.io/posts/blockchain-k8s-cluster/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ru-admin.github.io/posts/blockchain-k8s-cluster/</guid><description>&lt;h2 id="геораспределённый-кластер-блокчейн-нод-в-kubernetes"&gt;Геораспределённый кластер блокчейн-нод в Kubernetes&lt;/h2&gt;
&lt;hr&gt;
&lt;h4 id="клиент"&gt;Клиент&lt;/h4&gt;
&lt;p&gt;Криптовалютная платформа (Web3 / DeFi)&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="задача"&gt;Задача&lt;/h4&gt;
&lt;p&gt;Клиенту требовалась отказоустойчивая инфраструктура для запуска ETH и BSC full-нод в четырёх регионах (EU, US, AP, LatAm) с минимальной задержкой для конечных пользователей, защитой от DDoS и спама на RPC, безопасным HSM-подписанием транзакций и централизованным мониторингом. Синхронизация нод с нуля занимает 2–3 недели — требовалось решение для быстрого старта.&lt;/p&gt;
&lt;hr&gt;
&lt;h4 id="решение"&gt;Решение&lt;/h4&gt;
&lt;h6 id="1-инфраструктура-и-iac-terraform--eks"&gt;1. Инфраструктура и IaC (Terraform + EKS)&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Terraform-модули: VPC, subnets, security groups для 4 регионов (Frankfurt, Virginia, Singapore, São Paulo)&lt;/li&gt;
&lt;li&gt;Managed Kubernetes (EKS 1.29+) per region с выделенными node pools: full nodes, archive nodes, signing service&lt;/li&gt;
&lt;li&gt;NVMe StorageClass (gp3) через CSI-драйвер для высокопроизводительного хранения chaindata&lt;/li&gt;
&lt;li&gt;Helm chart для geth / bsc-node с кастомными values per region&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="2-gitops-flux-cd-multi-cluster"&gt;2. GitOps: Flux CD multi-cluster&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Flux CD v2 с &lt;code&gt;Kustomization&lt;/code&gt; per region — единый источник истины для всех кластеров&lt;/li&gt;
&lt;li&gt;Secrets management: HashiCorp Vault + External Secrets Operator (ESO)&lt;/li&gt;
&lt;li&gt;Изменения в инфраструктуре применяются через git push без прямого доступа к кластерам&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="3-балансировка-и-anti-spam"&gt;3. Балансировка и Anti-Spam&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;HAProxy 2.8: sticky sessions, health checks по &lt;code&gt;eth_syncing&lt;/code&gt; — трафик только к синхронизированным нодам&lt;/li&gt;
&lt;li&gt;Nginx Ingress: rate limiting, IP reputation filtering (Lua-скрипты в стиле fail2ban)&lt;/li&gt;
&lt;li&gt;Cloudflare Workers: geo-routing + защита от DDoS L7&lt;/li&gt;
&lt;li&gt;Custom sidecar (Go): health endpoint, который возвращает ready только при полной синхронизации ноды&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="4-hsm-интеграция-для-подписания-транзакций"&gt;4. HSM-интеграция для подписания транзакций&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;AWS CloudHSM (prod) / YubiHSM2 (staging) для хранения приватных ключей&lt;/li&gt;
&lt;li&gt;Go-микросервис с PKCS#11 абстракцией — смена HSM-вендора без переписывания кода&lt;/li&gt;
&lt;li&gt;Изолированный K8s namespace + NetworkPolicy: нет egress кроме HSM endpoint&lt;/li&gt;
&lt;li&gt;gRPC API для backend: sign tx, get pubkey&lt;/li&gt;
&lt;li&gt;Аудит-лог всех операций подписания → Loki&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="5-мониторинг-и-алертинг"&gt;5. Мониторинг и алертинг&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Custom Prometheus exporter (Go): &lt;code&gt;eth_blockNumber&lt;/code&gt;, &lt;code&gt;eth_syncing&lt;/code&gt;, peer count per node&lt;/li&gt;
&lt;li&gt;Grafana dashboards: sync lag, block height per region, RPC latency, SLO 99.9%&lt;/li&gt;
&lt;li&gt;Alertmanager → PagerDuty: алерты на block lag &amp;gt; N блоков, node down, peer count &amp;lt; threshold&lt;/li&gt;
&lt;li&gt;Loki + Promtail: структурированные логи всех нод с корреляцией по region/pod&lt;/li&gt;
&lt;/ul&gt;
&lt;h6 id="6-операционка-и-disaster-recovery"&gt;6. Операционка и Disaster Recovery&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;Snapshot bootstrap: chaindata из S3 через rclone — нода готова за часы вместо недель&lt;/li&gt;
&lt;li&gt;DR playbook: пошаговые runbook&amp;rsquo;и для восстановления региона&lt;/li&gt;
&lt;li&gt;Chaos Engineering (Chaos Mesh): тесты на node kill, network partition, pod failure&lt;/li&gt;
&lt;li&gt;Architecture Decision Records (ADR) для всех ключевых решений&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h4 id="технологии"&gt;Технологии&lt;/h4&gt;
&lt;div class="row"&gt;
&lt;div class="col col-sm-12 col-lg-2"&gt;
&lt;div style="text-align: center;"&gt;
&lt;p&gt;&lt;img src="https://ru-admin.github.io/icons/kubernetes-plain.svg" alt="Kubernetes"&gt;&lt;/p&gt;</description></item></channel></rss>