首页 > 其他分享 >【Kubernetes知识点问答题】Service 发现

【Kubernetes知识点问答题】Service 发现

时间:2024-09-07 23:25:02浏览次数:7  
标签:iptables 知识点 Ingress Service Kubernetes IP IPVS Pod

目录

 

1. Kubernetes 如何在集群的 Pod 之间提供网络服务?

2. 解释 iptables 和 IPVS 代理模式 Service 的区别。

3. 举例说明 ClusterIP 类型 Service 的用法。

4. 举例说明 NodePort 类型 Service 的用法。

5. 举例说明 Headless 类型 Service 的用法。

6. 详细说明 Ingress 的实现原理和它所实现的功能。


1. Kubernetes 如何在集群的 Pod 之间提供网络服务?

K8s 使用 Service 让一组 Pod 可在网络上被访问并让客户端就能与之交互。   Service API 是 K8s 的组成部分,它是将运行在一个或一组 Pod 上的网络应用程序公开为网络服务的方法。每个 Service 对象定义端点的一个逻辑集合(通常这些端点就是 Pod)以及如何访问到这些 Pod 的策略。

2. 解释 iptables IPVS 代理模式 Service 的区别。

(1)iptables 代理模式的 Service:   ① kube-proxy 会监视 K8s 控制节点对 Service 对象和 Endpoints 对象的添加和移除。对每个 Service,它会配置 iptables 规则,从而捕获到达该 Service 的 clusterIP 和端口的请求,进而将请求重定向到 Service 的一组后端中的某个 Pod 上面。   ② 对于每个 Endpoints 对象,它也会配置 iptables 规则,这个规则会选择一个后端组合。默认的策略是,kube-proxy 在 iptables 模式下随机选择一个后端。   ③ 使用 iptables 处理流量具有较低的系统开销,因为流量由 Linux netfilter 处理,而无需在用户空间和内核空间之间切换。   (2)IPVS 代理模式的 Service:   ① 在 IPVS (IP Virtual Server)模式下,kube-proxy 监视 K8s 服务和端点,并调用 netlink 接口创建相应的 IPVS 规则,并定期将 IPVS 规则与 K8s 服务和端点同步。   ② 该控制循环可确保 IPVS 状态与所需状态匹配。访问服务时,IPVS 将流量定向到其中之一的后端 Pod。   ③ IPVS 代理模式基于类似于 iptables 模式的 netfilter 挂钩函数,但是使用哈希表作为基础数据结构,并且在内核空间中工作,这意味着,与 iptables 模式下的 kube-proxy 相比,IPVS 模式下的 kube-proxy 重定向通信的延迟要短,并且在同步代理规则时具有更好的性能。与其他代理模式相比,IPVS 模式还支持更高的网络流量吞吐量。

3. 举例说明 ClusterIP 类型 Service 的用法。

ClusterIP 类型服务发现通过集群的内部 IP 暴露服务,选择该值时服务只能够在集群内部访问。这也是默认的 ServiceType   - 比如,创建服务,对外提供 8000 端口,并把流量引流到具有 app:nginx 的后端 80 端口上。这个场景下,在主机 shell 下是不能直接使用 Pod 的 IP 访问 nginx,需要在 Pod IP(ClusterIP) 后添加 8000 端口

4. 举例说明 NodePort 类型 Service 的用法。

- NodePort 类型服务发现是通过每个节点上的 IP 和静态端口(NodePort)暴露服务。NodePort 服务会路由到自动创建的 ClusterIP 服务,通过请求<节点 IP>:<节点端口>,就可以从集群的外部访问一个 NodePort 服务。   - 比如,NodePort 会在节点的特定端口上开通服务,指定的端口为 31788:这个场景下,在 主机的  IP 后添加 31788 端口就可以访问到 Pod。

5. 举例说明 Headless 类型 Service 的用法。

在 Headless 类型的 Service 中,Pod 创建时不会直接返回 Pod 的 Service IP,也就是 不提供 Pod ClusterIP,而是直接返回众多 Pod 的 IP。这种场景下,需要进入 Pod 内部用集群内的 DNS 进行访问测试。

6. 详细说明 Ingress 的实现原理和它所实现的功能。

- Ingress 是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP。   - Ingress 公开了从集群外部到集群内服务的 HTTP 和 HTTPS 路由,流量路由由 Ingress 资源上定义的规则控制。 为了让 Ingress 资源工作,集群必须有一个正在运行的 Ingress 控制器。   - Ingress 可以提供负载均衡、SSL 终结和基于名称的虚拟托管。

 

标签:iptables,知识点,Ingress,Service,Kubernetes,IP,IPVS,Pod
From: https://blog.csdn.net/Songyaxuan075118/article/details/141873516

相关文章

  • 在OpenEuler(欧拉)系统上用kubeadm部署(k8s)Kubernetes集群
    一、OpenEuler(欧拉)系统简介openEuler 是开放原子开源基金会(OpenAtomFoundation)孵化及运营的开源项目;openEuler作为一个操作系统发行版平台,每两年推出一个LTS版本。该版本为企业级用户提供一个安全稳定可靠的操作系统。具体的介绍可以参考官网https://www.openeuler.org/......
  • RabbitMQ常用知识点梳理
    RabbitMQrabbitmq工作模式简单模式简单模式是最基本的工作模式,其中生产者直接发送消息到队列,消费者从队列中消费消息。实际上使用的是默认的direct类型的交换机。工作队列模式生产者发送消息到队列,多个消费者订阅同一个队列,并且消息会被均匀地分发给各个消费者(使用轮询......
  • 解决Android Studio不能下载Gradle的教程Could not install Gradle distribution from
    在使用AndroidStudio时,经常会碰到与Gradle相关的问题,其中一个较为常见的情况就是在加载Gradle的时候,无论是第一次下载Gradle还是导入Gradle,都可能会遭遇报错。尤其是在下载过程中,一旦遇到网络问题,就很容易导致下载超时而报错,给开发者带来极大的困扰。带来两个解决AndroidS......
  • Kubernetes 1.25 containerd 环境部署 SuperMap iManager
    超图官网目提供的Kubernetes版本为1.20版本,容器运行时为docker本次部署使用已有的Kubernetes1.25版本集群,容器运行时为containerdKubernetes,containerd部署请自行了解,本次不做介绍,下面介绍在此环境上如何部署iManager11i并创建云套件1.环境介绍虚拟机CPU......
  • Minikube Install Kubernetes v1.18.1
    文章目录简介安装工具配置代理运行集群检查集群加入rancher简介模拟客户环境,测试kubernetesv1.18.x是否可以被rancherv2.9.1纳管。安装工具docker安装InstallandSetUpkubectlonLinux安装minikube配置代理dockerproxylinuxproxy运行集群$minikubestart--drive......
  • Kubernetes 简介及部署方法
    目录1Kubernetes简介及原理1.1 应用部署方式演变1.2容器编排应用1.3kubernetes简介1.4K8S的设计架构1.5K8S各组件之间的调用关系1.6K8S的常用名词感念1.7k8S的分层架构2K8S集群环境搭建2.1k8s中容器的管理方式2.2k8s中使用的几种管......
  • kubernetes 中 利用yaml文件部署应用
    目录1用yaml文件部署应用有以下优点1.1声明式配置:1.2灵活性和可扩展性:1.3与工具集成:2资源清单参数介绍2.1获得资源帮助指令explain2.2编写示例2.2.1示例1:运行简单的单个容器pod2.2.2 示例2:运行多个容器pod2.2.3示例3:理解pod间的网络整合2.2.4......
  • HTTP协议基本知识点:工作原理、http请求、响应、连接以及缓存机制
    目录一、HTTP概述二、HTTP的版本三、HTTP请求1.请求方法2.请求头四、HTTP响应1.状态码2.响应头五、HTTP持久连接六、缓存机制1.CacheControl2.ETag3.LastModified七、安全性八、使用场景总结 一、HTTP概述 全称:超文本传输协议(HyperTextTransferProtoco......
  • python PaddleOCR库用法及知识点详解
    识别图片的设置https://blog.csdn.net/f2315895270/article/details/128147744?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-128147744-blog-89082526.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_in......
  • 【第97课】云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行
    免责声明本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。文中所涉......