目录

通过Service访问应用

  • 通过Pod IP访问应用

  • 通过ClusterIP Service在集群内部访问

通过Service访问应用

通过之前的操作,应用部署完成了,我们的Demo网站已经成功启动了,那么如何访问网站呢?

通过Pod IP访问应用

我们可以通过Pod IP来访问之前部署的网站,但是前提是我们需要知道Pod IP。我们可以通过“kubectl get”命令的参数“-o wide”来输出相关的信息,比如Pod IP:

kubectl get pods -lapp=demo -o wide

如果网络是通畅的,那么我们可以在任意的节点上访问我们的应用,如:

curl --head http://10.0.2.12

我们使用curl以get方式请求demo应用,返回请求头为200,那么表示我们已经成功访问了Demo。如果你还不太相信,我们可以通过安装了UI界面的CentOS节点服务器的浏览器上访问这些Pod IP,如下所示:

虽然我们通过Pod IP成功的访问到了应用,但是Pod有生老病死,如果“死”了呢,我们如何访问?Deployment会重建么?我们来试一试:

kubectl delete pods -lapp=demokubectl get pods -lapp=demo -o wide

很不幸的是,如上图所示,POD IP变掉了。那么意味着POD IP会随着POD的生老病死而发生变化。而且,不仅存在这个问题,如果我们直接使用POD IP,那么多个POD也变得毫无意义。那么我们应该到底如何来访问我们的应用呢?

通过ClusterIP Service在集群内部访问

Kubernetes服务(Service)就是为此而抽象出来的,为了让应用能够稳定的输出,Service应运而生。

Service在Kubernetes中是一个抽象的概念,它定义了一组逻辑上的Pod和一个访问它们的策略(通常称之为微服务)。Service是通过标签选择器来绑定一组Pod 的Endpoints(端点)对象,当Pod的IP发生变化,Endpoints也随之变化。当Service接受到请求时,就能通过EndPoints找到请求转发的目标Pod地址。也就是说,通常情况下,Service定义了集群IP和端口,EndPoints则维护了一组Pod IP和端口。

了解了这些,接下来我们就使用ClusterIP Service来访问刚才的Demo应用。

ClusterIP Service是默认的Service类型,其通过集群的内部IP暴露服务,因此仅能在集群内部访问,常用于数据库等应用。

这里,我们定义一个简单的Service集群IP配置:

apiVersion: v1kind: Service #资源类型metadata: #标准元数据 name: demo-service #服务名称spec: #规范定义 type: ClusterIP #服务类型,不填写此字段则默认为ClusterIP类型,也就是集群IP类型 selector: #标签选择器 app: demo #标签 ports: #端口 - protocol: TCP #协议,能够支持TCP和UDP port: 80 #当前端口 targetPort: 80 #目标端口

接下来,我们来执行Service的创建并且分别查询了Service和Endpoints:

kubectl create -f clusterIPService.yamlkubectl get services demo-service -o widekubectl get endpoints demo-service -o wide

如上图所示,我们创建了集群IP为“11.13.47.67”的Service,端口为80(通常情况下,我们将port和targetPort设置为相同的值)。同时我们通过Endpoints列表看到,Endpoints自动绑定了5个Pod IP。接下来我们试试在集群内(节点上)访问:

注意:如果我们需要在创建时设置Service固定IP该如何去设置呢?可以通过字段“spec.clusterIp”进行设置,值需要符合Service IP段要求。

浏览器非常完美的呈现了Demo。在集群内是可以访问了,如果我们提供对外服务呢?比如我们希望我们的Demo被其他电脑访问,以获得用户的赞赏,老板的好评,那么该如何处理呢?我们下一篇再来分析!

转载是一种动力 分享是一种美德

如果喜欢作者的文章,请关注【麦扣聊技术】订阅号以便第一时间获得最新内容。本文版权归作者和湖南心莱信息科技有限公司共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

文档官网:docs.xin-lai.com

查询 service monitor 时发生内部错误_通过Service访问应用 (1)相关推荐

  1. 彻底解决win7安装oracle 10g时发生“程序异常终止,发生内部错误”

    环境 win7 Oracle 10g (链接:https://pan.baidu.com/s/1Iuk5QPQGtxnyhugMi2vY7Q  提取码:WEWE) 亲测,无需JDK支持 错误 程序异常 ...

  2. c语言编译器内部错误,C++致命错误C1001:编译器中发生内部错误

    在发布模式下编译时出现以下错误. 1>d:\users\eyal\projects\code\yalla\core\src\runbox\win32\window.cpp : fatal err ...

  3. C#使用request.GetRequestStream() 提示“底层连接已关闭:发送时发生意外错误”的问题

    在使用HttpWebRequest的实例request请求网址时,在调用request.GetRequestStream()时提示 "底层连接已关闭:发送时发生意外错误"的问题 论 ...

  4. 运行windows live writer时发生“意外错误”

    安装完成后按照介绍的配置方法,提示 "尝试检测日志设置时发生意外错误 QI for IEnumVARIANT failed on the unmanaged server",goo ...

  5. android获取错误原因,从http读取数据时发生OutOfMemory错误获取请求android

    我正在做一个http获取请求.我需要接收大量数据,但在读取数据时出现OutOfMemory异常.从http读取数据时发生OutOfMemory错误获取请求android 我的代码: public st ...

  6. VMware虚拟机运行虚拟系统时显示“内部错误”的解决方法

    VMware虚拟机运行虚拟系统时显示"内部错误"的解决方法 参考文章: (1)VMware虚拟机运行虚拟系统时显示"内部错误"的解决方法 (2)https:// ...

  7. 腾讯QQ2010安装时提示“C:\windows\Installer\QQ2010.msi时发生网络错误”的解决方 ......

    腾讯在今天推出了QQ2010sp2.2,下来安装,遇到一个问题,提示"C:\windows\Installer\QQ2010.msi时发生网络错误" 而后安装不能继续进行 注:此问 ...

  8. vscode 经常弹出:尝试在目标目录创建文件时发生一个错误 重试 跳过这个文件 关闭安装程序

    系列文章目录 文章目录 系列文章目录 前言 一.问题定位? 二.解决办法 1.找到vsCode的安装路径 2.鼠标右键选中Microsoft VS Code文件夹->属性 3. 点击" ...

  9. 通过运营界面上传图片失败,浏览器提示上传文件时发生HTTP错误(错误代码:500)

    通过运营界面上传图片失败,浏览器提示上传文件时发生HTTP错误(错误代码:500) ERROR exception 135 Internal Server Error: /ckeditor/uploa ...

最新文章

  1. dhcp报文_动态地址分配DHCP,IP地址管理方式及分配原则,一分钟了解下
  2. Kail Linux渗透测试教程之Recon-NG框架
  3. python100以内自然数之和_python—100以内素数之和 python123
  4. 有关软件开发中的一些想法
  5. Java volatile关键字原理解剖
  6. ASP.NET- 执行SQL超时的解决方案
  7. 牛客多校第五场B generator1(十进制矩阵快速幂)题解
  8. -i https://pypi.tuna.tsinghua.edu.cn/simple -U
  9. AT24C02/04/08 地址理解
  10. css3技巧——实现一个正方体
  11. Joplin使用坚果云WebDAV同步存在的问题以及解决办法
  12. CTR和CVR联合训练
  13. 几时几分几秒怎么写_几分几秒怎么写
  14. 学习如逆水行舟,只有坚持不断的学习,才能保持进步!我置顶了这些公众号
  15. 麻雀要革命2 第44节:怦然心动的星月童话
  16. linux下最简单的端口转发工具rinetd实现端口转发
  17. 用计算机制作程序框图,流程图 结构图制作更轻松
  18. Kafka Shell Lag
  19. 【读书笔记】NeurIPS2018的两篇文章:The Tradeoffs of Large Scale Learning和Neural Ordinary Differential Equations
  20. 使用VLC(ActiveX)在网页中播放MP4

热门文章

  1. 新增操作 失败后重试_可重试的操作
  2. websocket wss_使用wss和HTTPS / TLS保护WebSocket的安全
  3. 用Java将文件读入字节数组的7个示例
  4. Spring MVC绑定,无设置器
  5. Apache Ant 1.10.6发布–用于junitlauncher的fork模式以及新的jmod和链接任务
  6. JDK 8 BigInteger精确缩小转换方法
  7. jclouds_jclouds的命令行界面
  8. Java命令行界面(第26部分):CmdOption
  9. Java编程语言的历史和未来
  10. 微服务系列:MicroProfile和Apache TomEE