Kubernetes Externalname服务-如何连接
我们有两个集群。cluster1具有命名空间test1和一个作为clusterip运行的服务 我们必须从命名空间dev1的另一个集群(cluster2)调用该服务 我在cluster2中定义了externalname服务,指向cluster1中的另一个externalname服务。 cluster1中的externalname服务指向作为clusterip运行的原始服务 第2组:Kubernetes Externalname服务-如何连接,kubernetes,kubernetes-pod,Kubernetes,Kubernetes Pod,我们有两个集群。cluster1具有命名空间test1和一个作为clusterip运行的服务 我们必须从命名空间dev1的另一个集群(cluster2)调用该服务 我在cluster2中定义了externalname服务,指向cluster1中的另一个externalname服务。 cluster1中的externalname服务指向作为clusterip运行的原始服务 第2组: kind: Service apiVersion: v1 metadata: name: service n
kind: Service
apiVersion: v1
metadata:
name: service
namespace: dev1
labels:
app: service
spec:
selector:
app: service
type: ExternalName
sessionAffinity: None
externalName: service2.test.svc.cluster.local
status:
loadBalancer: {}
集群1中:外部名称服务
kind: Service
apiVersion: v1
metadata:
name: service2
namespace: test1
labels:
app: service
spec:
selector:
app: service
type: ExternalName
sessionAffinity: None
externalName: service1.test1.svc.cluster.local
status:
loadBalancer: {}
集群内1集群服务:
kind: Service
apiVersion: v1
metadata:
name: service1
namespace: test1
labels:
app: service1
spec:
ports:
- name: http
protocol: TCP
port: 9099
targetPort: 9099
selector:
app: service1
clusterIP: 102.11.20.100
type: ClusterIP
sessionAffinity: None
status:
loadBalancer: {}
但是,cluster1中的服务没有受到影响。我也尝试在externalname服务中添加spec:port:9099,但仍然不起作用
原因可能是什么。日志中也没有特定内容这不是
ExternalName
服务的用途
ExternalName
服务用于具有集群内部服务名称,该名称将流量转发到另一个(内部或外部)DNS名称。实际上,ExternalName
所做的是创建一个将外部DNS名称映射到集群本地名称的CNAME记录。它不会暴露集群之外的任何内容。看
您需要做的是在kubernetes集群之外公开您的服务,并且它们也可以从另一个集群使用
有不同的方法可以做到这一点。
例如:
- :使用NodePort时,您的服务将在群集中的每个节点上的随机高端口上公开(默认范围为30000-32767)。如果您的防火墙允许流量进入该端口,您可以通过该端口访问您的服务
- :如果您在支持负载平衡器分配的环境中运行kubernetes,则可以使用负载平衡器向internet公开您的服务
- :如果集群中运行入口控制器,则可以使用
公开工作负载ingres
在另一个集群上,您只需访问公开的服务。请忽略任何缩进或名称错误,可能只是在此处键入时发生的。但事实上事情的名称和语法是正确的。您确定两个集群都可以本地访问集群IP吗?通常,大多数提供商都会设置防火墙或类似设备来防止这种情况。集群IP在集群内部工作,而不是像名称所暗示的那样总是在集群外部。没错,今天我从其他团队成员那里得到了答案,集群位于不同的网络上,它们之间没有设置连接。因此,我计划在我的新集群上部署所需的服务。感谢您的回复。但是,如果存在连接,我们如何使用集群之间的服务呢?我们用入口吗?抱歉,如果这是一个简单或愚蠢的问题,我对devops和kubernetes是新手,所以所有这些都让我很难理解:(@abindlish这将取决于您的Kubernetes解决方案。我在问题或评论中找不到您使用的确切Kubernetes解决方案。它是一个云管理的解决方案,如
GKE
、AKS
、EKS
,还是内部部署的解决方案?有了云管理,我想您可能会看到这样的术语:内部负载均衡器,Int内部入口和节点端口取决于所使用的提供程序。