k8s网络架构图_k8s介绍和架构图
### 1、Kubernetes优势●自动装箱,水平扩展,自我修复●服务发现和负载均衡●自动发布(默认滚动发布模式)和回滚●集中化配置管理和密钥管理●存储编排●任务批处理运行### 2、Kubernetes快速入门概念**四组基本概念**➢ Pod/Pod控制器➢ Name/Namespace➢ Label/Label选择器➢ Service/Ingress➢ **Pod*...
### 1、Kubernetes优势
● 自动装箱,水平扩展,自我修复
● 服务发现和负载均衡
● 自动发布(默认滚动发布模式)和回滚
● 集中化配置管理和密钥管理
● 存储编排
● 任务批处理运行
### 2、Kubernetes快速入门概念
**四组基本概念**
➢ Pod/Pod控制器
➢ Name/Namespace
➢ Label/Label选择器
➢ Service/Ingress
➢ **Pod**
```
● Pod是K8S里能够被运行的最小的逻辑单元(原子单元),不是容器
● 1个Pod里面可以运行多个容器,容器与容器之间它们共享UTS+NET+IPC名称空间 ,只隔离PID+MOUNT+USER 。容器有6个隔离空间(UTS+NET+IPC+PID+MOUNT+USER)
● 可以把Pod理解成豌豆荚,而同一Pod内的每个容器理解成是一颗颗豌豆
● 一个Pod里运行多个容器,又叫:边车( SideCar)模式
```
➢** Pod控制器**
```
● Pod控制器是Pod启动的一种模板,用来保证在K8S里启动的Pod 应始终按照人们的预期运行(副本数、生命周期、健康状态检查... )Pod可以在k8s里面单独启动,不需要任何Pod控制器管控,启动Pod
● K8S内提供了众多的Pod控制器,常用的有以下几种:
● Deployment 部署
● DaemonSet 要求我们每个运算单位都启动一份
● ReplicaSet ReplicaSet 不直接对外提供服务,Deployment 管理ReplicaSet,ReplicaSet管理Pod,进而提供服务
● StatefulSet 管理有状态应用的 Pod控制器
● Job 管理任务
● Cronjob 管理定时任务
```
➢ **Name**
```
● 由于K8S内部,使用“资源”来定义每一种逻辑概念(功能),故每种“资源”, 都应该有自己的"名称”,每一种功能我们都叫做资源,每一种功能的实现都叫做资源的实例化
● 资源一共有5个维度的信息,每一种都有,“资源”有api版本( apiVersion )、类别( kind )、元数据( metadata )、定义清单( spec)、状态( status )(集群自己生成的,不需要人工定义)等配置信息
● "名称”通常定义在‘ '资源”的“元数据”信息里,
```
➢** Namespace**
```
● 随着项目增多、人员增加、集群规模的扩大,需要一种能够隔离K8S内部各种“资源”的方法,这就是名称空间,通过名称空间各种资源进行分组
● 名称空间可以理解为K8S内部的虚拟集群组
● 不同名称空间内的“资源”, 名称可以相同,相同名称空间内的同种"资源”,"名称” 不能相同,重名不重名
● 合理的使用K8S的名称空间,使得集群管理员能够更好的对交付到K8S里的服务进行分类管理和浏览
● K8S里默认存在的名称空间有: default、kube-system、 kube-public
● 查询K8S里特定“资源”要带上相应的名称空间
```
➢** Label**
```
● 标签是k8s特色的管理方式,便于分类管理资源对象。
● 一个标签可以对应多个资源,一个资源也可以有多个标签,它们是多对多的关系。
● 一个资源拥有多个标签,可以实现不同维度的管理。
● 标签的组成: key=value 键值对,有效的标签值必须不超过63个字符,并且必须为空或以字母数字字符([a-z0-9A-Z]),带破折号(-)、下划线(Uu)、点(.),和字母数字
● 与标签类似的,还有一-种“注解”( annotations ) 标 , 注解没有要求
```
➢ **Label选择器**
```
● 给资源打上标签后,可以使用标签选择器过滤指定的标签
● 标签选择器目前有两个:基于等值关系(等于、不等于)和基于集合关系(属于、不属于、存在)
● 许多资源支持内嵌标签选择器字段
● matchl abels
● matchExpressions
```
➢ **Service 集群网络**
```
● 在K8S的世界里,虽然每个Pod都会被分配一个单独的P地址 ,但这个IP地址会随着Pod的销毁而消失。 Pod有生命周期的,不定时的启动,扩容,销毁,迁移。流量如何调度,Service 起到,无论你这组 pod怎么掉度、销毁等等,对外提供服务的接口统一,Service会有一个相对独立的接口,
● Service (服务)就是用来解决这个问题的核心概念
● 一个Service可以看作一 -组提供相同服务的Pod的对外访问接口
● Service作用于哪些Pod是通过标签选择器来定义 的
```
➢ **Ingress**
```
● Ingress是K8S集群里1工作在OSI网络参考模型下,第7层的应用,对外暴露的接口
● Service只能进行4流量调度, 表现形式是ip+ port
● Ingress则可以调度不同业务域、不同URL访问路径的业务流量
```
### 3、核心组件
● 配置存储中心→etcd服务 状态、请求、集群资源情况等,也可以理解位Mysql
● 主控( master )节点
● **kube-apiserver服务 ** 集群的大脑,所有组件通过kube-apiserver 通信枢纽功能
```
● aplserver:
● 提供了集群管理的REST API接口( 包括鉴权、数据校验及集群状态变更)
● 负责其他模块之间的数据交互,承担通信枢纽功能
● 是资源配额控制的入口
● 提供完备的集群安全机制
```
● **kube-controller-manager服务 **
```
● controller-manager : 管理控制器的控制器 需要高可用
● 由一系列控制器组成,通过piserver监控整个集群的状态,并确保集群处于预期的工作状态
● Node Controller 节点控制器
● Deployment Controller Pod控制器
● Service Controller server控制器
● Volume Controller 卷控制器
● Endpoint Controller 接入点控制器
● Garbage Controller 垃圾回收控制器
● Namespace Controller 名称空间资源配额
● Job Controller 任务资源配额
● Resource quta Controller 资源配额控制器
```
● ** kube-scheduler服务**
```
● scheduler:调度器
● 主要功能是接收调度pod到适合的运算节点上 有一个请求通过apiserver,apiserver告诉controller-manager 需要启动那些Pod, controller-manager 找到scheduler,他会按照要求模板到那个节点创建一系列Pod
● 预算策略( predict ) 最适合运行Pod点,拉取
● 优选策略( priorities )
```
#### 运算( node )节点
● **kube-kubelet服务 **
```
● kubelet
● 简单地说, kubelet的主要功能就是定时从某个地方获取节点上pod的期望状态(运行什么容器、运行的副本数量网络或者存储如何配置等等) , 并调用对应的容器平台接口达到这个状态
● 定时汇报当前节点的状态给apiserver,以供调度的时候使用
● 镜像和容器的清理工作,保证节点上镜像不会占满磁盘空间,退出的容器不会占用太多资源
```
● **Kube-proxy服务**
```
● kube- proxy
● 是K8S在每个节点上运行网络代理, service资源的载体
● 建立了pod网络和集群网络的关系( clusterip >podip ) 把clusterip 跟podip关联起来
● 常用三种流量调度模式
● Userspace (废弃) 早期1.2 版本,Userspace调度节点网络、Pod网络、集群网络要用到大量的内核态跟用户态之间的转换,消耗资源大
● Iptables (濒临废弃) 99%目前主流方法,nat表,nat映射,太多没办法维护
● Ipvs(推荐) lvs开源,加入Linux 内核,
● 负责建立和删除包括更新调度规则、通知apiserver自 己的更新,或者从apiserver哪里获取其他kube-proxy的调度规则变化来更新自己的 一个集群中有若干节点,都起Kube-proxy,如何同步,通过apiserver找etcd
```
#### ● CLI客户端 命令行工具
```
● kubectl
● 核心附件
● CNI网络插件> flannel/calico
● 服务发现用插件> coredns
● 服务暴露用插件> traefik
● GUI管理插件> Dashboard
```
#### 4、核心组件图,三条网络,节点网洛(宿主机网洛)
![](https://img.kancloud.cn/74/de/74dec8da2f77208075103b5908f096a5_1414x629.png)
5、部署架构图
![](https://img.kancloud.cn/e3/a5/e3a5c6a772e89b091ae2210178485bbd_1211x761.png)
更多推荐
所有评论(0)