how to add a node to my kops cluster? (node in here is my external instance)

11,917

Kops means Kubernetes Operations, and this is a command line tool made to maintain production grade Kubernetes installation. Kops works best with Amazon Web Services. There have been attempts to fully support GCE and other cloud-ware software, but this is the future.

Nodes in Kubernetes mean physical or virtual machines where a cluster is running pods. The cluster consists of a number of nodes aimed to keep services working. The quantity of designated nodes is declared during the Kubernetes cluster creation by Kops utility.

There is a possibility to add (extend) nodes to the cluster to achieve better performance. When the process of provisioning new nodes is managed by internal cluster routines, this feature is called auto-scaling.

kops uses instance groups for auto-scaling. See your instance groups using

kops get instancegroups

Of course, you can attach your existing VM instance to Kubernetes cluster (working on AWS or not), but you need to do the whole thing manually - there is no import facility in the Kops utility. I don't recommend this.

I found the description of manual installation process of Kubernetes elements for the Ubuntu machine. It may help you a bit.

If you need to extend the number of running nodes for your Kubernetes configuration, please consider using the autoscaling feature.

In this case, use kops to edit cluster properties:

kops edit ig nodes

After editor shows configuration file find minSize parameter and change it to desire new size of the cluster. Make sure the maxSize is equal to or larger than minSize. The example below was taken from the internet.

apiVersion: kops.k8s.io/v1alpha2
kind: InstanceGroup
metadata:
  creationTimestamp: "2017-07-01T12:06:22Z"
  generation: 2
  labels:
    kops.k8s.io/cluster: URL_OF_CLUSTER
  name: nodes
spec:
  image: kope.io/k8s-1.6-debian-jessie-amd64-hvm-ebs-
  machineType: m3.large
  maxSize: 7
  minSize: 3
  nodeLabels:
    kops.k8s.io/instancegroup: nodes
  role: Node
  subnets:
  - eu-west-1a

Then, apply the new configuration and let kops resize the cluster:

kops update cluster --yes

New VM instances will be ready after AWS creates them; next, kops applies Kubernetes configuration and merge them with cluster configuration.

Share:
11,917
Shruthi Bhaskar
Author by

Shruthi Bhaskar

I work as a senior software developer at Trianz. As a hobby I make pretty looking candles.

Updated on June 25, 2022

Comments

  • Shruthi Bhaskar
    Shruthi Bhaskar almost 2 years

    I have created a Kubernetes cluster on AWS by following the instructions below. All my master and worker nodes are running Ubuntu.

    https://jee-appy.blogspot.in/2017/10/setup-kubernetes-cluster-kops-aws.html

    I am aware on how to increase or decrease the number of nodes in my cluster using cluster updates which kubernetes spins up a new node for us,

    However i was wondering, is it possible to attach my external aws instance(for eg: an instance with same OS like ubuntu) to my existing kops cluster?

  • Shruthi Bhaskar
    Shruthi Bhaskar about 6 years
    i am focusing mainly on attaching a node or a minion to my existing cluster. Not on autoscaling. I will go through the referral link. Thank you
  • cryanbhu
    cryanbhu over 5 years
    do you know how it decides whether to have 3 or 7 nodes? how does it decide the scaling? is there an autoscaler?
  • Brent Bradburn
    Brent Bradburn about 5 years
    For some reason, the space is required: --name= nodes
  • Ashish Karpe
    Ashish Karpe over 4 years
    New VM instances will be ready after AWS creates them; next, kops applies Kubernetes configuration and merge them with cluster configuration........will this AWS ec2 instance as a node will be launched by these commands or need to to create them manually ?
  • David Medinets
    David Medinets about 4 years
    After the update, the new node(s) will be started automatically. Wait a few minutes and "kubectl get nodes" should show the change.