Kubernetes ExternalName Service 电脑版发表于:2021/12/12 17:31  >#Kubernetes ExternalName Service [TOC] tn2>ExternalName 的服务与普通服务的区别在于:将服务映射到 DNS 名称。如下图所示:  tn2>简单来讲做了一个内部服务的转发。**prod**命名空间中的**pod**通过访问**old-nginx-svc**服务可直接访问到**default**命名空间下的**svc-nginx**服务,因为ExternalName服务的externalName指向的是集群中default命名空间下的svc-nginx服务。 测试代码如下 ------------ >### 创建default下的资源 ```bash # 创建default下的pod kubectl run nginx --image=nginx # 与其所对应的服务 kubectl expose pod nginx --port=80 --target-port=80 --name=svc-nginx ``` >### 创建prod命名空间与相关资源 ```bash kubectl create ns prod kubectl run nginx --image=nginx -n prod ``` tn2>创建en.yaml文件,创建ExternalName类型的服务。 ```yaml apiVersion: v1 kind: Service metadata: name: old-nginx-svc namespace: prod spec: type: ExternalName externalName: svc-nginx.default.svc.cluster.local ``` ```yaml kubectl apply -f en.yaml ``` 测试 ------------ ```bash kubectl exec -it nginx -n prod -- /bin/bash curl svc-nginx.default.svc.cluster.local curl old-nginx-svc #两者访问结果相同 ```