移植部署在 minikube 中的入口主机名

问题描述 投票:0回答:1

我在云计算虚拟机中为 nginx 创建了一个 Pod 和服务,通过端口转发,我可以将服务转发到本地端口,我可以在浏览器上通过 http://vm_ip:port 访问它。

结果 - 显示页面。

现在我已经创建了一个启用了 TLS 的入口,并将 minikube ip 映射到后端 dns 名称,例如 backend.minikube.local。我使用自签名证书启用了 TLS。

我在虚拟机中使用curl测试了响应,得到了https的结果(下面的结果输出)

#curl --cacert tls.crt https://backend.minikube.local
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

现在,我如何从桌面上的浏览器中查看相同内容?我尝试端口转发入口,但失败了 -

kubectl port-forward --address 0.0.0.0 ingress/nginx 8080:80

错误:无法附加到 *v1.Ingress:*v1.Ingress 的选择器未实现

端口转发仅适用于 Pod、服务和部署吗?不适用于反向代理?

如果有人能够使其在浏览器上运行,请分享解决方案或见解。

谢谢。

nginx kubernetes minikube
1个回答
0
投票

您有一个 Nginx 服务在 Minikube 中运行,并可通过 Ingress 进行访问,并且您希望从桌面浏览器访问此服务
不支持直接

kubectl port-forward
到 Ingress 资源,这就是您遇到错误的原因。

Minikube Ingress 的官方文档应该会有所帮助。但是,由于您无法直接端口转发到入口,解决方法是将端口转发到入口将流量路由到的底层服务。找出您的 Ingress 路由到的服务的名称。这通常在 Ingress 资源中定义。

使用

kubectl port-forward
将本地端口转发到服务的端口。如果您的服务名为
nginx-service
并且您想在本地计算机上使用端口 8080,则命令将为:

kubectl port-forward svc/nginx-service 8080:80 --address 0.0.0.0

这会将您的本地端口

8080
转发到服务的端口
80

修改您的

hosts
文件(
C:\Windows\System32\Drivers\etc\hosts
/etc/hosts
)以将 Ingress (
backend.minikube.local
) 中使用的域映射到
127.0.0.1
(localhost)。该步骤对于您的浏览器将域路由到端口转发正在侦听的本地计算机至关重要。添加以下行:

127.0.0.1 backend.minikube.local

在浏览器中导航至

https://backend.minikube.local:8080
。您应该会看到 Nginx 欢迎页面。

由于您的 Ingress 使用自签名证书配置了 TLS,因此您的浏览器可能会显示安全警告。您可以继续处理警告以进行测试。对于生产,请确保使用正确签名的证书。

© www.soinside.com 2019 - 2024. All rights reserved.