kubectl ingress_kubernetes ingress

kubectl ingress_kubernetes ingressKubernates之ingress方式部署springboot

大家好,又见面了,我是你们的朋友全栈君。

    部署一个简单的springboot服务,有个restful接口,如下:

    List-1

mjduan@mjduan-host:/opt/software/tool/virtualbox-vagrant/master$ curl http://192.168.33.10:30002/person/1
{"id":1,"name":"name=1","address":"address"}
mjduan@mjduan-host:/opt/software/tool/virtualbox-vagrant/master$ 

1、NodePort方式暴露端口

    我们将这个springboot部署到k8s上,制作镜像就不描述了,k8s的yaml文件如下,之后执行”kubectl  apply  -f  k8s-demo.yaml”,就可以了。

    List-1.1  k8s-demo.yaml

apiVersion: v1
kind: Service
metadata:
  name: k8s-learn-service
  namespace: default
  labels:
    app: k8s-learn-service
spec:
  type: NodePort
  ports:
  - port: 8080
    nodePort: 30002
  selector:
    app: k8s-learn-service

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: k8s-learn-deployment
  labels:
    app: k8s-learn-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: k8s-learn-service
  template:
    metadata:
      labels:
        app: k8s-learn-service
    spec:
      containers:
      - name: k8s-learn-container1
        image: k8s-learn:1.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080
        volumeMounts: 
        - mountPath : /opt/applog
          name: my-volume
      volumes:
      - name: my-volume
        emptyDir: {}

2、ClusterIP方式,用Ingress暴露端口

    NodePort方式,是直接暴露端口,这种方式不是很好。ClusterIP方式,集群外是访问不了的,我们用Ingress方式来暴露端口,如下:

    List-2.1 k8s-demo.yaml

apiVersion: v1
kind: Service
metadata:
  name: k8s-learn-service
  namespace: default
  labels:
    app: k8s-learn-service
spec:
  type: ClusterIP
  ports:
  - port: 8080
  selector:
    app: k8s-learn-service

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: k8s-learn-deployment
  labels:
    app: k8s-learn-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: k8s-learn-service
  template:
    metadata:
      labels:
        app: k8s-learn-service
    spec:
      containers:
      - name: k8s-learn-container1
        image: k8s-learn:1.0
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080
        volumeMounts: 
        - mountPath : /opt/applog
          name: my-volume
      volumes:
      - name: my-volume
        emptyDir: {}

    之后执行”kubectl  apply  -f k8s-demo.yaml”,之后查看该服务:

    List-2.2

[root@master springboot]# kubectl get services
NAME                               TYPE           CLUSTER-IP       EXTERNAL-IP                                 PORT(S)                          AGE
...
k8s-learn-service                  ClusterIP      10.107.55.103    <none>                                      8080/TCP                         3m
...

    之后创建用于ingress,如下

    List-2.3  springboot-ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: apps-springboot
spec:
  rules:
  - host: springboot-ui
    http:
      paths:
      - path: /
        backend:
          serviceName: k8s-learn-service
          servicePort: 8080

    执行”kubectl  apply  -f  springboot-ingress.yaml “,查看ingress状态:

    List-2.4

[root@master springboot]# kubectl get ingress
NAME               HOSTS           ADDRESS   PORTS     AGE
apps-springboot    springboot-ui             80        17m

    之后在你本地/etc/hosts中加入”k8s的任一节点IP  springboot-ui”,在浏览器中访问”http://springboot-ui/person/12″

转载于:https://my.oschina.net/u/2518341/blog/3041545

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106860.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 搭建nginx rtmp流媒体服务器(超详细)_nginx rtmp 集群

    搭建nginx rtmp流媒体服务器(超详细)_nginx rtmp 集群简单的直播搭建流程本微博在借鉴其他大牛之后,觉得应该写一个直播的完整流程,虽然简单,但是会有一个宏观感受:搭建nginx服务器工具:nginx下载地址:https://nginx.org/download/nginx-1.13.6.zipnginx-rtmp-module-master.zip下载地址:https://github.com/arut/nginx-rtmp-mo

  • linkedin官网_linkedin manager

    linkedin官网_linkedin managerWhy?关系型数据库仍然作为主要的primarydatastore的方案RelationalDatabaseshavebeenaroundforalongtimeandhavebecomeatrustedstoragemediumforallofacompany’sdata.传统的数据仓库的ETL和OLAP方案Datais…

    2022年10月10日
  • san交换机保存配置_交换机是一种什么设备

    san交换机保存配置_交换机是一种什么设备场景:1、两台服务器ESXi1,ESXi22、两台SAN交换机FC1,FC23、4台SAN存储:store1and2,store3and4:其中1和2,3和4分别做了级联,12和34之间做了双活。网络拓扑如图FC交换机1–创建zonezonecreate”Stor1_A_H2_GSJ_ESXI1_P0″,”1,8;2,12″ :做端口绑定,将

    2022年10月24日
  • LSTM模型详解_LSTM模型建立

    LSTM模型详解_LSTM模型建立(一)LSTM模型理解1.长短期记忆模型(long-shorttermmemory)是一种特殊的RNN模型,是为了解决RNN模型梯度弥散的问题而提出的;在传统的RNN中,训练算法使用的是BPTT,当时间比较长时,需要回传的残差会指数下降,导致网络权重更新缓慢,无法体现出RNN的长期记忆的效果,因此需要一个存储单元来存储记忆,因此LSTM模型被提出;2.下面两个图可以看出RNN与LSTM的区别:…

  • 语义分割最新指南2019版「建议收藏」

    语义分割最新指南2019版「建议收藏」之前出现的深度学习语义分割指南2017版(A2017GuidetoSemanticSegmentationwithDeepLearning),作者总结了当年各个具有代表性的语义分割算法与相关贡献。今年NamespaceAfrica数据科学家DerrickMwiti对该领域的再一次梳理(原文链接),希望对大家有帮助。语义分割指的是将图像中的每一个像素关联到一个类别标签上…

  • 如何启用计算机的休眠,电脑休眠

    如何启用计算机的休眠,电脑休眠电脑休眠指的是将当前处于运行状态的数据保存在硬盘中,整机将完全停止供电。[1]在休眠时可以完全断开电脑的电源,自动关闭显示器和硬盘的时间设置为多长时间比较合适应看你需要了。中文名电脑休眠处于运行状态的数据保存在硬盘中存储在硬盘中进入休眠状态和唤醒的速度都相对较慢电脑休眠工作模式编辑语音为什么需要休眠尽管电脑硬件运行速度越来越快,但操作系统的体积也在不断膨胀,使得电脑开、关机…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号