Node.js kubernetes中的NodeJs api容器崩溃
作为CICD管道的一部分,我将我的web api部署到kubernetes,我正在研究的最新分支不断崩溃 我已经确保所有配置的应用程序都在本地运行,主分支上的CICD管道也成功运行。我假设是我引入的一些更改导致应用程序失败,但我在日志中看不到任何问题 这是我的文件Node.js kubernetes中的NodeJs api容器崩溃,node.js,express,kubernetes,continuous-integration,continuous-deployment,Node.js,Express,Kubernetes,Continuous Integration,Continuous Deployment,作为CICD管道的一部分,我将我的web api部署到kubernetes,我正在研究的最新分支不断崩溃 我已经确保所有配置的应用程序都在本地运行,主分支上的CICD管道也成功运行。我假设是我引入的一些更改导致应用程序失败,但我在日志中看不到任何问题 这是我的文件 FROM node:12 WORKDIR /usr/src/app ARG NODE_ENV ENV NODE_ENV $NODE_ENV COPY package.json /usr/src/app/ RUN npm inst
FROM node:12
WORKDIR /usr/src/app
ARG NODE_ENV
ENV NODE_ENV $NODE_ENV
COPY package.json /usr/src/app/
RUN npm install
COPY . /usr/src/app
ENV PORT 5000
EXPOSE $PORT
CMD [ "npm", "start" ]
这是我在相应的pod上运行kubectl Descripte时得到的结果
Controlled By: ReplicaSet/review-refactor-e-0jmik1-7f75c45779
Containers:
auto-deploy-app:
Container ID: docker://8d6035b8ee0938262ea50e2f74d3ab627761fdf5b1811460b24f94a74f880810
Image: registry.gitlab.com/hidden-fox/metadata-service/refactor-endpoints:5e986c65d41743d9d6e6ede441a1cae316b3e751
Image ID: docker-pullable://registry.gitlab.com/hidden-fox/metadata-service/refactor-endpoints@sha256:de1e4478867f54a76f1c82374dcebb1d40b3eb0cde24caf936a21a4d16471312
Port: 5000/TCP
Host Port: 0/TCP
State: Waiting
Reason: CrashLoopBackOff
Last State: Terminated
Reason: Completed
Exit Code: 0
Started: Sat, 27 Jul 2019 19:18:07 +0100
Finished: Sat, 27 Jul 2019 19:18:49 +0100
Ready: False
Restart Count: 7
Liveness: http-get http://:5000/ delay=15s timeout=15s period=10s #success=1 #failure=3
Readiness: http-get http://:5000/ delay=5s timeout=3s period=10s #success=1 #failure=3
Environment Variables from:
review-refactor-e-0jmik1-secret Secret Optional: false
Environment:
DATABASE_URL: postgres://:@review-refactor-e-0jmik1-postgres:5432/
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-mvvfv (ro)
Conditions:
Type Status
Initialized True
Ready False
ContainersReady False
PodScheduled True
Volumes:
default-token-mvvfv:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-mvvfv
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 9m52s default-scheduler Successfully assigned metadata-service-13359548/review-refactor-e-0jmik1-7f75c45779-jfw22 to gke-qa2-default-pool-4dc045be-g8d9
Normal Pulling 9m51s kubelet, gke-qa2-default-pool-4dc045be-g8d9 pulling image "registry.gitlab.com/hidden-fox/metadata-service/refactor-endpoints:5e986c65d41743d9d6e6ede441a1cae316b3e751"
Normal Pulled 9m45s kubelet, gke-qa2-default-pool-4dc045be-g8d9 Successfully pulled image "registry.gitlab.com/hidden-fox/metadata-service/refactor-endpoints:5e986c65d41743d9d6e6ede441a1cae316b3e751"
Warning Unhealthy 8m58s kubelet, gke-qa2-default-pool-4dc045be-g8d9 Readiness probe failed: Get http://10.48.1.34:5000/: dial tcp 10.48.1.34:5000: connect: connection refused
Warning Unhealthy 8m28s (x6 over 9m28s) kubelet, gke-qa2-default-pool-4dc045be-g8d9 Readiness probe failed: HTTP probe failed with statuscode: 404
Normal Started 8m23s (x3 over 9m42s) kubelet, gke-qa2-default-pool-4dc045be-g8d9 Started container
Warning Unhealthy 8m23s (x6 over 9m23s) kubelet, gke-qa2-default-pool-4dc045be-g8d9 Liveness probe failed: HTTP probe failed with statuscode: 404
Normal Killing 8m23s (x2 over 9m3s) kubelet, gke-qa2-default-pool-4dc045be-g8d9 Killing container with id docker://auto-deploy-app:Container failed liveness probe.. Container will be killed and recreated.
Normal Pulled 8m23s (x2 over 9m3s) kubelet, gke-qa2-default-pool-4dc045be-g8d9 Container image "registry.gitlab.com/hidden-fox/metadata-service/refactor-endpoints:5e986c65d41743d9d6e6ede441a1cae316b3e751" already present on machine
Normal Created 8m23s (x3 over 9m43s) kubelet, gke-qa2-default-pool-4dc045be-g8d9 Created container
Warning BackOff 4m42s (x7 over 5m43s) kubelet, gke-qa2-default-pool-4dc045be-g8d9 Back-off restarting failed container
由以下人员控制:ReplicaSet/review-refactor-e-0jmik1-7f75c45779
容器:
自动部署应用程序:
容器ID:docker://8d6035b8ee0938262ea50e2f74d3ab627761fdf5b1811460b24f94a74f880810
图片:registry.gitlab.com/hidden fox/metadata service/refactor endpoints:5e986c65d41743d9d6e6ede441a1cae316b3e751
图像ID:docker-pullable://registry.gitlab.com/hidden-fox/metadata-service/refactor-endpoints@sha256:DE1E4478867F54A76F1C82374DCEB1D40B3EB0DE24CAF936A21A4D16471312
端口:5000/TCP
主机端口:0/TCP
国家:等待
原因:仓促退却
最后状态:终止
原因:已完成
退出代码:0
开始时间:2019年7月27日星期六19:18:07+0100
完成时间:2019年7月27日星期六19:18:49+0100
就绪:错误
重新启动计数:7
活跃度:http get http://:5000/延迟=15s超时=15s周期=10s#成功=1#失败=3
准备就绪:http get http://:5000/延迟=5s超时=3s周期=10s成功=1失败=3
环境变量来自:
review-refactor-e-0jmik1-secret secret可选:false
环境:
数据库URL:postgres://:@review-refactor-e-0jmik1-postgres:5432/
挂载:
/来自默认令牌mvvfv(ro)的var/run/secrets/kubernetes.io/serviceCount
条件:
类型状态
初始化为True
准备错误
集装箱准备好了吗
播客预定为真
卷数:
默认令牌mvvfv:
类型:Secret(由Secret填充的卷)
SecretName:默认令牌mvvfv
可选:false
QoS等级:最佳努力
节点选择器:
容差:node.kubernetes.io/未就绪:不执行300秒
node.kubernetes.io/不可访问:不执行300秒
活动:
从消息中键入原因年龄
---- ------ ---- ---- -------
正常计划的9m52s默认计划程序已成功将metadata-service-13359548/review-refactor-e-0jmik1-7f75c45779-jfw22分配给gke-qa2-default-pool-4dc045be-g8d9
正常拉取9m51s kubelet,gke-qa2-default-pool-4dc045be-g8d9拉取映像“registry.gitlab.com/hidden fox/metadata service/refactor endpoints:5E986C65D41743D9D6E6ED441A1CAE316B3E751”
正常拉取9m45s kubelet,gke-qa2-default-pool-4dc045be-g8d9成功拉取图像“registry.gitlab.com/hidden fox/metadata service/refactor endpoints:5E986C65D41743D9D6E6ED441A1CAE316B3E751”
警告8m58s kubelet,gke-qa2-default-pool-4dc045be-g8d9准备就绪探测失败:获取http://10.48.1.34:5000/: 拨打tcp 10.48.1.34:5000:连接:连接被拒绝
警告不健康8m28s(x6超过9m28s)kubelet,gke-qa2-default-pool-4DC04BE-g8d9就绪探测失败:HTTP探测失败,状态代码:404
正常启动8m23s(x3超过9m42s)kubelet,gke-qa2-default-pool-4dc045be-g8d9启动容器
警告不健康8m23s(x6大于9m23s)kubelet,gke-qa2-default-pool-4DC04BE-g8d9活动性探测失败:HTTP探测失败,状态代码:404
正常压井8m23s(x2/9m3s)kubelet,gke-qa2-default-pool-4dc045be-g8d9压井容器,id为docker://auto-deploy-app:Container 活动性探测失败。。容器将被终止并重新创建。
正常拉取8m23s(x2/9m3s)kubelet,gke-qa2-default-pool-4dc045be-g8d9容器映像“registry.gitlab.com/hidden fox/metadata service/refactor endpoints:5E986C65D41743D9D6E6ED441A1CAE316B3E751”已存在于计算机上
正常创建的8m23s(x3大于9m43s)kubelet,gke-qa2-default-pool-4dc045be-g8d9创建的容器
警告后退4m42s(x7超过5m43s)kubelet,gke-qa2-default-pool-4DC04BE-g8d9后退重新启动失败的容器
我希望该应用程序能够部署到kubernetes上,但我看到kubernetes上出现了一个CrashLoopBackOff错误
我在日志中也没有看到任何特定于应用程序的错误。我找到了答案。我必须添加一个映射到根url的端点,显然作为CD的一部分,它会得到ping,如果没有响应,那么作业就会失败