一、K8s概述
- k8s是谷歌在2014年开业的容器化集群管理系统
- 使用k8s进行容器化应用部署
- 使用k8s利于应用扩展
- k8s目标实施部署容器话应用更加简洁和高效
二、k8s特性
1.自动装箱
- 基于容器对应用运行环境的资源配置要求自动部署应用容器
2.自我恢复(自愈能力)
- 当容器失败时,会对容器进行重启
- 当所部署的Node节点有问题,会对容器进行重新部署和重新调度
- 当容器为通过监控检查时,会关闭容器知道容器正常运行,才会对外提供服务
3.水平扩展
- 通过简单的命令,用户UI界面或基于CPU等资源使用情况,对应用容器进行规模扩大或者规模剪裁
4.服务发现
- 用户不需要使用额外的服务发现机制,能够基于Kuberneters自身能力实现服务发现和负载均衡
5.滚动更新
- 可以根据应用的变化,对应用容器运行的应用,进行一次性或者批量更新
6.版本回退
- 可以根据应用部署情况,对应用容器运行的应用,进行历史版本即时回退
7.秘钥和配置管理
- 在不需要重新构建镜像的情况下,可以部署和更新秘钥和应用配置,类似热部署
8.存储编排
- 自动实现存储系统挂载及应用,特别对有状态应用实现数据持久化非常重要
- 存储系统可以来自本地目录,网络存储(NFS、Gluster、Ceph等)
9.批处理
- 提供一次性任务,定时任务:满足批量数据处理和分析的场景
目录
一、Pod(可以是一组容器集合)
- pod是最小的部署单元(里面可以有很多容器)
- 一组容器的集合
- 1个pod中的容器是共享网络
- 生命周期是短暂的(服务器重启...)
二、Controller(创建pod)
- 确保预期的pod副本数量
-
无状态
没有任何约定应用部署 -
有状态
(依赖存储,网络Ip)应用部署 - 确保所有的Node运行同一个pod
- 一次性任务和定时任务
三、Service(统一入口访问)
- 定义一组pod的访问规格