k8s~ExternalName的使用
在Kubernetes中,Service
资源的type
字段有多种选项,其中之一是ExternalName
。ExternalName
类型的服务用于将外部服务引入到Kubernetes集群中,通常会将外部服务的域名映射到Kubernetes集群中的一个DNS名称。
ExternalName
服务类型不涉及端口映射或负载均衡。它只是一个DNS别名,将Kubernetes内部的服务名称映射到一个外部域名,而不更改端口号。这对于需要在Kubernetes集群内部引用外部服务的情况非常有用,但它不涉及端口的映射。
这是一个示例ExternalName
服务的YAML配置:
apiVersion: v1
kind: Service
metadata:
name: my-external-service
spec:
type: ExternalName
externalName: example.com # 这里是外部域名
在这个示例中,my-external-service
是一个ExternalName
服务,它将example.com
映射到Kubernetes集群中,但没有更改端口。你可以在Kubernetes内部使用my-external-service
来访问example.com
,但端口将保持不变。如果外部服务使用非标准端口,你可能需要在访问时明确指定端口号。
要支持域名和端口的形式,你需要考虑使用其他服务类型,例如NodePort
或LoadBalancer
,它们可以通过端口映射和负载均衡来处理外部服务的访问。
解析到example.com的8080端口
如果外部服务的端口不是标准的80端口,你可以在Service配置中使用端口字段来指定端口号。以下是一个示例,演示如何指定非80端口的ExternalName服务:
apiVersion: v1
kind: Service
metadata:
name: my-external-service
spec:
type: ExternalName
externalName: example.com # 这里是外部域名
ports:
- name: http
port: 8080 # 这里是外部服务的端口号