• kubernets之向外部应用暴露应用


    一  通过NodePort来暴露服务

      前面已经介绍的服务的一些作用,例如将集群内部的应用暴露给集群内部的pod使用,将外部的应用通过服务暴露给内部应用使用,但是服务最大的作用不仅仅是这些

    而是将集群内部的应用暴露给外部客户端进行访问,这种实现方式有多种,列举出其中2种进行介绍

    • 第一种是:通过创建NodePort类型的服务提供给外部的访问
    • 第二种是:创建Ingress来对集群内部的pod对外进行暴露       

    二  定义NodePort类型的服务资源

    apiVersion: v1
    kind: Service
    metadata:
      name: kubia-nodeport
    spec:
      type: NodePort
      ports:
      - port: 80
        targetPort: 8080
        nodePort: 30123
      selector:
        app: kubia
    • 内容很简单,只是比普通的service多了个type类型字段,并且在ports里面添加nodePoer和需要访问的目标端口

    三 验证是否符合预期

      如果除了之前的能通过集群分配给服务的固定IP和端口进行访问,还能通过集群里面的任意的节点加:30123的端口进行访问则说明可以通过

    此种方式对服务进行暴露

    [root@node01 Chapter05]# k get po
    NAME          READY   STATUS    RESTARTS   AGE
    kubia-7q8c5   1/1     Running   0          81m
    kubia-7w5tq   1/1     Running   0          81m
    kubia-ch6qk   1/1     Running   0          81m
    [root@node01 Chapter05]# k get svc NAME TYPE CLUSTER
    -IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3d4h kubia-nodeport NodePort 10.101.58.249 <none> 80:30123/TCP 20m
    [root@node01 Chapter05]# k exec kubia
    -7q8c5 -- curl -s http://10.101.58.249 You've hit kubia-7w5tq
    [root@node01 Chapter05]# k get no -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME master Ready master 3d4h v1.14.2 172.16.70.6 <none> CentOS Linux 7 (Core) 3.10.0-514.el7.x86_64 docker://18.9.6 node01 Ready <none> 3d4h v1.14.2 172.16.70.4 <none> CentOS Linux 7 (Core) 3.10.0-514.el7.x86_64 docker://18.9.6 node02 Ready <none> 3d4h v1.14.2 172.16.70.5 <none> CentOS Linux 7 (Core) 3.10.0-514.el7.x86_64 docker://18.9.6
    [root@node01 Chapter05]# k exec kubia-7q8c5 -- curl -s http://172.16.70.6:30123 You've hit kubia-ch6qk
    [root@node01 Chapter05]# k exec kubia-7q8c5 -- curl -s http://172.16.70.5:30123 You've hit kubia-ch6qk
    [root@node01 Chapter05]# k exec kubia-7q8c5 -- curl -s http://172.16.70.4:30123 You've hit kubia-ch6qk
    • 根据执行的结果以及代码可以看到,我们任意进入一个pod,无论是通过集群分配的IP或者是node:port都能够正确的访问到该服务后面挂载的pod
    • 甚至可以尝试通过浏览器直接访问哦也是可以访问的
  • 相关阅读:
    Apache Kafka源码分析
    Apache Kafka源码分析
    Apache Kafka源码分析
    Apache Kafka源码分析
    如何保障流式处理的数据一致性
    Tuning Spark
    Java内存管理和垃圾回收
    Spark MLlib
    Win7系统与它的Virtualbox中安装的Ubuntu14.04共享信息的几种方法
    图片流量节省大杀器:基于CDN的sharpP自适应图片技术实践
  • 原文地址:https://www.cnblogs.com/wxm-pythoncoder/p/14184860.html
Copyright © 2020-2023  润新知