dashboard可视化界面部署springboot项目

简介: ConfigMap:yaml中引用的配置文件。(如同springboot中能够全局常量)Service:暴露容器的网络使得外部端口得以访问内部容器的信息。Deployment:监控和管理pod。(如同tomcat,管理多个项目)Pod:可以拥有多容器,最小调度单位。(docker容器)namespace:用于实现多租户的资源隔离。(不同的Deployment存放于不同位置,方便操作)


image.png

1.本文概念解析

ConfigMap:yaml中引用的配置文件。(如同springboot中能够全局常量)

Service:暴露容器的网络使得外部端口得以访问内部容器的信息。

Deployment:监控和管理pod。(如同tomcat,管理多个项目)

Pod:可以拥有多容器,最小调度单位。(docker容器)

namespace:用于实现多租户的资源隔离。(不同的Deployment存放于不同位置,方便操作)

2.安装私服

请参考上文harbor安装与使用

3.上传镜像到私服

请参考上文harbor安装与使用

4.新建namespace

image.png

apiVersion: v1
kind: Namespace
metadata:
   name: eureka  #空间名称
   labels:
     name: eureka
复制代码

在3处执行以下代码,注意空间名称自行修改。

5.开放端口号

k8s默认的端口号范围为30000-32767,如果需要使用其他端口,需要重新配置,请执行以下命令。

vi /etc/kubernetes/manifests/kube-apiserver.yaml
复制代码

添加需要使用的端口号范围。

--service-node-port-range=2-65535
复制代码

image.png  如果修改配置文件,需要重新启动!

systemctl daemon-reload
systemctl restart kubelet
复制代码

6.在工作空间中创建springboot项目

此操作也可以称为在namespace中添加pod。

image.png

向3处复制以下配置。

apiVersion: v1      #于k8s集群版本有关,使用kubectl api-servrsions 即可查看当前集群支持的版本
kind: Service
metadata:
  name: eureka
  namespace: eureka
  labels:
    app: eureka
spec:               #这是关于该 Service 的定义,描述了 Service 如何选择 Pod,如何被访问
  type: NodePort
  ports:
  - port: 5001
    nodePort: 31666
  selector:
    app: eureka
---
apiVersion: apps/v1
kind: Deployment     #对象类型  #该配置的类型,我们使用的是deployment
metadata:            #译名为元数据,即deployment的一些基本属性和信息
  name: eureka       #deployment的名称
  labels:            #标签,可以灵活定位一个或多个资源,其中key和value均可自定义,可以定义多组
    app: eureka      #为该deployment设置key为app value为nginx的标签 
spec:                #这是关于该deployment的描述,可以理解为你期待该deployment再k8s中如何使用
  replicas: 1        #运行容器的副本数,修改这里可以快速修改分布式节点数量
  selector:          #标签选择器,与上面的标签共同作用
    matchLabels:     #选择包含标签app:nginx的资源
      app: eureka
  template:          #这是选择或创建pod的模板
    metadata:        #pod的元数据
      labels:        #pod的标签,上面的selector即选择包含标签app:nginx的pod
        app: eureka
    spec:            #期待pod实现的功能(即在pod中部署)
      containers:    #生成container,与docker中的container是同一种
      - name: eureka #container的名称
        image: 192.168.41.44:9000/eureka/eureka:latest #私服镜像
        imagePullPolicy: IfNotPresent #pull镜像时机
        ports:
        - containerPort: 5001         #容器对外开放端口
      nodeName: eureka                #执行发布的node
复制代码

请根据个人配置,按照上文备注自行修改。

7.重新发布pod

直接删除pod即可,k8s会直接按照已经添加的配置拉取新的镜像重新发布项目。

image.png

8.删除pod

1.宿主机操作

如果想删除pod,请使用宿主机命令行执行以下命令,删除deployment。

kubectl get deployment -n eureka
kubectl delete deployment eureka -n eureka
复制代码

2.dashboard面板操作

也可以使用dashboard直接操作,分别删除deployment和pod,详情见下图。

image.png

image.png

请保证上述删除顺序。

9.异常解析

1.failed to set bridge addr: "cni0" already has an IP address different from

如果出现此报错,可能是nodes多次加入master照成网络冲突,在nodes执行下面命令,重新加入。

kubeadm reset
systemctl stop kubelet
systemctl stop docker
rm -rf /var/lib/cni/
rm -rf /var/lib/kubelet/*
rm -rf /etc/cni/
ifconfig cni0 down
ifconfig flannel.1 down
ifconfig docker0 down
ip link delete cni0
ip link delete flannel.1
systemctl start docker
systemctl start kubelet
kubeadm join xxxxxxxxxxxxxxxxxx
复制代码

2.found a tab character that violates indentation/found character that cannot staart any token

如果出现以下报错,请检查以上yaml是否格式错误 如:tab代替空格 需要空格等


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
8月前
|
安全 Java 持续交付
如何实现上传jar直接部署成功,这篇文章直接带你上手springboot实现jar包热更新!
本文详细讲解了在Spring Boot应用中实现Jar包热更新的实践方法。通过自定义类加载器(`HotClassLoader`),动态加载和卸载指定目录下的Jar包,结合Spring Bean动态注册机制,使新加载的类能够被Spring容器管理。同时,提供了文件上传接口,方便用户手动触发Jar包更新。文章还强调了安全性、依赖管理和线程安全等注意事项,并给出了测试步骤和总结,帮助开发者高效实现热更新功能,减少服务中断和提升开发效率。
|
8月前
|
前端开发 安全 Java
Spring Boot 便利店销售系统项目分包设计解析
本文深入解析了基于Spring Boot的便利店销售系统分包设计,通过清晰的分层架构(表现层、业务逻辑层、数据访问层等)和模块化设计,提升了代码的可维护性、复用性和扩展性。具体分包结构包括`controller`、`service`、`repository`、`entity`、`dto`、`config`和`util`等模块,职责分明,便于团队协作与功能迭代。该设计为复杂企业级应用开发提供了实践参考。
340 0
|
5月前
|
JSON 分布式计算 大数据
springboot项目集成大数据第三方dolphinscheduler调度器
springboot项目集成大数据第三方dolphinscheduler调度器
326 3
|
5月前
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
537 3
|
5月前
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
607 13
|
5月前
|
Java 关系型数据库 MySQL
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
639 2
|
5月前
|
分布式计算 Java 大数据
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
358 2
|
8月前
|
前端开发 Java 物联网
智慧班牌源码,采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署
智慧班牌系统是一款基于信息化与物联网技术的校园管理工具,集成电子屏显示、人脸识别及数据交互功能,实现班级信息展示、智能考勤与家校互通。系统采用Java + Spring Boot后端框架,搭配Vue2前端技术,支持SaaS云部署与私有化定制。核心功能涵盖信息发布、考勤管理、教务处理及数据分析,助力校园文化建设与教学优化。其综合性和可扩展性有效打破数据孤岛,提升交互体验并降低管理成本,适用于日常教学、考试管理和应急场景,为智慧校园建设提供全面解决方案。
540 70
|
5月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
269 0
|
5月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
490 0