apiVersion: v1
kind: Service
metadata:
name: my-service # Service 的名称
spec:
type: ExternalName # Service 类型为 ExternalName
externalName: external-service # 外部服务的名称
apiVersion
:指定 Kubernetes API 的版本,这里使用的是v1
版本。kind
:指定资源的类型,这里是Service
。metadata
:用于定义资源的元数据,例如名称、标签等。name
:指定 Service 的名称为my-service
。
spec
:定义 Service 的规范。type
:指定 Service 类型为ExternalName
。这表示将创建一个没有 ClusterIP、NodePort 或 LoadBalancer 的 Service。externalName
:指定外部服务的名称。这是一个 DNS 名称,它将在集群内部解析为外部服务的地址。
通过上述 YAML 文件,定义了一个名为 my-service
的 ExternalName 类型的 Service。该 Service 不会创建任何 ClusterIP、NodePort 或 LoadBalancer,而是将 DNS 名称 my-service
解析为外部服务 external-service
的地址。
ExternalName 类型的 Service 主要用于将 Kubernetes 内部的服务与集群外的现有服务进行关联。它可以用作将集群内部的服务与外部的数据库、缓存服务或其他资源进行连接的桥梁。