尝试在kubernetes上运行ui(app)时出错? [英] error when trying to run ui (app) on kubernetes?
问题描述
基本上,当我尝试使用kubectl在kubernetess上运行我的应用程序(UI)时,广告连播失败并显示错误.
Basically when i try to run my app(UI) on kubernetess using kubectl the pod fails and says error.
豆荚的日志
> wootz@0.1.0 start /usr/src/app
> node scripts/start.js
internal/modules/cjs/loader.js:626
throw err;
^
Error: Cannot find module 'react-dev-utils/chalk'
Require stack:
- /usr/src/app/scripts/start.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:623:15)
at Function.Module._load (internal/modules/cjs/loader.js:527:27)
at Module.require (internal/modules/cjs/loader.js:681:19)
at require (internal/modules/cjs/helpers.js:16:16)
at Object.<anonymous> (/usr/src/app/scripts/start.js:19:15)
at Module._compile (internal/modules/cjs/loader.js:774:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:785:10)
at Module.load (internal/modules/cjs/loader.js:641:32)
at Function.Module._load (internal/modules/cjs/loader.js:556:12)
at Function.Module.runMain (internal/modules/cjs/loader.js:837:10) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/usr/src/app/scripts/start.js' ]
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! wootz@0.1.0 start: `node scripts/start.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the wootz@0.1.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional log ging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2019-06-17T15_56_02_649Z-debug.log
uipersistantvolume
uipersistantvolume
kind: PersistentVolume
apiVersion: v1
metadata:
name: ui-initdb-pv-volume
labels:
type: local
app: ui
spec:
storageClassName: manual
capacity:
storage: 1Mi
accessModes:
- ReadOnlyMany
hostPath:
path: "/home/vignesh/pagedesigneryamls/client"
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: ui-initdb-pv-claim-one
labels:
app: ui
spec:
storageClassName: manual
accessModes:
- ReadOnlyMany
resources:
requests:
storage: 1Mi
uipersistantvolumetwo
uipersistantvolumetwo
kind: PersistentVolume
apiVersion: v1
metadata:
name: ui-initdb-pv-volume-two
labels:
type: local
app: ui
spec:
storageClassName: manual
capacity:
storage: 1Mi
accessModes:
- ReadOnlyMany
hostPath:
path: "/home/vignesh/pagedesigneryamls/client"
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: ui-initdb-pv-claim-two
labels:
app: ui
spec:
storageClassName: manual
accessModes:
- ReadOnlyMany
resources:
requests:
storage: 1Mi
ui.yaml
apiVersion: v1
kind: Service
metadata:
name: ui
labels:
app: ui
spec:
ports:
- name: myport
port: 80
targetPort: 3000
selector:
app: ui
tier: frontend
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: ui
labels:
app: ui
spec:
selector:
matchLabels:
app: ui
tier: frontend
strategy:
type: Recreate
template:
metadata:
labels:
app: ui
tier: frontend
spec:
containers:
- image: suji165475/devops-sample:updatedclientdockerfile
name: ui
ports:
- containerPort: 80
name: myport
volumeMounts:
- name: ui-persistent-storage-one
mountPath: /usr/src/app
- name: ui-persistent-storage-two
mountPath: /usr/src/app/node_modules
volumes:
- name: ui-persistent-storage-one
persistentVolumeClaim:
claimName: ui-initdb-pv-claim-one
- name: ui-persistent-storage-two
persistentVolumeClaim:
claimName: ui-initdb-pv-claim-two
ui yaml中使用的图像是使用以下dockerfile构建的
the image used in the ui yaml was built using the following dockerfile
FROM node:12.4.0-alpine
RUN mkdir -p usr/src/app
WORKDIR /usr/src/app
COPY package.json package.json
RUN npm install && npm cache clean --force
RUN npm install -g webpack-cli
WORKDIR /usr/src/app
COPY . .
WORKDIR /usr/src/app
EXPOSE 3000
RUN npm run build
CMD [ "npm","start" ]
我该如何解决错误找不到模块'react-dev-utils/chalk'? dockerfile中缺少任何内容吗?
how can i solve the error Cannot find module 'react-dev-utils/chalk'?? Is there anything missing from the dockerfile??
推荐答案
删除所有卷,持久卷和持久卷声明所有.您的代码在图像中(您可以通过COPY . .
进入),应该从那里运行它.
Delete all of the volumes, persistent volumes, and persistent volume claims. Your code is in your image (you COPY . .
to get it in) and you should run it from there.
Kubernetes非常不适合用作实时开发环境.请注意,您在尝试将本地源代码注入容器中所花费的YAML空间比部署中的其他所有项目都多.在实际的生产设置中,您还必须确保源代码可以连接到每个节点(并假设您甚至可以访问这些节点;在许多云托管环境中则不会).
Kubernetes is extremely ill-suited to be a live development environment. Notice here that you’re spending more YAML space on trying to inject your local source code into the container than everything else in your deployment combined; in a real production setup you’d also have to make sure your source code gets on to every single node (and assumes you even have access to the nodes; in many cloud-hosted environments you won’t).
我建议您正常开发您的应用程序-不使用Docker,不使用Kubernetes-仅当它能够正常工作时,才需要打包和部署它.在Kubernetes中滚动零停机时间重新启动之类的事情与开发环境中的实时代码重新加载完全不同.
I’d recommend developing your application normally — no Docker, no Kubernetes — and only once it works, worry about packaging it up and deploying it. Things like rolling zero-downtime restarts in Kubernetes are rather different from live code reloads in a development environment.
这篇关于尝试在kubernetes上运行ui(app)时出错?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!