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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ftp客户端软件,8款最受欢迎的ftp客户端软件

    对于ftp客户端软件,你了解多少?其实一般人也接触不到这种软件。ftp客户端软件主要是针对从事网站管理的工作人员比较有利的一款工具。可以帮助他们快速的解决工作中的问题。方便、简单、快捷又明了的解决问题,下面有六款ftp客户端软件的介绍。第一款:IIS7服务器管理工具这款工具是真的好用,童叟无欺的那种好用。在我心里它是排在中文版javaftp工具类中的榜首的。它不仅拥有每个javaftp工具类都具备的批量管理功能,还具备很多你意想不到的地方,比如定时同步(上传和下载)、多任务同时进行、定时备份还能够自

    2022年4月5日
    99
  • 电子时钟代码

    电子时钟代码/*电子时钟总体样式设置*/#clock{width:800px;font-size:80px;font-weight:bold;color:red;text-align:center;margin:20px;}/*时分秒数字区域的样式设置*/.box1{margin-right:10px;width:100px;height:100px;line-height:100px;…

    2022年6月28日
    41
  • 仙剑—相爱

    仙剑—相爱

    2022年2月4日
    41
  • python正则表达式或者用法_python正则表达式使用实例

    python正则表达式或者用法_python正则表达式使用实例搞懂Python正则表达式用法作者:枫叶云来源:见文末Python正则表达式正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python自1.5版本起增加了re模块,它提供Perl风格的正则表达式模式。re模块使Python语言拥有全部的正则表达式功能。compile函数根据一个模式字符串和可选的标志参数生成一个正…

    2022年9月26日
    0
  • 100天精通Oracle-实战系列(第8天)保姆级 PL/SQL Developer 安装与配置「建议收藏」

    100天精通Oracle-实战系列(第8天)保姆级 PL/SQL Developer 安装与配置「建议收藏」100天精通Oracle-实战系列(第8天)PL/SQLDeveloper安装与配置

    2022年10月12日
    0
  • JSON教程[通俗易懂]

    JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage, StandardECMA-2623rdEdition-December1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,…

    2022年4月6日
    114

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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