一  通过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
  • 甚至可以尝试通过浏览器直接访问哦也是可以访问的

kubernets之向外部应用暴露应用的更多相关文章

  1. 使用ASP.NET Core 3.x 构建 RESTful API - 4.1 面向外部的Model

    Entity Framework Core 使用的 Entity Model 是用来表示数据库里面的记录的. 而面向外部的 model 则表示了要传输的东西.这类 model 有时候叫做 Dto,有时 ...

  2. k8s暴露集群内和集群外服务的方法

    集群内服务 一般 pod 都是根据 service 资源来进行集群内的暴露,因为 k8s 在 pod 启动前就已经给调度节点上的 pod 分配好 ip 地址了,因此我们并不能提前知道提供服务的 pod ...

  3. Docker使用

    Docker使用注意 关于网络配置   在使用默认的桥接模式下,容器启动后会被分配一个与docker0在同一网段的地址,在容器内部默认显示为eth0,在宿主机上产生一个临时的vethXXX接口. 端口 ...

  4. AngularJS中实现无限级联动菜单

    多级联动菜单是常见的前端组件,比如省份-城市联动.高校-学院-专业联动等等.场景虽然常见,但仔细分析起来要实现一个通用的无限分级联动菜单却不一定像想象的那么简单.比如,我们需要考虑子菜单的加载是同步的 ...

  5. iOS多线程-05-多图下载

    效果图 常见问题及解决方法 图片重复下载 将内存保存在内存或沙盒中. 若下载的图片量较大,则会出现UI界面不流畅的现象 在子线程中执行下载操作,然后回到主线程成中进行UI界面的刷新. 由于cell的循 ...

  6. OC - 20.多图下载

    效果图 常见问题及解决方法 图片重复下载 将内存保存在内存或沙盒中. 若下载的图片量较大,则会出现UI界面不流畅的现象 在子线程中执行下载操作,然后回到主线程成中进行UI界面的刷新. 由于cell的循 ...

  7. ZooKeeper笔记--集群安装配置 【转】

    ZooKeeper是一个分布式开源框架,提供了协调分布式应用的基本服务,它向外部应用暴露一组通用服务——分布式同步(Distributed Synchronization).命名服务(Naming S ...

  8. 灵雀云CTO陈恺:从“鸿沟理论”看云原生,哪些技术能够跨越鸿沟?

    灵雀云CTO陈恺:从“鸿沟理论”看云原生,哪些技术能够跨越鸿沟? 历史进入2019年,放眼望去,今天的整个技术大环境和生态都发生了很大的变化.在己亥猪年春节刚刚过去的早春时节,我们来梳理和展望一下整个 ...

  9. DB9针和DB25针串口的引脚定义

    <设备监控技术详解>第3章串口设备监控,本章着力介绍串口交换机和串口联网方式.本节为大家介绍标准25针串口的引脚定义. 作者:李瑞民来源:机械工业出版社 3.3 串口线的制作和转换 串口的 ...

随机推荐

  1. MySql字符集与排序规则详解

    前段时间往MySQL中存入emoji表情或生僻字.繁体字时,报错无法添加,研究后发现这是字符集编码的问题,今天就来分析一下各个字符集与排序规则 一.字符集 先说字符,字符是各种文字和符号的总称,包括各 ...

  2. linux下postgresql安装

    1.下载地址 https://www.enterprisedb.com/download-postgresql-binaries 2.创建用户并修改密码 [root@node01 ~]# userad ...

  3. Linux查看、开启、关闭防火墙操作

    一.防火墙区别 CentOS6自带的防火墙是iptables,CentOS7自带的防火墙是firewall. iptables:用于过滤数据包,属于网络层防火墙. firewall:底层还是使用 ip ...

  4. matplotlib的学习9-bar柱状图

    import matplotlib.pyplot as plt import numpy as np ''' 向上向下分别生成12个数据,X为 0 到 11 的整数 ,Y是相应的均匀分布的随机数据. ...

  5. SpringBoot从入门到精通教程(四)

    前端时间整合SSM ,发现了一个现象,在整合的时候 配置文件过于复杂. 1.建工程,建目录,导入jar包. 2.配置 数据源 映射信息 等等 ... 3. 还有 各种 拦截器,控制器 ,头都大了... ...

  6. 一个简单的CSS示例

    1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8" /> 5 & ...

  7. C#中RDLC报表常用表达式(字符串和转换)

    字符串函数 (1)使用串联运算符和 Visual Basic 常量可将多个字段组合在一起.以下表达式返回两个字段,它们分别位于同一文本框的不同行中:=Fields!FirstName.Value &a ...

  8. Barcodex帮助文档

    前言 官方文档及ocx控件下载,下载很慢,直接上传到博客园文件管理中了. http://files.cnblogs.com/files/masonblog/barcodex.zip 帮助文档 Prop ...

  9. active mq 简单配置

    ---恢复内容开始--- 在activemq.xml 配置activemq的响应配置: 配置消息持久化: <persistenceAdapter>             <!-- ...

  10. 前端网页打印插件print.js(可导出pdf)

    在前端开发中,想打印当前网页的指定区域内容,或将网页导出为多页的PDF,可以借助print.js实现,该插件轻量.简单.手动引入.不依赖其他库.示范项目github:https://github.co ...