k8s部署vue项目

1、环境准备

提前搭建好的k8s集群准备:

    192.168.56.30(master节点)

    192.168.56.31(node节点)

harbor远程仓库准备:

     192.168.56.14

2、创建nginx镜像

1)准备一个nginx安装包,我们这里的版本是1.18.0的

2)在同级目录下创建一个Dockerfile文件,内容如下
  

#基于centos基础镜像
FROM centos:7

#作者信息
MAINTAINER kgf

#安装环境依赖
RUN yum install -y pcre-devel wget net-tools gcc zlib zlib-devel make openssl-devel 


#将nginx安装包拷贝并且安装到/opt目录下
ADD nginx-1.18.0.tar.gz /opt/

#创建/usr/local/nginx目录
RUN mkdir -p /usr/local/nginx

#编译安装nginx
RUN cd /opt/nginx-1.18.0 && ./configure --prefix=/usr/local/nginx && make && make install


#暴露80端口
EXPOSE 80 

#启动nginx
ENTRYPOINT /usr/local/nginx/sbin/nginx && tail -f /etc/passwd

3)使用Dockerfile创建镜像

    命令:docker build -t hub.harbor.com/library/kgf-nginx:v1 .
    
    推送到harbor: docker push hub.harbor.com/library/kgf-nginx:v1
     

4)运行该镜像测试nginx是否正常运行

      命令:docker run -d --name 自定义容器名称 -p 8080:80 镜像id /bin/bash
      

    

3、创建vue项目镜像

1)配置vue项目访问后端的配置文件

        

2)使用命令打包vue项目得到一个dist包

       命令:npm run build
       

3)准备一个nginx.conf配置文件,配置我们的代理规则


worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;
	
    server {
        listen       80;
        server_name  localhost;

        location /gateway/ {
			proxy_pass http://192.168.56.30:32447;			
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;
			add_header Content-Type "text/plain;charset=utf-8";
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Credentials' 'true';
            add_header 'Access-Control-Allow-Methods' 'GET, POST';
				
        }
   
        location / {
            root   /usr/local/nginx/html;
			try_files $uri $uri/ /index.html last;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
}

4)创建Dockerfile文件,内容如下:

#基于centos基础镜像
FROM hub.harbor.com/library/kgf-nginx:v1

#作者信息
MAINTAINER kgf

COPY dist\
     /usr/local/nginx/html/

#删除默认的nginx.conf配置文件
RUN rm -rf /usr/local/nginx/conf/nginx.conf

#拷贝nginx.conf配置文件
COPY nginx.conf  /usr/local/nginx/conf/

#暴露80端口
EXPOSE 80 

#启动nginx
ENTRYPOINT /usr/local/nginx/sbin/nginx && tail -f /etc/passwd

 5)执行Dockerfile文件生成镜像

      命令:docker build -t hub.harbor.com/library/kgf-vue:v1 .

           

      推送到harbor: docker push hub.harbor.com/library/kgf-vue:v1

6)创建vue项目的yaml文件,kgf-vue-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kgf-vue
  namespace: kgf-dev
  labels:
    app: kgf-vue
spec:
  replicas: 1
  selector:
    matchLabels: { app: kgf-vue }
  strategy: 
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
    type: RollingUpdate  
  template:
    metadata:
      labels: { app: kgf-vue }
    spec:
      containers:
        - name: kgf-vue
          env:
            - name: kgf-vue
              valueFrom:
                fieldRef: { fieldPath: metadata.name }
          image: hub.harbor.com/library/kgf-vue:v1
          imagePullPolicy: IfNotPresent
          resources: 
            limits:
              cpu: 1
              memory: 512Mi
            requests:
              cpu: 0.4
              memory: 256Mi         

7)创建vue项目的svc文件,kgf-vue-service.yaml

#service版本
apiVersion: v1
#这个表示资源类型我们创建的是Service
kind: Service
metadata: #这个里面定义的是Service中我们创建的对象信息
  #对象名称
  name: kgf-vue
  #元数据名称空间
  namespace: kgf-dev
  labels:
    app: kgf-vue
spec: #下面定义service的详细信息
  #类型为NodePort
  type: NodePort
  selector: #通过标签选择器去查询对应版本的pod,最后组成一个service
    app: kgf-vue
  ports: #指定容器需要用到的端口列表
    #指定端口名称 
    - name: http
      #服务对外的端口
      port: 8080
      protocol: TCP
      #容器的端口
      targetPort: 80

8)执行上面创建的yaml文件

   命令:

         kubectl apply -f kgf-vue-deployment.yaml

         kubectl apply -f kgf-vue-service.yaml

   

4、浏览器访问效果

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于部署一个基于 Vue.js 的项目到 Kubernetes(k8s)集群,你可以按照以下步骤进行操作: 1. 构建 Vue 项目:在本地开发环境中使用 `npm run build` 或者 `yarn build` 命令构建你的 Vue 项目。这将会生成一个 dist 目录,其中包含了编译后的静态文件。 2. 创建 Docker 镜像:使用 Docker 将你的 Vue 项目打包成一个容器镜像。为此,你需要编写一个 Dockerfile 文件,并在其中设置基础镜像、拷贝静态文件等操作。 3. 构建镜像:运行 `docker build` 命令来构建 Docker 镜像。例如:`docker build -t your-docker-image:tag .` 这将会在当前目录下构建一个名为 your-docker-image 的镜像,并设置一个标签。 4. 推送镜像:将构建好的镜像推送到一个容器镜像仓库(如 Docker Hub、阿里云容器镜像服务等)。执行 `docker push your-docker-image:tag` 命令将镜像推送到远程仓库。 5. 创建 Kubernetes 配置文件:创建一个 Kubernetes 的配置文件(如 Deployment 和 Service),用于描述你的应用程序的部署和服务暴露方式。在配置文件中设置容器镜像地址等参数。 6. 部署到 Kubernetes:使用 `kubectl apply -f your-config-file.yaml` 命令将配置文件中定义的资源部署到 Kubernetes 集群中。 7. 监视部署状态:使用 `kubectl get pods` 命令来查看部署的 Pod 状态,确保你的应用程序正常运行。 8. 访问应用程序:根据你的配置文件中定义的 Service 类型(如 NodePort、LoadBalancer),通过对应的方式来访问你的应用程序。 这些步骤可以帮助你将 Vue 项目成功部署到 Kubernetes 集群中。注意,这里只提供了一个基本的流程,具体的步骤可能会因为你的实际需求和环境而有所变化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值