Tiger前端项目接入K8S手册

tiger-web项目接入K8S集群手册

请向项目的根目录中添加如下2份文件:

一、项目文件内容介绍

1.1、Dockerfile

FROM 104.168.133.40/xxx/nginx:latest
MAINTAINER damo
VOLUME /tmp
ENV LANG en_US.UTF-8
RUN echo "server {  \
                  listen       80; \
                  #解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题 \
                  location / { \
                     root   /var/www/html/; \
                      index  index.html index.htm; \
                      if (!-e \$request_filename) { \
                          rewrite ^(.*)\$ /index.html?s=\$1 last; \
                          break; \
                      } \
                  } \
                  access_log  /var/log/nginx/access.log ; \
              } " > /etc/nginx/conf.d/default.conf \
    &&  mkdir  -p  /var/www \
    &&  mkdir -p /var/www/html \
    &&  mkdir -p /readiness/ready

ADD dist/ /var/www/html/
EXPOSE 80
EXPOSE 443

1.2、k8s.tpl

  • DEV:https://doc.xxx.com/web/#/26/320
  • TEST:https://doc.xxx.com/web/#/26/331
  • UAT:https://doc.xxx.com/web/#/26/335
1.2.1、参数详解:
//默认1副本,可在jenkins发版处灵活配置;
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{APP_NAME}}
  //环境的定义--勿动
  namespace: tiger-dev
  labels:
    app: {{APP_NAME}}
spec:
  replicas: {{APP_REPLICAS}}
  selector:
    matchLabels:
      app: {{APP_NAME}}
  template:
    metadata:
      labels:
        app: {{APP_NAME}}
    spec:
      imagePullSecrets:
        - name: harbor-secret
      containers:
        - name: {{APP_NAME}}
          image: {{IMAGE_URL}}:{{IMAGE_TAG}}
          imagePullPolicy: Always
          ports:
            - containerPort: 80
              name: {{APP_NAME}}
          //应用版本控制器,默认资源:0.2C1G, UAT环境1C1G,由于集群资源有限,请合理使用资源;
          resources:
            requests:
              memory: 1Gi
              cpu: 200m
            limits:
              memory: 1Gi
              cpu: 200m
---
//默认应用端口80
kind: Service
apiVersion: v1
metadata:
  name: {{APP_NAME}}
  namespace: tiger-dev
  labels:
    app: {{APP_NAME}}
spec:
  ports:
    - name: {{APP_NAME}}
      port: 80
  selector:
    app: {{APP_NAME}}
---
//nodePort端口,发版后通过Jenkins页面获取nodePort
apiVersion: v1
kind: Service
metadata:
  name: {{APP_NAME}}-nodeport
  namespace: tiger-dev
spec:
  type: NodePort
  ports:
  - port: 80
    targetPort: 80
  selector:
    app: {{APP_NAME}}
---
//前端项目的域名定义(spec.rules.host  定义应用的域名)
//如未解析,可通过绑定hosts实现,例如:XX.XX.XX.X {{APP_NAME}}.jeegc.com
//访问参照如下:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: {{APP_NAME}}
  namespace: tiger-dev
spec:
  rules:
    - host: {{APP_NAME}}.jeegc.com
      http:
        paths:
          - path: /
            backend:
              serviceName: {{APP_NAME}}
              servicePort: 80

二、Jenkins发版

主要步骤:

打开jenkins ---> 点击tiger-web-projectors ---> build with parameters ---> 填写自己项目的信息 ---> 开始构建

2.1、地址:http://104.168.204.108:8888/

项目参数化发版:

发版成功信息获取: