Kubernetes基础自学系列

您所在的位置:网站首页 kubernetes组件介绍 Kubernetes基础自学系列

Kubernetes基础自学系列

#Kubernetes基础自学系列 | 来源: 网络整理| 查看: 265

视频来源:B站《2021 年末倾力打造 Kubernetes 入门至精通 - 2022 年幸福的开胃菜》

一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持!

附上汇总贴:Kubernetes基础自学系列 | 汇总_COCOgsta的博客-CSDN博客

组件框架

etcd高可用

Kubernetes的存储层使用的是etcd。etcd是CoreOS开源的一个高可用强一致性的分布式存储服务,Kubernetes使用etcd作为数据存储后端,把需要记录的pod、rc、service等资源信息存储在etcd中

etcd使用raft算法将一组主机组成集群,raft集群中的每个节点都可以根据集群运行的情况在三种状态间切换:follower,candidate与leader。leader和follower之间保持心跳。如果follower在一段时间内没有收到来自leader的心跳,就会转为candidate,发出新的选主请求

Master高可用

Kubernetes的管理层服务包括kube-scheduler和kube-controller-manager。kube-scheduler和kube-controller-manager使用一主多从的高可用方案,在同一时刻只允许一个服务处理具体的任务。Kubernetes中实现了一套简单的选主逻辑,依赖etcd实现scheduler和controller-manager的选主功能

如果scheduler和controller-manager在启动的时候设置了leader-elect参数,它们在启动后会先尝试获取leader节点身份,只有在获取leader节点身份后才可以执行具体的业务逻辑。它们分别会在etcd中创建kube-scheduler和kube-controller-manager的endpoint,endpoint的信息中记录了当前的leader节点信息,以及记录的上次更新时间。leader节点会定期更新endpoint的信息,维护自己的leader身份。每个从节点的服务都会定期检查endpoint的信息,如果endpoint的信息在时间范围内没有更新,它们会尝试更新自己为leader节点。scheduler服务以及controller-manager服务之间不会进行通信,利用etcd的强一致性,能够保证在分布式高并发情况下leader节点的全局唯一性

Kubernetes的接入层服务主要是kube-apiserver。Apiserver本身是无状态的服务,它的主要任务职责是把资源数据存储到etcd中,后续具体的业务逻辑是由scheduler和controller-manager执行的

总结方案

开源解决方案

Sealos特性

99年证书

不依赖ansible haproxy keepalived,一个二进制工具,0依赖

离线安装,不同kubernetes版本下载对应不同版本的资源包即可,离线包包含所有二进制文件配置文件和镜像

高可用通过ipvs实现的localLB,占用资源少,稳定可靠,类似kube-proxy的实现

几乎可兼容所有支持systemd的x86_64架构的环境

轻松实现集群节点的增加/删除

上千用户在线上环境使用sealos,稳定可靠

资源包放在阿里云oss上,再也不用担心网速

Dashboard ingress prometheus等APP同样离线打包,一键安装

Sealos架构图



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3