kubernetes快速入门-基础概念
2021-01-03 17:27
标签:cto 报文 地址 benet 逻辑 客户端程序 修复 均衡 目标 kubernetes是一个开源的容器编排系统,可实现容器化应用程序的自动部署、水平扩展和管理。kubernetes集群是 更详细的请参考官方文档: https://kubernetes.io/zh/docs/concepts/overview/components/ master节点上的组件: API Server,Scheduler,Controller-Manager API Server: 它提供了各类资源的增、删、改、查以及watch等的接口,是整个kubernetes系统的中心。如Pod、Replication Controller、Service等资源。 Scheduler: 调度器,默认调度器为kube-scheduler,调度器通过 kubernetes 的 watch 机制来发现集群中新创建且尚未被调度到 Node 上的 Pod,调度器会将发现的每一个未调度的 Pod 调度到一个合适的 Node 上来运行。 node节点上的组件: kubelet, 容器运行时(一般指docker引擎),kube-proxy kubelet: kubelet是在每个Node节点上运行的主要 “节点代理” kube-proxy: kube-proxy是每个Node节点上运行的网络代理,它作为附件(addons)运行,自托管在kubernets上, kubernetes管理和调度的最小单位是 在node节点上把关系比较紧密的容器打上标签归成一类pod,然后通过 Pod分类: Pod是有生命周期的,一个Pod随时都有可能被杀掉,也随时可能有Pod被创建,所以客户端程序要想访问Pod中容器提供的服务,kubernetes引入了一个中间层service,工作在Pod之上,客户端程序直接访问service,只要service不被删除,那IP地址就固定,service作为服务访问的入口。 service是靠标签选择器来关联Pod的,只要标签相同就被关联。service不是什么应用程序,也不是实体组件,它只是一个iptables的一个DNAT规则,如果service后端的Pod是个时,iptables的DNAT就是多目标的负载均衡转发,在kubernetes的1.11版中此种功能已使用ipvs(LVS)来实现。 kubernetes集群需要三个网络,物理主机网卡所在网络称为 同一个Pod内的多个容器共享网络名称空间,可以使用lo回环地址通信 各Pod之间通信通过隧道转发报文来实现叠加网络(Overlay Network) 来通信 Pod与Service之间通信是通过iptables或ipvs规则调度 Container Network Interface,容器网络接口API。 实现CNI的组件: kubernetes快速入门-基础概念 标签:cto 报文 地址 benet 逻辑 客户端程序 修复 均衡 目标 原文地址:https://blog.51cto.com/zhaochj/2530545概述
master/nodes
的架构,master是管理节点,一般由3个节点组成,nodes节点称为工作节点,节点要多至上千个。组件
帮忙负责生成iptabels或ipvs规则,kubenetes1.11版本后(包含1.11)默认使用ipvs,之前的版本默认使用iptables。Pod
Pod
,这只是一个逻辑上的概念,一个pod是运行一个或多个应用容器,Pod中的每个容器共享网络名字空间。Label Selector
对打上的标签进行过滤,这样node节点就能利用标签选择器来选择出我们需要的一类容器。第一类. 自主式Pod
用户向API Server发送创建一个Pod的请求,通过Scheduler选择一个node后向kubelet发送任务,kubelet并创建好相应的Pod,当该node宕机后,该Pod从集群中消失,不能自动迁移到其他node。
第二类. 控制器管理的Pod
ReplicationController,简称RC,副本控制器,它能实现始终按照用户指定的目标状态,在node上运行指定个数的Pod,当其中某个Pod因故障被kill后,能自动寻找合适的node,在其上运行相应的Pod,始终能保证指定个数的Pod数量。它还能实现Pod的滚动更新,并能实现回滚操作。
ReplicaSet,简称RS, 副本控制器:
一般不直接使用,它有一个声明式的控制器,叫Deployment
Deployment控制器,只能管理无状态应用,Deployment还支持二级控制器,叫HPA(HorizontalPodAutoscaler),水平自动伸缩控制器,能实现自动扩容和缩容
StatefulSet 有状态副本集控制器,管理有状态应用
DaemonSet控制器,在每个node上运行一个副本时使用
Job 作业控制器,
Ctonjob 周期性作业控制器:
Service
网络
主机节点网络
,service上有个IP地址,此IP地址是虚拟的,只存在于iptables或ipvs中,此网络称为service网络
,Pod所在网络称为pod网络
通信
CNI
上一篇:Java值到底是怎么传递的?
下一篇:Web框架发展史(很抽象的那种)
文章标题:kubernetes快速入门-基础概念
文章链接:http://soscw.com/index.php/essay/39861.html