Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js nodejs kubernetes无法执行滚动更新_Node.js_Kubernetes_Google Cloud Platform_Google Kubernetes Engine - Fatal编程技术网

Node.js nodejs kubernetes无法执行滚动更新

Node.js nodejs kubernetes无法执行滚动更新,node.js,kubernetes,google-cloud-platform,google-kubernetes-engine,Node.js,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,要在生产环境中部署express node.js api,我想使用kubernetes 这些步骤如下: 在谷歌云中创建集群 将代码从git克隆到集群 docker build-t gcr.io/[GCLOUDID]/app:v1 docker pushgcr.io/[GCLOUDID]/app:v1 kubectl运行应用程序——image=gcr.io/[GCLOUDID]/app:v1 这运行得很好,但是当我想更新代码时,我有点迷路了。 我试图构建一个v2(docker build-t

要在生产环境中部署express node.js api,我想使用kubernetes 这些步骤如下:

  • 在谷歌云中创建集群
  • 将代码从git克隆到集群
  • docker build-t gcr.io/[GCLOUDID]/app:v1
  • docker pushgcr.io/[GCLOUDID]/app:v1
  • kubectl运行应用程序——image=gcr.io/[GCLOUDID]/app:v1
这运行得很好,但是当我想更新代码时,我有点迷路了。 我试图构建一个v2(docker build-t gcr.io/[GCLOUDID]/app:v2) 并通过kubectl设置映像部署/app app=gcr.io/[GCLOUDID]/app:v2设置映像

此方法抛出所有类型的错误(例如imagepullbackoff、crashloopbackoff)

使用此dockerfile时:

FROM node:11-alpine

WORKDIR /

COPY . /
RUN rm -rf node_modules
RUN rm -rf package-lock.json

RUN apk update && apk upgrade \
   && apk add --no-cache git \
   && apk --no-cache add --virtual builds-deps build-base python \
   && npm rebuild bcrypt --build-from-source

# Install imagemagick with support to native library
RUN apk add --no-cache file
RUN apk --update add imagemagick

RUN npm install 

ENV TYPE=docker

EXPOSE 80

CMD [ "npm", "start" ]

通过构建将容器嵌入到部署中的yaml,使用kubernetes声明性语法。这是清洁,将保持你的组织。无论何时需要更新,只要更改映像名称并运行
kubectl apply-f deployment.yaml
。您不仅会更新图像,而且还会以蓝绿色的方式进行更新。 检查这个例子


通过构建将容器嵌入到部署中的yaml,使用kubernetes声明性语法。这是清洁,将保持你的组织。无论何时需要更新,只要更改映像名称并运行
kubectl apply-f deployment.yaml
。您不仅会更新图像,而且还会以蓝绿色的方式进行更新。 检查这个例子


你有没有一个有效的例子,我的不断打破“种类”更新了答案,如果它对你有帮助,请投我的票。你有没有一个有效的例子,我的不断打破“种类”更新了答案,如果它对你有帮助,请投我的票。
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80