范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Docker与k8s的恩怨情仇(七)服务发现让内外交互原地起飞

  在上节中我们介绍了活字格公有云版在k8s上部署,以及如何实现容器之间的编排与管理控制。为了进一步实现内外交互调用,则需要实现服务发现的功能。也就是我们前面提到"人与狗"之间的关系。
  (图片来自网络)
  做过微服务的同学可能了解过什么叫服务发现,spring cloud项目中的Eureka框架就是完成这个功能的,其主要工作就是注册内部的服务,以供其他集群的服务可以调用、访问这个服务。
  我们合理猜测Kubernetes的存在很有可能激发了各种微服务框架产生服务发现机制。
  在Kubernetes中服务发现对应的模块是Service与Ingress,接下来,我们分别来说说这两个功能。Service与Ingress
  Service类似于服务的注册功能。
  其逻辑很简单,在kubernetes声明一个服务,从而生成一个VIP(虚拟网络),所有Kubernetes集群中的其他组件,都可以通过这个VIP来访问这个服务,并且这个服务是不会随Service的改变而改变的,只要创建就是终生存在。Service
  而服务的内容是什么呢?这部分和上述的Deployment一样,是通过selector选择器确定的。我们可以通过下述yaml来创建一个服务:apiVersion: v1 kind: Service metadata:   name: hostnames spec:   selector:     app: hostnames   ports:   - name: default     protocol: TCP     port: 80     targetPort: 9376
  通过上一篇的介绍,我们可以了解这个服务所需要代理的内容是app==hostnames的Pod。同时这里也有一个新的字段ports,这个字段是说明该代理的服务的请求方式(protocol)、对外暴露的端口(port)、内部的端口(targetPort)分别是什么。
  我们可以通过这个sample-service.yaml的文件创建一个Service并且查看一个Service:# 创建 kubectl apply -f sample-service.yaml # 查看 kubectl get services hostnames
  在这个service中存在一个ClusterIP,这个IP就是这个Service生成的VIP,在集群内部的其他成员,都可以通过这个VIP来访问这个Service。但是由于我们现在没有任何的具体服务让这个Service代理,因此现在请求这个IP是不会成功的。
  那么,我们需要为这个Service创建一个具体实现:以下的sample-deployment.yaml文件是创建一个多副本的Pod,其Pod的功能是返回自己的podname:apiVersion: apps/v1 kind: Deployment metadata:   name: hostnames spec:   selector:     matchLabels:       app: hostnames   replicas: 3   template:     metadata:       labels:         app: hostnames     spec:       containers:       - name: hostnames         image: k8s.gcr.io/serve_hostname         ports:         - containerPort: 9376           protocol: TCP ~                        
  在这段代码中,我们把容器的9376端口暴露的出来,因为这个Pod是通过这个端口与外部通行的。同样我们执行以下命令创建和查看这个pod副本:# 创建 kubectl apply -f sample-deployment.yaml # 查看 kubectl get pods -l app=hostnames
  在这部分内容中可以看到这个pod副本已经创建成功了。此时,根据我上一节所说的控制器模式,Service也有对应的处理Service的控制器,其内部发现了有满足app==hostnames的服务,即将这个服务和Service进行了绑定。此时,我们就可以通过任意一台集群内的主机来请求刚才上文中的ClusterIP:
  在这一部分可以看到,我们进行了很多次请求,但是每次返回的结果都不同,这是因为Service在其内部通过网络插件(CNI)做了负载均衡处理,所以我们可以通过Service来实现的负载均衡功能。学习过程中的"误入歧路"
  在学习了解这部分内容的时候,我一直有一个误解:认为Service是必须对应Deployment这种Pod的编排控制器对象才能工作的,所以把Service --> Deployment --> Pods这条逻辑关系熟记于心,但这种理解其实是错误的。
  在Kubernetes中,每个功能组件各司其职,他们只会处理自己该做的事,比如这里,Service绑定Pod所依赖的是选择器中的app==hostnames,而这个定义是出现在Deployment中定义在Pod中的,因此Service和Deployment完全没有关系,它们俩谁也不认识谁,关系可以用下图来描述:
  (图片来自网络)
  并且,在之前的学习中还错误地认为负载均衡服务是由Deployment提供的,其实这个功能是Service中的网络插件来处理的,并且用户同样也可以自定义使用的网络查件或者负载均衡算法是什么,Kubernetes给了用户足够大的自由度。Ingress
  有了Service之后,我们的服务就可以在集群中随意访问达到服务之间的交流关系了,但是要想让我们的服务让最终的用户访问到,我们还需要最后一个组件Ingress。
  Ingress是Kubernetes中的反向代理服务,它可以解析配置的域名指向到我们内部的Service中,其定义可以通过下述的yaml来实现:apiVersion: extensions/v1beta1 kind: Ingress metadata:   name: sample-ingress spec:   rules:   - host: hostname.sample.com     http:       paths:       - path: /         backend:           serviceName: hostnames           servicePort: 80
  上述代码中,我们将hostname.sample.com这个域名指向了刚才定义的hostnames这个Service。通过这样的操作,我们的服务便就可以通过定义域名配置供外部的服务进行访问了。而Ingress的创建命令,也和前面所说的一样:kubectl apply -f sample-ingress.yaml
  有了这部分配置,我们的功能原则上就能够让外部访问了。但在实际应用中我们本地没有可供测试的环境,本地的Kubernetes环境是通过kindD生成的,其核心是多个Docker Container而不是多台机器。上述内容在Container内部运行,是使用Docker模拟Kubernetes的功能,因此这也是本文中唯一无法验证成功的一个功能模块。完整部署一个活字格应用
  通过上节我们一起学习了Pod间的编排控制器的使用,本节中实现了内外交互调用,进一步实现服务发现的功能,我们现在就可以再次回到之前提出的问题:究竟如何成功部署一个活字格应用。
  通过介绍整个Kubernetes的基础使用的流程,我们可以看到一个服务在Kubernetes变成Pod,通过Deployment部署,通过Service服务发现,通过Ingress反向代理的全过程,经过这些模块的协力配合之后,我们的活字格应用终于可以部署在这个Kubernetes集群中了。
  (整体部署流程梳理)
  希望这张图片展示,能够为大家带来更加直观的感觉。总结
  截止到本章,我们已经完整介绍了活字格公有云版做k8s部署的全过程。下一节将会为大家带来本系列文章的最后一篇——Kubernetes总览,让大家对Kubernetes集群内容部分有一个整体性印象,对一些深层次功能做一个总结。
  感兴趣的小伙伴不要错过~我们下篇接着聊。

用上骁龙888Plus,预装鸿蒙OS!荣耀新旗舰这回能火吗?荣耀跟华为早就分家了,但推出的几款产品却一直反响平平。虽然本是同根生,分家也是为了两家更好的成长,没成想老大哥日子不好过,荣耀这个弟弟的表现也属实一般。眼下如今荣耀已经是一家独立公帮帮吐血整理华为手机微信来消息不提示消息延迟怎么办?想起因为微信来消息不提示消息延迟,少抢了多少红包,漏接了多少次夺命call,突然觉得微信不香了!其实微信来消息不提示消息延迟,排除网络原因,一般来说就是设置问题微信设置或者系统设置手机品牌纷纷去造车,新能源汽车真的能助推IoT生态发展吗?从特斯拉这条鲶鱼火了之后,造车新势力品牌越来越多,互联网品牌也争相涌入,国内尤其如此。但更让人不解的是,除了最早布局自动驾驶技术的苹果,越来越多的手机品牌加入到造车的行列中,华为小华为云空间提醒空间不足,不想升级空间,怎么关闭提醒?没有一点点防备,手机云空间不足的提醒它又来了!作为手机控患者,看到提醒时的焦虑值堪比您的假期余额不足怎么关闭云空间的消息提醒?如何关闭云备份空间不足的弹窗提示?本期热心帮帮在线为您用牙膏能修复手机屏幕小划痕吗?这些屏幕知识很少人知道据不完全统计,我们平均每天使用手机时长已经超过3小时,并且这一时间有增无减。大家也越来越关注屏幕对眼睛的影响,OLED屏比LCD屏更伤眼睛吗?屏幕分辨率越高蓝光越强?对眼睛伤害更大华为云空间满了不知道怎么清理?教你三招轻松搞定随着使用时间增加,手机云空间越来越满不敢同步新的照片,备份数据提示云空间不足,云图库一顿删除猛如虎,云空间依旧满满当当华为云空间满了,不想升级云存储空间,到底如何清理?帮帮教大家,电动车载人新规12岁以下的儿童,车主和载成人有区别吗?新国标出台以来,人们的出行也将要迎来改变,电动车出行也不再便利,当然在更换了新国标电动车之后也就可以正常出行,只是不能像之前那样肆无忌惮!之所以会对电动车做出调整,也正是因为电动车电动车集体涨价,除了成本增加,这两个原因不可忽略电动车市场发展得风生水起,相比汽车市场而言,电动车的市场竞争压力明显小很多,这些年的品牌累计和更新换代,让很多电动车品牌深入人心,而不像汽车市场那样水深火热。要知道我国电动车保有量电动车超标摩托车禁用,咋出门买菜?听听解释不知道大家在出门时,有没有看过路上的交通,如今出行压力越来越大,在上下班时往往会堵车,也是交通事故最常见的时候。这时候开车出行往往没有电动车自行车方便,毕竟电动车没有堵车的情况,在快来给你的手机把个脉如何正确质检iPhoneiPhone因为做工良好,多年运行不卡顿,所以在二手机市场比较受欢迎。而且到了每年新机发布的时候,国行版本价格比较贵,而且等货要很久,可能有很多人会选择非官方渠道购买。不管是买二手超级混动初体验霸气大唐不一样不知道什么时候开始,身边越来越朋友买车考虑小众车,传统日系起来,随着铺天盖广告,对国产也几分熟悉天气刚刚去体验下其实家里有条件充电,新能源会个不错选择家用电220伏就可以充电耶体验
我国科学家建立蛋白质设计新方法原标题我国科学家建立蛋白质设计新方法蛋白质是生命的基础,国际上早有关注如何通过氨基酸的人工排列组合设计蛋白质。中国科学技术大学刘海燕教授陈泉副教授团队采用数据驱动策略,开辟出一条全多年手机维修经验师傅总结的影响植锡好坏的关键因素1。锡浆的干湿,锡浆不能太干,也不能太湿2。锡浆的纯净度,锡浆要尽量干净,里面不能有杂质3。植锡钢网,植锡钢网要尽量平整,不能变形4。纸巾用来固定芯片,防止芯片错位大芯片可适当加厚Node。jsv17。5。0发布,核心增加FetchAPI作者五月君Node。jsv17。5。0版本于本周四(20220210)发布,其显著变化为试验性支持fetch()APIStream新增了find()toArray()forEach宁德时代强力反弹重回500元,新能源车ETF(515030)涨超2金融界2月14日消息,近期传闻不断的宁德时代,周末报警辟谣,今日开盘后宁德时代股价强力反弹,上涨4,重回500元。宁德时代的反弹,拉动整个新能源板块,截至上午10点,新能源车ETF美国又损失一员大将,微软首位华人高管回国,只愿为祖国培养人才他是天才少年,未满14岁考上东南大学,20岁香港大学硕士毕业,后来进入国外卡内基梅隆大学攻读博士。天才少年选择了当时冷门的人工智能方向,做出了世界上第一个人工智能三维全真模型,一朝立体声好还是左右声道好?这个问题,放在现在,一般人都能理解,你说的左右声道,是指标准的两声道系统立体声,是指多声道系统。但在上世纪90年代这样问,则会引起笑话。上世纪90年代及以前,由于科学技术的制约,电索尼a7m3和a6400拍视频哪个好?感谢官方邀请!索尼相机用户科技媒体来答,希望能解决你的问题。个人认为,选择适合你的机器最重要!1。实际的拍摄性能上,A73肯定是要比6400强不少的,毕竟一个全幅机一个半幅机。a7从上海地铁夹人事故看人工智能人工智能在公共服务上的应用,细节有待完善。1月22日下午4点30分左右,上海地铁15号线在祈安路站关门时夹住了一个老年乘客,后经送医院抢救无效不幸身亡。一般地铁在启动出发前,驾驶员直击新能源出行痛点魏牌以0焦虑智能电动打造更优解能源变革,技术迭代,作为中国汽车工业率先向豪华进军的品牌,魏牌始终突破引领踔厉前行。2022年1月14日,长城汽车0焦虑智能电动新技术暨摩卡DHTPHEV预售发布会在保定哈弗技术中台积电3nm传来新进展,苹果A16芯片已经稳了,三星超车基本没戏文有鱼审核张子扬校正知秋最近几年,芯片工艺的发展速度可谓是突飞猛进,眨眼间台积电和三星就已经开始角逐3nm工艺。此前有媒体报道,台积电3nm工艺芯片将在2022年的第四季度量产,这OriginOSOcean体验一个全新的系统,全新的体验,值得去探索经历了过去一年多时间对全新系统OriginOS的梳理之后,V粉刚刚迎来了期盼已久的2。0版大更新OriginOSOcean。没有按照软件行业常见的方式来为原系统OriginOS的新