Kubernetes - 服务类型 LoadBalancer 每次部署在 AKS 中时使用特定的 ip 地址

时间:2021-02-26 20:53:59

标签: azure kubernetes kubernetes-service

在 Azure 中,我使用 helm 部署服务(type=loadbalancer)

下面是清单文件

apiVersion: v1
kind: Service
metadata:
  name: {{ template "app.fullname" . }}-service-lb
  labels:
    app: {{ template "app.fullname" . }}-service-lb
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
  type: LoadBalancer
  ports:
    - port: {{.Values.appServPort}}
      nodePort: {{.Values.lbPort}}
      protocol: TCP
  selector:
    app: {{ template "app.fullname" . }}-service

是否可以告诉 kubernetes 集群每次使用特定的 ip 作为外部 IP。何时部署服务?

/*-- 已编辑-- */

每次部署负载均衡器服务时,都会分配一个新的外部 ip,在我的情况下想指定使用相同的 ip,并假设该 ip 地址不在网络内使用。

/*---- */

我的理解是 Kubernetes 集群每次部署时都会分配一个外部 Ip,它没有在清单文件中指定。

有一份 Azure 文档详细介绍了如何在清单文件和 demo link 中使用静态 Ip。

1 个答案:

答案 0 :(得分:3)

我只是引用docs

<块引用>

如果您想在内部负载中使用特定的 IP 地址 平衡器,将 loadBalancerIP 属性添加到负载平衡器 YAML 显现。在这种情况下,指定的 IP 地址必须驻留在 与 AKS 群集相同的子网,并且不得已分配给 一种资源。例如,您不应使用范围内的 IP 地址 指定用于 Kubernetes 子网。

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