Sign inSign up

tailoredcloud/k8s-spot-termination-handler

By tailoredcloud

•Updated almost 8 years ago

When AWS spot instance is going to be terminated, cordons the node and deregisters from ELBs

Image
0

669

tailoredcloud/k8s-spot-termination-handler repository overview

⁠K8s Spot Termination Handler

⁠Table of contents

⁠Introduction

The K8s Spot Termination handler watches the AWS metadata service when running on Spot Instances.

When a Spot Instance is due to be terminated, precisely 2 minutes before it's termination a "termination notice" is issued. The K8s Spot Termination Handler watches for this and then gracefully drains the node it is running on before the node is taken away by AWS.

⁠Usage

⁠Deploy to Kubernetes

Sample Kubernetes manifests are available in the deploy⁠ folder.

To deploy in clusters using RBAC, please apply all of the manifests (Daemonset, ClusterRole, ClusterRoleBinding and ServiceAccount) in the deploy⁠ folder but uncomment the serviceAccountName in the Daemonset⁠.

⁠Requirements

For the K8s Termination Handler to schedule correctly; you will need an identifying label on your spot instances.

We add a label node-role.kubernetes.io/spot-worker to our spot instances and hence this is the default value in the node selector of the Daemonset⁠.

nodeSelector:
  "node-role.kubernetes.io/spot-worker": "true"

To achieve this, add the following flag to your Kubelet:

--node-labels="node-role.kubernetes.io/spot-worker=true"

⁠Communication

  • Found a bug? Please open an issue.
  • Have a feature request. Please open an issue.
  • If you want to contribute, please submit a pull request

⁠Contributing

Please see our Contributing⁠ guidelines.

⁠License

This project is licensed under Apache 2.0 and a copy of the license is available here⁠.

Tag summary

Content type

Image

Digest

Size

57.6 MB

Last updated

almost 8 years ago

docker pull tailoredcloud/k8s-spot-termination-handler