我试图使用Kubernetes在本地建立一个服务。我在用入口-nginx进行路由。我正在使用Ubuntu 18.04。这是我的ingress.yaml文件:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/use-regex: 'true'
spec:
rules:
- host: ecommerce.dev
http:
paths:
- path: /api/users/?(.*)
backend:
serviceName: auth-srv
servicePort: 3000此外,我将其映射到我的/etc/hosts/文件中:
127.0.0.1 localhost
127.0.1.1 TALHA
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.0.1 ecommerce.dev当我试图从我的浏览器到达'ecommerce.dev‘时,我无法访问它,因为它说’无法到达网站‘。有人能帮我一下吗?
发布于 2021-02-16 08:08:30
我看到你说过你用的是迷你饼干加了nginx入口加注。
这些信息非常有用。今后不要跳过这类信息。我假设说“我试图使用Kubernetes在本地设置一个服务”,这意味着您运行的是裸金属k8s。
Minikube很可能在VM中运行,这就是您无法访问它的原因。
运行minikube ip将为您提供VM的IP地址:
$ minikube ip
192.168.39.67您的ip可能是不同的,所以不要使用我的IP,检查您分配的IP。
现在您已经拥有了小型VM的IP,请在/etc/hosts中使用它。在我的例子中,如下所示:
192.168.39.67 ecommerce.dev发布于 2021-02-16 00:29:30
如果您使用Helm安装了nginx入口,您可以:
/etc/kubernetes/manifests/kube-apiserver.yaml.上的
--service-node-port-range=80-32767NodePort,以便您可以通过端口80和443.公开它。
kubectl patch svc ingress-nginx-controller -p '{"spec": {"type": "NodePort"}}'nginx-ingress-controller服务的默认生成端口更改为80和443.。
kubectl patch svc ingress-nginx-controller -p '{"spec": {"ports": [{"name": "http", "nodePort": 80, "port": 80, "protocol": "TCP", "targetPort": "http"}, {"name": "https", "nodePort": 443, "port": 443, "protocol": "TCP", "targetPort": "https"}]}}'此步骤只打开nginx-ingress-controller服务的端口80和443。如果它不能解决您的问题,那么它可能与您的代理有关。
https://stackoverflow.com/questions/66202988
复制相似问题