部署微服务

准备源码:

可以去github或者gitee上拉取源码

https://github.com/Promidddd/RuoYi-Cloud

使用maven 进行打包

--- 1. 将源码上传到服务器并解压缩进入目录
--- 2. 安装maven
apt install -y maven
--- 3. 使用maven 进行打包

制作镜像

这里因为我们没有docker,所以无法制作dockerfile,但是我们可以使用containerd官方推荐的nerdctl 来平替dockerfile 其语法和dockerfile几乎一样

--- 1. 下载 nerdctl
wget https://github.com/containerd/nerdctl/releases/download/v1.7.6/nerdctl-full-1.7.6-linux-amd64.tar.gz
tar xf nerdctl-full-1.7.6-linux-amd64.tar.gz  -C /usr/local/

--- 2. 启动nerdctl  用于构建
systemctl enable --now buildkit

--- 3. 测试命令
nerdctl --help
--- 4. 制作Containerfile镜像 cat Containerfile
FROM docker.xuanyuan.me/openjdk:8-jdk 
ENV PARAMS="--server.port=8080 --spring.profiles.active=prod --spring.cloud.nacos.discovery.server-addr=10.88.0.27:8848 --spring.cloud.nacos.config.server-addr=10.88.0.27:8848 --spring.cloud.nacos.config.namespace=prod --spring.cloud.nacos.config.file-extension=yml"
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
COPY target/*.jar /app.jar
EXPOSE 8080
ENTRYPOINT ["/bin/sh","-c","java -Dfile.encoding=utf8 -Djava.security.egd=file:/dev/./urandom -jar app.jar ${PARAMS}"]
###
1、容器默认以8080端口启动
2、时间为CST
3、环境变量 PARAMS 可以动态指定配置文件中任意的值,应用上云打包镜像启动会自动激活生产环境prod,然后去nacos配置中心中找xxxxx-prod.yml配置文件。
4、nacos集群内地址为 10.88.0.27:8848   
5、微服务默认启动加载 nacos中  服务名-激活的环境.yml 文件,所以线上的配置可以全部写在nacos中。
--- 5. 打包镜像并推送
nerdctl build -t 192.168.0.77:32237/uat/ruoyi-gateway:v1.2  .
x
--- 目录准备
ruoyi-gateway
├── deployment.yaml
└── service.yaml

--- 6. 部署deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: ruoyi-gateway
  labels:
    app: ruoyi-gateway
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ruoyi-gateway
  template:
    metadata:
      labels:
        app: ruoyi-gateway
    spec:
      containers:
      - name: ruoyi-gateway
        image: 192.168.0.77:32237/uat/ruoyi-gateway:v1.2 
        ports:
        - containerPort: 8080

--- 查看日志,出现以下便是启动成功 
kubectl logs -f  [pod] 
......
(♥◠‿◠)ノ゙   若依网关启动成功  ლ(´ڡ`ლ)゙  
 .-------.       ____     __        
 |  _ _   \      \   \   /  /    
 | ( ' )  |       \  _. /  '       
 |(_ o _) /        _( )_ .'         
 | (_,_).' __  ___(_ o _)'          
 |  |\ \  |  ||   |(_,_)'         
 |  | \ `'   /|   `-'  /           
 |  |  \    /  \      /           
 ''-'   `'-'    `-..-' 
...
--- 7. 部署 service
apiVersion: v1
kind: Service
metadata:
  name: ruoyi-gateway
spec:
  selector:
    app: ruoyi-gateway
  type: NodePort
  ports:
  - port: 8080
    targetPort: 8080
    nodePort: 30087