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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 快速学习 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搭建和管理企业级网站应用
相关文章
|
24天前
|
JSON Kubernetes 容灾
ACK One应用分发上线:高效管理多集群应用
ACK One应用分发上线,主要介绍了新能力的使用场景
|
25天前
|
Kubernetes 持续交付 开发工具
ACK One GitOps:ApplicationSet UI简化多集群GitOps应用管理
ACK One GitOps新发布了多集群应用控制台,支持管理Argo CD ApplicationSet,提升大规模应用和集群的多集群GitOps应用分发管理体验。
|
1月前
|
Kubernetes Cloud Native 云计算
云原生之旅:Kubernetes 集群的搭建与实践
【8月更文挑战第67天】在云原生技术日益成为IT行业焦点的今天,掌握Kubernetes已成为每个软件工程师必备的技能。本文将通过浅显易懂的语言和实际代码示例,引导你从零开始搭建一个Kubernetes集群,并探索其核心概念。无论你是初学者还是希望巩固知识的开发者,这篇文章都将为你打开一扇通往云原生世界的大门。
122 17
|
16天前
|
存储 Kubernetes 调度
K8S中的核心概念
【10月更文挑战第26天】云原生环境下的安全问题易被忽视,导致潜在风险。应用层渗透测试和漏洞扫描是检测安全的关键,尤其是对于CVE漏洞的修复。然而,常见误解认为安全由外部防护处理且不易引入问题。
|
1月前
|
Kubernetes 应用服务中间件 nginx
搭建Kubernetes v1.31.1服务器集群,采用Calico网络技术
在阿里云服务器上部署k8s集群,一、3台k8s服务器,1个Master节点,2个工作节点,采用Calico网络技术。二、部署nginx服务到k8s集群,并验证nginx服务运行状态。
478 1
|
1月前
|
Kubernetes Cloud Native 微服务
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
107 1
|
1月前
|
负载均衡 应用服务中间件 nginx
基于Ubuntu-22.04安装K8s-v1.28.2实验(二)使用kube-vip实现集群VIP访问
基于Ubuntu-22.04安装K8s-v1.28.2实验(二)使用kube-vip实现集群VIP访问
51 1
|
1月前
|
Kubernetes Ubuntu Linux
Centos7 搭建 kubernetes集群
本文介绍了如何搭建一个三节点的Kubernetes集群,包括一个主节点和两个工作节点。各节点运行CentOS 7系统,最低配置为2核CPU、2GB内存和15GB硬盘。详细步骤包括环境配置、安装Docker、关闭防火墙和SELinux、禁用交换分区、安装kubeadm、kubelet、kubectl,以及初始化Kubernetes集群和安装网络插件Calico或Flannel。
142 0
|
1月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
73 0
|
1月前
|
弹性计算 Kubernetes Linux
如何使用minikube搭建k8s集群
如何使用minikube搭建k8s集群