假设你的应用在不同时段的访问量差异较大,多的时候80台服务器跑满,少的时候50台服务器跑半满,你会怎么考虑去部署应用?
为什么要使用Kubernetes?
- 在可靠性较低的集群上弹性地部署应用
- 实现全自动化
- 易于部署、扩充和管理
之前的扩充方式:
- 购买新的EC2并配置环境
- 部署代码
- 将新EC2添加到负载均衡后端
耗时且非常不灵活,特别是在高峰时段。
允许有一部分服务器闲时处于零负载状态,但得开着机以备随时调用!
同时我也在思考一个问题,怎么灵活地使用微服务,而不是在一个系统里部署所有的服务?
主要服务有:
- Openresty(nginx+lua)
- PHP/php-fpm
- MySQL
- Memcached
- Redis
这些服务完全可以运行在不同的系统里,通过API组装起来,虽然可能会因为网络延迟牺牲一定的效率,但在内网上,完全可以忽略不计!
即之前的Docker Image构建方式适合本地测试,而不适合分布式服务器。