阿里云托管版Kubernetes部署经验谈

应公司要求,在阿里云上创建托管版的集群。

托管版的好处就是能节省3个管理节点,并且可用性的维护可以由阿里云提供,降低运维的难度。

在创建集群过程里面,曾经踩过好几个坑,建议操作前做好规划和准备。

准备1:网络规划。

  • 在VPC网络中,创建不同可用区的交换机,给Pod分配IP使用。划分的子网掩码位数需小于等于 /20。
    划分Pod网络的时候,如果k8s的服务还需要和其他ECS服务器互访,并且ECS服务器上使用了docker-compose 进行了服务部署的话,Pod网络的网段,建议避开 172.17.0.0/16 这一段,避免网络调试上出现互访失败的问题,这个坑踩了进去,后来需要定义ECS上的docker-compose的网络才解决。
  • 设计k8s 的 Services CIDR,这里要注意,不能与VPC及VPC内已有的k8s集群使用的网段重复。
    从经验上,按照自己的服务规模进行划分预估是必要的,假如未来需要有多套k8s集群的话,建议不要设置太大。

准备2:ECS 节点规划

  • 准备2台以上的ECS作为工作节点,这个是最低要求,即使是测试环境也是一样。

集群开通操作:(见图)

阿里云托管版Kubernetes部署经验谈_第1张图片

关于以下几个选项的说明

  • 为专有网络配置SNAT:这个实际上会创建一个带公网EIP绑定的NAT网关,如果k8s工作节点是没有公网IP的话,需要勾上。
  • 使用EIP暴露API Server:这个实际上会创建一个SLB服务并绑定EIP,后端指向K8S集群的API Server。
    如果不需要使用『云效』以及非外部网络来管理K8S的话,可以取消勾选,日后需要,可以在K8S集群管理里面打开。
  • 安装Ingress插件:负载类型的『公网』和『内网』的选择建议,如果想K8S集群的服务直接提供服务给用户访问,可以选择『公网』,它会创建一个SLB并用EIP暴露公网,后端是k8s-ingress入口。如果你的服务前端还有负载均衡或Nginx的话,建议使用『内网』来提供接入。
  • 日志服务:一般建议勾选,方便查看日志。
  • kube proxy代理,选择IPVS模式,网络性能会更加好。

 

你可能感兴趣的:(kubernetes,阿里云,docker)