Kubernetes(K8s)
2021-04-28 09:20:24 4 举报
AI智能生成
k8s相关技术知识点
作者其他创作
大纲/内容
Pause容器(共享容器)
共享网络和存储
Pod的中容器通过localhost和127.0.0.1访问
创建pod后立马创建pause容器,pause容器先于业务相关容器创建
pod中所有的容器相互之间访问,只需要使用localhost
其他组件
CoreDNS
Dashboard
ingress controller
七层代理
Federatrion
跨集群管理
Prometheus
·····
核心资源清单
RC控制器(replication controller)副本控制器
创建与预期设定的副本数量相同的pod副本,且永远保持和预期设定的数量一致
replicas=3
pod宕机后,会创建一个新的pod
保证我的服务高可用性,自动化运维
replicaSet (rs) 副本控制器 取代RC
保持设置一致和rc一样
区别:选择器的功能不一样
RC只支持单选,RS既支持单选,也支持多选
不支持滚动更新(deployment)支持,他们通常一起使用
deployment 资源对象 --部署对象
层级关系 deployment->replicaSet->pod
通常用来部署无状态服务
HPA(horizontalPodAutoScale)
支持pod自动扩容
Statefullset组件
解决有状态服务的部署
串行化进行
DaemonSet
保证每个node都有一个pod(除非有污点)
Volume
数据卷挂载
Label
ServiceVIP
虚拟IP,是否有一个固定格式
kube-proxy
监控pod,一旦pod变化,及时更新servicev对应的pod的ip地址
每个节点都有一个pod
负载均衡的实现策略
userspace
kube-proxy 做的工作比较多,更新service、监控pod、负载均衡
iptables
kube-proxy只需要做服务的发现,通过iptable实现数据包的转发
linux防火墙
ipvs
和iptables的转发是一样的,区别在于ipvs的负载策略更丰富
k8s架构(容器化应用)
k8s master 维护集群状态
scheduler(调度器,把请求、指令调度到某一个node节点)
采用某中负载算法,把请求,指令调度响应的node节点
调度算法
预选调度
遍历所有node,筛选符合要求的
最优调度
采用优选策略
controllers
负责维护管理我们的资源对象(rc、rs、deployment.. node namespace
replication controller 副本控制器
控制pod的数量,和预期设定的数量保持一致
node controller
监控,检查node节点的健康状态
namespace controller
定期清理无效的namespace
service controller
提供负载均衡的代理服务控制器
endpoints controller
维系pod 和 service的关系
service account controller
安全相关 密钥等
persistent volume controller
数据卷控制器
daemon set controller
负责创建维护 daemon pod的控制器
deployment controller
管理我们deployment 资源对象
Job controller
一次性任务
Pod Autoscaler controller
扩容
api server
k8s 的网关-所有的请求和指令,都必须通过api server进行转发
etcd(分布、可靠的key-value 存储器)
存储集群服务的状态信息,调度信息
k8s node 用来部署服务节点
Pod
用来部署服务的“容器”,是一个逻辑分组。有自己的IP地址和主机名
Pod中部署一组相关的服务
Network 网络命名空间 IP和端口
pod是一个进程
一个pod只能在一个物理机上运行
组成
PID进程识别号
IPC 进程通讯的命名空间,用于进程通讯隔离
UTS命名空间
docker
k8s 管理容器
kubelet
用来接收指令(请求)
kubelet 默认监听四个端口,分别为 10250 、10255、10248、4194
10250(kubelet API)
10248(健康检查端口)
4194(cAdvisor 监听)
10255 (readonly API)
kubelet负责管理pods和它们上面的容器,images镜像、volumes、etc
kube-proxy(重要)
代理组件-实现pod服务负载均衡的组件-kube-proxy 本质上,类似一个反 向代理
通过IPtables规则实现
Fluentd
日志组件
dns
通过主机名称,发发送
网络 通讯
flannel
k8s集群架构
一个master 对应多个node节点
多个master 对应多个node节点
node节点就是一个物理机
k8s主要功能
数据卷
Pod间数据共享
服务发现
应用程序健康检查
复制应用程序
弹性伸缩
根据设定的指标(如 cpu利用率)自动缩放pod副本数量
负载均衡
滚动更新
服务编排
资源监控
提供认证和授权
ABAC
RBAC
0 条评论
下一页