kubernetes之部署nginx+vue前端(一)

k8s系列项目的部署方式之一使用了kubernetes部署nginx+vue前端。

一、打包前端

将dist与Dockerfile放到同一目录下,Dockerfile内容如下:

FROM harbor.k8s/nginx:1.16
COPY nginx.conf /etc/nginx/nginx.conf
COPY dist/ /www/

构建镜像

docker build -t harbor.k8s/frontend:2021101401 .

# 推送到私服
docker push harbor.k8s/frontend:2021101401 # 导出镜像
docker save harbor.k8s/frontend:2021101401 | gzip > frontend-2021101401.tar.gz # 导入镜像
docker load < frontend-2021101401.tar.gz

二、k8s部署

执行部署命令

kubectl create -f frontend.yaml

下面是部署的 frontend.yaml:

apiVersion: v1
kind: Service
metadata:
labels:
app: frontend
name: frontend-service
spec:
ports:
- port: 80
protocol: TCP
# dockerfile暴露的端口
targetPort: 80
selector:
app: frontend
type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: frontend
managedFields:
name: frontend-deployment
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: frontend
strategy:
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
app: frontend
spec:
containers:
# 需要注意修改对应的镜像
- image: harbor.k8s/my-frontend:v1.0.0
imagePullPolicy: IfNotPresent
name: frontend
ports:
- containerPort: 80
protocol: TCP
resources:
limits:
cpu: '2'
memory: 1024Mi
requests:
cpu: '1'
memory: 10Mi
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /etc/nginx/nginx.conf
name: nginx-conf
subPath: nginx.conf
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: default
serviceAccountName: default
terminationGracePeriodSeconds: 30
volumes:
- configMap:
defaultMode: 420
name: frontend-configmap
name: nginx-conf
---
apiVersion: v1
kind: ConfigMap
metadata:
labels:
app: frontend-configmap
name: frontend-configmap
# 配置nginx.conf,注意根据实际情况修改数据DNS库域名、端口和数据库的名称
data:
nginx.conf: |
events {
worker_connections 1024; ## Default: 1024
}
http { include /etc/nginx/mime.types;
default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on;
#tcp_nopush on; keepalive_timeout 65; #gzip on;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript application/json text/css font/ttf font/otf font/woff application/vnd.ms-fontobject image/vnd.microsoft.icon image/svg+xml
application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on; client_max_body_size 300M; server {
listen 80;
server_name localhost;
resolver 10.96.0.10 valid=60s; location / {
root /www/;
}
location /index.html {
root /www/;
}
location /favicon.ico {
root /www/;
}
location /*.js {
root /www/;
}
location /fonts/ {
root /www/;
}
location /img/ {
root /www/;
}
location /js/ {
root /www/;
}
# tomcat
location /my-app/ {
proxy_pass http://my-app-service/my-app:8080/;
}
# springboot
location /auth-center/ {
proxy_pass http://auth-center-service/;
}
location /websocket/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header X-Client-IP $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 300s;
proxy_pass http://auth-center-service/;
}
}
}

前提条件:k8s已经部署好my-app、auth-center-service、准备好了私服镜像:harbor.k8s/my-frontend:v1.0.0

# 获取service对外端口
kubectl get svc

效果:

kubernetes之部署nginx+vue前端(一)的更多相关文章

  1. 008.Kubernetes二进制部署Nginx实现高可用

    一 Nginx代理实现kube-apiserver高可用 1.1 Nginx实现高可用 基于 nginx 代理的 kube-apiserver 高可用方案. 控制节点的 kube-controller ...

  2. docker Compose 部署springboot+vue前端端分离项目

    温馨提示:如果有自己的服务器最好不过了,这样部署网项目就可以上线了.没有的话,只能使用localhost 本机访问啦,记得替换 ngixn 中的ip地址.域名为localhost. (一) 准备工作 ...

  3. docker部署nginx+vue项目

    1.vue项目打包 npm run build 会在项目生成dist文件夹,这个文件夹可以使用nginx或tomcat来发布服务 2.查找nginx基础镜像 可以通过以下网站找到符合自己的基础镜像,我 ...

  4. Docker部署nginx+vue项目并运行

    一.打包VUE项目 npm run build:prod 二.编写default.conf 文件 server { listen 80; server_name localhost; #charset ...

  5. kubernetes下的Nginx加Tomcat三部曲之二:细说开发

    本文是<kubernetes下的Nginx加Tomcat三部曲>的第二章,在<kubernetes下的Nginx加Tomcat三部曲之一:极速体验>一文我们快速部署了Nginx ...

  6. Nginx部署多个vue前端项目

    前言:在前端项目的部署上需要让2个前端项目都部署到一个IP地址和端口下,那么我们这里就要用到Nginx了,接下来我们看看如何在一个Nginx下部署2个前端项目. 例如我的服务器地址是 http://1 ...

  7. nginx + uwsgi 部署 Django+Vue项目

    nginx + uwsgi 部署 Django+Vue项目 windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc 单机本地测试运行方式,调用dj ...

  8. 基于vue+springboot+docker网站搭建【五】部署vue前端项目

    部署vue前端项目  一.下载项目到本地   https://github.com/macrozheng/mall-admin-web 二.npm install 三.修改api配置,改为你接下来要部 ...

  9. Vue 前端配置多级目录实践(基于Nginx配置方式)

    前情提要 有阵子没更新博客了,因为快年结了工作比较多,这不,最近公司的对外演示环境出现问题这个活儿也落到了我的头上-- 事情是这样的,原来演示环境有很多服务,每个服务都是对外单独开一个端口,比如 ht ...

  10. (已经成功部署)配置vue+nginx+uwsgi luffy项目

    2019-9-16 21:16:17 由于超哥视频翻车,应该是先改api.js中的IP 再打包 然后按照原来一步一步部署vue uwsgi  Nginx 然后就可以直接访问了!!! 昨天其实就完成,只 ...

随机推荐

  1. Centos7使用s3fs-fuse挂载minio对象存储实践

    Centos7使用s3fs-fuse挂载minio对象存储实践 事前准备 主机可以访问到对象存储API.例如minio默认的9000端口 主机安装好s3fs软件 已在minio上创建存储桶 安装s3f ...

  2. HexConversion 二进制 八进制 十六进制 十进制

    public class HexConversion { // TODO Auto-generated method stub /** * TODO 进制转换. * * @param cc * htt ...

  3. PackageManager

    /* * Copyright (C) 2006 The Android Open Source Project * * Licensed under the Apache License, Versi ...

  4. umich cv-3-1

    UMICH CV Neural Network 对于传统的线性分类器,分类效果并不好,所以这节引入了一个两层的神经网络,来帮助我们进行图像分类 可以看出它的结构十分简单,x作为输入层,经过max(0, ...

  5. [C++]vector的基本的用法

    [vector/容器/向量/动态数组]的基本的用法 容器的定义 向量/容器(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container). 跟任意其它类型容器一样,它能够存 ...

  6. coco漫画获取隐藏的图片链接

    网站分析 打开目标网站:https://www.cocomanhua.com/, 随便打开一部漫画: https://www.cocomanhua.com/10330/1/205.html F12 打 ...

  7. cyclone3内部资源

    CycloneIII内部资源概述 目录 CycloneIII内部资源概述 Logic Elements and Logic Array Blocks(逻辑元件和逻辑阵列块) LE LAB LAB In ...

  8. 使用C#将几个Excel文件合并去重分类

    需要将几个Excel表格里面的数据去重,然后将每个站点的数据另存为一张Sheet上. 几个表格如下所示: 实现效果如下所示: 具体实现 需要使用EPPlus操作Excel 安装EPPlus如下所示: ...

  9. 一步解决Cannot resolve symbol 'WebServlet'(@WebServlet注解标红)

    右键项目名(javaweb01)->Open Module Settings Modules->Dependencies->点击Export上面的,添加Tomcat即可

  10. 【Javaweb】动态web工程目录介绍

    src 存放自己编写的Java源代码 web 专门用来存放web工程的资源文件(html页面.css文件.js文件等等) WEB-INF 是一个受服务器保护的目录,浏览器无法直接访问此目录的内容 we ...