改文件夹名
This commit is contained in:
39
k8s知识笔记/三、service/5、ExternalName.conf
Normal file
39
k8s知识笔记/三、service/5、ExternalName.conf
Normal file
@@ -0,0 +1,39 @@
|
||||
一、ExternalName类型的Service
|
||||
ExternalName是Kubernetes中Service的另一种类型, 用于将Service映射到集群外部的DNS名称。
|
||||
|
||||
当创建一个ExternalName类型的Service时, 你需要指定一个externalName字段, 该字段包含一个有效的DNS名称。
|
||||
当集群内的Pod访问这个Service时, Kubernetes会将请求重定向到指定的DNS名称, 而不是将请求路由到集群内的Pod。
|
||||
|
||||
例如, 假设有一个名为my-external-service的Service, 它的externalName字段设置为example.com。
|
||||
集群内的Pod可以通过访问my-external-service来与example.com通信, 而不需要知道example.com背后的具体IP地址。
|
||||
|
||||
|
||||
ExternalName类型的Service通常用于以下场景:
|
||||
1. 访问集群外部的服务: 例如, 你可以使用ExternalName类型的Service来访问外部的数据库服务, API服务等。
|
||||
2. 服务迁移: 当你需要将服务从集群内迁移到集群外部时, 可以使用ExternalName类型的Service来实现无缝迁移。
|
||||
3. 简化DNS管理: 使用ExternalName类型的Service可以简化DNS管理, 因为你只需要在Service中指定一个DNS名称, 而不需要在每个Pod中配置具体的IP地址。
|
||||
需要注意的是, ExternalName类型的Service不支持端口映射, 因为它只是将请求重定向到一个DNS名称, 而不是将请求路由到集群内的Pod。
|
||||
因此, 当使用ExternalName类型的Service时, 你需要确保外部服务已经正确配置了端口和协议。
|
||||
|
||||
二、命令行示例
|
||||
kubectl create service externalname my-external-service --external-name=example.com
|
||||
|
||||
三、示例配置文件
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: my-external-service
|
||||
namespace: default
|
||||
spec:
|
||||
type: ExternalName
|
||||
externalName: example.com # 指定外部的域名
|
||||
|
||||
# 通过DNS解析查看
|
||||
kubectl exec -it <pod-name> -- nslookup my-external-service
|
||||
|
||||
# 通过curl访问
|
||||
kubectl exec -it <pod-name> -- curl http://my-external-service
|
||||
|
||||
当集群内的Pod访问这个Service时, Kubernetes会将请求重定向到指定的DNS名称, 而不是将请求路由到集群内的Pod。
|
||||
例如, 假设有一个名为my-external-service的Service, 它的externalName字段设置为example.com。
|
||||
集群内的Pod可以通过访问[my-external-service.default.svc.cluster.local]来与[example.com]通信, 而不需要知道[example.com]背后的具体IP地址。
|
||||
Reference in New Issue
Block a user