Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么可以';我不能在Windows上访问从Minikube公开的服务吗?_Windows_Kubernetes_Service_Minikube - Fatal编程技术网

为什么可以';我不能在Windows上访问从Minikube公开的服务吗?

为什么可以';我不能在Windows上访问从Minikube公开的服务吗?,windows,kubernetes,service,minikube,Windows,Kubernetes,Service,Minikube,我是库伯内特斯的新手。我使用Angular前端应用程序的两个副本成功创建了一个部署,但当我使用服务公开它并尝试使用“minikube服务名称”访问该服务时,浏览器无法显示该应用程序 这是我的docker文件 FROM registry.gitlab.informatica.aci.it/ccsc/images/nodejs/10_15 LABEL maintainer="d.vaccaro@informatica.aci.it" name="assistenza-fo" version="v1

我是库伯内特斯的新手。我使用Angular前端应用程序的两个副本成功创建了一个部署,但当我使用服务公开它并尝试使用“minikube服务名称”访问该服务时,浏览器无法显示该应用程序

这是我的docker文件

FROM registry.gitlab.informatica.aci.it/ccsc/images/nodejs/10_15

LABEL maintainer="d.vaccaro@informatica.aci.it" name="assistenza-fo" version="v1.0.0" license=""

WORKDIR /usr/src/app

ARG PRODUCTION_MODE="false"

ENV NODE_ENV='development'
ENV HTTP_PORT=4200

COPY package*.json ./

RUN if [ "${PRODUCTION_MODE}" = "true" ] || [ "${PRODUCTION_MODE}" = "1" ]; then \
    echo "Build di produzione"; \
    npm ci --production ; \
    else \
    echo "Build di sviluppo"; \
    npm ci ; \
fi

RUN npm audit fix

RUN npm install -g @angular/cli

COPY dockerize /usr/local/bin

RUN chmod +x /usr/local/bin/dockerize

COPY . .

EXPOSE 4200

CMD ng serve --host 0.0.0.0
吊舱说明

Name:           assistenza-fo-674f85c547-bzf8g
Namespace:      default
Priority:       0
Node:           minikube/172.17.0.2
Start Time:     Sun, 19 Apr 2020 12:41:06 +0200
Labels:         pod-template-hash=674f85c547
                run=assistenza-fo
Annotations:    <none>
Status:         Running
IP:             172.18.0.6
Controlled By:  ReplicaSet/assistenza-fo-674f85c547
Containers:
  assistenza-fo:
    Container ID:   docker://ef2bfb66d22dea56b2dc0e49e875376bf1edff369274015445806451582703a0
    Image:          registry.gitlab.informatica.aci.it/apra/sta-r/assistenza/assistenza-fo:latest
    Image ID:       docker-pullable://registry.gitlab.informatica.aci.it/apra/sta-r/assistenza/assistenza-fo@sha256:8d02a3e69d6798c1ac88815ef785e05aba6e394eb21f806bbc25fb761cca5a98
    Port:           4200/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Sun, 19 Apr 2020 12:41:08 +0200
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-zdrwg (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  default-token-zdrwg:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-zdrwg
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:          <none>
Name:                   assistenza-fo
Namespace:              default
CreationTimestamp:      Sun, 19 Apr 2020 12:41:06 +0200
Labels:                 run=assistenza-fo
Annotations:            deployment.kubernetes.io/revision: 1
Selector:               run=assistenza-fo
Replicas:               2 desired | 2 updated | 2 total | 2 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:  run=assistenza-fo
  Containers:
   assistenza-fo:
    Image:        registry.gitlab.informatica.aci.it/apra/sta-r/assistenza/assistenza-fo:latest
    Port:         4200/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   assistenza-fo-674f85c547 (2/2 replicas created)
Events:          <none>
Name:                     assistenza-fo
Namespace:                default
Labels:                   run=assistenza-fo
Annotations:              <none>
Selector:                 run=assistenza-fo
Type:                     LoadBalancer
IP:                       10.97.3.206
Port:                     <unset>  4200/TCP
TargetPort:               4200/TCP
NodePort:                 <unset>  30375/TCP
Endpoints:                172.18.0.6:4200,172.18.0.7:4200
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>
我得到以下输出:

|-----------|---------------|-------------|-------------------------|
| NAMESPACE |     NAME      | TARGET PORT |           URL           |
|-----------|---------------|-------------|-------------------------|
| default   | assistenza-fo |        4200 | http://172.17.0.2:30375 |
|-----------|---------------|-------------|-------------------------|
* Opening service default/assistenza-fo in default browser...
但Chrome打印出“无法到达站点”表示超时

多谢各位

编辑

我再次创建了该服务,这次是作为节点端口服务。仍然不起作用。以下是服务说明:

Name:                     assistenza-fo
Namespace:                default
Labels:                   run=assistenza-fo
Annotations:              <none>
Selector:                 run=assistenza-fo
Type:                     NodePort
IP:                       10.107.46.43
Port:                     <unset>  4200/TCP
TargetPort:               4200/TCP
NodePort:                 <unset>  30649/TCP
Endpoints:                172.18.0.7:4200,172.18.0.8:4200
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>
名称:阿西斯滕扎·福
名称空间:默认值
标签:run=assistenza fo
注释:
选择器:run=assistenza fo
类型:节点端口
IP:10.107.46.43
端口:4200/TCP
目标端口:4200/TCP
节点端口:30649/TCP
终点:172.18.0.7:4200172.18.0.8:4200
会话关联:无
外部流量策略:群集
活动:

我能够重现您的问题

这实际上是运行Docker驱动程序的Windows最新版本Minikube上的一个错误:
--Driver=Docker

  • 你可以在这里看到:
  • 它已通过合并进行修补:
  • 现在可以在
为了使其正常工作,请从以下网站下载测试版:

  • 将其移动到您的工作文件夹,并将其重命名为
    minikube.exe

  • Minikube现在正在v1.10.0-beta.0版本上运行,现在您可以按预期运行该服务(请注意,该命令将不可用,因为它将通过隧道连接:

  • 浏览器将自动打开,您的服务将可用:


如果您有任何疑问,请在评论中告诉我。

kubectl运行assistenza fo-image=“注册表上的图像地址”-port=4200-replicas=2实际上,您使用的指令EXPOSE 4200仅用于文档目的。它并没有真正公开端口。因此您需要使用所示的
kubectl EXPOSE
命令来公开它。另外请注意,我提到的链接中给出的示例只是为了给出一个想法。该示例用于exp在集群之外关闭服务,这可能不是您的情况。我刚刚删除了我的服务,并使用以下指令重新创建了它:“kubectl expose deployment assistenza fo--type=LoadBalancer--port=4200”,但结果是一样的。实际上,我目前没有任何特定的用例,我只是在尝试学习:)但是我想不出为什么我够不着豆荚。谢谢您的建议您可以尝试以下操作,然后运行
minikube service assistenza fo
命令吗
kubectl expose deployment assistenza fo--type=NodePort--port=4200
谢谢willof!我现在可以在浏览器上查看我的应用程序。我唯一不明白的是:我的服务的节点端口如下:“NodePort:31378/TCP”。但当浏览器启动时,它指向以下URL:。我的理解是应该这样。我认为这与minikube进行的隧道挖掘有关。。。对吗?Docker Desktop for Windows(我们正在使用的驱动程序)这就是Minikube创建隧道来路由流量并选择其他端口的原因。这并不漂亮,但它是目前的状态。如果您运行Windows 10 Pro/Enterprise/Education或Windows 10 Home的原始版本,则可以使用完整的连接。
Name:                     assistenza-fo
Namespace:                default
Labels:                   run=assistenza-fo
Annotations:              <none>
Selector:                 run=assistenza-fo
Type:                     NodePort
IP:                       10.107.46.43
Port:                     <unset>  4200/TCP
TargetPort:               4200/TCP
NodePort:                 <unset>  30649/TCP
Endpoints:                172.18.0.7:4200,172.18.0.8:4200
Session Affinity:         None
External Traffic Policy:  Cluster
Events:                   <none>
C:\Kubernetes>rename minikube-windows-amd64.exe minikube.exe

C:\Kubernetes>dir
22/04/2020  21:10    <DIR>          .
22/04/2020  21:10    <DIR>          ..
22/04/2020  21:04        55.480.832 minikube.exe
22/04/2020  20:05               489 nginx.yaml
               2 File(s)     55.481.321 bytes
C:\Kubernetes>minikube.exe start --driver=docker
* minikube v1.10.0-beta.0 on Microsoft Windows 10 Pro 10.0.18363 Build 18363
* Using the docker driver based on existing profile
* Starting control plane node minikube in cluster minikube
* Pulling base image ...
* Restarting existing docker container for "minikube" ...
* Preparing Kubernetes v1.18.0 on Docker 19.03.2 ...
  - kubeadm.pod-network-cidr=10.244.0.0/16
* Enabled addons: dashboard, default-storageclass, storage-provisioner
* Done! kubectl is now configured to use "minikube"

C:\Kubernetes>kubectl get all
NAME                        READY   STATUS    RESTARTS   AGE
pod/nginx-76df748b9-t6q59   1/1     Running   1          78m

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        85m
service/nginx-svc    NodePort    10.100.212.15   <none>        80:31027/TCP   78m

NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/nginx   1/1     1            1           78m

NAME                              DESIRED   CURRENT   READY   AGE
replicaset.apps/nginx-76df748b9   1         1         1       78m