EKS 训练营-使用SPOT(9)

# 介绍
为什么要使用Spot实例(有的地方也叫竞价实例),俩字:省钱。 如果想了解更多的内容,可以参考这篇 [博客](https://aws.amazon.com/blogs/compu训练的英文te/cost-optimization-and-resilience-eks-with-spot-instances/)
使用Spot实例的架构
![image-20210526140235769](https://imgs.wzlinux.com/blog/202105/26/140235-432206.png)
# 添加Spot实例组训练家开了外挂
## 1.先把原有的都标识了
标识现有的为按需实例组
```bash
kubectl label no训练的英文des --all 'lifecycle=OnDemand'
```
## 2.创建新的 worker node 组
选择 Console 创建 nodegroup 吧,创建起来比较简单,capacityType 选择 SPOT,也可以选择给 node 打标签。
![image-训练营20210526162138844](https://imgs.wzlinux.com/blog训练嘴笨的方法/202105/26/162139-528085.png)
![image-20210526162259934](https://imgs.wzlinux.com/blog/202105/26/162300-433451.png)
## 3.确认新的节点已训练基础英语经 Ready
大概需要 5-8 分钟后即可查询到对应的内容
```bash
kubectl get nodes --sort-by=.metadata.creationTimestamp
```
# 配置 Spot 中断处理
如果训练场的火箭筒在哪里 Spot 实例被回收,会提前 2 分钟通知,所以在 Spot 实例上部署一个训练 [AWS Node Termination Handler](https://github.com/aws/aws-node-termination-handler),用于处理中断,其流程如下
- 确认 Spot 实例被提醒(会被回收)
- 利用这 2 分训练家的格斗之路钟的时间间隔准备优雅的终止这个实例
- 不允许部署新的 pod 到这个节点上
- 驱逐已经运行在这个节点上的 pod
- 通训练嘴笨的方法过 replication controller 在别的节点上替换新的 pod,以保持所需容器的数量
默认情况下,aws-node-termination-handler 会在所有训练场的火箭筒在哪里的节点(包括按需节点和 Spot 节点)上应用这个策略,但是如果已经对 Spot 节点打了训练家真司夜光璀璨小说标签的话,则可以只训练基础英语让他在 Spot 实例上生效(在上面的步骤中,Spot 的标签为: `lifecy训练家开了外挂cle=spot`训练日),安装方式如下
```bash
helm repo add eks https://aws.github.io/eks-charts
he训练营lm upgrade --install aws-node-termination-handler \
--namespac训练的英文e kube-system \
--训练营set nodeSelector.lifecycle=spot \
eks/aws-node-termination-h训练日andler
```
查看运行状态
```bash
kubectl --namespace=kube-system get daemonsets
```
![image-20210526162800518](https://im训练家开了外挂gs.wzlinux.com/blog/202105/26/162801-724347.png)
# 清理环境
清除训练营 Spot 终端处理组件
```bash
helm uninstall aws-node-termination-handler --namespace=kube-system
```
然后可以手动在 console 删除 no训练家开了外挂degroup。
# 欢迎大家扫码关注,获取更多信息
![](https://imgs.wzlinux.com/wechat/wechat-8.jpg训练日)