kubernetes之部署nginx+vue前端(一)
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前端(一)的更多相关文章
- 008.Kubernetes二进制部署Nginx实现高可用
一 Nginx代理实现kube-apiserver高可用 1.1 Nginx实现高可用 基于 nginx 代理的 kube-apiserver 高可用方案. 控制节点的 kube-controller ...
- docker Compose 部署springboot+vue前端端分离项目
温馨提示:如果有自己的服务器最好不过了,这样部署网项目就可以上线了.没有的话,只能使用localhost 本机访问啦,记得替换 ngixn 中的ip地址.域名为localhost. (一) 准备工作 ...
- docker部署nginx+vue项目
1.vue项目打包 npm run build 会在项目生成dist文件夹,这个文件夹可以使用nginx或tomcat来发布服务 2.查找nginx基础镜像 可以通过以下网站找到符合自己的基础镜像,我 ...
- Docker部署nginx+vue项目并运行
一.打包VUE项目 npm run build:prod 二.编写default.conf 文件 server { listen 80; server_name localhost; #charset ...
- kubernetes下的Nginx加Tomcat三部曲之二:细说开发
本文是<kubernetes下的Nginx加Tomcat三部曲>的第二章,在<kubernetes下的Nginx加Tomcat三部曲之一:极速体验>一文我们快速部署了Nginx ...
- Nginx部署多个vue前端项目
前言:在前端项目的部署上需要让2个前端项目都部署到一个IP地址和端口下,那么我们这里就要用到Nginx了,接下来我们看看如何在一个Nginx下部署2个前端项目. 例如我的服务器地址是 http://1 ...
- nginx + uwsgi 部署 Django+Vue项目
nginx + uwsgi 部署 Django+Vue项目 windows 本地 DNS 解析 文件路径 C:\Windows\System32\drivers\etc 单机本地测试运行方式,调用dj ...
- 基于vue+springboot+docker网站搭建【五】部署vue前端项目
部署vue前端项目 一.下载项目到本地 https://github.com/macrozheng/mall-admin-web 二.npm install 三.修改api配置,改为你接下来要部 ...
- Vue 前端配置多级目录实践(基于Nginx配置方式)
前情提要 有阵子没更新博客了,因为快年结了工作比较多,这不,最近公司的对外演示环境出现问题这个活儿也落到了我的头上-- 事情是这样的,原来演示环境有很多服务,每个服务都是对外单独开一个端口,比如 ht ...
- (已经成功部署)配置vue+nginx+uwsgi luffy项目
2019-9-16 21:16:17 由于超哥视频翻车,应该是先改api.js中的IP 再打包 然后按照原来一步一步部署vue uwsgi Nginx 然后就可以直接访问了!!! 昨天其实就完成,只 ...
随机推荐
- 使用 Sealos 构建低成本、高效能的私有云
这个时候谈论私有云似乎有点反直觉?大部分人认知不是上云是大趋势嘛?我也比较认可上云,不过私有云也是云,今天给大家带来一个新的选择 -- 用云,只需一个 Sealos 就够了. 看看我们怎么做到更低的成 ...
- poe不能用了poe.com收费了
Anthropic's fastest model, with strength in creative tasks. Features a context window of 9k tokens ( ...
- android 中ids.xml资源的使用
ids.xml 前面我们见识过ids.xml文件,但是这个文件是什么意思呢?我们来看下文档中的介绍: 先看下它给的例子: XML file saved at res/values/ids.xml: 使 ...
- tunm二进制协议在python上的实现
tunm二进制协议在python上的实现 tunm是一种对标JSON的二进制协议, 支持JSON的所有类型的动态组合 支持的数据类型 基本支持的类型 "u8", "i8& ...
- Atcoder Regular Contest 165
B. Sliding Window Sort 2 被题目名里的滑动窗口误导了,于是卡 B 40min /fn Description 给定长度为 \(n\) 的排列 \(P\) 和一个整数 \(K\) ...
- FFT & NTT 及其简单优化
FFT FFT 是一种高效实现 DFT 和 IDFT 的方式,可以在 \(O(n \log n)\) 的时间内求多项式的乘法. 多项式的点值表示 不同于用每项的系数来表示一个多项式,我们知道对于给定的 ...
- DDD技术方案落地实践
1. 引言 从接触领域驱动设计的初学阶段,到实现一个旧系统改造到DDD模型,再到按DDD规范落地的3个的项目.对于领域驱动模型设计研发,从开始的各种疑惑到吸收各种先进的理念,目前在技术实施这一块已经基 ...
- fileclude
打开界面是一篇源代码 看到有flag.php文件,直接打开出现错误提示,看来只能用编码读取数据了 需要传入file1和file2 file1编码读取flag.php的内容 file1=php://fi ...
- 使用 Hexo 搭建个人博客并部署到云服务器
目录 1 整体流程 2. 本地环境准备 2.1 安装 Node.js 和 Git 2.2 安装 Hexo 3. 服务端环境准备 3.1 Nginx 环境配置 3.1.1 安装 Nginx 3.1.2 ...
- HDL刷题:Edgedetect
原题链接 一道想了好久的题目,在这种并行执行的程序里怎么才能保存前一个状态,看了题解后才发觉,非阻塞赋值啊,代码如下: module top_module ( input clk, input [7: ...