使用minikube完整创建一个pod并暴露端口(使用docker驱动安装)
因为minikube使用service暴露端口是使用nodeIP:nodePort
而不是 localhost:nodePort
公开访问。我们只能使用kubectl的端口转发功能或者使用iptables的转发功能来实现外网服务暴露。
下面我就以运行nginx服务来做举例
查看nginx的pod服务端口号
可以看到nginx的内部服务端口号是80,我们需要使用kubectl的端口转发进行服务暴露,在做之前我们还需要把类型改为NodePort。
kubectl expose deployment nginx-service --type=NodePort
备注:如果使用以上命令找不到Nginx-service的pod,可以直接使用下面的命令进行端口暴漏
使用kubectl的端口转发功能
kubectl port-forward --address 0.0.0.0 nginx-deployment-75d4475c89-h66vh 20080:80
使用后台运行
nohup kubectl port-forward --address 0.0.0.0 nginx-deployment-75d4475c89-h66vh 20080:80 &
在进行外网访问可以发现可以成功访问到了
第二种方法可以使用iptables进行暴露,需要暴露service的端口,内部端口是不通的。
iptables -t nat -A DOCKER -p tcp --dport 20081 -j DNAT --to-destination 192.168.49.2:30000
#提交策略
service iptables save
使用service iptables save报错The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl.
缺少服务,安装iptables服务即可
yum install iptables-services
安装完成之后再次保存规则就可以了。
再次使用新端口访问
主题授权提示:请在后台主题设置-主题授权-激活主题的正版授权,授权购买:RiTheme官网
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。