Skip to content

Latest commit

 

History

History
29 lines (16 loc) · 1.77 KB

00-怎么实现容器技术的提问.md

File metadata and controls

29 lines (16 loc) · 1.77 KB

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。

[TOC]


我与容器打交道的这些年,一直在与关注容器生态的工程师们交流,并经常探讨容器在落地过程中遇到的问题。从这些交流中,我发现总有很多相似的问题被反复提及,比如:

  • 为什么容器里只能跑“一个进程”?
  • 为什么我原先一直在用的某个 JVM 参数,在容器里就不好使了?
  • 为什么 Kubernetes 就不能固定 IP 地址?容器网络连不通又该如何去 Debug?
  • Kubernetes 中 StatefulSet 和 Operator 到底什么区别?
  • PV 和 PVC 这些概念又该怎么用?

这些问题乍一看与我们平常的认知非常矛盾,但它们的答案和原理却并不复杂。不过很遗憾,对于刚刚开始学习容器的技术人员来说,它们却很难用一两句话就能解释清楚。

究其原因在于,从过去以物理机和虚拟机为主体的开发运维环境,向以容器为核心的基础设施的转变过程,并不是一次温和的改革,而是涵盖了对网络、存储、调度、操作系统、分布式原理等各个方面的容器化理解和改造。

其实,容器技术体系看似纷乱繁杂,却存在着很多可以“牵一发而动全身”的主线。

比如,Linux 的进程模型对于容器本身的重要意义;或者,“控制器”模式对整个 Kubernetes 项目提纲挈领的作用。

但是,这些关于 Linux 内核、分布式系统、网络、存储等方方面面的积累,并不会在 Docker 或者 Kubernetes 的文档中交代清楚。

可偏偏就是它们,才是真正掌握容器技术体系的精髓所在,是每一位技术从业者需要悉心修炼的“内功”。