Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

229
Views
Escalado horizontal de postgres en el clúster de kubernetes

Tengo los siguientes requisitos para que mi aplicación se implemente en Kubernetes Cluster. Estoy tratando de idear una arquitectura que se asemeje a mi otra implementación de microservicios y que no sea complicada.

  • Los nodos del servidor de la base de datos deben tener capacidad reservada
  • Cuando la utilización de la CPU supera el 60%, debería generarse una nueva instancia de base de datos
  • La aplicación y la base de datos residirán en el mismo clúster.
  • Necesidad de soportar alta consistencia (NO consistencia eventual)

Estoy pensando en tener múltiples réplicas que se conectarán al mismo volumen (NAS en mi caso). Las instancias de Postgres se ubicarán detrás de un servicio como los microservicios de mi aplicación. La aplicación se conectará al servicio y no necesita saber con qué instancia de Postgres está hablando. Esto simplifica mucho mi arquitectura, ya que no tengo que preocuparme por configurar la replicación de Postgres.

Un problema en esta arquitectura es qué sucede con los datos si una instancia de Postgres deja de funcionar después de recibir una solicitud de escritura. Puedo presentar un intermediario de mensajes con reconocimiento del consumidor para manejar este escenario, pero eso tiene alguna implicación en el rendimiento.

A continuación se muestra un ejemplo de configuración de implementación de Postgres K8s. Tendré que agregar servicio, etc.

¿Cuáles son algunas trampas de esta arquitectura? ¿Alguien ha implementado algo similar?

 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: postgres spec: replicas: 3 template: metadata: labels: app: postgres spec: containers: - name: postgres image: postgres:latest imagePullPolicy: "IfNotPresent" ports: - containerPort: 5432 envFrom: - configMapRef: name: postgres-config volumeMounts: - mountPath: /var/lib/postgresql/data name: postgredb volumes: - name: postgredb persistentVolumeClaim: claimName: postgres-pv-claim
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

No me queda completamente claro, pero parece que estás hablando de la conmutación por error del disco compartido.

Para responder a su pregunta, las trampas son:

  • Su NAS es un único punto de falla
  • Sus réplicas son réplicas en espera, por lo que no se pueden usar para escalar

Creo que para obtener escalabilidad y no solo tolerancia a fallas, necesitaría usar la replicación.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!