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 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> k8s介绍----概念,安装方式 -> 正文阅读

[系统运维]k8s介绍----概念,安装方式

k8s介绍

概念介绍

参照

Kubernetes 有如下几个核心的功能

  1. 服务的发现与负载的均衡
  2. 容器的自动装箱,我们也会把它叫做 scheduling,就是“调度”,把一 个容器放到一个集群的某一个机器上,Kubernetes 会帮助我们去做 存储的编排,让存储的声明周期与容器的生命周期能有一个连接;
  3. Kubernetes 会帮助我们去做自动化的容器的恢复。在一个集群中, 经常会出现宿主机的问题或者说是 OS 的问题,导致容器本身的不可 用,Kubernetes 会自动地对这些不可用的容器进行恢复;
  4. Kubernetes 会帮助我们去做应用的自动发布与应用的回滚,以及与 应用相关的配置密文的管理;
  5. 对于 job 类型任务,Kubernetes 可以去做批量的执行
  6. 为了让这个集群、这个应用更富有弹性,Kubernetes 也支持水平的 伸缩

kubernetes功能详解

  1. 调度 Kubernetes 可以把用户提交的容器放到 Kubernetes 管理的集群的某 一台节点上去。Kubernetes 的调度器是执行这项能力的组件,它会观察 正在被调度的这个容器的大小、规格。
    比如说它所需要的 CPU 以及它所需要的 memory,然后在集群中找一台 相对比较空闲的机器来进行一次 placement,也就是一次放置的操作。在 这个例子中,它可能会把红颜色的这个容器放置到第二个空闲的机器上, 来完成一次调度的工作
    在这里插入图片描述
  2. 自动修复 Kubernetes 有一个节点健康检查的功能,它会监测这个集群中所有的宿 主机,当宿主机本身出现故障,或者软件出现故障的时候,这个节点健康 检查会自动对它进行发现。 下面 Kubernetes 会把运行在这些失败节点上的容器进行自动迁移,迁移 到一个正在健康运行的宿主机上,来完成集群内容器的一个自动恢复

在这里插入图片描述

在这里插入图片描述
3. 水平伸缩 Kubernetes 有业务负载检查的能力,它会监测业务上所承担的负载,如 果这个业务本身的 CPU 利用率过高,或者响应时间过长,它可以对这个 业务进行一次扩容
比如说在下面的例子中,黄颜色的过度忙碌,Kubernetes 就可以把黄颜 色负载从一份变为三份。接下来,它就可以通过负载均衡把原来打到第一 个黄颜色上的负载平均分到三个黄颜色的负载上去,以此来提高响应的时 间。
在这里插入图片描述
在这里插入图片描述

Kubernetes 的架构

Kubernetes 架 构 是 一 个 比 较 典 型 的 二 层 架 构server-client 架 构 。
Master 作为中央的管控节点,会去与 Node 进行一个连接所有 UI 的、clients、这些 user 侧的组件,只会和 Master 进行连接, 把希望的状态或者想执行的命令下发给 Master,Master 会把这些命令或 者状态下发给相应的节点,进行最终的执行。
在这里插入图片描述

Kubernetes 的 Master 包含四个主要的组件:API Server、Controller、 Scheduler 以及 etcd
在这里插入图片描述

k8s 组件介绍(kubernetes)

查看组件

https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kube-apiserver/

  1. kube-apiserver:Kubernetes API server 为 api 对象验证并配置数据,包括 pods、services、 replication,controllers 和其它 api 对象,API Server 提供 REST 操作和到集群共享状态的前端,所有其他组件通过它进行交互。
    主要作用:组件与组件之间的通信
    https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kube-scheduler/

  2. Kubernetes scheduler调度器是一个拥有丰富策略、能够感知拓扑变化、支持特定负载的功能组件,它对集群的可用性、性能表现以及容量都影响巨大。
    scheduler 需要考虑独立的和集体的资源需求、服务质量需求、硬件/软件/策略限制、亲和与反亲和规范、数据位置、内部负载接口、截止时间等等。如有必要,特定的负载需求可以通过 API 暴露出来。

主要作用:依据 它对 CPU、对 memory 请求大小,找一台合适的节点,进行放置
https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kube-controller-manager/

  1. kube-controller-manager控制器Controller Manager 作为集群内部的管理控制中心负责集群内的 Node、Pod 副本服务端点(Endpoint)、命名空间(Namespace)、服务账号(ServiceAccount)、资源定额(ResourceQuota)的管理,当某个 Node意外宕机时,Controller Manager 会及时发现并执行自动化修复流程确保集群始终处于预期的工作状态

主要用于自动对容器进行修复水平扩张
https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kube-proxy/

  1. kube-proxy : Kubernetes 网 络 代 理 运 行 在 node 上,它反映了 node 上Kubernetes API 中定义的服务,并可以通过一组后端进行简单的 TCP、UDP 流转发或循环模式(round robin))的 TCP、UDP 转发,用户必须使用 apiserver API 创建一个服务来配置代理,其实就是 kube-proxy 通过在主机上维护网络规则并执行连接转发来实现 Kubernetes 服务访问

https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kubelet/

  1. kubelet:是主要的节点代理,它会监视已分配给节点的 pod,具体功能如 下:
    向 master 汇报 node 节点的状态信息
    接受指令并在 Pod 中创建 docker 容器
    准备 Pod 所需的数据卷
    返回 pod 的运行状态
    在 node 节点执行容器健康检查

https://github.com/etcd-io/etcd

  1. etcd 是 Kubernetes 提供默认的存储系统保存所有集群数据,使用时需要为 etcd数据提供备份计划,key-value存储
    API Server 中所需要的这些原 信息都被放置在 etcd 中,etcd 本身是一个高可用系统,通过 etcd 保证整个 Kubernetes 的 Master 组件的高可用性。
    在这里插入图片描述

Server端 和node端 组件有哪些

Server端

Server控制端:通过API接受用户指令
创建,删除容器,代码升级
apiserver
controller-manager
scheduler
etcd
kubectl 命令行工具
kube-proxy

node节点

node节点:真正运行容器的地方,是真正运行业务负载的
每个业务负载会以 Pod 的形式运行
在这里插入图片描述

kublelet
kube-proxy
在 OS 上去创建容器所需要运行的环境,最终把容器或者 Pod 运行起 来,也需要对存储跟网络进行管理。Kubernetes 并不会直接进行网络存 储的操作,他们会靠 Storage Plugin 或者是网络的 Plugin 来进行操作。 用 户 自 己 或 者 云 厂 商 都 会 去 写 相 应 的 Storage Plugin 或 者 Network Plugin,去完成存储操作或网络操作。 在 Kubernetes 自己的环境中,也会有 Kubernetes 的 Network,它是 为了提供 Service network 来进行搭网组网的。(等一下我们也会去介 绍“service”这个概念。)真正完成 service 组网的组件的是 Kube-proxy, 它是利用了 iptable 的能力来进行组建 Kubernetes 的 Network,就是 cluster network,以上就是 Node 上面的四个组件。

在这里插入图片描述
用户可以通过 UI 或者 CLI 提交一个 Pod 给 Kubernetes 进行部署, 这 个 Pod 请 求 首 先 会 通 过 CLI 或 者 UI 提 交 给 Kubernetes API Server,下一步 API Server 会把这个信息写入到它的存储系统 etcd, 之后 Scheduler 会通过 API Server 的 watch 或者叫做 notification 机制得到这个信息:有一个 Pod 需要被调度。

这个时候 Scheduler 会根据它的内存状态进行一次调度决策,在完成这 次调度之后,它会向 API Server report 说:“OK!这个 Pod 需要被调 度到某一个节点上。”

这个时候 API Server 接收到这次操作之后,会把这次的结果再次写到 etcd 中,然后 API Server 会通知相应的节点进行这次 Pod 真正的执 行 启 动 。 相 应 节 点 的 kubelet 会 得 到 这 个 通 知 , kubelet 就 会 去 调 Container runtime 来真正去启动配置这个容器和这个容器的运行环境, 去调度 Storage Plugin 来去配置存储,network Plugin 去配置网络。
客户端
kubectl
dashboard

部署工具*:
使用批量部署工具如(ansible/ saltstack)、手动二进制、apt-get/yum 等方式安装,以守护进程的方式启动在宿主机上,类似于是 Nginx 一样使用 service 脚本启动。

安装方式

部署工具
使用批量部署工具如(ansible/ saltstack)、手动二进制、apt-get/yum 等方式安装,以守护进程的方式启动在宿主机上,类似于是 Nginx 一样使用 service 脚本启动。

  1. kubeadm方式 安装
    kubeadm是k8s部署工具,提供kubeadm init 和kubeadm join用于 快速部署k8s集群
    使用 k8s 官方提供的部署工具 kubeadm 自动安装需要在 master 和 node 节点上安装 docker 等组件,然后初始化,把管理端的控制服务和 node 上的服务都以pod 的方式运行。
    kubeadm介绍

  2. kubeadm方式 安装
    kubeadm是k8s部署工具,提供kubeadm init 和kubeadm join用于 快速部署k8s集群
    使用 k8s 官方提供的部署工具 kubeadm 自动安装需要在 master 和 node 节点上安装 docker 等组件,然后初始化,把管理端的控制服务和 node 上的服务都以pod 的方式运行。
    kubeadm介绍

集群网络插件,目前支持calico, flannel, kube-router, cilium

pod介绍
https://www.kubernetes.org.cn/kubernetes-pod
Pod可以作为垂直应用整合的载体,但是它的主要特点是支持同地协作,同地管理程序,
例如:

内容管理系统,文件和数据加载,本地缓存等等
日志和检查点备份,压缩,循环,快照等等
数据交换监控,日志追踪,日志记录和监控适配器,以及事件发布等等
代理,网桥,适配器
控制,管理,配置,更新

总体来说,独立的Pod不会去加载多个相同的应用实例

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-31 17:01:25  更:2021-07-31 17:03:13 
 
开发: 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年12日历 -2024/12/27 11:15:33-

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