kubernetes组件介绍
MESOS APACHE 分布式资源管理框架 2019-5 Twitter 》 Kuberneets
Dcocker Swarm 2019-07 阿里云宣布 Docker Swarm 剔除
Kubernetes Google 10年容器化基础架构 borg GO 语言 Borg
特点:
轻量级:消耗资源小
开源
弹性伸缩
负载均衡:IPVS
 
适合人群: 软件工程师 测试工程师 运维工程师 软件架构师 项目经理
 
基础感念:
什么是Pod 控制器类型 K8s网络通讯模式
Kubernetes: 构建K8s集群
资源清单: 资源 掌握资源清单的语法 编写Pod 掌握 Pod的生命周期***
Pod 控制器: 掌握各种控制器的特点以及使用定义方式
服务发现:掌握SVC原理及其构建方式
存储: 掌握多种存储类型的特点 并且能够在不同环境中选择合适的存储方案(有自己的见解)
调度器: 掌握调度器原理 能够根据要求把Pod 定义到想要的节点运行
安全: 集群的认证 鉴权 访问控制 原理及其流程
KELM: Linux yum 掌握HELM原理 HELM模板自定义 HELM部署一些常用插件
运维: 修改Kudeadm 达到证书可用期限为10年 能够构建高可用的Kubernetes集群
 
服务分类:
有状态服务:DBMS
无状态服务:LVS APACHE
高可用集群副本数据最好是 >= 3奇数个
 
集群服务组件: 
apiserver:    所有服务访问统一入口
CrontrollerManger:    维持副本期望数目
Scheduler:    复制介绍任务,选择合适的节点进行分配任务
etcd:    键值对数据库 储存K8s集群所有重要信息(持久化)
kubelet:    直接跟容器引擎交互实现容器的生命周期管理
kube-proxy:    负责写入规则至iptebles、IPVS实现服务映射访问的
COREDNS:    可以为集群中的SVC插件一个域名IP的对应关系解析
DASHBOARD:    给K8s集群提供一个B/S结构访问体系
INGRESS CONTROLLER:    官方只能实现四层代理,INGRESS可以实现七层代理
FEDERATION:    提供一个可以跨集群中心多K8s统一管理功能
prometheus:    提供k8s集群的监控能力
ELK:    提供k8s集群日志统一分析介入平台
 
 
1、Kubernetes Service概念:
Service是Kubernetes最核心的概念,通过创建Service,可以为一组具有相同功能的POD应用提供统一的访问入口,并且将请求进行负载分发到后端的各个容器应用上。
在Kubernetes中,在受到RC调控的时候,Pod副本是变化的,对于的虚拟IP也是变化的,比如发生迁移或者伸缩的时候。这对于Pod的访问者来说是不可接受的。
Kubernetes中的Service是一种抽象概念,它定义了一个Pod逻辑集合以及访问它们的策略,Service同Pod的关联同样是居于Label来完成的。Service的目标是提供一种桥梁,它会为访问者提供一个固定访问地址,用于在访问时重定向到相应的后端,这使得非Kubernetes原生应用程序,在无须为Kubemces编写特定代码得前提下,轻松访问后端。
Service同RC一样,都是通过Label来关联Pod的,当你在Service的yaml文件中定义了该service的selector中的label为app:my-web,那么这个service会将Pod-->metadata-->labels中label为app:my-web的Pod作为分发请求的后端。
当Pod发生变化时(增加、减少、重建等),service会及时更新。这样一来,service就可以作为Pod的访问入口,起到代理服务器的作用,而对于访问者来说,通过service进行访问,无需直接感知Pod.
 
2、Kubernetes Service实现方式:
Kubernetes分配给service的固定IP是一个虚拟IP,并不是一个真实的IP,在外部是无法寻址的。在真实的系统上,kubernetes是通过Kube-proxy组件来实现的虚拟IP路由及转发。 所以在之前集群部署的环节上,我们在每个Node上均部署了Proxy这个组件,从而实现了Kubernetes层次的虚拟转发网络。
Kubernetes通过为每个service分配一个唯一的ClusterIP,所以当使用CIusterIP:port的组合访问一个service的时候,不管port是什么,这个组合是一定不会发生重复的。另一方面,kube-proxy为每个service真正打开的是一个绝对不会重复的随机端口,用户在service描述文件中指定的访问端口会被映射到这个随机端口上,这就是问什么用户可以在创建service时随意指定访问端口。
K8S集群中,Pod的IP是docker0网段动态分配的,当发生重启,扩容等操作时,IP地址会随之变化。当某个Pod(frontend)需要去访问其依赖的另一组Pod(backend)时,如果backend的IP发生变化时,如何保证fronted到backend的正常通信变得非常重要,此时需要借助service实现统一访问。
Service的Virtual VIP是由Kubernetes虚拟出来的内部网络,外部时无法寻址到的。但是有些服务及需要被外部访问到,例如web前端。这时候就需要加一层网络转发(nginx、LVS),即外网带内网的转发。Kubernetes提供了NodePort、LoadBalancer、lngress三种方式:
 
NodePort,原理是Kubernetes会在每一个Node上暴露出一个端口:nodePort,外部网络可以通过(任一个Node)[NodeIP]:[NodePort]访问到后端的service。
 
LoadBalancer,在NodePort基础上,Kubernetes可以请求底层云平台创建一个负载均衡器,将每个Node作为后端,进行服务分发。该模式需要底层云平台(例如GCE)支持。
 
lngress,是一种HTTP方式的路由转发机制,由lngress Controller和HTTP代理服务器组合而成。lngress Controller实现监控Kubernetes API,实时更新HTTP代理服务器的转发规则。HTTP代理服务器有GCE Load-Balancer、Haproxy、Nginx等开源方案。

kubernetes组件介绍-service概念的更多相关文章

  1. Kubernetes组件介绍

    一.api-server   基本概念 该端口默认值为6443,可通过启动参数"--secure-port"的值来修改默认值. 默认IP地址为非本地(Non-Localhost)网 ...

  2. k8s功能、各组件介绍以及pod创建流程

    一.什么是Kubernetes Kubernetes(k跟s中间隔了8个字母又称k8s) 是谷歌开源的容器集群管理系统,是 Google 多年大规模容器管理技术Borg 的开源版本,主要功能包括: 基 ...

  3. 三十一、kubernetes网络介绍

    Kubernetes 网络介绍 Service是Kubernetes的核心概念,通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上 ...

  4. 【九】Kubernetes 之 Service 概念图文讲解及功能演示

    Service 概念 Kubernetes Service 定义了这样一种抽象:逻辑上的一组 Pod,一种可以访问它们的策略 -- 通常称为微服务. Service 通常是通过 Label Selec ...

  5. Kubernetes组件与架构

    转载请标明出处: 文章首发于>https://www.fangzhipeng.com/kubernetes/2018/09/30/k8s-basic1/ 本文出自方志朋的博客 Kubernete ...

  6. Android四大基本组件介绍与生命周期

    Android四大基本组件介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器 ...

  7. Android四大组件之Service

    Android四大组件之Service Android支持服务的概念,服务是在后台运行的组件,没有用户界面,Android服务可用有与活动独立的生命周期.Android支持两种类型的服务: 本地服务: ...

  8. Android四大组件:Service

    前言 Service作为Android四大组件之一,应用非常广泛 本文将介绍对Service进行全面介绍(基础认识.生命周期.使用和应用场景) 目录 目录 1. 基础知识 定义:服务,属于Androi ...

  9. Kubernetes【K8S】(一):Kubernetes组件

    什么是Kubernetes ​ Kubernetes 是一个可移植的.可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化.Kubernetes拥有一个庞大且快速增长的生态系统. ...

  10. 7. 丈母娘嫌我不懂K8s的Service概念,让我去面壁

    文章目录 怎么跟你说 Service的出现,就是 解决ip不固定的问题 ,怎么解决呢 ? 听小刘慢慢道来 当Pod宕机后重新生成时,其IP等状态信息可能会变动,Service会根据Pod的Label对 ...

随机推荐

  1. ChatGPT「代码解释器」正式开放,图片转视频仅需30秒!十大令人震惊的魔法揭秘

    经过超过三个月的等待,ChatGPT「代码解释器」终于全面开放.这是一大波神奇魔法的高潮. OpenAI的科学家Karpathy对这个强大的代码解释器测试版赞不绝口.他把它比作你的个人数据分析师,可以 ...

  2. Python单元测试之道:从入门到精通的全面指南

    在这篇文章中,我们会深入探讨Python单元测试的各个方面,包括它的基本概念.基础知识.实践方法.高级话题,如何在实际项目中进行单元测试,单元测试的最佳实践,以及一些有用的工具和资源 一.单元测试重要 ...

  3. Python数据分析易错知识点归纳(三):Pandas

    三.pandas 不带括号的基本属性 df.index # 结果是一个Index对象, 可以使用等号重新赋值,如: df.index = ['a', 'b', 'c'] df.columns # 结果 ...

  4. String s=new String(“hello”)的执行过程

    一. 介绍 String 是Java.long包下的String类,是一个特殊的引用类型,用于表示字符串.它提供了许多方法来操作和处理字符串,比如连接.截取.查找.替换等.String类内部使用字符数 ...

  5. Unity UGUI的RectMask2D(2D遮罩)组件的介绍及使用

    Unity UGUI的RectMask2D(2D遮罩)组件的介绍及使用 1. 什么是RectMask2D组件? RectMask2D是Unity UGUI中的一个组件,用于实现2D遮罩效果.它可以限制 ...

  6. [C#]WPF 分辨率的无关性的问题

    什么是WPF的分辨率无关性? 首先得解什么是Dpi(Density independent pixels ,设备无关像素),百度百科的解释DPI是指每英寸的像素,对应界面显示即是屏幕上每英寸的像素. ...

  7. Angular报错:Error: Unknown argument: spec

    解决方案 使用--skip-tests代替 效果展示 可以看到spec.ts消失了 参考链接 https://stackoverflow.com/questions/62228834/angular- ...

  8. LeetCode 周赛上分之旅 # 36 KMP 字符串匹配殊途同归

    ️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问. 学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越 ...

  9. .Net Web API 004 Controller获取对象列表,传入数据以及对象

    1.返回UserEntityList 这个服务接口的目的是分为用户列表,代码如下所示. /// <summary> /// 得到用户列表 /// </summary> /// ...

  10. Programming abstractions in C阅读笔记:p88-p90

    <Programming Abstractions In C>学习第44天,p88-p90总结. 一.技术总结 1.内存分配 内存分配可以分为:static allocation.auto ...