front1.sh 更新脚本
#!/bin/bash workdir=/root/data-ananlysis tag=$(date +%Y%m%d%H%M%S) echo $tag cd $workdir && rm -rf dist mv /tmp/dist . docker build -t harbor.glroad.com:8800/glr-authority/data-analysis-frontend:$tag . docker push harbor.glroad.com:8800/glr-authority/data-analysis-frontend:$tag kubectl get pods -n deepinsight kubectl set image deployment/data-analysis-frontend data-analysis-frontend=harbor.glroad.com:8800/glr-authority/data-analysis-frontend:${tag} -n deepinsight --record
[root@k8s-master data-ananlysis]# cat Dockerfile FROM nginx # 切换为上海时区 RUN ln -sf /usr/share/zoneinfo/$TZ /etc/localtime \ && echo $TZ > /etc/timezone # 拷贝dist包文件 COPY dist/ /usr/share/nginx/html/ # 拷贝nginx配置文件 ADD nginx.conf /etc/nginx/nginx.conf ADD default.conf /etc/nginx/conf.d/default.conf EXPOSE 80 ENTRYPOINT nginx -g "daemon off;"
[root@k8s-master data-ananlysis]# cat nginx.conf user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 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 120; client_max_body_size 200m; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_header_timeout 120s; client_body_timeout 120s; proxy_send_timeout 600; proxy_read_timeout 600; proxy_connect_timeout 159s; gzip on; # 开启gzip压缩输出 gzip_min_length 1k; # 最小压缩文件大小,低于1kb不压缩 gzip_buffers 4 16k; # 以16k为单位,按照原始数据的大小以4倍的方式申请内存空间,一般此项不要修改 gzip_http_version 1.1; # 压缩版本(默认1.1,前端如果是squid2.5请使用1.0) gzip_comp_level 2; # 压缩等级,压缩等级越低,效率越高,但是对于CPU性能负载也越高 #需要压缩的常见静态资源 gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; gzip_vary on; gzip_disable "MSIE [1-6]\."; # 由于nginx的压缩发生在浏览器端而微软的ie6会导致压缩后图片看不见,所以该选项是禁止 ie6 发生压缩 include /etc/nginx/conf.d/*.conf; }
[root@k8s-master data-ananlysis]# cat default.conf server { listen 80; server_name localhost; charset utf-8; #location ~* \.(css|js|png|jpg|jpeg|gif|gz|svg|mp4|ogg|ogv|webm|htc|xml|woff)$ { # add_header Cache-Control max-age=604800; # 不起作用 # } location / { root /usr/share/nginx/html; try_files $uri $uri/ /index.html; index index.html index.htm; } location /prod-api/ { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://data-analysis-svc/; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
[root@k8s-master data-ananlysis]# cat frontend.yaml apiVersion: apps/v1 kind: Deployment metadata: name: data-analysis-frontend namespace: deepinsight labels: app: data-analysis-frontend spec: replicas: 1 selector: matchLabels: app: data-analysis-frontend template: metadata: labels: app: data-analysis-frontend spec: imagePullSecrets: - name: harbor-secret containers: - image: harbor.glroad.com:8800/glr-authority/data-analysis-frontend:20230727 name: data-analysis-frontend ports: - containerPort: 80 protocol: TCP --- apiVersion: v1 kind: Service metadata: name: frontend-svc namespace: deepinsight labels: app: data-analysis-frontend spec: type: NodePort ports: - port: 80 protocol: TCP targetPort: 80 selector: app: data-analysis-frontend