Kubernetes(K8s)
2021-07-21 15:08:05 2 举报
AI智能生成
登录查看完整内容
k8s清单
作者其他创作
大纲/内容
pod中容器通过localhost和127.0.0.1访问
共享网络和存储
创建pod后立马创建pause容器,pause容器先于业务相关容器创建
pod中所有的容器相互之间访问,只需要使用localhost
pause容器(共享容器)
CoreDNS
Dashboard
七层代理
ingress controller
跨集群管理
Federatrion
Prometheus
rook
ELK
其他组件
创建与预期设定的副本数量相同的pod副本,且永远保持和预期设定的数量一致
pod宕机后,会创建一个新的pod
relicas=3
保证服务的高可用性,自动化运维
RC控制器(replication controller) 副本控制器
RC只支持单选,RS既支持单选,也支持多选
区别:选择器的功能不一样
不支持滚动更新(deployment),通常一起使用
replicaset (rs) 副本控制器 取代RC
层级关系deployment->replicaset->pod
通常用来部署无状态服务
deployment 资源对象--部署对象
支持pod自动扩容
HAP(horizontalPodAutoScale)
解决有状态服务的部署
串行化进行
Statefullset组件
保证每个node都有一个pod(除非有污点)
DaemonSet
数据卷挂载
Volume
Label
核心资源清单
虚拟ip
ServiceVIP
每个节点都有一个pod
监控pod,一旦pod变化,及时更新service对应的pod的ip地址
kube-proxy
kube-proxy做的工作比较多,更新service、监控pod、负载均衡
userspace
linux防火墙
kube-proxy只要做服务的发现,通过iptable实现数据包的转发
iptables
类似于iptables,区别在于ipvs的策略更加丰富,性能更加优秀
ipvs
负载均衡的实现策略
预选调度 遍历所有node,筛选符合要求的
最优调度 采用优选策略
调度算法
scheduler(调度器,把请求、指令调度到某个node节点上面,属于资源调度器.调度程序会考虑容器集的资源需求(例如 CPU 或内存)以及集群的运行状况。随后,它会将容器集安排到适当的计算节点)
replication controller 副本控制器 控制pod的数量,保持和预期的数量一致
node controller 节点控制器 监控,检查node节点的状态
namespace controller 定期清理无效的namespace
service controller 提供负载均衡的代理服务控制器
endpoints controller 维系pod和service的关系
service account controller 安全相关 secret等
persistent volume controller 数据卷控制器
daemon set controller 负责创建维护daemon pod的控制器
deployment controller 管理kind deplyment资源对象
Job controller 一次性任务
Pod Autoscaler controller 扩容
controllers(负责维护管理资源对象.控制器用于查询调度程序,并确保有正确数量的容器集在运行。如果有容器集停止运行,另一个控制器会发现并做出响应。控制器会将服务连接至容器集,以便让请求前往正确的端点。还有一些控制器用于创建帐户和 API 访问令牌。)
api server (Kubernetes 控制平面的前端,用于处理内部和外部请求。API 服务器会确定请求是否有效,如果有效,则对其进行处理。您可以通过 REST 调用、kubectl 命令行界面或其他命令行工具(例如 kubeadm)来访问 API。)
etcd (配置数据以及有关集群状态的信息位于 etcd(一个键值存储数据库)中)
k8s master 维护集群状态
10250(kubelet API)
10248 健康检查入口
4194 cAdvisor 监听
10255 redonly API
kubelet 默认监听四个端口
kubelet 接收请求指令
kube-proxy 代理组件-实现pod服务负载均衡的组件,本质上模拟的是反向代理 。
cillium 基于 eBPF 和 XDP 的高性能容器网络方案,提供了 CNI 和 CNM 插件。
calico 基于 BGP 的纯三层的数据中心网络方案(不需要 Overlay),并且与 OpenStack、Kubernetes、AWS、GCE 等 IaaS 和容器平台都有良好的集成。
flannel 基于 Linux TUN/TAP,使用 UDP 封装 IP 包来创建 overlay 网络,并借助 etcd 维护网络的分配情况
网络插件 插件负责为接口配置和管理IP地址,并且通常提供与IP管理、每个容器的IP分配、以及多主机连接相关的功能
Fluented 日志组件
coredns 服务发现,解析域名
用来部署服务的容器,是一个逻辑分组,有自己的ip和主机名
pod是一个进程
一个pod只能在一个物理机上运行
PID进程识别号
IPC进程通信的命名空间,用于进程通讯隔离
UTS命令空间
组成
docker k8s管理容器
pod
k8s worker 用来部署服务的节点
k8s架构(容器化应用)
一个master 多个worker
多个master 多个worker
k8s集群架构
服务编排
负载均衡
根据设定指标自动缩放pod副本数量,例如cpu利用率
弹性伸缩
数据卷 pod间数据共享
服务发现
应用程序健康检查
复制应用程序
滚动更新
资源监控
ABAC
RBAC
认证和授权
k8s主要功能
Kubernetes(K8s)
收藏
0 条评论
回复 删除
下一页