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代替空格 需要空格等


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
7天前
|
XML Java 应用服务中间件
SpringBoot-打包&部署
SpringBoot 项目支持两种打包方式:WAR 包和 JAR 包。JAR 包内置 Tomcat,可直接运行;WAR 包需部署在外部 Tomcat 上。JAR 包通过 `mvn clean package` 打包并用 `java -jar` 运行,支持后台运行和 JVM 参数配置。WAR 包需修改 pom.xml 为 war 类型,移除嵌入式 Tomcat 依赖,添加 servlet-api,并继承 `SpringBootServletInitializer`。配置文件可通过外部 application.yml 覆盖,默认优先级高于 JAR 内部配置。
46 17
SpringBoot-打包&部署
|
28天前
|
XML Java 应用服务中间件
SpringBoot项目打war包流程
本文介绍了将Spring Boot项目改造为WAR包并部署到外部Tomcat服务器的步骤。主要内容包括:1) 修改pom.xml中的打包方式为WAR;2) 排除Spring Boot内置的Tomcat依赖;3) 添加Servlet API依赖;4) 改造启动类以支持WAR部署;5) 打包和部署。通过这些步骤,可以轻松地将Spring Boot应用转换为适合外部Tomcat服务器的WAR包。
132 64
SpringBoot项目打war包流程
|
3月前
|
Java 应用服务中间件 Maven
如何将 Spring Boot 应用程序部署为 WAR?
如何将 Spring Boot 应用程序部署为 WAR?
213 1
|
1月前
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
基于springboot+thymeleaf+Redis仿知乎网站问答项目源码
136 36
|
23天前
|
自然语言处理 IDE Java
SpringBoot start.aliyun.com创建项目,解决properties乱码的问题
通过确保文件和开发环境的编码一致,配置 Maven 编码,设置 Spring Boot 应用和嵌入式服务器的编码,可以有效解决 properties 文件的乱码问题。以上步骤可以帮助开发者确保在 Spring Boot 项目中正确处理和显示多语言字符,避免因编码问题导致的乱码现象。
36 5
|
26天前
|
JavaScript 搜索推荐 Java
基于SpringBoot+Vue实现的家乡特色推荐系统设计与实现(源码+文档+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
57 8
|
26天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
67 6
|
26天前
|
JavaScript Java 测试技术
基于Java+SpringBoot+Vue实现的车辆充电桩系统设计与实现(系统源码+文档+部署讲解等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
57 6
|
26天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue的班级综合测评管理系统设计与实现(系统源码+文档+数据库+部署等)
✌免费选题、功能需求设计、任务书、开题报告、中期检查、程序功能实现、论文辅导、论文降重、答辩PPT辅导、会议视频一对一讲解代码等✌
40 4
|
26天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue实现的高校食堂移动预约点餐系统设计与实现(源码+文档+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
70 3