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



我正在使用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镜像我可以访问

  • http://192.168.99.100/test.html
  • http://192.168.99.100:31000/test.html

之后I:

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

但使用节点端口方式,我可以访问旧的应用程序。但有了Ingress的方式,我可以访问上的更改

请查看类似的问题。

要知道container端口就是container监听的端口,Service端口就是kubernetes服务在集群内部ip上公开并映射到container端口的端口,Nodeport就是主机上公开并镜像到kubernete服务的端口。

NodePort允许您通过在服务的类型中指定该值来公开服务。另一方面,Ingress对于您的服务来说是一种完全独立的资源。您可以将其单独声明、创建和销毁给您的服务。由于服务类型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

官方文档:kubernetes服务nodeport,kubernetesingress,kubernet部署暴露。

这是浏览器缓存问题,一旦使用私人会话,它就可以正常工作

相关内容

  • 没有找到相关文章

最新更新