Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.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
Docker 当我通过节点端口I访问应用程序时,不会拾取更改_Docker_Kubernetes_Kubectl_Minikube_Kubernetes Ingress - Fatal编程技术网

Docker 当我通过节点端口I访问应用程序时,不会拾取更改

Docker 当我通过节点端口I访问应用程序时,不会拾取更改,docker,kubernetes,kubectl,minikube,kubernetes-ingress,Docker,Kubernetes,Kubectl,Minikube,Kubernetes Ingress,我用的是minikube 我的部署文件 apiVersion: apps/v1 kind: Deployment metadata: name: phpdeployment spec: replicas: 3 selector: matchLabels: app: phpapp template: metadata: labels: app: phpapp spec: containers:

我用的是minikube

我的部署文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: phpdeployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: phpapp
  template:
    metadata:
      labels:
        app: phpapp
    spec:
      containers:
      - image: rajendar38/myhtmlapp:latest
        name: php
        ports:
        - containerPort: 80

ingress
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
spec:
  backend:
    serviceName: php-service
    servicePort: 80

this is my service
apiVersion: v1
kind: Service
metadata:
  name: php-service
spec:
  selector:
    app: phpapp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 31000
  type: NodePort
我构建的简单php应用程序docker镜像我可以访问 两方面

在此之后,我:

  • 更新了我的php应用程序
  • 再次创建图像,推送到Docker Hub
  • 删除所有资源
  • kubectl删除全部--全部
  • 然后强制应用部署和服务

但使用节点端口方式,我可以访问旧的应用程序。但通过入口方式,我可以获取访问更改

请查看类似信息

您必须知道容器端口是容器侦听的端口。服务端口是kubernetes服务在集群内部ip上公开并映射到容器端口的端口。Nodeport是主机上公开的端口,映射到kubernetes服务

NodePort允许您通过在服务的类型中指定该值来公开服务。另一方面,入口对于您的服务来说是完全独立的资源。您可以向您的服务单独声明、创建和销毁它。 由于服务类型NodePort,您可以公开两个端口(31000、80)

您的配置文件应类似于:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: phpdeployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: phpapp
  template:
    metadata:
      labels:
        app: phpapp
    spec:
      containers:
      - image: rajendar38/myhtmlapp:latest
        name: php
        command: [ "/bin/bash", "-ce", "tail -f /dev/null" ]
        ports:
        - containerPort: 80
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: example-ingress
  annotations:
    ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
        - path: /example
          backend:
            serviceName: php
            servicePort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: php
spec:
  selector:
    app: php
  ports:
    - port: 31000
      targetPort: 80
      protocol: TCP
      name:
  type: NodePort
然后公开部署:

$ kubectl expose deployment phpdeployment --type=NodePort

官方文档:,。

这是浏览器缓存问题,一旦使用专用会话,它工作正常

您是自己编写部署文件还是最初使用
kubectl
CLI进行部署?因为您可以使用CLI命令覆盖部署文件,例如:
kubectl expose deployment phpdeployment-n YOURNAMESPACE--type=NodePort
发布之前是否看到此问题: