大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
学习导图
Borg架构图
Borg是k8s的前身
Borg架构图
BorgMaster:负责请求分发,整个集群的大脑
BorgLet:真正运行的节点,提供计算
sheduler:调度器,将数据写入到Paxos(键值对数据库)BorgLet监听Paxos数据库,如果发现有自己的请求则处理相应的任务
k8s架构图
api sever:一切服务的访问入口 包括scheduler RC etcd kubectl kubelet等等
scheduler:调度器:负责介绍任务,选择合适的节点进行分配任务 把任务分发到api server,api server负责把数据写入到etcd
repliaction controller:副本控制器 维持副本的期望数
node:k8s节点 类似于工人 执行相应的任务
etcd:类似于Berg中的Paxos.可信赖分布式的键值数据库,保存化整个k8s分布式集群中的信息(持久化),一旦重启后分布式集群可以从etcd恢复工作
kubelet:直接跟容器引擎交互实现容器的生命周期
kube proxy:负责写入规则至firewall | IPVS 实现服务映射访问 如pob和pob之间的访问需要通过和负载均衡等等需要通过Kube proxy实现
重要插件
CoreDNS:可以为集群中的SVC创建一个域名ip对应的映射关系,实现负载均衡的一项功能
Dashboard:为k8s提供BS访问功能
INCRESS CONTROLLER:官方只能实现四层代理, INCRESS可以实现7层代理 可以通过主机名+域名进行负载均衡
FEDERATTON:提供一个可以跨集群中心多k8s同一管理功能
PROMETHEUS:提供一个k8s监控能力
ELK:提供k8s 集群日志统一分析介入平台
k8s中的组件都是以port形式运行
Pod概念
- 自主pod
没有管理器管理,一旦死亡就彻底死亡了没有管理器再去重新船舰 - 控制器管理的pod
有控制器管理 一旦被删除后 控制器会迅速创建另一个pod 控制器是根绝label select 定位pod
pod 和 container 关系
同一个pod中共享ip和存储 你卷,每个container的端口不能一样 因为端口也共享
同一个pod中的容器可以直接ping通
ReplicationController & ReplicaSet & Deployment
doployment 创建 RC RC 创建 pod
HPA
根据Pod的CPU利用率扩容
StatefullSet
pod每一次重启都会被重新分配一个ip ,statefullSet可以保证ip不变 并且statefullset还支持有序的部署pod
DaemonSet
job
service
外部可以通过service访问Pod
此时service管理的Pod必须有相关性,比如是同一组label
service有自己的ip 和 port 客户端可以直接访问service 从而访问到Pod
网络通讯方式
k8s中Pod相互之间如何通信?以及Pod与外部如何通信?
Flannel
通过Flannel可以实现不通主机内
同一个主机内的Pod可以直接ping通(同一个网段)通过Docker0(lo)
不同主机内的Pod需要通过Flannel才能ping通(overlay netowork)
所以同一个集群内的Pod之间是可以ping通的
ETCD之Flannel提供说明
存储管理Flannel可分配的IP地址段资源 (ETCD中记录着那个节点是那个网段 避免集群中ip冲突)
监控ETCD中每个Pod的实际地址 并在内存中简历维护Pod节点路由表 (如找到别放Pod对应的主机ip 这些信息都存储在ETCD中)
Pod网络小结
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/168534.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...