Single node kubernetes cluster scale up

9/17/2019

I have single node kubenertes cluster running on GKE. All the load is running on single node separated by namesapces.

now i would like to implement the auto-scaling. Is it possible i can scale mircoservices to new node but one pod is running My main node only.

what i am thinking

Main node : Running everything with 1 pod avaibility (Redis, Elasticsearch)

Scaled up node : Scaled up replicas only of stateless microservice

so is there any way i can implemet this using node auto scaeler or using affinity.

Issue is that right now i am running graylog, elasticsearch and redis and rabbitmq on single node having statefulsets and backed by volume i have to redeploy everything edit yaml file for adding affinity to all.

-- Harsh Manvar
docker
elasticsearch
google-cloud-platform
kubernetes

2 Answers

9/17/2019

I'm not sure that I understand your question correctly but if I do then you may try to use taints and tolerations (node affinity). Taints and tolerations work together to ensure that pods are not scheduled onto inappropriate nodes. All the details are available in the documentation here.

-- Lachezar Balev
Source: StackOverflow

9/17/2019

Assuming the issue you have is that the persistent volumes bound to your StatefulSets are only accessible from one node, then you can use the nodeAffinity field to constraint where the StatefulSet Pods can be scheduled. As mentioned in the documentation:

A PV can specify node affinity to define constraints that limit what nodes this volume can be accessed from. Pods that use a PV will only be scheduled to nodes that are selected by the node affinity.

-- Alassane Ndiaye
Source: StackOverflow