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