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,特别注意这个范围

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
缓存 容灾 网络协议
ACK One多集群网关:实现高效容灾方案
ACK One多集群网关可以帮助您快速构建同城跨AZ多活容灾系统、混合云同城跨AZ多活容灾系统,以及异地容灾系统。
|
2月前
|
Kubernetes Ubuntu 网络安全
ubuntu使用kubeadm搭建k8s集群
通过以上步骤,您可以在 Ubuntu 系统上使用 kubeadm 成功搭建一个 Kubernetes 集群。本文详细介绍了从环境准备、安装 Kubernetes 组件、初始化集群到管理和使用集群的完整过程,希望对您有所帮助。在实际应用中,您可以根据具体需求调整配置,进一步优化集群性能和安全性。
148 12
|
2月前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
2月前
|
Kubernetes 网络协议 应用服务中间件
Kubernetes Ingress:灵活的集群外部网络访问的利器
《Kubernetes Ingress:集群外部访问的利器-打造灵活的集群网络》介绍了如何通过Ingress实现Kubernetes集群的外部访问。前提条件是已拥有Kubernetes集群并安装了kubectl工具。文章详细讲解了Ingress的基本组成(Ingress Controller和资源对象),选择合适的版本,以及具体的安装步骤,如下载配置文件、部署Nginx Ingress Controller等。此外,还提供了常见问题的解决方案,例如镜像下载失败的应对措施。最后,通过部署示例应用展示了Ingress的实际使用方法。
87 2
|
2月前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
153 24
|
2月前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
本文源自2024云栖大会苏雅诗的演讲,探讨了K8s集群业务为何需要灾备及其重要性。文中强调了集群与业务高可用配置对稳定性的重要性,并指出人为误操作等风险,建议实施周期性和特定情况下的灾备措施。针对容器化业务,提出了灾备的新特性与需求,包括工作负载为核心、云资源信息的备份,以及有状态应用的数据保护。介绍了ACK推出的备份中心解决方案,支持命名空间、标签、资源类型等维度的备份,并具备存储卷数据保护功能,能够满足GitOps流程企业的特定需求。此外,还详细描述了备份中心的使用流程、控制台展示、灾备难点及解决方案等内容,展示了备份中心如何有效应对K8s集群资源和存储卷数据的灾备挑战。
|
2月前
|
关系型数据库 MySQL Docker
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
《docker高级篇(大厂进阶):5.Docker-compose容器编排》包括是什么能干嘛去哪下、Compose核心概念、Compose使用三个步骤、Compose常用命令、Compose编排微服务
204 6
|
3月前
|
Kubernetes 监控 Cloud Native
Kubernetes集群的高可用性与伸缩性实践
Kubernetes集群的高可用性与伸缩性实践
99 1
|
3月前
|
存储 Kubernetes 调度
K8S中的核心概念
【10月更文挑战第26天】云原生环境下的安全问题易被忽视,导致潜在风险。应用层渗透测试和漏洞扫描是检测安全的关键,尤其是对于CVE漏洞的修复。然而,常见误解认为安全由外部防护处理且不易引入问题。
|
4月前
|
JSON Kubernetes 容灾
ACK One应用分发上线:高效管理多集群应用
ACK One应用分发上线,主要介绍了新能力的使用场景

热门文章

最新文章