01.K8S概述
# 01. kubernetes简介
# 1.1 Kubernetes是什么?(What
)
- Kubernetes是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,Kubernetes也叫K8S
- Kubernetes是
容器集群管理系统
,是一个开源的平台 - K8S主要用于自动化部署、扩展和管理容器应用,提供了资源调度、部署管理、服务发现、扩容缩容、监控等一整套功能
# 1.2 K8S用来作用?(Where
)
作用:
- 1)快速部署应用
- 2)快速扩展应用
- 3)无缝对接新的应用功能
- 4)节省资源,优化硬件资源的使用
举例:
- 1)Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着
- 2)比如用户想让apache一直运行,用户不需要关心怎么去做,Kubernetes会自动去监控,然后去重启,新建,总之,让apache一直提供服务
# 1.3 为什么使用K8S?(Why
)
为了提高业务并发和高可用,会使用对台服务器,因此会出现一些问题
- 多容器跨主机提供服务
- 多容器分布节点部署
- 多容器怎么升级
- 怎么高效管理这些容器
传统方式结合docker部署弊端
当然我们可以在多台机器上分别用docker部署相同的服务,然后使用nginx的upstream进行分发;
重建容器遇到的问题
- 但是如果我们需要对容器重建(删除旧容器,新建新容器)
- 容器的ip是不固定的,会发生变化,对于nginx的upstream配置无法及时改变
对容器进行升级:
- 我们需要拉取新的容器镜像,然后把旧的容器镜像删除,然后使用新的容器镜像来起容器
- 多台机器上同时自动化升级,我们如何避免影响业务
# 02.kubernetes作用
自我修复
- 在节点故障时重新启动失败的容器,替换和重新部署,保证预期我们设置的副本的数量;
- 杀死健康检测失败的容器,并且在没有准备好之前是不会处理客户端请求的(不对外提供服务),保证线上服务不中断
弹性伸缩
(比如618活动,保证我们服务的快速缩容和扩容)- 使用命令、UI或者基于CPU使用情况自动快速扩容和缩容应用的程序实例(容器的副本数)
- 保证应用业务高峰并发时的高可用性;
- 在业务低峰时期回收资源,以减小成本运行服务
自动部署和回滚
- k8s 采用滚动更新的策略更新应用,一次更新一个Pod,而不是同时删除所有的pod
- 如果更新过程中出现问题,将回滚更改,确保升级不影响业务
上次更新: 2024/9/27 11:33:57