k8sservicepod通信? k8s service type?
Network:了解K8S的网络通信模型
网络模型划分:CONTAINERtocontainer通信:容器间的通信基于pod的网络命名空间隔离,通过localhost进行。每个POD内的容器共享相同的IP和端口,通过veth对实现Pod命名空间与根命名空间的连接。PodtoPod通信:每个节点分配独立的Pod IP CIDR范围,确保Pod间具有唯一的通信地址。
首先,kubernetes的网络模型以Pod为基础,每个Pod都有独立的IP地址,类似于一台虚拟机,这使得Pod之间的通信变得直接且易于实现服务发现和负载均衡。
flannel,k8s的网络模型,为k8s集群内的容器提供网络服务的组件。主要作用:为集群内所有容器提供一个扁平化的网络环境,即:所有容器在flannel提供的网络平面上可以看作是在同一网段,自由通信。其模型为全部的容器使用一个network,然后在每个host上从network中划分一个子网subnet。
NodePort与Ingress:K8s提供NodePort方式暴露服务,但存在局限性。Ingress作为7层解决方案,解决了服务动态添加的问题。调度策略:八种隔离维度的调度策略确保集群资源的有效管理。网络模型:IPperpod模型:每个Pod都有独立的IP地址,提供类似虚拟机或物理机的隔离。
Kubernetes网络模型遵循四个基础原则、三个网络要求原则、一个架构原则和一个IP原则,确保网络配置的一致性和可管理性。每个Pod拥有独立的IP地址,实现扁平网络空间内的直接访问,简化了应用间的通信和网络配置。十类IP地址 IP地址分为ABCDE类,此外还有五类特殊用途的IP。
架构与组件: 主要组件:Calico网络模型主要包括Felix和BIRD两个组件。Felix负责监听ECTD中心的存储,为容器配置网卡、IP和mac,并写入路由信息;BIRD则负责通过BGP协议扩散路由信息。 工作模式:Calico网络Node之间有两种模式:IPIP和BGP。IPIP适用于跨网段访问的场景,而BGP更适合大型网络环境,效率更高。
K8S学习指南(21)-k8s核心对象Service
K8s核心对象Service的学习指南如下:Service的概念:定义:Service在K8s中是一种抽象概念,它定义了一个Pod群体的逻辑集合,并为这组Pod提供了一个稳定且可访问的端点。功能:提供服务发现与负载均衡的功能,使得其他应用或服务能方便地访问这组Pod。
Service在K8s中是一种抽象概念,它定义了一个Pod群体的逻辑集合,并为这组Pod提供了一个稳定且可访问的端点。这个端点可以是集群内部的虚拟IP地址或dns名称,使得其他应用或服务能方便地访问这组Pod,实现服务发现与负载均衡。
首先创建前端和后端的Deployment与Service,接着定义Ingress对象,将mydomain.com/frontend与mydomain.com/backend请求分别路由至前端与后端服务,同时启用https与指定TLS证书Secret。Ingress支持动态更新,无需重启应用或重建服务调整路由规则。
kubernetes(简称K8s)是一款被广泛应用的容器编排系统,核心对象之一是用于存储敏感信息的Secret。本文深入探讨Secret,包括概念、用途、创建与管理。Secret存储密码、令牌与密钥等敏感信息,以安全方式传递给Pod容器。常见的Secret类型包括不透明Secret。创建Secret需准备base64编码的数据。
K8S核心概念Label和Label Selector的学习指南如下:Label 定义:Label是Kubernetes中的一种键值对,用于标记和分类对象属性,如用途、环境等。 作用:通过Label,可以方便地组织和管理Kubernetes集群中的资源对象,提升资源管理效率。
K8S核心对象DaemonSet学习指南:基本概念:定义:DaemonSet是Kubernetes核心对象,专门用于在集群的每个节点上运行一个或多个Pod副本。用途:适合执行系统级任务,如日志收集、监控代理等,确保这些任务在集群的每个节点上持续运行。
K8s服务调用的方法和原理,一篇文章给你说明白
通过服务名调用:在K8s中,服务提供了一种网络抽象,允许内部Pod间通过Service名进行通信。在普通Service中,服务间调用最为直接,通过服务名即可进行访问。例如,一个名为frontend的Service可以通过frontend或frontend.svc.cluster.local的DNS名称访问同一命名空间内的服务。
在K8s中,服务(Service)提供了一种网络抽象,允许内部Pod间通过Service名进行通信。例如,一个名为frontend的Service可以通过frontend或frontend..svc.cluster.local的DNS名称访问同一命名空间内的服务。
理论 PV概念:PV是对K8S存储资源的抽象,一般由运维人员创建和配置,供容器申请使用。PV相当于对磁盘的分区,为容器提供存储空间。PVC概念:PVC是Pod对存储资源的一个申请,主要包括存储空间申请、访问模式等。创建PV后,Pod就可以通过PVC向PV申请磁盘空间。
服务账号(Service Account)是一种自动被启用的用户认证机制,使用经过签名的 持有者令牌来验证请求。 当服务账号创建后,k8s会自动生成对应的secret,存有可以用来认证的Token。 上面的token就可以用来认证。 所有使用token进行认证的请求 ,都要加上 Authorization 的 HTTP请求头,其值格式为 bearer TOKEN 。
ClusterIP类型的Service是Kubernetes集群默认的Service, 它只能用于集群内部通信。不能用于外部通信。K8s会为每个Service分配一个虚拟IP,即ClusterIP。这个虚拟IP只能在集群内部访问。NodePort类型的Service会在集群内部的所有Node节点打开一个指定的端口。