博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kubernates之ingress方式部署springboot
阅读量:6428 次
发布时间:2019-06-23

本文共 3093 字,大约阅读时间需要 10 分钟。

hot3.png

部署一个简单的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: v1kind: Servicemetadata:  name: k8s-learn-service  namespace: default  labels:    app: k8s-learn-servicespec:  type: NodePort  ports:  - port: 8080    nodePort: 30002  selector:    app: k8s-learn-service---apiVersion: apps/v1kind: Deploymentmetadata:  name: k8s-learn-deployment  labels:    app: k8s-learn-deploymentspec:  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: v1kind: Servicemetadata:  name: k8s-learn-service  namespace: default  labels:    app: k8s-learn-servicespec:  type: ClusterIP  ports:  - port: 8080  selector:    app: k8s-learn-service---apiVersion: apps/v1kind: Deploymentmetadata:  name: k8s-learn-deployment  labels:    app: k8s-learn-deploymentspec:  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 servicesNAME                               TYPE           CLUSTER-IP       EXTERNAL-IP                                 PORT(S)                          AGE...k8s-learn-service                  ClusterIP      10.107.55.103    
8080/TCP 3m...

    之后创建用于ingress,如下

    List-2.3  springboot-ingress.yaml

apiVersion: extensions/v1beta1kind: Ingressmetadata:  name: apps-springbootspec:  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 ingressNAME               HOSTS           ADDRESS   PORTS     AGEapps-springboot    springboot-ui             80        17m

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

转载于:https://my.oschina.net/xiaominmin/blog/3042030

你可能感兴趣的文章
房地产英语 Real estate词汇
查看>>
python接口自动化测试(八)-unittest-生成测试报告
查看>>
第 26 章 MySQL
查看>>
Spring.net 学习笔记之ASP.NET底层架构
查看>>
C# System.Windows.Forms.WebBrowser中判断浏览器内核和版本
查看>>
Java 动态太极图 DynamicTaiChi (整理)
查看>>
微信公众平台后台编辑器上线图片缩放和封面图裁剪功能
查看>>
git使用教程2-更新github上代码
查看>>
张掖百公里,再次折戟
查看>>
SAP QM Batch to Batch的转移过账事务中的Vendor Batch
查看>>
本期最新 9 篇论文,帮你完美解决「读什么」的问题 | PaperDaily #19
查看>>
图解SSIS监视文件夹并自动导入数据
查看>>
Lucene.Net 2.3.1开发介绍 —— 四、搜索(一)
查看>>
MyBatis Review——开发Dao的方法
查看>>
技术研发国产化进程加快 看传感器企业如何展示十八般武艺
查看>>
技术助力第三次革命
查看>>
《HTML与CSS入门经典(第8版)》——2.6 总结
查看>>
新手指南:在 Ubuntu 和 Fedora 上安装软件包
查看>>
在 CentOS7.0 上搭建 Chroot 的 Bind DNS 服务器
查看>>
大型网站的 HTTPS 实践(二):HTTPS 对性能的影响
查看>>