k8s ingress 为什么叫七层负载?2.svc为什么是四层负载
时间: 2023-06-03 18:01:33 浏览: 286
1. k8s Ingress 为什么叫七层负载?
k8s Ingress 是一种负载均衡器,它用于管理和路由入站网络流量。它被称为七层负载,是因为它能够在 OSI 模型的应用层(第七层)上工作,处理 HTTP/HTTPS 请求,包括使用域名、路径和头部进行路由。
2. svc 为什么是四层负载?
svc 是一种 Kubernetes 资源,它用于将流量引导到 k8s 集群内的应用程序。它被称为四层负载,是因为它能够在 OSI 模型的传输层(第四层)上工作,处理传输控制协议 (TCP) 和用户数据报协议 (UDP) 流量。因为它只处理 IP 和端口,所以又称为网络负载均衡器。
相关问题
k8s svc 使用外网地址
k8s的Service(svc)使用的是ClusterIP,它只能在集群内部使用,并不能直接使用外网地址。如果需要将Service暴露给外网访问,可以通过Ingress来实现。Ingress是Kubernetes中的一种资源对象,它充当了一个入口的角色,将外部的HTTP和HTTPS请求路由到集群内部的Service上。
可以使用多种方式来将Ingress与外网地址关联起来。其中一种方式是使用LoadBalancer类型的Service。通过创建一个LoadBalancer类型的Service,Kubernetes将会在云服务商(如AWS、GCP)上自动创建一个负载均衡器,并将其与Ingress关联起来。负载均衡器会分配一个外网地址,从而可以通过这个地址来访问Ingress。
另一种方式是使用NodePort类型的Service。NodePort类型的Service会在每个节点上监听一个固定的端口,并将外部请求转发到集群内部的Service。通过将Ingress与NodePort类型的Service关联起来,可以通过节点的IP地址和该固定端口来访问Ingress。
还有一种方式是使用Ingress Controller。Ingress Controller是一个运行在集群中的特殊Pod,它会监听Ingress资源的变化,并根据配置将外部请求转发到相应的Service上。通过配置Ingress Controller的相关参数,可以将外部地址与Ingress关联起来。
综上所述,k8s的Service并不能直接使用外网地址,但可以通过使用Ingress或LoadBalancer类型的Service来将Service暴露给外网访问。
Ingress 怎么配置可以关联集群ingress-controller, svc
要关联Ingress到集群中的Ingress Controller和Service,需要在Ingress资源中定义规则,并指定Ingress Controller服务的名称和端口,以及后端Service的名称和端口。
以下是一个示例Ingress资源的配置文件:
```
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: example.com
http:
paths:
- path: /foo
backend:
serviceName: foo-service
servicePort: 80
- host: example.com
http:
paths:
- path: /bar
backend:
serviceName: bar-service
servicePort: 80
ingressClassName: nginx
```
在上面的配置文件中,定义了一个Ingress规则,将`example.com/foo`路径下的请求转发到名为`foo-service`的Service的80端口,将`example.com/bar`路径下的请求转发到名为`bar-service`的Service的80端口。并且指定了Ingress Controller的服务名称为`nginx`。
当这个Ingress资源被创建时,Ingress Controller会自动将这些规则应用到负载均衡器上,从而实现对后端服务的访问控制和负载均衡。
阅读全文
相关推荐















