K8s种的service配置

什么是service

官方的解释是:
  k8s中最小的管理单元是pod;而service是 将运行在一个或一组 Pod 上的网络应用程序公开为网络服务的方法;
  Kubernetes 中 Service 的一个关键目标是让你无需修改现有应用以使用某种服务发现机制。 你可以在 Pod 集合中运行代码,无论该代码是为云原生环境设计的,还是被容器化的老应用。 你可以使用 Service 让一组 Pod 可在网络上访问,这样客户端就能与之交互。
  Service API 是 Kubernetes 的组成部分,它是一种抽象,帮助你将 Pod 集合在网络上公开出去。 每个 Service 对象定义一组端点的逻辑集合(通常这些端点就是 Pod)以及如何访问到这些 Pod 的策略
  例如,有一个无状态的后端应用,其中运行 3 个副本(Replicas)。 这些副本是可互换的 —— 前端不需要关心它们调用的是哪个后端。 即便构成后端集合的实际 Pod 可能会发生变化,前端客户端不应该也没必要知道这些, 而且它们也不必亲自跟踪后端的状态变化。
  通俗一点讲就是将一组pod抽离成一个服务,和这组pods交互的其他组件不需要知道这组pod内发生了什么事情,里面的某些pod是否健康,每一个pod的ip是多少,我只知道这组pod抽离成的service是什么就行了

sevice有哪些类型

1、ClusterIP:默认的类型值,通过集群的内部 IP 公开 Service,选择该值时 Service 只能够在集群内部访问。 这也是你没有为服务显式指定 type 时使用的默认值。 你可以使用 Ingress 或者 Gateway API 向公共互联网公开服务。
2、NodePort:通过每个节点上的 IP 和静态端口(NodePort)公开 Service。此类型可通过节点IP和端口进行访问,对外暴露了集群内部服务;
3、LoadBalancer:使用云平台的负载均衡器向外部公开 Service。Kubernetes 不直接提供负载均衡组件; 你必须提供一个,或者将你的 Kubernetes 集群与某个云平台集成。

案例练习

我新建一个服务,指定ClusterIP类型,并通过集群内部进行访问;
1、先创建一个nginx 的yaml文件,再执行kubectl apply -f nginx-demo,创建好应用;

apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginx-demoname: nginx-demo
spec:replicas: 2selector:matchLabels:app: nginx-demotemplate:metadata:labels:app: nginx-demospec:containers:- image: nginxname: nginx

查看启动情况:
在这里插入图片描述
2、创建service资源

apiVersion: v1
kind: Service
metadata:labels:app: nginx-demoname: nginx-demo
spec:selector:app: nginx-demoports:- port: 8000protocol: TCPtargetPort: 80

执行kubectl命令,并查看启动情况:
在这里插入图片描述
可以看到资源已经启动好了,进入集群访问资源,可以看到已分配了集群的内部ip是:10.96.185.237,使用8000端口
在这里插入图片描述
可以看到成功访问了service 资源;

案例2:使用nodeport类型的service,在浏览器内访问集群内部应用,也就是暴露集群的应用,实现在集群外部访问
我们这里就已经部署好的k8s-dashboard为例,看一下service的yaml文件

kind: Service
apiVersion: v1
metadata:name: kubernetes-dashboardnamespace: kubernetes-dashboarduid: 0626588b-9fc3-4bf7-aa54-779a223ba3f8resourceVersion: '11657'creationTimestamp: '2023-08-04T11:59:45Z'labels:k8s-app: kubernetes-dashboardannotations:kubectl.kubernetes.io/last-applied-configuration: >{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{},"labels":{"k8s-app":"kubernetes-dashboard"},"name":"kubernetes-dashboard","namespace":"kubernetes-dashboard"},"spec":{"ports":[{"nodePort":32232,"port":443,"targetPort":8443}],"selector":{"k8s-app":"kubernetes-dashboard"},"type":"NodePort"}}managedFields:- manager: kubectl-client-side-applyoperation: UpdateapiVersion: v1time: '2023-08-04T11:59:45Z'fieldsType: FieldsV1fieldsV1:f:metadata:f:annotations:.: {}f:kubectl.kubernetes.io/last-applied-configuration: {}f:labels:.: {}f:k8s-app: {}f:spec:f:externalTrafficPolicy: {}f:ports:.: {}k:{"port":443,"protocol":"TCP"}:.: {}f:nodePort: {}f:port: {}f:protocol: {}f:targetPort: {}f:selector:.: {}f:k8s-app: {}f:sessionAffinity: {}f:type: {}
spec:ports:- protocol: TCPport: 443targetPort: 8443nodePort: 32232  #对外暴露的端口selector:k8s-app: kubernetes-dashboardclusterIP: 10.96.27.42clusterIPs:- 10.96.27.42type: NodePort #nodeport类型sessionAffinity: NoneexternalTrafficPolicy: Cluster
status:loadBalancer: {}

可以看到文件中的服务类型为NodePort ,https协议访问的端口为32232,那在浏览器内就通过任一集群节点ip的方式访问
在这里插入图片描述
可以看到已经对外暴露成功!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/342031.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安防综合管理系统EasyCVR视频汇聚平台GA/T 1400协议中的关键消息交互示例

在当今的信息化时代,公共安全防范日益成为保障社会和谐稳定的关键。视频监控系统作为现代安全防范的重要手段,正不断在公安、交通、城市管理等领域发挥着越来越重要的作用。而GA/T 1400协议视图库,作为公安视频图像信息应用系统的标准&#x…

计算机网络 期末复习(谢希仁版本)第1章

大众熟知的三大网络:电信网络、有线电视网络、计算机网络。发展最快起到核心的是计算机网络。Internet是全球最大、最重要的计算机网络。互联网:流行最广、事实上的标准译名。互连网:把许多网络通过一些路由器连接在一起。与网络相连的计算机…

Python dateutil库:日期和时间处理的利器

更多Python学习内容:ipengtao.com Python的dateutil库是一个强大且灵活的日期和时间处理工具。它扩展了标准库中的datetime模块,提供了更多的功能和更高的灵活性。dateutil库特别适用于复杂的日期解析、日期计算、时区转换和重复事件处理。本文将详细介绍…

【全开源】在线投票系统(微信公众号+PC端)

🔥在线投票系统,让决策更民主更高效!🚀​​ 🌈 一、什么是在线投票系统? 在数字化时代,我们越来越多地依赖科技来辅助我们的工作与生活。在线投票系统,就是这样一个神奇的工具。简…

【云原生】Kubernetes----RBAC用户资源权限

目录 引言 一、Kubernetes安全机制概述 二、认证机制 (一)认证方式 1.HTTPS证书认证 1.1 证书颁发 1.2 config文件 1.3 认证类型 1.4 Service Account 1.4.1 作用 1.4.2 包含内容 1.4.3 与Secret的关系 2.Bearer Tokens 3.基本认证 三、鉴…

Python编程学习第一篇——制作一个小游戏休闲一下

到上期结束,我们已经学习了Python语言的基本数据结构,除了数值型没有介绍,数值型用的非常广,但也是最容易理解的,将在未来的学习中带大家直接接触和学习掌握。后续我们会开始学习这门语言的一些基础语法和编程技巧&…

【Python数据挖掘实战案例】机器学习LightGBM算法原理、特点、应用---基于鸢尾花iris数据集分类实战

一、引言 1、简要介绍数据挖掘的重要性和应用 在数字化时代,数据已经成为企业和社会决策的重要依据。数据挖掘作为一门交叉学科,结合了统计学、机器学习、数据库技术和可视化等多个领域的知识,旨在从海量数据中提取有价值的信息&#xff0c…

回归模型的算法性能评价

一、概述 在一般形式的回归问题中,会得到系列的预测值,它们与真实值(ground truth)的比较表征了模型的预测能力,为有效量化这种能力,常见的性能评价指标有平均绝对误差(MAE)、均方误…

【论文解读】针对机器人技术的大模型

1、简要介绍 大型语言模型(LLM)经历了显著的发展,并越来越多地跨各个领域集成。值得注意的是,在机器人任务规划领域,LLM利用其先进的推理和语言理解能力,基于自然语言指令制定精确和高效的行动规划。然而&a…

C基础与SDK调试方法

REVIEW 上次学习了一下软件使用流程zynq PS点灯-CSDN博客 本次学习一下C编程基础与调试方法 1. 硬件编程原理 小梅哥视频链接: 07_Xilinx嵌入式裸机硬件编程原理_哔哩哔哩_bilibili 对应的课程笔记:【zynq课程笔记】【裸机】【第7课 】【硬件编程原理…

使用双升压转换器扩展高转换比设计的功率范围

任何升压转换器设计都会对从输入到输出的电压升高程度存在实际限制。脉宽调制 (PWM) 控制器具有时序限制,限制了场效应晶体管 (FET) 的允许接通和断开时间。时序限制将有效地限制可实现的升压比,尽管这个缺点在使用电感器而不是变压器或耦合电感器作为其…

【Uniapp】uniapp微信小程序定义图片地址全局变量

错误写法: main.js Vue.prototype.$imgUrl 图片地址这么写之后 就发现压根不起作用;获取到的是undefined 正确写法: 返回函数,后面可以拼上OSS图片完整路径 Vue.prototype.$imgUrl (url) > {return ("https://地址…

SparkSql近期使用经验分享

背景 近期在公司使用了SparkSql重构一个由Java开发的ETL程序,因为Java模块不易于修改和部署,而由于SparkSql脚本是由Python开发,便于根据业务需求来开发维护,特别是不需要编译、打包部署。 技术理念 SparkSql是以Sql的形式去开…

植物大战僵尸杂交版2.0.88最新版安装包

游戏简介 游戏中独特的杂交植物更是为游戏增添了不少亮点。这些杂交植物不仅外观独特,而且拥有更强大的能力,能够帮助玩家更好地应对游戏中的挑战。玩家可以通过一定的条件和方式,解锁并培养这些杂交植物,从而不断提升自己的战斗…

【Python】推荐比print更好用的调试方法

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

算法学习笔记(7.6)-贪心算法(霍夫曼编码)

目录 1.什么是霍夫曼树 2.霍夫曼树的构造过程 3.霍夫曼编码 3.1具体的作用-频率统计 ##实战题目 1.什么是霍夫曼树 给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也…

【JavaEE进阶】——MyBatis操作数据库 (#{}与${} 以及 动态SQL)

目录 🚩#{}和${} 🎈#{} 和 ${}区别 🎈${}使用场景 📝排序功能 📝like 查询 🚩数据库连接池 🎈数据库连接池使⽤ 🚩MySQL开发企业规范 🚩动态sql &#x1f388…

能动嘴就别再手动操作了!国产AI大模型让你轻松搞定一切

国产AI大模型使用入门指南 #大模型# ▶▶▶ 引言 简单来说,大模型拥有超级无敌强大的大脑,无所不知(不断吸收互联网上海量信息、文献、图书等等它可以找到的数据进行训练)。因此,懂得利用AI生成内容,就如同…

DockerCompose中部署Jenkins(Docker Desktop在windows上数据卷映射)

场景 DockerJenkinsGiteeMaven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑: DockerJenkinsGiteeMaven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑_jenkins的安装以及集成jdkgitmaven 提示警告-CSDN博客 Windows10(家庭版…

MySQL的联合索引及案例分析

1. 联合索引 关于联合索引的详解参考博客【Mysql-----联合索引和最左匹配】,包含讲解 最左匹配 联合索引失效的情况 不遵循最左匹配原则范围查询右边失效原理like索引失效原理 比较关注的点在于: 对A、B、C三个字段创建一个联合索引(A, …