当前位置: 首页 > news >正文

云原生俱乐部-k8s知识点归纳(1)

这篇文章主要是讲讲k8s中的知识点归纳,以帮助理解。

虽然平时也做笔记和总结,但是就将内容复制过来不太好,而且我比较喜欢打字。

因此知识点归纳总结还是以叙述的口吻来说说,并结合我的理解加以论述。


k8s和docker

首先讲一讲docker和k8s之间的联系,由于k8s在1.2之后就不再原生支持docker,因此需要使用cri-dockerd来做适配。

cri是k8s定义的一组gRPC接口,用于标准化k8s和底层容器的交互。除此之外,k8s提供了cri的客户端工具crictl来和cri交互。

cri-dockerd就是实现了上面说的接口,作为docker与k8s之间的适配器进行转换。

像cri-o、containerd也实现了该接口,并且不需要像docker一样依赖适配器。containerd曾经是docker的底层组件,不过后面被提取出来作为独立的项目。

主要是docker过于臃肿,与k8s的理念背道而驰,不过containerd倒是挺好用的。

禁用交换空间

强调多次,首先禁用交换空间。k8s的调度依赖cpu和内存,如果使用交换空间,会导致对内存的估计不准确(或者说使用了交换空间)。

过度调度导致部分进程都换到交换空间中去,而交换空间的IO速度远远低于内存,这样会导致集群的性能整体下降。

这是k8s不能容忍的,所以为了获得更好的性能,需要牺牲对交换空间的使用,虽然这样主机就不能在休眠的时候依旧保存状态了,交换空间的存在能够在系统休眠的时候保存系统状态。

k8s组件的介绍

控制平面组件:kube-apiserver、ectd、kube-controller-manager、kube-schedule

虽然控制平面组件可以在任何节点,但是为了方便管理,建议都放在master节点上。

- kube-apiserver集群api入口

- kube-schedule调度资源pod,确定哪个pod在哪个node上运行

- etcd--分布式键值存储数据库,保存集群的所有配置和状态数据

- kube-controller-manager​--运行各种控制器,确保集群状态符合预期

数据平面组件:kubelet、kube-proxy

其实这里叫数据平面组件不太合适,master节点也需要kubelet组件。当然,漏说了一个kubectl这个与apiserver交互的客户端工具,也是在master节点上的。

kubeadm的init工作

我们都是用kubeadm来初始化集群的,这是个很方便的工具,主要可以做以下三个事情:1.初始化master节点,2.提供集群维护命令,3.配置集群网络。

初始化包括

- 自动创建 CA 根证书、API Server 证书、Service Account 密钥等,确保集群通信安全。 
- 启动 `kube-apiserver`、`etcd`、`kube-scheduler`、`kube-controller-manager`等核心组件 
- 创建 kubeconfig文件(如/etc/kubernetes/admin.conf),供 kubectl访问集群。
- 生成加入令牌(Token):为 Worker 节点提供安全的加入凭证

集群维护命令包括kubeadm reset清理集群,kubeadm upgrade来升级集群。当然,还提供kubeadm join来讲节点加入到集群中去。

http://www.lryc.cn/news/620453.html

相关文章:

  • 同创永益 IStorM CNBR云原生业务韧性管理平台 v3.3.0重磅发布:告别备份烦恼,云原生数据保护再升级!
  • 【博客系统测试报告】---接口自动化测试
  • toRefs、storeToRefs实际应用
  • 图书商城小程序怎么做?实体书店如何在微信小程序上卖书?
  • 机器学习 - Kaggle项目实践(3)Digit Recognizer 手写数字识别
  • 20道HTML相关前端面试题及答案
  • 如何通过WiFi将文件从安卓设备传输到电脑
  • 点图:数据分布的可视化利器
  • PostgreSQL——视图
  • 读书笔记:《我看见的世界》
  • 为什么Integer缓存-128 ~ 127
  • 【Linux学习|黑马笔记|Day4】IP地址、主机名、网络请求、下载、端口、进程管理、主机状态监控、环境变量、文件的上传和下载、压缩和解压
  • 编排之神-Kubernetes微服务专题--ingress-nginx及金丝雀Canary的演练
  • [Oracle数据库] ORACLE基本DML操作
  • 图论Day2学习心得
  • Pytest本地插件定制及发布指南
  • 代码随想录Day50:图论(图论理论、深度搜索理论、所有可达路径、广度搜索理论)
  • python sqlite3模块
  • 高效解决 pip install 报错 SSLError: EOF occurred in violation of protocol
  • 《贵州棒球百科》体育赛事排名·棒球1号位
  • 视频号主页的企业信息如何设置?
  • 消费级显卡分布式智能体协同:构建高性价比医疗AI互动智能体的理论与实践路径
  • 从理论到落地:分布式事务全解析(原理 + 方案 + 避坑指南)
  • 云原生存储架构设计与性能优化
  • 【java实现一个接口多个实现类通用策略模式】
  • GitHub 仓库代码上传指南
  • Python包性能优化与并发编程:构建高性能应用的核心技术(续)
  • OpenBMC中C++策略模式架构、原理与应用
  • Qt基本控件
  • Elasticsearch:如何使用 Qwen3 来做向量搜索