Let’s see what happened when we executed the kops update command.
Kops retrieved the desired state from the S3 bucket.
Kops sent requests to AWS API to change the values of the workers ASG.
AWS modified the values of the workers ASG by increasing them by 1.
ASG created a new EC2 instance to comply with the new sizing.
Protokube installed Kubelet and Docker and created the manifest file with the list of Pods.
Kubelet read the manifest file and run the container that forms the kube-proxy Pod (the only Pod on the worker nodes).
Kubelet sent a request to the kube-apiserver (through the dns-controller) to register the new node and join it to the cluster. The information about the new node is stored in etcd.
This process is almost identical to the one used to create the nodes of the cluster.