Sign inSign up

wanderadock/k8s-spot-termination-handler

By wanderadock

•Updated almost 7 years ago

Image
0

50K+

wanderadock/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

A docker image is available at quay.io/pusher/k8s-spot-termination-handler. These images are currently built on pushes to master. Releases will be tagged as and when releases are made.

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"
⁠Configuration

To define any custom parameters to the drain command you can use DRAIN_PARAMETERS environment property. If not defined, default parameters are --grace-period=120 --force --ignore-daemonsets.

env:
  - name: DRAIN_PARAMETERS
    value: '--grace-period=120 --force --ignore-daemonsets --delete-local-data'

⁠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

77.8 MB

Last updated

almost 7 years ago

docker pull wanderadock/k8s-spot-termination-handler