K8S笔记

以下笔记针对 kubernetes V1.23.1(截至2022年01月01日最新版本),并不保证对其它版本的有效性

一、架构图

在这里插入图片描述

二、阅读前准备

由于kubernetes项目巧妙的设计和代码高度的封装性,建议在阅读代码前,尽可能的进行以下内容的准备:

1. 编程知识配备
  • 编程语准备: 学习golang语法,并额外对cobrapflagflag等包有一定了解,了解go module机制
  • 环境准备:配置并熟悉golang程序的调试,额外掌握在带有命令行参数的情境下如何调试
2. 系统、网络及安全知识
  • 学习HTTPS通信与TLS加密
  • 掌握X.509证书基本要素
  • 了解Bootstrap机制(kubeletkube-ApiServer注册时使用)
  • 基本了解网络代理、容器技术
  • 掌握YAMLJSON编码格式
3. kubernetes组件运行
  • 掌握kubernetes基础概念,例如poddeployment等。了解各组件的作用以及之间的关系、通信方式和大体流程
  • 手动从kubernetes源码编译获得二进制文件,掌握kubernetes源码构建二进制的具体过程
  • 手动从二进制文件配置一个多节点集群,从中加深了解kubernetes组件的运行关系,以及深入了解kubernetes单个组件启动参数含义,同时可以借此形成单个组件的良好调试运行环境。
    • 基于二进制构建kubernetes是较为复杂的,且随着版本更新旧的方式逐渐失效,直到V1.23.1已没有完美教程,为此通过博客的方式详细记录此次集群搭建过程,可供参考:从二进制搭建kubernetes v1.23.1集群(由于教程是在实验做完后补上,可能有小部分缺失,如果您发现了问题请尽快取得联系!)

三、源码剖析

1. API-Server

提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制

2. Controller-manager

负责维护集群的状态,比如故障检测、自动扩展、滚动更新等

3. Kube-Scheduler

负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上

4. Kubelet

负责维护容器的生命周期,同时也负责Volume(CVI)和网络(CNI)的管理

5. Kube-proxy

负责为Service提供cluster内部的服务发现和负载均衡

6. Kube-ctl
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值