K8S部署个nginx+vue项目
前端项目打包
npm run build
#生成dist产物,压缩,上传到服务上边,每个节点都上传,解压 unzip 目标文件
配置nginx.conf
http {
include 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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 32000;
server_name localhost;
location / {
#root html;
#index index.html index.htm;
root /usr/vuejs/pay-mgr/;
index index.html;
}
root /usr/vuejs/pay-mgr/;
index index.html;
}
}
配置Dockerfile
#为了将静态资源、nginx.conf打包到nginx的镜像中
#可指定nginx版本
FROM nginx
# nginx.conf
COPY nginx.conf /etc/nginx/nginx.conf
# 静态资源,ADD指令会把所有的文件添加进去,COPY 直接用的话,会不含文件夹
ADD pay-ui-mgr/ /usr/vuejs/pay-mgr/
配置rc.yaml
# containerPort 容器端口 32000
# images nginx发布的镜像名称及版本 fontapp:v1.0
# app k8s应用名称
# name docker容器名称
apiVersion: v1
kind: ReplicationController
metadata:
name: fontapp
spec:
replicas: 1
selector:
app: fontapp
template:
metadata:
labels:
app: fontapp
spec:
containers:
- name: fontapp
image: fontapp:v1.0
ports:
- containerPort: 32000
配置svc.yaml
# port 内部交互端口
# nodePort 对外暴露服务端口
kind: Service
metadata:
name: fontapp
spec:
type: NodePort
ports:
- port: 32000
nodePort: 32000
selector:
app: fontapp
执行指令就完了
各个节点都执行
# 这是我文件放的路径
cd /root/nginx/
# 打包 docker 镜像
docker rmi fontapp:v1.0
docker build -t fontapp:v1.0 .
master节点执行
# 生成k8s pod
kubectl create -f rc.yaml
# 暴漏服务
kubectl create -f svc.yaml