K8S 集群核心概念 Service_Service 介绍 | 学习笔记

简介: 快速学习 K8S 集群核心概念 Service_Service 介绍

开发者学堂课程【Kubernetes 极速入门:K8S 集群核心概念 Service_Service 介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/658/detail/10916


K8S 集群核心概念 Service_Service 介绍


内容介绍:

一、场景

二、学习目标

三、学习步骤

四、课程内容

 

一、场景

通过前面课程的学习,已经可以通过控制器创建相关的应用。可是在访问应用时发现这样一个问题,Pod 如果是被人为关闭的,Controller 就会重新拉起一个新的 Pod。

如果重新拉起,Pod 的 IP地址就会重新分配。如果是通过 Pod 的 IP 地址来访问 Pod 的话,会发现可能无法完全的去控制 Pod 的访问。

因此在 k8s 集群当中引入了这样一个概念,这个概念就叫做 Service,专门用于控制对于 Pod 的访问。不管这个应用有多少 Pod,都不会直接去访问,只要访问这个应用所包含的 Service 就可以访问到 Pod 了。

 

二、学习目标

1、了解 Service 是什么?

2、了解 Service 作用。

3、了解 Service 类型。

4、了解 Service 参数。

5、掌握 Service 创建方法。

6、了解 Service 删除方法。

 

三、学习步骤

首先按照学习目标对学习步骤进行设计,在这里同样是分成六个步骤。

1、了解 Service 是什么

2、了解 Service 作用

3、了解 Service 类型

4、了解 Service 参数

5、掌握 Service 创建方法

6、了解 Service 删除方法

这就是步骤的一个顺序,按照这个步骤进行学习。

 

四、课程内容

1、Service 介绍

在这里要注意到在 K8s 当中,Service 这个概念不是实体服务。所讲的实体服务是什么呢?

比如说一个服务要有自己所运行的配置文件,也有自己所运营的数据文件,这是一个实体服务。

但是 Service 在  K8s 当中,它仅仅是一条 iptables 或 ipvs 的转发规则,因此它没有自己的配置文件以及运行文件,更加没有自己的守护进程,所以说在这里它仅仅只是一个服务。

比如说,当去饭店吃饭的时候,会遇到服务员,服务员是一个人完全没有问题,但是他的服务其实仅仅只是一种转换,老板把菜单递给服务员,服务员再把菜单递给顾客,顾客进行点菜,然后服务员再把菜单递给厨师,厨师再去做菜,所以说服务员在这个过程中是起到一个转发和连接的作用。

那么其实在这里 Service 的性质和服务员是差不多的,也是起到一个转换和连接的作用。去饭店吃饭需要找服务员,如果直接找老板或者大厨就可能吃不到饭。

2、Service 作用

Service 作用是可以让 pod 能够被用户访问,那么 pod 的 IP 地址会经常发生变化,如果直接访问 pod ,并且 IP 地址发生变化,那下次可能不知道它的地址是什么。因此是通过 Service 为 pod 客户端提供访问 pod 方法,即客户端访问 pod 入口。那么怎么样让 Service 与 pod 进行关联呢?

在这里有一个 Service 通过 pod 标签与 pod 进行关联。

在下面这幅图当中,可以简单了解一下,有 pod 和 Node 两个图例,在最中间的位置就是 pod , pod 有 IP 地址,是10.10.10.1。如果想要直接访问 pod 的话, pod 的 IP 地址会直接发生变化,所以在这里10.10.10.1并不是永久存在的,所以不建议直接访问 pod 。那可以在 pod 的前端加一个 Service ,这样的目的就是为了让用户能够直接通过这个 Service 来访问 pod ,这个 Service 的 IP 地址是10.10.9.1。

image.png

它的这个 IP 地址是很少发生变化的,或者是通过它的域名进行访问。它的最外侧这一层是物理机,那么在这个过程当中怎么关联呢?可以给 pod 起一个标签。

比如说 app:nginx,这样就可以解决了。那么 Service 与它关联的时候,只要让 Service 来找这个标签(app:nginx),这样的话就可以让 Service 与 pod 进行关联。

3、Service 类型

Service 有四种类型,在这里举一下例子。

第一种是  ClusterIP。它是什么意思呢?

当在集群当中创建一个 Service 的时候,会自动分配一个集群的虚拟 IP ,访问这个虚拟 IP ,就可以访问到 Service 了。访问到 Service 之后就可以访问到 pod 了。但是这个只能是在集群内的主机来进行访问。

第二种类型就是 NodePort ,它就是通过物理机的端口映射来完成一个 pod 访问。

如果在集群之外来访问  K8s 集群内的 Service 的话,那就可以在每个Node上分配一个端口作为Service 的映射端口,然后就可以通过这个端口就可以访问到 Service ,进一步就可以访问到 pod 了。

第三种类型就是 LoadBalancer ,它一般工作在特定的 Cloud Provider 上,例如 Google Cloud,AWS,OpenStack 。这种方式一般在局域网当中使用的比较少,如果 K8s 集群部署在 OpenStack 之上,就可以通过这种方式访问了。

第四种类型是 ExternalName ,这种方式的 Service是把集群外部的服务引入到集群内部中来,即实现了集群内的 pod 和集群外部的服务进行通信。

4、Service 参数

Service 参数有很多种,在这里重点介绍的是端口参数,端口参数第一种是tport ,它是创建 K8s 集群当中的 Service 的时候,会自动分配一个端口,当然这也是对应相应的服务类型;

第二种是 targetPort ,它包括的是 Pod  中容器的端口。

第三种是 NodePort ,它是主要针对 Service 的类型,它要是一个 NodePort  类型,则通过 Node实现外网用户访问k8s集群内service。

一般的话可以随机也可以手工指定,随机的话它的范围是30000-32767,特别注意这个范围

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
300 1
|
2月前
|
弹性计算 监控 调度
ACK One 注册集群云端节点池升级:IDC 集群一键接入云端 GPU 算力,接入效率提升 80%
ACK One注册集群节点池实现“一键接入”,免去手动编写脚本与GPU驱动安装,支持自动扩缩容与多场景调度,大幅提升K8s集群管理效率。
263 89
|
7月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
ACK One 的多集群应用分发,可以最小成本地结合您已有的单集群 CD 系统,无需对原先应用资源 YAML 进行修改,即可快速构建成多集群的 CD 系统,并同时获得强大的多集群资源调度和分发的能力。
303 9
|
7月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
本文介绍如何利用阿里云的分布式云容器平台ACK One的多集群应用分发功能,结合云效CD能力,快速将单集群CD系统升级为多集群CD系统。通过增加分发策略(PropagationPolicy)和差异化策略(OverridePolicy),并修改单集群kubeconfig为舰队kubeconfig,可实现无损改造。该方案具备多地域多集群智能资源调度、重调度及故障迁移等能力,帮助用户提升业务效率与可靠性。
|
9月前
|
存储 Kubernetes 监控
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
896 33
|
9月前
|
Kubernetes 开发者 Docker
集群部署:使用Rancher部署Kubernetes集群。
以上就是使用 Rancher 部署 Kubernetes 集群的流程。使用 Rancher 和 Kubernetes,开发者可以受益于灵活性和可扩展性,允许他们在多种环境中运行多种应用,同时利用自动化工具使工作负载更加高效。
524 19
|
9月前
|
人工智能 分布式计算 调度
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
|
9月前
|
Prometheus Kubernetes 监控
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
346 0
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
|
11月前
|
缓存 容灾 网络协议
ACK One多集群网关:实现高效容灾方案
ACK One多集群网关可以帮助您快速构建同城跨AZ多活容灾系统、混合云同城跨AZ多活容灾系统,以及异地容灾系统。
|
10月前
|
运维 分布式计算 Kubernetes
ACK One多集群Service帮助大批量应用跨集群无缝迁移
ACK One多集群Service可以帮助您,在无需关注服务间的依赖,和最小化迁移风险的前提下,完成跨集群无缝迁移大批量应用。

热门文章

最新文章

推荐镜像

更多