目前,我正在使用与WSL 2集成的Docker Desktop。我发现Docker Desktop已自动为我创建了一个群集。这意味着我不必安装和使用Minikube或Kind来创建群集。问题是,如果我使用Docker Desktop中“内置”群集,我如何启用入口控制器?我尝试创建一个入口来检查它是否工作,但正如我猜测的那样,但没有成功。
我创建的YAML文件如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: webapp
spec:
minReadySeconds: 30
selector:
matchLabels:
app: webapp
replicas: 1
template:
metadata:
labels:
app: webapp
spec:
containers:
- name: webapp
image: nodejs-helloworld:v1
---
apiVersion: v1
kind: Service
metadata:
name: webapp-service
spec:
selector:
app: webapp
ports:
- name: http
port: 3000
nodePort: 30090 # only for NotPort > 30,000
type: NodePort #ClusterIP inside cluster
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: webapp-ingress
spec:
defaultBackend:
service:
name: webapp-service
port:
number: 3000
rules:
- host: ingress.local
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: webapp-service
port:
number: 3000
我尝试访问 ingress.local/,但没有成功。(我在主机文件中添加了ingress.local以指向127.0.0.1。webapp在 kubernetes.docker.internal:30090 中运行良好)
你能帮我了解一下根本原因吗?谢谢。
5条答案
按热度按时间2w2cym1i1#
最后我找到了修复的方法。我必须通过命令部署入口Nginx:
(按照www.example.com上的说明操作https://kubernetes.github.io/ingress-nginx/deploy/#docker-for-mac。它对Windows版Docker工作正常)
现在我可以成功访问http://ingress.local了。
0dxa2lsx2#
您 必须 在 集群 上 安装 ingress-nginx 控制 器 , 以便 节点 拥有 一 个 开放 的 端口 80/443 。
使用
helm
( v3 - 请 参阅 文档 ) :中 的 每 一 个
使用
kubectl
( 请 参阅 文档 ) :格式
然后 手动 将 入口 的 主机 名 添加 到
/etc/hosts
:格式
然后 , 如果 您 在 http://ingress.local 上 发出 请求 :
x7yiwoj43#
最 新 版本 的 Docker Desktop for Windows 已 添加 了 一 个 主机 文件 条目 :
127.0.0.1 kubernetes.docker.internal
.如果 你 想 指向
127.0.0.1
, 你 必须 在 入口 定义 中 使用kubernetes.docker.internal
URL 作为 主机 名 。 这 应该 在 kubernetes.github.io/ingress-nginx/deploy 页面 的 文档 中 , 但是 那里 没有 Docker Desktop for Windows 部分 。 你 的 文件 应该 看 起来 像 这样 :中 的 每 一 个
您 的 入口 文件 应 如下 所 示 :
格式
然后 , 您 可以 使用
http://kubernetes.docker.internal/
连接 到 应用 程序 。示例 如下 :wsl2-docker-for-desktop 的 最 大 值 。
ccrfmcuu4#
我使用Docker-Desktop版本安装nginx-ingress控制器https://kubernetes.github.io/ingress-nginx/deploy/#docker-desktop
curl 度http://kubernetes.docker.internal/
当然,我还没有安装任何工作负载,但默认的入口控制器工作正常。
xoshrz7s5#
使用Kustomize,您只需使用