首页 > 其他分享 >kubernetes权威指南读书笔记-Serivce的ClusterIP地址

kubernetes权威指南读书笔记-Serivce的ClusterIP地址

时间:2023-09-12 20:44:41浏览次数:38  
标签:Serivce Node kubernetes Service 读书笔记 IP IP地址 POD

EndPoint:由POD的IP加上容器的端口构造;它表示POD里的一个服务进程对外的通信地址;一个POD也存在多个ENDPOINT的情况。

Kuernetes Service的一个功能就是实现负载均衡。它是这样来实现的,kubernetes内部在每个Node上都运行了一套全局的虚拟负载均衡器,自动注入并自动实时更新集群中所有Service的路由表,通过iptables或者IPVS机制,把对Serivces的请求转发到其后端对应的某个POD实例上,并在内部实现服务的负载均衡与会话保持机制。结合ClusterIP,每个服务就具备了唯一IP地址的通信节点,远程服务之间的通信问题就变成了基础的TCP网络通信问题。

ClusterIP具有这些特征:

  • 在Service的整个生命周期中,其地址不会发生改变;
  • 是一种虚拟的IP地址;
  • 仅作用于kubernetes service这个对象,并由kubernetes管理和分配IP地址(来源于ClusterIP地址池),与Node和master所在的物理网络完全无关;
  • ClusterIP无法被ping通,clusterIP只能与ServicePort组成一个具体的服务访问点,单独的ClusterIP不具备TCP/IP通信的基础;
  • ClusterIP属于kubernetes集群这个封闭的空间,集群外的节点要访问这个通信端口,则需要做一些额外的工作;如设置为NodePort类型;

HeadLess Service:在Service的定义中设置了cluserIP:None;它与普通的Service区别在于没有clusterIP,如果解析HeadLess service的DNS域名,则返回的是该Service对应的全部POD的Endpoint列表,意味着客户端是直接与后端的POD建立TCP/IP连接进行通信的,没有通过虚拟ClusterIP地址进行转发,因此通信性能最高,等同于“原生网络通信”。

Service的多端口问题:由于kubernetes service支持多个endpoint,在这种情况下,就要求每个Endpoint都定义一个名称进行区分。

Service的外网访问问题:
讲解这个概念之前需要明确三个类型的IP地址

  • Node IP:Node的IP地址;它是节点的物理网卡地址;
  • Pod IP: POD的IP地址;它是Docker Engine分配的地址;
  • Service IP:service的IP地址;

NodePort的实现方式是,在kubernetes集群的每个Node上都为需要外部访问的Service开启一个对应的TCP监听端口,外部系统只要用任意一个Node的IP地址+NodePort端口号即可访问此服务。但是这种在每个Node上开启TCP监听端口的方式,又造成了占用Node有限端口资源的问题,对此引入了Ingress,使得多个Service共用一个对外端口。

标签:Serivce,Node,kubernetes,Service,读书笔记,IP,IP地址,POD
From: https://www.cnblogs.com/gaoyanbing/p/17697776.html

相关文章

  • Kubernetes 生产环境 必备3个降本增效方法
    从技术上讲,容器化应用能该帮助组织更具有成本的优势,但Kubernetes到处布满了成本陷阱,可能会使你超出预算。幸运的是,有一些策略可以控制云成本,自动伸缩就是其中之一。Kubernetes带有三个内置的自动伸缩机制来帮助你做到这一点。它们配合得越好,运行应用程序的成本就越低。1.Pod水平自......
  • Kubernetes 集群灾备环境部署
    etcd是kubernetes集群极为重要的一块服务,存储了kubernetes集群所有的数据信息,如Namespace、Pod、Service、路由等状态信息。如果etcd集群发生灾难或者etcd集群数据丢失,都会影响k8s集群数据的恢复。因此,通过备份etcd数据来实现kubernetes集群的灾备环境十分重要。一、etc......
  • Kubernetes 集群的优化 节点配额和内核参数调整 自动增加etcd节点 Kube APIServer 配
    一、节点配额和内核参数调整对于公有云上的Kubernetes集群,规模大了之后很容器碰到配额问题,需要提前在云平台上增大配额。这些需要增大的配额包括:虚拟机个数vCPU个数内网IP地址个数公网IP地址个数安全组条数路由表条数持久化存储大小参考gce随着node节点的增加master节点的配......
  • 图解 Kubernetes 中应用平滑升级4种方式
    如果你已经使用Kubernetes一段时间了,则可能需要考虑计划定期升级。从Kubernetes1.19开始,每个开源版本都提供一年的补丁。你需要升级到最新的可用次要版本或补丁版本才能获得安全性和错误修复。但是,如何在不停机的情况下升级基础架构的关键部分呢?本文将指导你了解在任何环境中......
  • kubernetes部署mongoDB 单机版 自定义配置文件、密码、日志路径等
    来源:https://aijishu.com/a/1060000000097166官方镜像地址: https://hub.docker.com/_/mong...docker版的mongo移除了默认的/etc/mongo.conf,修改了db数据存储路径为/data/db.创建configmap配置,注意不能加fork=true,否则Pod会变成Completed。apiVersion:v1kind:ConfigMap......
  • 如何像 Sealos 一样在浏览器中打造一个 Kubernetes 终端?
    作者:槐佳辉。Sealosmaintainer在Kubernetes的世界中,命令行工具(如kubectl和helm)是我们与集群交互的主要方式。然而,有时候,我们可能希望能够在Web页面中直接打开一个终端,执行这些命令,而不需要在本地环境中安装和配置这些工具。本文将深入探讨如何通过Kubernetes自定义资......
  • 关于Kubernetes-v1.23-pod-生命周期-postStart-preStop-terminationGracePeriodSecond
    我们在一个pod的yaml配置文件中,有时会看到,terminationGracePeriodSeconds选项,与containers:同级,一般可以放于spec:下面即可是当pod,变为删除的状态后,会给pod一个宽限期,让pod去执行一些清理或者销毁操作另外还有两个选项,postStart,preStop,这两个是位于lifecycle,属于pod生命周期......
  • Debezium系列之:在 Kubernetes 上部署 Debezium
    这Debezium系列之:在Kubernetes上部署Debezium一、概述二、先决条件三、为数据库创建Secrets四、部署ApacheKafka五、部署数据源六、部署Debezium连接器七、创建Debezium连接器八、验证部署K8s相关知识可以阅读博主以下几篇技术博客:K8s系列之:搭建高可用K8sv1.23.5集群详......
  • 读书笔记1
    读书笔记120211215卢泽第一章-引言1.1系统编程的作用系统编程的目标是有效地利用系统资源来开发应用软件,并为学生提供扎实的专业基础。1.2本书目标本书旨在强化学生的编程背景知识,并涵盖了以下主题:动态数据结构的应用进程概念和进程管理并发编程定时器和定时功......
  • Kubernetes 部署
    Kubernetes部署在k8s上进行部署前,首先需要了解一个基本概念DeploymentDeployment(部署)。在k8s中,通过发布Deployment,可以创建应用程序(dockerimage)的实例(dockercontainer),这个实例会被包含在称为Pod的概念中,Pod是k8s中最小可管理单元。在k8s集群中发布Depl......