k8s 部署 nuxt 项目

本次试验仅作为如何学习 k8s 部署 nuxt 项目,所有服务器的操作均在本地模拟器(VMware )上执行。

1、将 nuxt 项目文件除了 node_module 外,全部上传至服务器。
nuxt项目文件
2、编写 Dockerfile 文件

可在本地创建后上传或在服务器创建

# 基于 node 镜像,构建镜像前需先下载
FROM node:latest
# 镜像信息
MAINTAINER lzd
# 任意ip
ENV HOST 0.0.0.0
# 容器内创建目录mynuxt
RUN mkdir -p /usr/frontend/mynuxt
# 将当前目录文件复制到 /usr/frontend/mynuxt 目录
COPY . /usr/frontend/mynuxt
# 切换工作目录到 /usr/frontend/mynuxt 目录
WORKDIR /usr/frontend/mynuxt
# 暴露项目端口
EXPOSE 3000
# 设置 npm 源
RUN npm config set registry https://registry.npm.taobao.org
# 清除缓存
RUN npm cache clean --force
# 安装依赖
RUN npm install
# 打包构建项目
RUN npm run build
# 启动项目
CMD ["npm", "start"]
3、构建镜像

在当前目录下(/usr/frontend/mynuxt)运行:

docker build -t mynuxt:v1.0 .
4、标记镜像为私有仓库的镜像
docker tag mynuxt:v1.0 <仓库ip>:5000/mynuxt:v1.0
5、上传标记镜像
docker push <仓库ip>:5000/mynuxt:v1.0

由于上传的是本地私有仓库,可能会遇到如下报错:Get http://<ip>:5000/v2/: dial tcp <ip>:5000: connect: connection refused,可执行:

docker start registry

再次重试上传


推送镜像成功
6、编写配置文件

rc.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: mynuxt
spec:
  replicas: 1
  selector:
    app: mynuxt
  template:
    metadata:
      labels:
        app: mynuxt
    spec:
      containers:
      - name: mynuxt
        image: <标记仓库ip>:5000/mynuxt:v1.0
        ports:
          - containerPort: 3000

svc.yamlnodePort 有要求在 30000-32767 以内

apiVersion: v1
kind: Service
metadata:
  name: mynuxt
spec:
  type: NodePort
  ports:
  - port: 3000
    nodePort: 30001
  selector:
    app: mynuxt
7、部署镜像
$ kubectl apply -f rc.yaml
$ kubectl apply -f svc.yaml

# 查看 rc、svc
$ kubectl get rc,svc

NAME                               DESIRED   CURRENT   READY   AGE
replicationcontroller/mynuxt       1         1         0       16s

NAME                 TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)           AGE
service/kubernetes   ClusterIP   10.1.0.1       <none>        443/TCP           56d
service/mynuxt       NodePort    10.1.156.151   <none>        3000:30001/TCP    11s

# 查看 pod 状态
$ kubectl get pod

NAME                    READY   STATUS    RESTARTS   AGE
mynuxt-wpbns            1/1     Running   0          38m

部署成功后,可使用浏览器访问:http://<ip>:30001 查看效果。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容