我一直在使用k3s库伯内特斯实现在服务器上成功运行应用程序堆栈。我现在正在尝试将其部署在Docker桌面的WindowsPC上。在localhost上访问应用程序时,我没有找到404。
我使用Traefik作为入口控制器,打开TLS,证书由cert-manager颁发。对于本地部署,我使用cert-manager自签名选项。我也从我的入口中删除了TLS规范,但没有区别。
这是我的入口定义,使用“kubernetes. docker.内部”作为主机:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: traefik-ingress
annotations:
kubernetes.io/ingress.class: "traefik"
cert-manager.io/issuer: self-signed
spec:
tls:
- secretName: s3a-tls-certificate-secret
hosts:
- kubernetes.docker.internal
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: s3a-frontend
port:
number: 80
目标服务“s3a-前端”在其暴露的端口80上运行:我可以在直接访问其节点端口时访问它,但不能通过入口访问。
编辑:Traefik入口控制器附带k3s,但我在Docker Desktop中手动安装了它。当我附加到traefik pod时,当我访问https://kubernetes. docker.内部时,我可以看到正在记录的请求,这是日志。您可以看到集群健康检查(“ping@internal”),还有我对root ("/") 的请求,然后Chrome对网站图标的请求,这两个请求都没有返回响应代码。
10.1.0.1 - - [05/Nov/2021:16:36:23 +0000] "GET /ping HTTP/1.1" 200 2 "-" "-" 2141 "ping@internal" "-" 0ms
192.168.65.3 - - [05/Nov/2021:16:36:24 +0000] "GET / HTTP/2.0" - - "-" "-" 2142 "-" "-" 0ms
10.1.0.1 - - [05/Nov/2021:16:36:24 +0000] "GET /ping HTTP/1.1" 200 2 "-" "-" 2143 "ping@internal" "-" 0ms
192.168.65.3 - - [05/Nov/2021:16:36:24 +0000] "GET /favicon.ico HTTP/2.0" - - "-" "-" 2144 "-" "-" 0ms
/END编辑
netstat说Docker本身正在监听这些端口:如果Docker本身正在使用它,我如何声明这些端口,或者这是转移注意力?
系统
我无法在Docker Desktop上使用它。我切换到Rancher Desktop并且它起作用了。