k8s其它概念
2023-07-19 22:23:48 6 举报
AI智能生成
登录查看完整内容
k8s其它概念
作者其他创作
大纲/内容
定义一组逻辑上相关的Pod的访问方式
Label Selector 决定要关联的Pod集合
一种抽象的概念,实际并不存在
用于将请求从集群内部路由到 Service
仅在集群内部可用,并且没有分配给它的外部 IP 地址
允许通过服务名称直接访问底层 Pod 的 IP 地址
请求不会经过 Service 的负载均衡代理
适用于需要直接与每个节点进行通信的场景
`clusterIP` 设置为 `None`
ClusterIP(默认)
注意:如果有多个Pod地址,需要应用程序自身做负载均衡
将service的端口映射到Node的一个端口上
通过NodeIp:NodePort 来访问service
希望Service暴露给集群外部使用
NodePort
通过云服务提供商的负载均衡器实现自动负载均衡和外部访问
用于将 Service 暴露给外部网络的服务类型
LoadBalancer
不提供负载均衡或代理功能,它仅将服务映射到外部 DNS 名称
不能映射到 Kubernetes 集群内部的其他 Service
在跨集群通信或与外部系统集成时非常有用
允许将服务映射到集群外部的 DNS 名称
ExternalName
type
类型
Endpoint记录了与Service关联的一组Pod的网络地址信息
用于将一组具有相同功能的Pod暴露给其他服务或外部用户
服务发现
控制器负责管理Endpoint资源。它监听Pod和Service的变化,并根据需要自动更新Endpoint
动态更新
Endpoints
查看Service的描述信息
默认是轮询
相同IP地址的请求发送到相同的Pod。这对于需要保持与特定客户端之间的会话一致性的应用程序非常有用
IP哈希
请求路由到当前连接数最少的Pod上
最少连接
随机
权重
负载分发策略
Sercvice
数据包需要在内核空间和到用户空间复制
使用代理进程处理服务的网络转发和负载均衡
Userspace(已废弃)
在内核空间中进行数据包处理和转发
Iptables(默认)
利用了Linux内核中的IPVS模块,实现了高性能的负载均衡和网络转发功能
IPVS
实现服务的网络转发和负载均衡
网络代理组件
kube-proxy
网络代理
默认情况下,k8s集群中所有的pod都是可以相互访问的
将Pod划分到不同的namespace下,形成逻辑上的”组“,以方便不同的组的资源进行隔离使用和管理
通过k8s的授权机制,将不同的namespace交给不同租户进行管理
实现多租户的资源隔离
实现多套环境的资源隔离
Namespaces
命名空间
如Node、Pod、Service等
在资源上添加标识,用来对它们进行区分和选择
lable
基于等式的 label selector
基于集合的 label selector
用于查询和筛选拥有某些标签的资源对象
in / not in
label selector
标签的条件可以是多个,使用逗号\
选择器
用户定义请求如何转发到service的规则
监听Ingress资源,动态更新对应的反向代理的配置
根据配置的规则来实现请求转发
需要安装和配置适当的Ingress Controller,可以是基于反向代理Nginx
ingress controller
工作原理类似于Nginx
资源对象
Ingress
k8s
为集群中的多个服务提供一个统一的入口点,不需要为每个服务公开独立的IP地址和端口
简化访问配置和管理
允许基于域名、路径和其他条件定义灵活的路由规则
灵活的路由规则
流量均匀地分发到多个后端服务实例
负载均衡
根据业务需求添加新的服务和路由规则,而不需要改变底层的网络配置
灵活的扩展性
负责解密加密的流量
配置TLS
为什么需要Ingress
0 条评论
回复 删除
下一页