目录
复习K8S特点
1、一个master节点有一群node节点与之对应
2、master节点不存储容器,只负责调度、网关、控制器、资源对象存储
3、容器是存储在node节点(容器是存储在pod内部的)
4、pod内部可以有一个容器,或者是多个容器;
5、kubelet负责本地的pod的维护
6、kube-proxy负责负载均衡,在多个pod之间来做负载均衡
k8s作用:
k8s是用来管理容器,但是不直接操作容器,最小操作单元式pod。k8s是间接的管理容器
一、pod的核心原理--【最小单元】
1、pod是什么?
(1)pod也是一个容器(此容器中装的是docker创建的容器,pod是用来封装容器的一个容器),pod是安装容器的容器,pods是一个虚拟化分组(pod有自己的IP地址,主机名),相当于一个独立沙箱环境,。这个pod本身容器不是用docker做的,是通过namespace、PID,UID等技术做的沙箱环境的隔离
(2)pod相当于独立主机,可以封装一个或者多个容器。
2、pod的作用是什么?
(1)通常情况下,在服务部署时,使用pod来管理一组相关的服务。(一个pod中,要么部署一个服务,要么部署一组相关的服务)
(2)web服务集群如何实现?
实现服务集群:只需要复制多份pod的副本即可。这也是k8s管理的先进之处,k8s如果继续扩容、只需要控制pod的数据量即可
(3)POD底层网络,数据存储是如何进行的?
二、replicaset副本控制器
(1)replicationController 副本控制器
(2)relicaset 副本控制器
副本控制器基本理解:控制pod副本(服务集群)的数量,永远与预期设定的数量保持一致即可
副本控制器:当副本设置为3时,副本控制器将会永远保证副本数量为3,当有pod服务宕机时,副本控制器将会立马重新创建一个新的pod,永远保证副本数量为3;
(3)relicaset和replicationController 的区别
在新版的k8s中,建议使用replicaset作为副本控制器,replicationController不再使用了。+
三、Deployment部署对象
1、服务部署结构模型
2、滚动更新
四、Statefulset 部署有状态服务
为了解决有状态服务使用容器化部署的问题;
1、部署模型
2、有状态服务(数据库如mysql等)
3、思考:mysql使用容器化部署,存在的问题?
容器是有生命周期的(随时有可能宕机),一旦宕机,数据丢失
pod部署,pod也有生命周期,数据丢失
总结:k8s不能使用deployment部署模型部署有状态服务。通常情况下,deployment被用来部署无状态服务。部署有状态服务使用statefulset
4、状态服务的解释:
(1)、有状态服务:
a、有实时的数据需要存储
b、有状态服务集群中,把某一个服务抽离出去,一段时间后再加入集群网络,集群网络无法使用
(2)、无状态服务:
a、无实时的数据需要存储
b、无状态服务集群中,把某一个服务抽离出去,一段时间后再加入集群网络,对集群网络无任何影响
文章评论