概述
本篇将对 k8s离线部署芋道源码后端
进行详细的说明,对如何构建 Dockerfile
,如何整合 Nginx
,如何整合 ingress
进行实践。
相关文章:[nacos在k8s上的集群安装实践] k8s离线部署芋道源码前端(https://blog.csdn.net/2301_79691134/article/details/139937105)
效果如下(电脑只8G内存,所以演示较卡):
k8s离线部署芋道源码前端
k8s整合gitlab使用芋道做微服务的cicd
实践
Dockerfile
首先构建 docker
镜像,jdk 镜像可以根据自己的需要选择,或者自己构建一个小体积的 jdk
镜像包。
FROM harbor.easzlab.io.local:8443/library/java:8u111-jre
# 切 root 用户
USER root
ARG 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 48081
CMD java ${JAVA_OPTS} -jar app.jar
k8s部署脚本
以其中一个服务为例,不再记录其它的服务案例。
# 以Deployment部署Pod
apiVersion: apps/v1
kind: Deployment
metadata:
name: system-biz
namespace: default
spec:
selector:
matchLabels:
app: system-biz
replicas: 1
template:
metadata:
labels:
app: system-biz
spec:
initContainers:
- name: agent-container
image: harbor.easzlab.io.local:8443/library/skywalking-java-agent:8.12.0-java8
command: [ "/bin/sh" ]
args: [ "-c", "cp -R /skywalking/agent /agent/" ]
volumeMounts:
- name: skywalking-agent
mountPath: /agent
containers:
- name: system-biz
image: harbor.easzlab.io.local:8443/library/funcloud-module-system-biz:2.1.0-jdk8-snapshot
imagePullPolicy: Always
ports:
- containerPort: 48081
volumeMounts:
- name: skywalking-agent
mountPath: /skywalking
env:
- name: JAVA_TOOL_OPTIONS
value: "-javaagent:/skywalking/agent/skywalking-agent.jar"
- name: SW_AGENT_NAME
value: "system-biz"
- name: SW_AGENT_COLLECTOR_BACKEND_SERVICES
value: "oap-svc.default.svc.cluster.local:11800"
volumes:
- name: skywalking-agent
emptyDir: {}
---
# 创建Pod的Service
apiVersion: v1
kind: Service
metadata:
name: system-biz
namespace: default
spec:
ports:
- port: 48081
protocol: TCP
targetPort: 48081
selector:
app: system-biz