gpt4 book ai didi

azure - 针对不同端口的 LoadBalancer Kubernetes

转载 作者:行者123 更新时间:2023-12-03 05:24:46 28 4
gpt4 key购买 nike

我有 6 个 Pod,每个 Pod 应用程序从不同的端口监听,每个 Pod 都有自己的 IP 地址。

我有 Kubernetes LoadBalancer 服务 (Azure LoadBalancer),并定义了静态 IP 地址。

我可以使用 LoadBalancer IP 10.1.1.100、端口号 9111 访问 app1 应用程序(应用程序 1 从 9111 端口监听)

现在我有 app2 从端口 9112 监听,是否有可能,我可以使用 9112 访问相同的 Loader Balancer IP,即 10.1.1.100。如果是。如何实现服务

我当前的服务 list 文件

apiVersion: v1
kind: Service
metadata:
name: "app1-service"
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
selector:
app: app1
type: LoadBalancer
loadBalancerIP: 10.1.1.100
ports:
- port: 9111

app1部署文件

apiVersion: apps/v1
kind: Deployment
metadata:
name: "app1-deployment"
labels:
app: app1
spec:
replicas: 1
selector:
matchLabels:
app: app1
template:
metadata:
labels:
app: app1
spec:
imagePullSecrets:
- name: image-secrets
containers:
- name: inaudiotools
securityContext:
{}
image: myregitry.io/app1:latest
imagePullPolicy: Always
ports:
- containerPort: 9111

app2部署文件

apiVersion: apps/v1
kind: Deployment
metadata:
name: "app2-deployment"
labels:
app: app2
spec:
replicas: 1
selector:
matchLabels:
app: app2
template:
metadata:
labels:
app: app2
spec:
imagePullSecrets:
- name: imqge-secrets
containers:
- name: inaudiotools
securityContext:
{}
image: myregitry.io/app2:latest
imagePullPolicy: Always
ports:
- containerPort: 9112

最佳答案

有多种方法可以将服务公开给外部流量

  • 集群 IP 服务:K8 创建的用于访问 Pod 的默认服务。可以使用 kube proxy 公开服务。适合初学者,但不适合生产。
  • 节点端口:从特定节点端口公开服务。适合演示目的,但会导致可扩展性和可维护性问题。
  • 负载均衡器类型:公开服务的标准方法,该服务创建网络负载均衡器并向外部公开您的服务。这也是你用过的。
  • Ingress:实际上不是服务,而是位于 K8 中负载均衡器和多个服务中间的反向代理,例如 nginx。反向代理能够根据 url 模式、主机将请求转发到任何服务。假设您的情况 app1 使用 https://host1.abc.com主机名和 app2 使用 https://host2.abc.com name,当传入主机名为 host1.abc.com 时,nginx 将能够将请求路由到 app1;当传入主机名为 host2.abc.com 时,nginx 将能够将请求路由到 app2。生产工作负载的首选方式。

要回答您的特定查询,如果您只想继续使用负载均衡器类型,则需要创建一个新的负载均衡器类型服务,将流量路由到 app2。

apiVersion: v1
kind: Service
metadata:
name: "app2-service"
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
selector:
app: app2
type: LoadBalancer
loadBalancerIP: 10.1.2.100
ports:
- port: 9112

这将创建一个具有新静态公共(public) IP 的新 LB,并将请求路由到 app2。

缺点是

  • 成本,在本例中,Azure 将为每项服务旋转一个新的负载均衡器。
  • 维护:为每项服务添加新的 DNS 记录,而不是每个域一条记录。

关于azure - 针对不同端口的 LoadBalancer Kubernetes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69838056/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com