本项目部署在k8s系统上,图片、文件等都是挂载到k8s的nfs系统上的,也就是让本地的/home/oss文件挂载到nfs/k8s/oss上,然后文件上传到/home/oss上。
1、配置静态文件
配置静态文件,这样就可以通过链接访问上传到/home/oss上的文件。
访问http://ip:port/image/xxx.jpg
,就能访问到上传到/home/oss上的文件了
@Configuration
@EnableControllerAdvice
public class ConsoleConfiguration implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(loginInterceptor()).addPathPatterns("/console/**"); //登录拦截器
registry.addInterceptor(permissionInterceptor()).addPathPatterns("/console/**"); //权限拦截器
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/image/**").addResourceLocations("file:"+"/home/oss");
}
@Bean
public OperationLoginInterceptor loginInterceptor(){
return new OperationLoginInterceptor(); //设登录拦截器默认拦截所有方法
}
@Bean
public OperationPermissionInterceptor permissionInterceptor(){
return new OperationPermissionInterceptor();
}
}
2、k8s配置
只改动deployment.json文件就可以了,service.json不需要改动
{
"kind": "Deployment",
"apiVersion": "apps/v1",
"metadata": {
"name": "${APP_NAME}-deployment",
"namespace": "自己的命名空间",
"labels": {
"k8s-app": "${APP_NAME}"
}
},
"spec": {
"replicas": 1,
"selector": {
"matchLabels": {
"k8s-app": "${APP_NAME}"
}
},
"template": {
"metadata": {
"name": "${APP_NAME}",
"labels": {
"k8s-app": "${APP_NAME}"
}
},
"spec": {
"containers": [
{
"name": "app",
"image": "hfdockerhub.com.cc:1443/hfocean/jenkins-${APP_NAME}:${BUILD_NUMBER}",
"resources": {},
"imagePullPolicy": "IfNotPresent",
"securityContext": {
"privileged": false,
"procMount": "Default"
},
"ports":
[{ "containerPort": 8080,
"targetPort": 8080
}],
"volumeMounts":[
{
"name": "oss",
"mountPath": "/home/oss"
}
]
}
],
"volumes":[
{
"name": "oss",
"hostPath": {
"path": "/nfs/k8s/oss"
}
}
],
"type": "NodePort",
"restartPolicy": "Always",
"terminationGracePeriodSeconds": 30,
"dnsPolicy": "ClusterFirst",
"securityContext": {},
"schedulerName": "default-scheduler"
}
},
"strategy": {
"type": "RollingUpdate",
"rollingUpdate": {
"maxUnavailable": "25%",
"maxSurge": "25%"
}
},
"revisionHistoryLimit": 10,
"progressDeadlineSeconds": 600
}
}
重新部署项目