我面临的问题是,我无法使用浏览器上的IP访问Kubernetes Ingress。我已经在Windows 10 Home上安装了K8和Minikube。
我在关注这个官方文档——https://kubernetes . io/docs/tasks/access-application-cluster/ingress-minikube/
>
首先,我通过在Minikube上运行以下命令创建了部署。
kubectl create deploy web --image=gcr.io/谷歌-samples/hello-app:1.0
接下来,我公开了我在上面创建的部署。为此,我运行了以下命令。
kubectl 公开部署 Web --类型=节点端口 --port=8080
这创建了一个服务,可以通过运行以下命令来查看:
kubectl get service web
我现在可以通过运行以下命令在浏览器上访问该服务:
迷你库贝服务网
接下来,我通过运行以下命令创建了一个入口:
kubectl apply-f https://k8s . io/examples/service/networking/example-ingress . YAML
顺便说一下,入口yaml代码是:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: hello-world.info
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web
port:
number: 8080
入口被创建,我可以通过运行以下命令来验证它:
kubectl get ingress
入口ip列为192.168.49.2
。因此,这意味着如果我应该在浏览器中打开它,那么它应该会打开,但不幸的是不会。显示无法访问网站。请参见下面的屏幕截图。
是什么问题。请为我提供解决方案?
192.168.49.2 hello-world.info
然后我也试着在浏览器上打开hello-world.info,但是没有成功。
在下面的图片中,我已经ping到hello-world.info
,它将转到IP地址192.168.49.2。这表明etc\hosts映射是正确的:
< code > kubectl describe services web 提供了以下详细信息:
Name: web
Namespace: default
Labels: app=web
Annotations: <none>
Selector: app=web
Type: NodePort
IP: 10.100.184.92
Port: <unset> 8080/TCP
TargetPort: 8080/TCP
NodePort: <unset> 31880/TCP
Endpoints: 172.17.0.4:8080
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
kubectl 描述入口示例 - 入口
给出了以下输出:
Name: example-ingress
Namespace: default
Address: 192.168.49.2
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
Host Path Backends
---- ---- --------
hello-world.info
/ web:8080 172.17.0.4:8080)
Annotations: nginx.ingress.kubernetes.io/rewrite-target: /$1
Events: <none>
请帮忙。谢谢你。
尝试删除此批注<代码>nginx.ingress.kubernetes。io/rewrite目标:/$1
并添加以下注释:
annotations:
nginx.ingress.kubernetes.io/default-backend: ingress-nginx-controller
kubernetes.io/ingress.class: nginx
## tells ingress to check for regex in the config file
nginx.ingress.kubernetes.io/use-regex: "true"
此外,将您的路线更新为:
- path: /?(.*) ## instead of just '/'
backend:
serviceName: web
servicePort: 8080
在我的案例中(win10 minikube entres minikube-addon),以下内容有所帮助:
%WINDIR%\System32\驱动程序\等\主机
文件中将自定义域 IP 设置为 127.0.01,即添加第 127.0.0.1 行 my-k8s.com
kubectl get pods -n ingress-nginx
kubectl -n 入口-n 输入端口转发 pod/入口-nginx-控制器-5d88495688-dxxgw --地址 0.0.0.0 80:80 443:443
,您应该将入口-nginx-控制器-5d88495688-dxxgw
替换为您的入口 Pod 名称。与OP有相同的问题,只能在共享入口的minikube-ssh
中工作。山药在下面。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: frontend-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
defaultBackend:
service:
name: default-http-backend
port:
number: 80
rules:
- host: myapp-com # domain (i.e. need to change host table)
http:
paths: # specified path below, only be working when there is more than 1 path; If only having 1 path, it's always using / as path
- path: /
pathType: Prefix
backend:
service:
name: frontend-service # internal service
port:
number: 8080 # port number that internal service exposes
- path: /e($|/)(.*)
pathType: Prefix
backend:
service:
name: express-service # internal service
port:
number: 3000 # port number that internal service exposes
问题内容: 我正在尝试在dockerizedselenium独立firefox浏览器上运行Ruby on Rails功能测试。似乎我在联网方面遇到问题,因为selenium实例无法连接到Capybara启动的URL。 这是我的示例文件: 我在启用网络的情况下开始docker-compose: 测试脚本像这样运行一个rspec命令 对于docker测试,我为Capybara启用了远程驱动程序: 最后
我编写了一个非常简单的spring boot应用程序,并将其打包在Docker中。 docker文件的内容是: 我把它推到了docker hub。 我在aws上创建了一个新的EC2实例。然后我连接到它并键入以下命令: 最后一个命令在屏幕上给出了许多消息,表示spring boot应用程序正在运行。 看起来很棒。但是,当我打开浏览器并键入:http://ec2-54-86-87-68.compute
我是kubernetes的新手,我尝试使用Kubernete运行小型应用程序。我创建了docker镜像并使用minikube运行它。所以应用程序非常简单,它只打印hello world。 我的dockerfile文件: deployment.yaml 我运行命令: 创建deployment.yaml 输出是: 服务/myhelloworldservice已创建 创建的部署.apps/我的问候世界
问题内容: 关于使用SQL Server 2008 R2,我有一个问题。 我最近在我的计算机上遇到问题,因此必须重新启动Windows,并且必须将一个用户的权限授予另一用户(使用属性中的安全功能)。最初授予权限时,它通过“访问被拒绝”消息。 经过大量研究,它停止产生此错误(我也需要授予权限的用户不可用),然后导致另一个问题发生,但这一次是在SQL Server中。它产生此消息; 数据库[dbNam
我正在尝试运行一个节点。docker上的js应用程序。我正在使用WSL,并已在docker上成功运行该应用程序。现在的问题是,当我尝试在浏览器上访问应用程序时,它显示为无响应。我无法在浏览器中访问它。我还有一个Reactjs应用程序在docker上运行,我可以通过浏览器访问该应用程序。我做错了什么?为什么在windows浏览器中无法访问Nodejs应用程序?下面是节点的Dockerfile。js
本文向大家介绍使用浏览器访问python写的服务器程序,包括了使用浏览器访问python写的服务器程序的使用技巧和注意事项,需要的朋友参考一下 代码如下所示: 注意: 1.开始的时候file_n没有先定义,结果就报错:local variable ‘file_n' referenced before assignment 2.正则表达式一定要先验证筛取的内容是否正确。 3.要获取程序同级文件夹中文