当前位置:网站首页>容器技术 -- 简单了解 Kubernetes 的对象
容器技术 -- 简单了解 Kubernetes 的对象
2022-07-30 09:10:00 【Mingvvv】
文章目录
什么是Kuerbebates(k8s)
k8s 是谷歌开源的容器集群管理,是 google 大规模容器管理技术 google bolg 的开源版本,主要功能包括:
- 基于容器技术的应用部署、维护和滚动升级
- 负载均衡和服务发现
- 跨机器和跨地区的集群调度
- 自动伸缩
- 无状态服务和有状态服务
- 插件机制保证扩展性
k8s 是一个声明式的系统
声明式系统:
仅限于描述要达到什么目的,如何达到目的交给系统去操作。
直接声明:直接说明我想要达到什么目的
间接声明:不直接说明我需要达到什么目的,只会把我的需求放在指定的位置,可以在方便的时候拿来处理。
命令式系统:
给出指令之后需要获取到系统的反馈才能决定下一步怎么做,即系统按照我们的指令一步步执行。
k8s的所有管理能力构建在对象抽象的基础上,核心对象包括:
- Node:计算节点的抽象,用来描述计算节点的资源抽象,健康状态等。
- Namespace:资源隔离的基本单位。
- Pod:用来描述应用实例,包括镜像地址,资源需求等。
- Service:提供将应用发布成服务的功能,本质上是负载均衡和域名服务的声明。
k8s 架构
图源网络k8s 会将一部分节点当作 master 节点(控制节点),剩下的节点都是 worker node 。
MASTER 节点
etcd
基于 Raft 协议的分布式 key-value 存储数据库,可用于服务发现、共享配置以及一致性服务
Api Server
整个云平台的 api 网关:即是这个云平台集群的入口,用来接收所有用户的请求,然后将需要保存的用户请求保存在一个 etcd 中
主要功能:
- 提供集群管理的 REST API ,包括 认证、 授权 、准入
- 提供其他模块之间数据交互和通知的枢纽,只有 API SERVER 可以查询或修改数据,能直接操作 etcd
- 提供 etcd 缓存以减少集群对 etcd 的访问
- 和 etcd 一样,支持监听机制
Controller
controller 里面包含各种对象控制器,比如 node controller 监控 node 节点的健康状态,从而判断节点是不是要做一些操作,service controller 可以判断创建的 service 是不是需要创建负载均衡等。
Scheduler
调度器:监控当前集群所有未调度的pod。会先判断这个 pod 之前有没有做过调度,如果没有就会创建调度任务,调度完之后将数据保存在 etcd 中。
调度器其实是一个特殊的控制器,工作原理一致。
调度阶段:
1、预测阶段: 过滤不能满足业务需求的节点,如资源不足、端口冲突等
2、最优选阶段:对满足需求的节点进行评分,并选择最优节点
3、绑定阶段:将最优节点和 pod 绑定
WORKER 节点
kubelet
- 上传节点的各种信息到 Api Server,包括健康状态、资源利用率等。
- 从不同源获取 pod 清单,并处理当前节点被调度的 pod 的生命周期,按需求启停 pod 的核心组件
- 负责 pod 的健康检查和状态汇报
kube-proxy
- 监控集群中用户发布的服务,并完成负载均衡
- 每个节点上的 kube-proxy都会配置相同的负载均衡策略,整个集群的服务发现建立在分布式负载均衡之上,服务调用无需经过额外的网络跳转
K8S 插件
- kube-dns:负责整个集群提供 DNS 服务
- Ingress Controller:未服务提供外网入口
- MetricsServer:提供资源监控
- Dashboard:提供GUI
- Federation:提供跨可用区的集群
- Fluentd-elasticsearch:提供集群日志采集、存储与查询
边栏推荐
猜你喜欢
The difference between DDR, GDDR, QDR
Using IN in MySQL will not go through index analysis and solutions
How to run dist file on local computer
(***重点***)Flink常见内存问题及调优指南(一)
HCIP - MPLS VPN experiment
[Fun BLDC series with zero basics] Taking GD32F30x as an example, the timer related functions are explained in detail
Windows 下安装 MySQL
Concise Notes on Integrals - Types of Curve Integrals of the Second Kind
Jetpack Compose 从入门到入门(八)
Taosi TDengine 2.6+ optimization parameters
随机推荐
转行软件测试,报培训班3个月出来就是高薪工作,靠谱吗?
2022杭电多校第二场
Shell系统学习之数组
Version management of public Jar packages
一文理解分布式开发中的服务治理
【深度学习】(问题记录)<对一个变量求梯度得到什么>-线性回归-小批量随机梯度下降
函数式接口&Lambda表达式——简单应用笔记
【无标题】
20220728使用电脑上的蓝牙和汇承科技的蓝牙模块HC-05配对蓝牙串口传输
仿牛客网项目第一章:开发社区首页(详细步骤和思路)
最长公共序列、串问题总结
[Yugong Series] July 2022 Go Teaching Course 021-Slicing Operation of Go Containers
一个低级错误导致的诡异现象——走近科学能拍三集,(C语言)最简单的数组元素读取,不正确!?
els 方块、背景上色
Integral Special Notes - Definition of Integral
Liunx服务器安装SVN(安装包版)
Google Cloud Spanner的实践经验
聊聊 MySQL 事务二阶段提交
获取显示器数据
How to use Jmeter to carry out high concurrency in scenarios such as panic buying and seckill?