开发者社区> 问答> 正文

如何使用kubectl代理访问集群外的服务?

当我们在kubernetes中使用kubeadm启动集群时,服务的.yaml文件如下所示:

apiVersion: v1
kind: Service
metadata:
name: neo4j
labels:

app: neo4j
component: core

spec:
clusterIP: None
ports:

- port: 7474
  targetPort: 7474
  name: browser
- port: 6362
  targetPort: 6362
  name: backup

selector:

app: neo4j
component: core

在所有pod和服务运行之后,我这样做kubectl proxy并且它说:

Starting to serve on 127.0.0.1:8001
所以当我想要访问这样的服务时:

curl localhost:8001/api/
它只能在集群内部到达!如何访问群集外的服务?

展开
收起
k8s小能手 2018-12-14 14:37:47 3278 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    您应该使用NodePort公开您的服务:

    apiVersion: v1
    kind: Service
    metadata:
    name: neo4j
    labels:

    app: neo4j
    component: core

    spec:
    clusterIP: None
    type: NodePort
    ports:

    - port: 7474
      targetPort: 7474
      name: browser
    - port: 6362
      targetPort: 6362
      name: backup

    selector:

    app: neo4j
    component: core

    现在,如果您使用了描述您的服务

    kubectl describe svc neo4j
    您将获得一个在30000-32767之间的nodeport值,您可以使用从群集外部访问您的服务

    curl http://:

    2019-07-17 23:20:56
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
开源广进,用service cataloq构造k8s服务能力中心 立即下载
《Nginx 代理系统常用手册》 立即下载
《基于 Service Worker 实现在线代理》 立即下载