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

教程分享 > Java教程 > Spring (1789) 2024-08-07 11:05:25


接上篇文章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信息

使用指定的端口访问:

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

 


 

 

https://www.leftso.com/article/973.html

相关文章
环境准备minikube 安装,参考minikube k8s 安装详细教程spring boot demo项目一个spring boot项目 maven 主要依赖 <depe...
接上篇文章minikube(k8s)部署spring boot项目(一)上篇文章讲解了k8s部署spring boot demo项目的一部分,本文主要讲解如何将服务暴露指定的端口给外部调用
spring boot项目打war包再部署到外部tomcat中
jenkins是devops神器,本篇文章介绍如何安装和使用jenkins部署Spring Boot项目jenkins搭建 部署分为三个步骤;第一步,jenkins安装第二步,插件安装和配置第三...
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...
引言    通过之前spring boot mybatis 整合的讲解: spring boot mybaties整合  (spring boot mybaties 整合 基于Java注解方式写...
Java编程之spring boot shiro redis整合基于角色和权限的安全管理,Java编程,spring boot,shiro,权限控制
spring boot又一个spring框架的经典项目,本文讲解spring boot入门的环境配置以及第一个项目,Spring Boot 入门教程
前言    本教程主要讲解spring boot如何整合 spring data elasticsearch 实现elasticsearch检索引擎的整合使用
spring boot webflux client实战,webclient是spring webflux的一个小组件。对于Java的http通讯来说,webclient是非常简单易用的。
spring boot是一个崭新的spring框架分支项目,本文讲解基本的数据库配置
Java编程中spring boot项目如何获取spring容器applicationContext