部署的流程图
部署的详细过程
编译Docker镜像
Sentinel源码下载
https://gitee.com/pingfanrenbiji/Sentinel.git
Sentinel-dashboard编译打包
FROM openjdk:8-jdk # 环境变量 ENV LC_ALL=zh_CN.utf8 ENV LANG=zh_CN.utf8 ENV LANGUAGE=zh_CN.utf8 # 开放端口 EXPOSE 8080 # 指定工作目录 WORKDIR /app # 将当前目录下的jar包复制道镜像中的/app目录下 COPY sentinel-dashboard.jar . # 时间同步设置 # 设置权限 chown 用户:所在组 文件目录 0表示root用户所在的组标识;1001是指定了一个用户标识 # chmod 读取权限 r = 4,写入权限 w = 2,执行权限 x = 1 # 3个数字分别代表 拥有者,组用户,其他用户的权限 # 775中的第一个7表示4+2+1 表示拥有者拥有读写执行权限 # 第二个7当前用户所在组中的用户拥有者拥有读写执行权限 # 第三个5表示其他用户有读和执行的权限 没有写的权限 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone \ && chown 1001:0 -R /app \ && chmod 775 -R /app # java启动jar包 ENTRYPOINT ["java","-Dfile.encoding=UTF8","-Dsun.jnu.encoding=UTF8","-jar","sentinel-dashboard.jar"]
编译docker镜像
docker build -t sentinel-dashboard:1.8.2 .
启动下确认Dockerfile没问题
docker run -p 8080:8080 -d sentinel-dashboard:1.8.2 sentinel http://localhost:8080/#/login
说明Dockerfile没有问题
K8S部署
pod.yml
apiVersion: apps/v1 kind: StatefulSet metadata: name: sentinel labels: app: sentinel spec: serviceName: sentinel replicas: 1 selector: matchLabels: app: sentinel template: metadata: labels: app: sentinel spec: containers: - name: sentinel image: sentinel-dashboard:1.8.2 imagePullPolicy: IfNotPresent resources: limits: cpu: 450m memory: 1024Mi requests: cpu: 400m memory: 1024Mi env: - name: TZ value: Asia/Shanghai - name: JAVA_OPT_EXT value: -Dserver.servlet.session.timeout=7200 - name: SERVER_HOST valueFrom: configMapKeyRef: name: sentinel-cm key: sentinel.server.host - name: SERVER_PORT valueFrom: configMapKeyRef: name: sentinel-cm key: sentinel.server.port - name: USERNAME valueFrom: configMapKeyRef: name: sentinel-cm key: sentinel.auth.username - name: PASSWORD valueFrom: configMapKeyRef: name: sentinel-cm key: sentinel.auth.password ports: - containerPort: 8280 #Dashboard服务的端口 客户端向控制台发送心跳包的控制台地址,指定控制台后客户端会自动向该地址发送心跳包 - containerPort: 8719 #客户端的端口 提供给Dashboard访问 volumeMounts: - name: vol-log mountPath: /opt/logs volumes: - name: vol-log hostPath: path: /opt/docker/k8s/sentinel/logs type: Directory