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

编程教程 > Java > Spring (1443) 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项目的一部分,本文主要讲解如何将服务暴露指定的端口给外部调用
环境本次minikube安装环境为Ubuntu 18.04.6 LTS安装docker-ce参考:Ubuntu 在线安装 Docker-xqlee (blog.xqlee.com)注意配置doc...
罗技k375s优联配对默认情况下,K375s键盘的优联是f1那个键。由于某些原因被替换成为了蓝牙链接模式导致优联无法正常使用。这个时候需要下载一个软件 unif
idea2018配置Tomcat8热部署完整记录
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel注意必须安装java-1.8.0-openjdk-devel,否则没有javac命令
spring boot项目打war包再部署到外部tomcat中
jenkins是devops神器,本篇文章介绍如何安装和使用jenkins部署Spring Boot项目jenkins搭建 部署分为三个步骤;第一步,jenkins安装第二步,插件安装和配置第三...
skywalking 是一款不错的java apm监控服务,比zipkin功能更强大,需要的服务器配置也更多一些
前置条件安装部署好graylog server创建graylog input 打开System/Inputs菜单选择输入类型为filebeat进行创建input创建inputinput信息配置i...
Spring Boot logback tomcat部署不生效问题解决
视频封装/格式常见的封装格式:MP4/MKV....MP4/MKV是你下载的视频文件最常见的种类(文件后缀是.mp4/.mkv)。这些文件其实类似一个包裹,它的
引言    通过之前spring boot mybatis 整合的讲解: spring boot mybaties整合  (spring boot mybaties 整合 基于Java注解方式写...
Java EE 8 JSON Pointer讲解,Java EE 8包含JSON处理API的更新,并为最新的JSON标准提供最新的IEFT标准。
概述Vue3 + Vite 打包整合到Spring boot项目,两种模式。单一项目和多重项目单一项目:vue 单一项目整合到一个Spring Boot 项目多