今天开始我们进入到kubernetes相关文章的更新了,学习k8s需要必备两个基础:Docker和Linux,对Docker不了解的小伙伴可以看下我之前的文章。加油吧,学起来。
1. K8S概述
kubernetes,简称K8s,是用8代替8个字符“ubernete"而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的机制。
- k8s是谷歌在2014年开源的容器化集群管理系统。
- 使用k8s进行容器化应用部署。
- 使用k8s利于应用扩展。
- k8s目标是让部署容器化应用更加简洁和高效。
在Docker中我们对容器有详细的介绍,k8s就是对我们的Docker容器的部署。同时,会根据用户量或者容器的承载能力对应用进行弹性伸缩,也就是我们说的扩展性。
2. K8s特性
- 自动装箱
基于容器对应用运行环境的资源配置要求自动部署应用容器。
应用部署不需要人为手动干预,可以自动完成。
- 自我修复(自愈能力)。
当容器失败时,会对容器进行重启。
当所部署的Node节点有问题时,会对容器进行重新部署和重新调度。
当容器未通过监控检查时,会关闭此容器直到容器正常运行时,才会对外提供服务。
比如说有两个节点1和2,某一时刻1节点出现了问题,那么它会把所有的请求转发了2节点,而1节点被重新部署和调度(重新启动)。
节点对外提供服务有一定要求,不是部署完了就可以提供服务,k8s会对其进行一些检查,检查的这段时间不提供服务,直到检查完毕容器正常运行才对外提供服务。
- 水平扩展
通过简单的命令、用户UI界面或基于CPU等资源使用情况,对应用容器进行规模扩大或规模剪裁。
k8s会根据用户要求弹性伸缩(水平扩展),比如某一时刻访问量变大,那么会自动扩大应用部署,相反会减小。
- 服务发现
用户不需使用额外的服务发现机制,就能够基于Kubernetes自身能力实现服务发现和负载均衡。
由Service提供统一的入口,k8s会判断属于哪一类请求,并将请求转发的相应的节点,节点pods根据自身承载能力实现负载均衡。这种在微服务架构中常见。
- 滚动更新
可以根据应用的变化,对应用容器运行的应用,进行一次性或批量式更新。
比如我在两个节点的基础上又加了第三个节点,这个节点内的应用成批量地更新了。并且对前两个节点没有任何影响。
- 版本回退
可以根据应用部署情况,对应用容器运行的应用,进行历史版本即时回退。
- 密钥和配置管理
在不需要重新构建镜像的情况下,可以部署和更新密钥和应用配置,类似热部署。
- 存储编排
自动实现存储系统挂载及应用,特别对有状态应用实现数据持久化非常重要。
存储系统可以来自于本地目录、网络存储(NFS、Gluster、 Ceph 等)、公共云存储服务。
就好比我们在Docker中说到的挂载,可以实现容器数据的持久化存储。
- 批处理
提供一次性任务,定时任务,满足批量数据处理和分析的场景。
微信公众号先已开通,搜索 “江小南和他的小伙伴们” 或者扫描下方二维码就能找到我哦,各位小伙伴们可以关注一下,后面文章会进行同步更新,方便查看哦。