http 使用kops在aws上部署的k8s的一些经验

less than 1 minute read

一/ 如何相对优雅的减少nodes的数量

这个是给kops提的issue

In aws, when user downsize the count of node instance group. when user do kops update cluster –yes, we can do the following steps:

  1. we can make all the instance in “Auto Scaling Groups” to be “Set Scale In Protection”.
  2. kops edit cluster更新ig.
  3. we can choose one instance to cordon and drain from cluster and terminate by aws api.
  4. do step 2 until meet the user’s request.
  5. update Auto Scaling Groups.(手工操作的时候,这步就可以直接update cluster –yes)
  6. relase all the “Set Scale In Protection”.

if don’t like this, when user downsize the count for node instance group, autoscale group terminate one instance immediately, and this may affect the service.(I have meet it.)

可以手工实现类似的目的,解决现在遇到的问题;

二/ 默认node的disk size只有150G,太小了,如果用于生产环境有点危险;通过更新ig来实现;

metadata:
  creationTimestamp: "2016-07-11T04:14:00Z"
  name: nodes
spec:
  machineType: t2.medium
  maxSize: 2
  minSize: 2
  role: Node
  rootVolumeSize: 200
  rootVolumeType: gp2

三/如果使用C5系列的机器类型,需要将debian的版本的升级到至少这个下面这个版本

kope.io/k8s-1.10-debian-stretch-amd64-hvm-ebs-2018-08-17

否则盘会挂不上

四/kops的rolling update很安全,如果中间不小心中断,可以反复执行;

详细过程可以参照官方文档

不过需要注意的是kops在rolling update的时候会逐个判断master/node是否满足了升级需求,然后判断是否需要rolling,并不是每次rolling的时候都会将instance terminate掉,然后起新的机器;

rolling update的时候有个问题,不够优雅,都是cordon之后直接drain,

Tags: ,

Categories: , ,

Updated: