目录
- 概述
- 实践
- Dockerfile
- k8s部署脚本
概述
本篇将对 k8s离线部署芋道源码后端
进行详细的说明,对如何构建 Dockerfile
,如何整合 Nginx
,如何整合 ingress
进行实践。
相关文章:[nacos在k8s上的集群安装实践] k8s离线部署芋道源码前端(https://blog.csdn.net/2301_79691134/article/details/139937105)
效果如下(电脑只8G内存,所以演示较卡):
k8s离线部署芋道源码前端
k8s整合gitlab使用芋道做微服务的cicd
CICD参考文章
实践
Dockerfile
首先构建 docker
镜像,jdk 镜像可以根据自己的需要选择,或者自己构建一个小体积的 jdk
镜像包。
FROM harbor.easzlab.io.local:8443/library/java:8u111-jre# 切 root 用户
USER rootARG jarFile
## 创建目录,并使用它作为工作目录
RUN mkdir -p /app
WORKDIR /app
# RUN echo "jarFile is: $jarFile : ${jarFile}"
COPY ./target/$jarFile app.jar# RUN pwd && ls -l## 设置 TZ 时区
## 设置 JAVA_OPTS 环境变量,可通过 docker run -e "JAVA_OPTS=" 进行覆盖
ENV TZ=Asia/Shanghai## 设置 JAVA_OPTS 环境变量,可通过 docker run -e "JAVA_OPTS=" 进行覆盖
ENV JAVA_OPTS="-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom"EXPOSE 48081CMD java ${JAVA_OPTS} -jar app.jar
k8s部署脚本
以其中一个服务为例,不再记录其它的服务案例。
# 以Deployment部署Pod
apiVersion: apps/v1
kind: Deployment
metadata:name: system-biznamespace: default
spec:selector:matchLabels:app: system-bizreplicas: 1template:metadata:labels:app: system-bizspec:initContainers:- name: agent-containerimage: harbor.easzlab.io.local:8443/library/skywalking-java-agent:8.12.0-java8command: [ "/bin/sh" ]args: [ "-c", "cp -R /skywalking/agent /agent/" ]volumeMounts:- name: skywalking-agentmountPath: /agentcontainers:- name: system-bizimage: harbor.easzlab.io.local:8443/library/funcloud-module-system-biz:2.1.0-jdk8-snapshotimagePullPolicy: Alwaysports:- containerPort: 48081volumeMounts:- name: skywalking-agentmountPath: /skywalkingenv:- name: JAVA_TOOL_OPTIONSvalue: "-javaagent:/skywalking/agent/skywalking-agent.jar"- name: SW_AGENT_NAMEvalue: "system-biz"- name: SW_AGENT_COLLECTOR_BACKEND_SERVICESvalue: "oap-svc.default.svc.cluster.local:11800"volumes:- name: skywalking-agentemptyDir: {}
---
# 创建Pod的Service
apiVersion: v1
kind: Service
metadata:name: system-biznamespace: default
spec:ports:- port: 48081protocol: TCPtargetPort: 48081selector:app: system-biz