云原生00-什么是云原生
2022-11-08 / 可可西里

1. 什么是云原生

  • 在包括公有云、私有云、混合云等动态环境中构建和运行规模化应用的能力

  • 云原生是一种思想,是技术、企业管理方法的集合

    • 技术层面
      • 应用程序从设计之初就为在云上运行而做好准备
      • 云平台基于自动化体系
    • 流程层面
      • 基于 DevOps,CI/CD
  • 基于多种手段

    • 应用容器化封装
    • 服务网格
    • 不可变基础架构
    • 声明式 API
  • 云原生的意义

    • 提升系统的适应性、可管理性、可观察性
    • 使工程师能以最小成本进行频繁和可预测的系统变更
    • 提升速度和效率,助力业务成长,缩短 I2M(Idea to Market)

2. 云原生核心项目概览

image.png

3. kube-proxy 是干啥用的

3.1 官方文档

官方文档:点击跳转

kube-proxy uses the operating system packet filtering layer if there is one and it’s available. Otherwise, kube-proxy forwards the traffic itself.

3.2 看看前人是怎么解读的

搜中文文档,知乎,CSDN,简书都有比较高质量的文章,可以多看一些文档,并理解不同人 的理解差异

知乎:点击跳转

中文世界Kubernetes非常活跃,不少文档质量超过英文。但中文搬运转载问题比较严重,需要自己甄别

3.3 找关键知识点
  • 先对大概的框架有认识
  • kube-proxy 监听 API server 中 资源对象的变化情况,包括以下三种:
    • service
    • endpoint/endpointslices
    • node
  • 目前 Kube-proxy 支持4中代理模式:
    • userspace
    • iptables
    • ipvs
    • kernelspace(windows)
3.4 由点到面稍稍展开一下

由浅入深的理解,成为专家

  • 入门:可以使用,知道怎么用,大概做了什么
  • 初级:粗略理解配置方法
  • 高级:理解不同模式的差异,理解为什么要有多种模式,理解配置细节
  • 专家级:理解完整的内核协议栈处理数据包的流程,能够举一反三
image.png

4. 如何学习云原生技术

  • 代码驱动

    • 掌握 Go 语言编程能力
  • 从点到面

    • cgroup、namespace
    • 网络协议栈
    • 文件系统
  • 抓住核心掌控全局

    • 深入理解 Kubernetes
      • API 定义
      • 控制器模式
      • 核心组件
  • 大规模生产化

    • 多集群
    • 服务网格和多网格

本文链接:
https://huajun-chen.github.io/2022/11/08/云原生00-什么是云原生/