11.18.2. 创建服务以公开虚拟机


您可以使用 Service 对象在集群内或集群外部公开虚拟机。

11.18.2.1. 关于服务

一个 Kubernetes 服务 向在一组 pod 上运行的应用程序公开客户端访问。服务提供了抽象、负载均衡功能,在 NodePort 和 LoadBalancer 的情况下用于向外部公开。

服务可以在 web 控制台的 VirtualMachine details Details 选项卡中公开,也可以在 Service 对象中指定 spec.type

ClusterIP
在内部 IP 地址上公开服务,并将 DNS 名称公开给集群中的其他应用程序。单个服务可映射到多个虚拟机。当客户端尝试连接到服务时,客户端请求会在可用后端之间平衡负载。ClusterIP 是默认服务类型
NodePort
在集群中每个所选节点的同一端口上公开该服务。NodePort 使服务可从集群外部访问。
LoadBalancer
在当前云中创建外部负载均衡器(如果支持),并为该服务分配固定的外部 IP 地址。
注意

对于内部集群,您可以通过部署 MetalLB Operator 来配置负载均衡服务。

11.18.2.1.1. 双栈支持

如果为集群启用了 IPv4 和 IPv6 双栈网络,您可以通过定义 Service 对象中的 spec.ipFamilyPolicyspec.ipFamilies 字段来创建使用 IPv4、IPv6 或两者的服务。

spec.ipFamilyPolicy 字段可以设置为以下值之一:

SingleStack
control plane 根据配置的第一个服务集群 IP 范围为该服务分配集群 IP 地址。
PreferDualStack
control plane 为配置了双栈的集群中的服务分配 IPv4 和 IPv6 集群 IP 地址。
RequireDualStack
对于没有启用双栈网络的集群,这个选项会失败。对于配置了双栈的集群,其行为与将值设置为 PreferDualStack 时相同。control plane 从 IPv4 和 IPv6 地址范围分配集群 IP 地址。

您可以通过将 spec.ipFamilies 字段设置为以下数组值之一来定义用于单堆栈的 IP 系列,或者定义双栈 IP 系列的顺序:

  • [IPv4]
  • [IPv6]
  • [IPv4, IPv6]
  • [IPv6, IPv4]
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部