我的pod上运行了reactjs应用,并且已经将源代码从主机安装到了pod上。它工作正常,但是当我在主机中更改代码时,pod源代码也会更改,但是当我运行站点时,它并没有影响应用程序。这是我的清单,我做错了什么?
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: webapp
spec:
replicas: 1
minReadySeconds: 15
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
template:
metadata:
labels:
app: webapp
tier: frontend
phase: development
spec:
containers:
- name: webapp
image: xxxxxx
command:
- npm
args:
- run
- dev
env:
- name: environment
value: dev
- name: AUTHOR
value: webapp
ports:
- containerPort: 3000
volumeMounts:
- mountPath: /code
name: code
imagePullSecrets:
- name: regcred
volumes:
- name: code
hostPath:
path: /hosthome/xxxx/development/react-app/src
我知道npm不在监视我的更改,我如何在豆荚中解决它?
答案 0 :(得分:1)
基本上,每次更改代码时都需要重新加载应用程序,并且在/code
目录下更改代码时,pod不会重新加载或重新启动。由于您正在使用部署,因此您将不得不重新创建pod,您可以:
kubectl delete <pod-where-your-app-is-running>
或
export PATCH='{"spec":{"template":{"metadata":{"annotations":{"timestamp":"'$(date)'"}}}}}'
kubectl patch deployment webapp -p "$PATCH"
之后,您的Pod应该重新启动。
答案 1 :(得分:0)
Rico所说的是正确的,您需要对每个更改进行修补或重建,但是可以通过在没有vm-driver的情况下运行minikube来避免这种情况,这是在没有vm-driver的情况下运行minikube的命令,仅在Linux中有效您可以将主机路径安装到Pod。希望这会有所帮助
sudo minikube start --bootstrapper=localkube --vm-driver=none --apiserver-ips 127.0.0.1 --apiserver-name localhost -v=1