kubernetes——ingress

简介

ingress: 是k8s内部的一个资源对象
ingress controller   ->   ingress控制器: 是k8s里启动的一个pod,运行的是nginx的镜像,实现k8s内部的service(ClusterIP类型)的负载均衡

ingress 和ingress controller 的关系

ingress controller 本质上是一个nginx软件,用来做负载均衡
ingress 是k8s内部管理nginx配置(nginx.conf)的组件,用来给ingress controller传参
建议参考安装部署文档

架构图

负载均衡

基于域名做负载均衡

基于路径做负载均衡

ingress controller的pod的网络配置

hostNetwork模式 

配置 

是宿主机的ip地址

NodePort模式

是一个内网地址

### KubernetesIngress 和 Egress 的概念 在网络通信领域,Ingress 和 Egress 是指数据包进入和离开网络的方向。 #### Ingress 流量 Ingress 表示流入到集群内部的流量。这类流量通常来自外部客户端请求访问位于 Kubernetes 集群中的服务。为了管理这些入口流量,在 Kubernetes 中引入了专门的对象——`Ingress` 资源来定义 HTTP(S) 请求如何映射至后端的服务实例[^5]。 ```yaml apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: example-ingress spec: rules: - host: web.example.com http: paths: - pathType: Prefix path: "/" backend: service: name: frontend-service port: number: 80 ``` 这段 YAML 定义了一个简单的 `Ingress` 对象,它会将指向域名 `web.example.com` 下 `/` 前缀路径的所有 HTTP 请求转发给名为 `frontend-service` 的 Service。 #### Egress 流量 Egress 则指的是从集群向外发出的数据流。对于某些应用场景来说,可能需要严格控制哪些 Pod 或者命名空间能够发起对外部资源(比如数据库、API 网关等)的调用。这时就可以利用 `NetworkPolicy` 来设置针对出口流量的安全策略[^4]。 ```yaml apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: namespace: default name: deny-all-egress spec: podSelector: {} policyTypes: - Egress ``` 上述配置文件创建了一条拒绝所有 Egress 连接的网络安全策略,除非另有更具体的规则允许特定类型的外发连接存在。 #### Kubernetes 网络策略特性 值得注意的是,当多个网络策略应用于同一个 Pod 上时,它们的效果是累积性的而不是互相排斥;这意味着只要有一个匹配项许可某类操作,则该种类型的通讯就是可行的[^1]。另外,默认情况下所有的 Pod 可以自由地发送出站流量而无需额外授权,但是可以通过自定义策略改变这一行为模式[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值