最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

nodejs kubernetes无法执行滚动更新

运维笔记admin10浏览0评论

nodejs kubernetes无法执行滚动更新

nodejs kubernetes无法执行滚动更新

要在生产环境中部署Express Node.js api,我想使用kubernetes遵循了以下步骤:

  • 在Google云中创建的集群
  • 将代码从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。您不仅会更新图像,而且还会以蓝绿色的方式进行处理。检查此示例https://kubernetes.io/docs/concepts/workloads/controllers/deployment/

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
发布评论

评论列表(0)

  1. 暂无评论