我让Skaffold与本地开发服务器和数据库部署配合良好。我正在尝试在create-react-app
前端工作,但是行为异常缓慢且不稳定。
问题
主要问题如下:
skaffold dev --port-forward --tail
最终运行起来需要5分钟以上的时间。运行仅需docker build
不到30秒。Starting the development server...
需要再等待两分钟即可。然后,十分之九,几分钟后出现以下错误(有3个,因为那是多少个副本):
十分之一,它实际上会进入。但Compiled Successfully! You can now view in the browser.
它永远不会在Chrome中启动。
Syncing 1 files for <image>... Watching for changes...
,但是即使刷新后也不会改变。我尝试过的
create-react-app
应用程序。无论如何,行为都是相同的。minikube delete
并minikube start
数次(这样做是因为即使是服务器部署开始尝试后无法正常作用create-react-app
)复制代码和步骤
我在macOS Mojave(10.14.6)上使用Docker for Mac,Kubernetes(v1.16.0),minikube(v1.4.0),Skaffold(v0.39.0)和create-react-app
。由于这相当冗长,因此我将不得不跳过所有这些安装过程,因此以下步骤假定您已经进行了设置。
制作项目目录:
mkdir project
创建一个Kubernetes清单目录并进入其中:
mkdir k8s && cd k8s
制作client-deployment.yaml
并添加以下内容:
apiVersion: apps/v1
kind: Deployment
metadata:
name: client-deployment
spec:
replicas: 3
selector:
matchLabels:
component: web
template:
metadata:
labels:
component: web
spec:
containers:
- name: client
image: testapp/client
ports:
- containerPort: 3000
制作client-cluster-ip-service.yaml
并添加以下内容:
apiVersion: v1
kind: Service
metadata:
name: client-cluster-ip-service
spec:
type: ClusterIP
selector:
component: web
ports:
- port: 3000
targetPort: 3000
返回到父级:
cd ..
创建一个skaffold.yaml
并添加以下内容:
apiVersion: skaffold/v1beta15
kind: Config
build:
local:
push: false
artifacts:
- image: testapp/client
context: web
docker:
dockerfile: Dockerfile.dev
sync:
manual:
- src: "**/*.js"
dest: .
- src: "**/*.html"
dest: .
- src: "**/*.css"
dest: .
deploy:
kubectl:
manifests:
- k8s/client-deployment.yaml
- k8s/client-cluster-ip-service.yaml
portForward:
- resourceType: service
resourceName: client-cluster-ip-service
port: 3000
localPort: 3000
开始一个新create-react-app
项目:
npx create-react-app test-app
转到目录:
cd test-app
创建一个Dockerfile.dev
并添加以下内容:
FROM node:alpine
WORKDIR '/app'
EXPOSE 3000
CMD ["npm", "run", "start"]
COPY package* ./
RUN npm install
COPY . .
创建一个.dockerignore
文件并添加以下内容:
node_modules
*.swp
返回父目录:
cd ..
确保minikube
正在运行:
minikube start
运行skaffold.yaml
:
skaffold dev --port-forward --tail
这就是给我带来问题的原因。
好。漠视。从一个副本开始,效果很好。两个工作正常。如果skaffold
已经开始运行,那么三个就可以了,但是不是刚开始运行的skaffold dev --port-forward --tail
。
skaffold ssh
然后做了一个top
。内存用完了……利用率高达86%。将其从默认的2GB增加到8GB,现在可以正常使用了。
首先使用删除VM,minikube delete
然后使用创建新的VM minikube start --memory='8g'
。现在一切都好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句