IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Kubernetes介绍 -> 正文阅读

[系统运维]Kubernetes介绍

前言

从本周开始以后尝试开始每周两更,本篇原计划是Docker多机网路,该篇文章有些卡文,所以先更新篇Kubernetes文章,关于Docker系列文章后面应该就剩下两篇了,等后续Kubernetes使用篇讲完以后,再开始做一些Docker相关深层次思考。

Docker系列文章:

  1. 为什么要学习Docker

  2. Docker基本概念

  3. Docker镜像基本原理

  4. Docker容器数据卷

  5. Dockerfile

  6. Docker单机网络上

  7. Docker单机网络下

  8. Docker单机网络实战

  9. Docker隔离技术

  10. Docker限制

  11. Docker Compose

什么是Kubernetes

Kubernetes是谷歌十几年来大规模容器实践的成果,是谷歌Brog的开源版本。Google 每周会启用超过 20 亿个容器——全都由内部平台 Borg 支撑。Borg 是 Kubernetes 的前身,汲取了Brog的经验和教训,所以Kubernetes以开源,就迅速称霸容器领域。

Kubernetes是一个全新基于容器技术的分布式架构方案,它可以帮助用户省去应用容器化过程的许多手动部署和扩展操作。也就是说,您可以将运行容器的多组主机聚集在一起,由 Kubernetes 帮助您轻松高效地管理这些集群。而且,这些集群可跨公共云、私有云或混合云部署主机。因此,对于要求快速扩展的云原生应用而言,Kubernetes 是优秀的托管平台。

Kubernetes是一个开放平台,它不局限于任何语言,不限制任何编程接口。无论用啥语言编写的服务,都可以被映射为Kubernetes的服务,并且通过标准的TCP通信协议进行交互。Kubernetes是一种更高层次的抽象,对编程的语言、框架、中间件没有任何浸入,现有的系统和平台很容器可以迁移到Kubernetes平台上。

Kubernetes是一个完备的分布式系统支撑平台。Kubernetes具有完善的集群管理能力,包含服务的注册、服务发现、负责均衡、故障发现、服务滚动升级、在线扩容以及多粒度的资源配额管理等。同时Kubernetes提供的完善的管理工具,这些工具覆盖了整个软件生命周期。

总结一下,Kubernetes是一个具有优秀背景的、全新的基于容器技术的分布式架构解决方案,并且是一个一站式的完备的分布式系统开发和支撑平台。

Kubernetes核心概念介绍

Kubernetes的总架构图

img

img

Kubernetes核心组件介绍

Master

kube-apiserver

kube-apiserver 是 Kubernetes 最重要的核心组件之一,kube-apiserver在Kubernetes 集群中扮演着通信枢纽的角色。kube-apiserver不仅负责和 etcd 交互,并切对外提供统一的API调用入口, 所有的交互都是kube-apiserver为核心的, kube-apiserver提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制等功能;

kube-controller-manager

kube-controller-manager 是Kubernetes 集群的大总管,负责集群内 Node、Namespace、Service、Token、Replication 等资源对象的管理,使集群内的资源对象维持在预期的工作状态。每一个 Controller 通过kube-apiserver提供的 Restful 接口实时监控集群内每个资源对象的状态,当发生故障,导致资源对象的工作状态发生变化,就进行干预,尝试将资源对象从当前状态恢复为预期的工作状态。常见的 Controller 有 Namespace Controller、Node Controller、Service Controller、ServiceAccount Controller、Token Controller、ResourceQuote Controller、Replication Controller等。

kube-scheduler

kube-scheduler负责对集群内部的资源进行调度,相当于“调度室”。接收来自kube-apiserver创建Pods的任务,收到任务后它会检索出所有符合该Pod要求的Node节点(通过预选策略和优选策略),开始执行Pod调度逻辑。调度成功后将Pod绑定到目标节点上。

Etcd

Etcd在Kubernetes中是用来存放数据并通知变动的,Kubernetes中把关键数据都存放在Etcd中,在Kubernetes中,数据是随时发生变化的,比如说用户提交了新任务、增加了新的Node、容器死掉了等等,都会触发状态数据的变更。状态数据变更之后,Master上的kube-scheduler和kube-controller-manager,就会重新发起变更,这些变化,都需要及时地通知给每个组件。Etcd有一个特征,可以在调用它的api中,监听api的数据,一旦数据发生变化,就会收到通知。Kubernetes利用这个特征,当节点消失或配置有变动时,Etcd会第一时间发现,就会告知每个订阅过的组件,这个时候发生变化组件可以知道自己应该做什么。对于kube-scheduler和kube-controller-manager只需要把最新的数据写入到Etcd中就可以了,不需要再次去发起调用。

img

img

Node

kubelet

在Kubernetes集群中,每个Node节点都会启动kubelet进程,用来处理Master节点下发到本节点的任务,管理Pod和其中的容器。kubelet会在kube-apiserver上注册节点信息,定期向Master汇报节点资源使用情况,并通过cAdvisor监控容器和节点资源。可以把kubelet理解成Node上的Pod管家。

kube-proxy

在Kubernetes集群中,每个Node节点上都会部署kube-proxy,kube-proxy 会作为守护进程跑在每个节点上通过监听着Etcd中关于Pod的最新状态,一旦检查到一个Pod资源发生变动,kube-proxy 就立即将这些变动,反应在iptables 或 ipvs规则中,当后续再有请求发到Service时,Service可以通过ipvs最新的规则将请求的分发到Pod上,实现Service到Pod的请求路由和转发,从而实现Kubernetes层级的虚拟网络转发。

container

在Kubernetes集群中,每个Node节点都会存在container。container负责本机容器的管理和创建,目前最常采用的就是Docker。

结束

欢迎大家点点关注,点点赞!

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-18 13:05:48  更:2021-08-18 13:08:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:36:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码