feat:更新项目基于Docker和K8S的容器部署脚本
This commit is contained in:
@@ -3,14 +3,12 @@
|
||||
# Author: DianJiu
|
||||
# 指定基础镜像,这是分阶段构建的前期阶段
|
||||
FROM harbor.njydsz.com/library/jdk:17 as builder
|
||||
# 维护者
|
||||
MAINTAINER Remi <remi@yundingshuzi.com>
|
||||
#VOLUME:挂载目录
|
||||
VOLUME /temp
|
||||
|
||||
#ADD 将app.jar文件将拷贝到容器中,默认拷贝到根路径下
|
||||
#也可以直接写成ADD app.jar /app.jar 或者 ADD app.jar /
|
||||
ADD remi-nacos-3.1.1.jar remi-nacos.jar
|
||||
ADD remi-nacos-3.1.0.jar remi-nacos.jar
|
||||
|
||||
#修改app.jar这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。
|
||||
RUN bash -c "touch /remi-nacos.jar"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
|
||||
## 如果基于Docker部署项目 直接运行如下脚本即可
|
||||
```shell
|
||||
sh ./docker_deploy.sh
|
||||
|
||||
docker logs -f gateway
|
||||
```
|
||||
docker logs -f remi-nacos-web
|
||||
```
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
#先删除原有的镜像
|
||||
docker stop sit-remi-nacos-web
|
||||
docker rm -f sit-remi-nacos-web
|
||||
docker images | grep sit-remi-nacos-web | awk '{print $3}' | xargs docker rmi -f
|
||||
docker build -t sit-remi-nacos-web .
|
||||
docker images | grep sit-remi-nacos-web
|
||||
docker images | grep remi-nacos-web | awk '{print $3}' | xargs docker rmi -f
|
||||
docker build -t remi-nacos-web .
|
||||
docker images | grep remi-nacos-web
|
||||
#把新镜像推送到私服
|
||||
docker login -uadmin -pYdsz1020 harbor.njydsz.com
|
||||
docker tag sit-remi-nacos-web harbor.njydsz.com/remi/sit-remi-nacos-web:3.1.1
|
||||
docker tag sit-remi-nacos-web harbor.njydsz.com/remi/sit-remi-nacos-web
|
||||
docker push harbor.njydsz.com/remi/sit-remi-nacos-web:3.1.1
|
||||
docker push harbor.njydsz.com/remi/sit-remi-nacos-web
|
||||
#启动最新的镜像服务
|
||||
docker run --restart=always -t -dit -p 8848:8848 --name sit-remi-nacos-web sit-remi-nacos-web
|
||||
docker ps -a
|
||||
docker login -uadmin -pRemi123 harbor.******.com
|
||||
docker tag remi-nacos-web harbor.******.com/remi-top/remi-nacos-web:3.1.0
|
||||
docker tag remi-nacos-web harbor.******.com/remi-top/remi-nacos-web
|
||||
docker push harbor.******.com/remi-top/remi-nacos-web:3.1.0
|
||||
docker push harbor.******.com/remi-top/remi-nacos-web
|
||||
#基于Docker启动容器
|
||||
docker run --restart=always -t -dit -p 8848:8848 --name remi-nacos-web harbor.******.com/remi-top/remi-nacos-web
|
||||
|
||||
22
remi-nacos/src/main/resources/k8s/Dockerfile
Normal file
22
remi-nacos/src/main/resources/k8s/Dockerfile
Normal file
@@ -0,0 +1,22 @@
|
||||
# Docker image for springboot application
|
||||
# VERSION 0.0.1
|
||||
# Author: DianJiu
|
||||
# 指定基础镜像,这是分阶段构建的前期阶段
|
||||
FROM harbor.njydsz.com/library/jdk:17 as builder
|
||||
#VOLUME:挂载目录
|
||||
VOLUME /temp
|
||||
|
||||
#ADD 将app.jar文件将拷贝到容器中,默认拷贝到根路径下
|
||||
#也可以直接写成ADD app.jar /app.jar 或者 ADD app.jar /
|
||||
ADD remi-nacos-3.1.0.jar remi-nacos.jar
|
||||
|
||||
#修改app.jar这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。
|
||||
RUN bash -c "touch /remi-nacos.jar"
|
||||
|
||||
#ENTRYPOINT 应用启动命令 参数设定
|
||||
#由于tomcat的session id的生成主要通过java.security.SecureRandom生成随机数来实现,导致启动过程很慢
|
||||
#通过-Djava.security.egd=file:/dev/./urandom参数可以加快随机数产生过程
|
||||
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/remi-nacos.jar"]
|
||||
|
||||
#EXPOSE 容器暴露端口
|
||||
EXPOSE 8848
|
||||
13
remi-nacos/src/main/resources/k8s/README.md
Normal file
13
remi-nacos/src/main/resources/k8s/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
|
||||
## 如果基于K8S部署项目 直接运行如下脚本即可
|
||||
```shell
|
||||
sh ./docker_deploy.sh
|
||||
|
||||
sh ./k8s_deploy.sh
|
||||
|
||||
kubectl get pods -n remi-top
|
||||
|
||||
kubectl describe pod dev-remi-sys-app -n remi-top
|
||||
|
||||
kubectl get deployment dev-remi-sys-app -n remi-top -o yaml
|
||||
```
|
||||
10
remi-nacos/src/main/resources/k8s/docker_deploy.sh
Normal file
10
remi-nacos/src/main/resources/k8s/docker_deploy.sh
Normal file
@@ -0,0 +1,10 @@
|
||||
#先删除原有的镜像
|
||||
docker images | grep remi-nacos | awk '{print $3}' | xargs docker rmi -f
|
||||
docker build -t remi-nacos .
|
||||
docker images | grep remi-nacos
|
||||
#把新镜像推送到私服
|
||||
docker login -uadmin -pRemi123 harbor.******.com
|
||||
docker tag remi-nacos harbor.******.com/remi-top/remi-nacos:3.1.0
|
||||
docker tag remi-nacos harbor.******.com/remi-top/remi-nacos
|
||||
docker push harbor.******.com/remi-top/remi-nacos:3.1.0
|
||||
docker push harbor.******.com/remi-top/remi-nacos
|
||||
7
remi-nacos/src/main/resources/k8s/k8s_deploy.sh
Normal file
7
remi-nacos/src/main/resources/k8s/k8s_deploy.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
#先删除原有的Pod
|
||||
kubectl delete deployment remi-nacos-web -n remi-top --grace-period=0 --force
|
||||
kubectl delete svc remi-nacos-web -n remi-top
|
||||
# 首次启动 需加载配置文件
|
||||
kubectl create -f nacos-config.yaml -n remi-top
|
||||
#启动新的Pod
|
||||
kubectl create -f nacos-deploy.yaml -n remi-top
|
||||
12
remi-nacos/src/main/resources/k8s/nacos-config.yaml
Normal file
12
remi-nacos/src/main/resources/k8s/nacos-config.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: nacos-config
|
||||
labels:
|
||||
app: nacos
|
||||
data:
|
||||
mysql.host: "192.168.31.31"
|
||||
mysql.db.name: "remi-nacos"
|
||||
mysql.port: "3306"
|
||||
mysql.user: "root"
|
||||
mysql.password: "Remi@123"
|
||||
116
remi-nacos/src/main/resources/k8s/nacos-deploy.yaml
Normal file
116
remi-nacos/src/main/resources/k8s/nacos-deploy.yaml
Normal file
@@ -0,0 +1,116 @@
|
||||
## Service
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: nacos
|
||||
labels:
|
||||
app: nacos
|
||||
spec:
|
||||
type: NodePort
|
||||
ports:
|
||||
- port: 8848
|
||||
name: server
|
||||
targetPort: 8848
|
||||
nodePort: 30999
|
||||
- port: 9848
|
||||
name: client-rpc
|
||||
targetPort: 9848
|
||||
nodePort: 31999
|
||||
- port: 9849
|
||||
name: raft-rpc
|
||||
targetPort: 9849
|
||||
- port: 7848
|
||||
name: old-raft-rpc
|
||||
targetPort: 7848
|
||||
selector:
|
||||
app: nacos
|
||||
---
|
||||
## Secret
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: nacos-auth-secret
|
||||
stringData:
|
||||
tokenKey: "U3RhcnRkaXNOYWNvc0N1c3RvbVNlY3JldEtleTIwMjQ="
|
||||
---
|
||||
## Deployment
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nacos
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
matchLabels:
|
||||
app: nacos
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nacos
|
||||
spec:
|
||||
containers:
|
||||
- name: nacos
|
||||
image: harbor.******.com/library/remi-nacos
|
||||
resources:
|
||||
limits:
|
||||
memory: "2Gi"
|
||||
cpu: "1000m"
|
||||
requests:
|
||||
memory: "1Gi"
|
||||
cpu: "500m"
|
||||
ports:
|
||||
- containerPort: 8848
|
||||
name: client
|
||||
- containerPort: 9848
|
||||
name: client-rpc
|
||||
- containerPort: 9849
|
||||
name: raft-rpc
|
||||
- containerPort: 7848
|
||||
name: old-raft-rpc
|
||||
env:
|
||||
- name: SPRING_DATASOURCE_PLATFORM
|
||||
value: "mysql"
|
||||
- name: MYSQL_SERVICE_HOST
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: nacos-config
|
||||
key: mysql.host
|
||||
- name: MYSQL_SERVICE_DB_NAME
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: nacos-config
|
||||
key: mysql.db.name
|
||||
- name: MYSQL_SERVICE_PORT
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: nacos-config
|
||||
key: mysql.port
|
||||
- name: MYSQL_SERVICE_USER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: nacos-config
|
||||
key: mysql.user
|
||||
- name: MYSQL_SERVICE_PASSWORD
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: nacos-config
|
||||
key: mysql.password
|
||||
- name: MODE
|
||||
value: "standalone"
|
||||
- name: NACOS_SERVER_PORT
|
||||
value: "8848"
|
||||
- name: PREFER_HOST_MODE
|
||||
value: "hostname"
|
||||
- name: TZ
|
||||
value: Asia/Shanghai
|
||||
- name: NACOS_AUTH_ENABLE
|
||||
value: "true"
|
||||
- name: NACOS_AUTH_TOKEN
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: nacos-auth-secret
|
||||
key: tokenKey
|
||||
- name: NACOS_AUTH_IDENTITY_KEY
|
||||
value: "X-AUTH-KEY"
|
||||
- name: NACOS_AUTH_IDENTITY_VALUE
|
||||
value: "startdis"
|
||||
@@ -2,4 +2,4 @@
|
||||
kubectl delete deployment dev-remi-sys-app -n remi-top --grace-period=0 --force
|
||||
kubectl delete svc dev-remi-sys-app -n remi-top
|
||||
#启动新的Pod
|
||||
kubectl create -f dev-remi-sys-app.yaml -n remi-vip
|
||||
kubectl create -f dev-remi-sys-app.yaml -n remi-top
|
||||
@@ -2,4 +2,4 @@
|
||||
kubectl delete deployment dev-remi-sys-web -n remi-top --grace-period=0 --force
|
||||
kubectl delete svc dev-remi-sys-web -n remi-top
|
||||
#启动新的Pod
|
||||
kubectl create -f dev-remi-sys-web.yaml -n remi-vip
|
||||
kubectl create -f dev-remi-sys-web.yaml -n remi-top
|
||||
Reference in New Issue
Block a user