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

位置:首页>文章>详情   分类: 教程分享 > Linux和Shell教程   阅读(917)   2024-04-17 10:46:19


接上篇文章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项目的一部分,本文主要讲解如何将服务暴露指定的端口给外部调用
环境本次minikube安装环境为Ubuntu 18.04.6 LTS安装docker-ce参考:Ubuntu 在线安装 Docker-左搜 (leftso.com)注意配置docker镜像地址...
skywalking 是一款不错的java apm监控服务,比zipkin功能更强大,需要的服务器配置也更多一些
Docker swarm 简介Docker swarm 集群,Docker swarm是docker官方提供的一种集群方式,用于小量微服务部署还算不错,比庞大的k8s体系更轻量。节点 运行 Do...
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel注意必须安装java-1.8.0-openjdk-devel,否则没有javac命令
前置条件安装部署好graylog server创建graylog input 打开System/Inputs菜单选择输入类型为filebeat进行创建input创建inputinput信息配置i...
继前面讲解了jenkin的安装Jenkins 2.319.1 LTS WAR文件安装方式 这里讲解下jenkin的基础部署流程
Docker安装部署Redisdocker 安装部署Redis环境Linux系统dockerdocker-compose 相关文章:Ubuntu 在线安装 Docker-左搜 (leftso.c...
acme.sh说明acme.sh是一个Let's SSL证书颁发的官方推荐shell脚本开源免费安装acme.shcurl https://get.acme.sh | sh提示:普通用户和 ro...