我试图通过DNS连接我的Kubernetes部署。
我有一个Java(Spring Boot)部署和一个javascript(node.js)部署,它们都是通过默认的ClusterIP服务公开的。我需要在两个服务之间进行websocket和REST通信。
我已经知道我应该使用DNS以便这两种服务可以相互通信,但我无法确定这些DNS是什么。
例如,
kubectl get pods --all-namespaces
给了我这个:
NAMESPACE NAME
default javascript-deployment-65869b7db4-mxfrb
default java-deployment-54bfc87fd6-z8wml
答案 0 :(得分:0)
关于您的问题:
1- Kubernetes不建议避免创建名称,因为它基本上确保了pod是唯一的,并且,哈希的第一部分它将所有pod与相同的副本控制器组合在一起。
所以就像建议一样,不要碰它。 https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#pod-template-hash-label
2- kubectl get services -o wide
将为您提供应用程序收听的端口。您只需使用群集IP +端口(如CLUSTER_IP:PORT)即可访问您的服务。
答案 1 :(得分:0)
我使用服务元数据名称和端口修复了它。
例如,这是我的服务定义:
apiVersion: v1
kind: Service
metadata:
name: my-big-deployment
spec:
ports:
- port: 8000
protocol: TCP
targetPort: 8000
selector:
app: my-service
从我在群集中的应用程序,我现在可以通过以下环境变量访问此服务:
MY_BIG_DEPLOYMENT_SERVICE_HOST
MY_BIG_DEPLOYMENT_SERVICE_PORT