k8s重要概念
k8s重要概念
Pod=Pod控制器:
1、pod概念
pod是k8s里能勾被运行的最小的逻辑单元,一个pod中可以多个Container,pod内的所有container共享(UTS+NET+IPC名称空间)单个pod可以运行多个container
2、Pod控制器
2.1 deployment(无状态,守护进程类,只关注群体不关注个体)
确保集群中的每一个节点上只运行一个特定的pod副本,系统级的后台任务。新增节点他都会自动添加pod。也可以是满足条件的节点上运行特定的副本。比如ELK服务特性:服务是无状态的服务必须是守护进程(pod资源模板,标签选择器)
2.2 statefulset(管理有状态应用)
管理有状态应用(redis cluster)针对管理的应用器配置管理是不一样的,没有什么共通的规律,需要人为的封装在脚本中实行,相当之大的逻辑处理。(运维技能封装到运维脚本中)
2.3 ReplicaSet
代用户创建指定数量的pod副本数量,确保pod副本数量符合用户期望的数量状态,如果少了多退少补,并且支持滚动式自动扩容和缩容机制。
ReplicaSet主要三个组件组成:
(1)用户期望的pod副本数量
(2)标签选择器,判断哪个pod归自己管理
(3)pod资源模板(当现存的pod数量不足,会根据pod资源模板进行新建帮助用户管理无状态的pod资源,精确反应用户定义的目标数量。不直接使用)
3、Name=NameSpace:
4、Lable=Lable选择器:
5、Service=Ingress:
5.1 K8S-Service概念:
kubernetes service 定义了这样一种抽象:一个Pod的逻辑分组,一种可以访问它们的策略--通常被称为为服务,这一组pod能够被service访问到,通常是通过label selector选择后端pod,通常使用RR轮询算法。
svc只有4层负载能力ip:prot 无法提供7层负载(可以通过Ingress实现)
K8S-Service类型:
ClusterIp:默认类型,自动分配一个仅Cluster内部可以访问的虚拟IP
NodePort:在ClusterIP基础上为Service在每台机器上绑定一个端口,这样可以通过NodeIP:NodePort来访问服务
LoadBalancer:在NodePort基础上,借助cloud provider创建一个外部负载均衡器,并将请求转发到NodeIP:NodePort
ExternalName: 把集群外部的服务引入到集群内部来,在集群内部直接使用,没有任何类型代理被创建,这只有kubernetes1.7 或更高版本的kube-dns才支持