首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从互联网上访问Kubernetes服务?

如何从互联网上访问Kubernetes服务?
EN

Stack Overflow用户
提问于 2018-05-14 15:22:38
回答 1查看 311关注 0票数 0

我在Linux上安装了Kubernetes (minikube)集群。然后部署演示示例:使用持久卷部署WordPress和MySQL

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: wordpress
labels:
  app: wordpress
spec:
  ports:
    - port: 80
      nodePort: 30375
  selector:
    app: wordpress
    tier: frontend
  type: NodePort
  externalIPs:
    - 178.54.220.175
    - 192.168.1.10

如果外部ip 178.54.220.175只在路由器中,主机ip与Linux192.168.1.10和ip Kubernetes 192.168.99.100:30375,则如何从Internet访问Kubernetes服务。

如何将这些ip地址与178.54.220.175 -> 192.168.1.10 -> 192.168.99.100:30375关联

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-15 07:57:56

如果您使用的是迷你库,此功能将被禁用。

当使用VirtualBox作为管理程序时,还可以使用VirtualBox NAT端口转发功能,允许从外部访问通过NodePorts公开的服务。

类似这样的内容(有限的范围,公开整个默认的30000-32767 NodePort范围需要花费很长时间.):

代码语言:javascript
复制
for port in {30000..30100}; do VBoxManage controlvm minikube natpf1 "NodePort$port,tcp,,$port,,$port"; done

您可以将此与反向SSH隧道组合到VPS,这样任何人都可以从公共internet临时访问:

代码语言:javascript
复制
R_ARGS=$(for port in {30000..30100}; do echo -n "-R $port:localhost:$port "; done)
代码语言:javascript
复制
autossh -M 0 -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ExitOnForwardFailure=yes -o ServerAliveInterval=5 -o ServerAliveCountMax=3 user@examplevps.com -N $R_ARGS

若要删除VirtualBox端口转发规则,请执行以下操作:

代码语言:javascript
复制
for port in {30000..30100}; do VBoxManage controlvm minikube natpf1 delete "NodePort$port"; done

但是SSH转发方法更容易,而且我认为虚拟机管理程序是不可知论的,所以感谢您的支持!

https://github.com/kubernetes/minikube/issues/877

https://cwienczek.com/reaching-minikube-from-your-machines-public-ip-aka-network-bridge/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50333887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档