【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(十八)

本文主要是介绍【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(十八),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  本站以分享各种运维经验和运维所需要的技能为主

《python零基础入门》:python零基础入门学习

《python运维脚本》: python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》从问题中去学习k8s

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

《DBA》db的介绍使用(mysql、redis、mongodb...)

思考一下问题:-今天我们就只聊聊service

86、 K8s的Service是什么?

参考答案:

在 Kubernetes (k8s) 中,Service 是一个非常核心的概念,它定义了一种抽象方式来暴露应用。Service 允许内部或外部的流量访问集群中的一组特定的 Pod,无论这些 Pod 的生命周期和数量如何变化。

### Service 的主要功能和特点:

1. **负载均衡**:
   Service 提供了一个固定的 IP 地址和 DNS 名称,通过这个地址可以访问后端的一组 Pod。当流量发送到 Service 时,它会自动进行负载均衡,将请求分发到后端的多个 Pod 中。

2. **服务发现**:
   Kubernetes 通过 DNS 或环境变量为 Service 自动提供服务发现。这意味着一个 Pod 可以通过 Service 的名称找到它并与之通信,而不需要知道具体的 Pod IP。

3. **抽象和解耦**:
   Service 作为 Pod 的前端代理,使得前端应用不需要关心后端 Pod 的具体部署情况。即使后端 Pod 发生扩展、更新或重启,前端应用也可以通过不变的 Service 访问后端功能。

4. **持久性连接**:
   Service 确保 IP 地址的持久性,即使后端 Pod 发生变化,Service 的 IP 地址和端口保持不变。

### Service 的类型:

1. **ClusterIP**(默认):
   这是默认类型,它为 Service 分配一个内部的 IP 地址,使得 Service 只能在集群内部访问,这适用于集群内部的通信。

2. **NodePort**:
   这种类型的 Service 在所有节点上打开一个端口(NodePort),使得 Service 可以通过 `<NodeIP>:<NodePort>` 从集群外部访问。

3. **LoadBalancer**:
   这种类型的 Service 适用于那些运行在云提供商平台上的 Kubernetes 集群。它在 NodePort 的基础上,使用云提供商的负载均衡器,为 Service 提供一个可从互联网访问的固定 IP 地址。

4. **ExternalName**:
   这种类型的 Service 允许通过 Kubernetes 服务来引用外部的服务。它通过返回一个指定的 DNS 名称来实现,而不是像传统的 Service 那样通过 IP 地址进行通信。

### 如何使用 Service:

要创建一个 Service,你通常会在 Kubernetes 配置文件中定义 Service 对象,指定它的类型和选择器(selector),后者用于确定哪些 Pod 会被 Service 的流量访问。例如,一个简单的 ClusterIP Service 的定义可能如下所示:

```yaml
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376
```

这个 Service 定义创建了一个名为 "my-service" 的 ClusterIP Service,它将端口 80 的流量转发到标签为 `app: MyApp` 的 Pod 上的 9376 端口。

总之,Service 是 Kubernetes 中实现 Pod 间通信和对外连接的关键组件,提供了稳定的接口和负载均衡功能。

这篇关于【从问题中去学习k8s】k8s中的常见面试题(夯实理论基础)(十八)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1105878

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

IDEA和GIT关于文件中LF和CRLF问题及解决

《IDEA和GIT关于文件中LF和CRLF问题及解决》文章总结:因IDEA默认使用CRLF换行符导致Shell脚本在Linux运行报错,需在编辑器和Git中统一为LF,通过调整Git的core.aut... 目录问题描述问题思考解决过程总结问题描述项目软件安装shell脚本上git仓库管理,但拉取后,上l

k8s中实现mysql主备过程详解

《k8s中实现mysql主备过程详解》文章讲解了在K8s中使用StatefulSet部署MySQL主备架构,包含NFS安装、storageClass配置、MySQL部署及同步检查步骤,确保主备数据一致... 目录一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.

idea npm install很慢问题及解决(nodejs)

《ideanpminstall很慢问题及解决(nodejs)》npm安装速度慢可通过配置国内镜像源(如淘宝)、清理缓存及切换工具解决,建议设置全局镜像(npmconfigsetregistryht... 目录idea npm install很慢(nodejs)配置国内镜像源清理缓存总结idea npm in

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

idea突然报错Malformed \uxxxx encoding问题及解决

《idea突然报错Malformeduxxxxencoding问题及解决》Maven项目在切换Git分支时报错,提示project元素为描述符根元素,解决方法:删除Maven仓库中的resolv... 目www.chinasem.cn录问题解决方式总结问题idea 上的 maven China编程项目突然报错,是

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造