minikube(k8s)部署spring boot项目(二)

编程教程 > Java > Spring (1433) 2024-11-26 14:39:04


接上篇文章minikube(k8s)部署spring boot项目(一)

上篇文章讲解了k8s部署spring boot demo项目的一部分,本文主要讲解如何将服务暴露指定的端口给外部调用。
 

apiVersion: apps/v1  #kubectl api-versions 可以通过这条指令去看版本信息
kind: Deployment # 指定资源类别
metadata: #资源的一些元数据
  name: k8s-boot-app-deployment #deloyment的名称
  labels:
    app: k8s-boot-app  #标签
spec:
  replicas: 3 #创建pod的个数
  selector:
    matchLabels:
      app: k8s-boot-app #满足标签为这个的时候相关的pod才能被调度到
  template:
    metadata:
      labels:
        app: k8s-boot-app
    spec:
      containers:
        - name: k8s-boot-app
          image: k8s-boot-app:1.0
          imagePullPolicy: IfNotPresent #当本地有镜像的时候优先选用本地,没有才选择网络拉取
          ports:
            - containerPort: 8080 #开放8080


在上面的配置文件中添加service配置

#暴露服务给客户端
apiVersion: v1
kind: Service
metadata:
  name: k8s-boot-app-service
  namespace: default
spec:
  # 服务类型
  #ClusterIp 默认是集群内部容器访问地址,会生成一个虚拟IP 与pod不在一个网段
  #NodePort 会在宿主机上映射一个端口,供外部应用访问模式,就是开放端口给外部访问服务
  #LoadBalancer 使用负载均衡,三者的功能是叠加的,如loadBalancer=clusterIp+NodePort+负载均衡
  type: NodePort
  ports:
    - port: 8080 #对应deployment的容器端口
      protocol: TCP
      nodePort: 31000 #外部端口
  selector:
    app: k8s-boot-app #对应deployment的spec.selector.app-> 注意app这个key也要对应

---
apiVersion: apps/v1  #kubectl api-versions 可以通过这条指令去看版本信息
kind: Deployment # 指定资源类别
metadata: #资源的一些元数据
  name: k8s-boot-app-deployment #deloyment的名称
  labels:
    app: k8s-boot-app  #标签
spec:
  replicas: 3 #创建pod的个数
  selector:
    matchLabels:
      app: k8s-boot-app #满足标签为这个的时候相关的pod才能被调度到
  template:
    metadata:
      labels:
        app: k8s-boot-app
    spec:
      containers:
        - name: k8s-boot-app
          image: k8s-boot-app:1.0
          imagePullPolicy: IfNotPresent #当本地有镜像的时候优先选用本地,没有才选择网络拉取
          ports:
            - containerPort: 8080 #容器端口开放8080


添加完成后再次部署,通过命令删除之前的服务

sudo kubectl delete -f ./k8s-boot-app-deployment.yml


创建

sudo kubectl apply -f ./k8s-boot-app-deployment.yml


查看控制面板可以看到service信息

service信息

使用指定的端口访问:

指定端口访问
指定端口访问

 


 

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
环境准备minikube 安装,参考minikube k8s 安装详细教程spring boot demo项目一个spring boot项目 maven 主要依赖 <depe...
接上篇文章minikube(k8s)部署spring boot项目(一)上篇文章讲解了k8s部署spring boot demo项目的一部分,本文主要讲解如何将服务暴露指定的端口给外部调用
spring boot项目打war包再部署到外部tomcat中
Spring Boot logback tomcat部署不生效问题解决
       ​Spring Boot       这里主要对Spring Boot 项目和Spring MVC 相关项目中,日期参数的使用以及Ajax请求日期数据返回格式的处理
Spring Boot 2.0 Redis整合,通过spring boot 2.0整合Redis作为spring缓存框架的实现。
一、spring boot shiro 无状态token认证项目结构图​二、无状态spring boot shiro相关配置2.1shiro redis 缓存配置首先是实现shiro的cache...
概述Vue3 + Vite 打包整合到Spring boot项目,两种模式。单一项目和多重项目单一项目:vue 单一项目整合到一个Spring Boot 项目多
Java编程之spring boot shiro redis整合基于角色和权限的安全管理,Java编程,spring boot,shiro,权限控制
引言    通过之前spring boot mybatis 整合的讲解: spring boot mybaties整合  (spring boot mybaties 整合 基于Java注解方式写...
前言    本教程主要讲解spring boot如何整合 spring data elasticsearch 实现elasticsearch检索引擎的整合使用
spring boot又一个spring框架的经典项目,本文讲解spring boot入门的环境配置以及第一个项目,Spring Boot 入门教程
spring boot webflux client实战,webclient是spring webflux的一个小组件。对于Java的http通讯来说,webclient是非常简单易用的。
spring boot是一个崭新的spring框架分支项目,本文讲解基本的数据库配置