栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在本地访问nginx入口?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在本地访问nginx入口?

我已经设法在Windows的Docker上的Kubernetes中创建Ingress资源。

重现步骤

  • 启用Hyper-V
  • 安装适用于Windows的Docker并启用Kubernetes
  • 连接kubectl
  • 启用入口
  • 创建部署
  • 建立服务
  • 创建入口资源
  • 将主机添加到本地主机文件
  • 测试

启用[Hyper-V](https://docs.microsoft.com/pl-pl/virtualization/hyper-v-on-

windows/quick-start/enable-hyper-v)

在具有管理员访问权限的Powershell中,运行以下命令:

Enable-WindowsOptionalFeature -online -FeatureName Microsoft-Hyper-V -All

系统可能会要求您重新启动计算机。

安装适用于Windows的Docker并启用Kubernetes

使用所有默认选项安装Docker应用程序并启用Kubernetes

连接kubectl

安装kubectl。

启用入口

运行以下命令:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yamlkubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud-generic.yaml

编辑: 确保没有其他服务正在使用端口80

重新启动机器。在

cmd
以管理员身份运行的提示下,执行以下操作:使用
net stop http
停止列出的服务
services.msc

使用:

netstat -a -n -o -b
检查端口80上侦听的其他进程。

创建部署

以下是具有可响应请求的Pod的简单部署:

apiVersion: apps/v1kind: Deploymentmetadata:  name: hellospec:  selector:    matchLabels:      app: hello      version: 2.0.0  replicas: 3  template:    metadata:      labels:        app: hello        version: 2.0.0    spec:      containers:      - name: hello        image: "gcr.io/google-samples/hello-app:2.0"        env:        - name: "PORT"          value: "50001"

通过运行命令应用它:

$ kubectl apply -f file_name.yaml

建立服务

为了使Pod能够与您进行通信,您需要创建服务。

下面的例子:

apiVersion: v1kind: Servicemetadata:  name: hello-servicespec:  type: NodePort  selector:    app: hello    version: 2.0.0  ports:  - name: http    protocol: TCP    port: 80    targetPort: 50001

通过运行以下命令来应用此服务定义:

$ kubectl apply -f file_name.yaml

创建入口资源

以下是使用上面创建的服务的简单Ingress资源:

apiVersion: extensions/v1beta1kind: Ingressmetadata:  name: hello-ingress spec:  rules:  - host: kubernetes.docker.internal    http:      paths:      - path: /        backend:          serviceName: hello-serviceservicePort: http

看一眼:

spec:  rules:  - host: hello-test.internal

hello-test.internal
将用作
hostname
连接到您的广告连播。

通过调用命令来应用您的Ingress资源:

$ kubectl apply -f file_name.yaml

将主机添加到本地主机文件

我找到了这个Github链接,该链接可让您通过连接到Ingress资源

hostname

为此,

127.0.0.1 hello-test.internal
请在
C:WindowsSystem32driversetchosts
文件中添加一行并保存。您将需要管理员权限才能执行此操作。

编辑: Windows的最新版本的Docker桌面已经添加了一个主机文件条目:

127.0.0.1kubernetes.docker.internal

测试

通过调用命令显示有关Ingress资源的信息:

kubectl get ingress

它应该显示:

NAME HOSTS      ADDRESS     PORTS   AGEhello-ingress   hello-test.internal   localhost   80      6m2s

现在,您可以打开网络浏览器并输入以下内容来访问Ingress资源

http://kubernetes.docker.internal/

浏览器应输出:

Hello, world!Version: 2.0.0Hostname: hello-84d554cbdf-2lr76

Hostname: hello-84d554cbdf-2lr76
是所回复的广告连播的名称。

:如果此解决方案不工作与命令请检查连接

netstat -a -n -o
使用管理员权限 ,如果事情没有使用端口80)。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/401276.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号