在 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。
答案 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