如何在 Kubernetes 中定义静态 ClusterIP?

Mak*_*iki 7 kubernetes

我知道如果我们定义 LoadBalancer,我们可以将 Public-IP 设置为静态,但是我们可以为服务设置静态集群 IP 吗?

例子:

**NAME                           TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE**
service/my-application-service   ClusterIP  10.111.67.245   <none>        80/TCP     11d
Run Code Online (Sandbox Code Playgroud)

Bra*_*don 14

看起来您可以在 ClusterIP 类型服务的规范下指定 clusterIP 字段。

例子:

apiVersion: v1
kind: Service
metadata:
  name: myawesomeservice
  namespace: myawesomenamespace
spec:
  clusterIP: 10.43.11.51
  ...
Run Code Online (Sandbox Code Playgroud)

文档中最相关的片段

“如果地址是手动指定的、在范围内(根据系统配置)并且未使用,则它将分配给服务;否则创建服务将失败” - https://kubernetes.io/文档/参考/kubernetes-api/services-resources/service-v1/

这是完整的段落。

规格

集群IP(字符串)

clusterIP 是服务的 IP 地址,通常是随机分配的。如果手动指定地址、在范围内(根据系统配置)并且未使用,则该地址将分配给服务;否则创建服务将会失败。该字段不能通过更新更改,除非类型字段也更改为ExternalName(这要求该字段为空)或类型字段从ExternalName更改(在这种情况下,可以选择指定该字段,如上所述)。有效值为“无”、空字符串 ("") 或有效的 IP 地址。将其设置为“无”会产生“无头服务”(无虚拟 IP),这在首选直接端点连接且不需要代理时非常有用。仅适用于 ClusterIP、NodePort 和 LoadBalancer 类型。如果创建ExternalName类型的Service时指定了该字段,则会创建失败。当更新服务以输入ExternalName 时,该字段将被擦除。更多信息: https: //kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

源代码:https ://kubernetes.io/docs/reference/kubernetes-api/services-resources/service-v1/