【发布时间】:2021-08-08 06:01:08
【问题描述】:
我在访问另一个命名空间中存在的服务时遇到问题。
我有 2 个命名空间(在同一个集群中)airflow-dev 和 dask-dev。
在 dask-dev 命名空间中,我部署了 dask 集群(dask 调度程序和工作程序)。此外,为 dask-scheduler pod 创建了一个服务(集群 IP)。我可以使用“kubectl port-forward”命令从 chrome 访问 dask-scheduler pod。
kubectl port-forward --namespace dask-dev svc/dask-dev-scheduler 5002:80
但是,我无法从 airflow-dev 命名空间中的 pod(airflow-scheduler)访问服务(或 dask-scheduler pod)。尝试使用以下方法访问时出现“找不到主机或服务”错误
dask-dev-scheduler.dask-dev.svc.cluster.local:8786
以下是我为 dask-dev-scheduler 创建的服务。请告诉我如何从气流开发命名空间访问服务。
apiVersion: v1
metadata:
name: dask-dev-scheduler
namespace: dask-dev
labels:
app: dask-dev
app.kubernetes.io/managed-by: Helm
chart: dask-dev-4.5.7
component: scheduler
heritage: Helm
release: dask-dev
annotations:
meta.helm.sh/release-name: dask-dev
meta.helm.sh/release-namespace: dask-dev
spec:
ports:
- name: dask-dev-scheduler
protocol: TCP
port: 8786
targetPort: 8786
- name: dask-dev-webui
protocol: TCP
port: 80
targetPort: 8787
selector:
app: dask-dev
component: scheduler
release: dask-dev
clusterIP: 10.0.249.111
type: ClusterIP
sessionAffinity: None
status:
loadBalancer: {}
[1]: https://i.stack.imgur.com/UrA7u.jpg
【问题讨论】:
-
您可以使用 [servicename.namespace:PORT] 访问该服务,即 dask-dev-scheduler.dask-dev:5002 在文档 [这里] (kubernetes.io/docs/tasks/administer-cluster/…) 中阅读有关它的更多信息。如果您在集群上有 DNS,它将起作用,根据此处的文档:“您可以(并且几乎总是应该)使用附加组件为您的 Kubernetes 集群设置 DNS 服务。”这会让你很容易。也可以尝试使用服务的IP地址进行测试,kubectl get svc -o wide 会显示IP。
-
试过这个但得到以下错误 OSError: Timed out trying to connect to tcp://dask-dev-scheduler.dask-dev:8786 after 10 s
-
类似问题已经存在。看看能不能解决你的问题。 Here