关于go:为什么需要k8s

45次阅读

共计 2924 个字符,预计需要花费 8 分钟才能阅读完成。

前言

目前对 k8s 的一期学习布局如下:

  • 实际 k8s 搭建(已实现,点击查看)
  • 理解 k8s 前世今生(本文)
  • 由点到面意识 k8s 架构
  • 由面到点深刻 k8s 架构

明天开始逐渐去理解 k8s 前世今生,本文构造如下:

  • 物理机以及存在的问题
  • 虚拟主机以及存在的问题
  • docker 诞生
  • docker 存在的问题

物理机以及存在的问题

间接应用物理机部署业务服务:

部署形式问题
独立部署业务服务资源利用率低
混合部署业务服务耦合 / 相互影响

虚拟主机以及存在的问题

物理机通过虚拟化技术,能够虚构出多台虚拟主机,即晋升了物理设施的利用率又达到了隔离的目标。

<p align=”center”>
<img src=”https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/dbd002184eaa42579bafbb3b82b67026~tplv-k3u1fbpfcp-zoom-1.image” style=”width:50%”>
</p>

然而虚构硬件 + 虚构操作系统不够轻量,于是诞生了docker

docker诞生

docker如何解决隔离问题,依赖 Linux 外围能力 Namespace 实现:

  • 过程隔离
  • 网络隔离
  • 文件隔离
  • 用户隔离
  • 等等

依赖 Linux 外围能力 Control Group 实现:资源隔离 / 限度。

应用 docker 部署的业务利用间接运行在宿主机上,更加的轻量:

<p align=”center”>
<img src=”https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/64130eebb04d45048bfe5373ae102624~tplv-k3u1fbpfcp-zoom-1.image” style=”width:50%”>
</p>

虚拟主机和 docker 比照图:

<p align=”center”>
<img src=”https://blog-1251019962.cos.ap-beijing.myqcloud.com/qiniu_img_2022/why%20k8s/%E8%99%9A%E6%9C%BA%20VS%20docker%20.png” style=”width:70%”>
</p>

docker存在的问题

然而面对简单的业务的场景,间接应用 docker 依然存在如下问题:

容器和宿主机治理问题

单宿主机上 N 个容器如何治理?

<p align=”center”>
<img src=”https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a296c9e911dc41bcad6aa4a08efea6ac~tplv-k3u1fbpfcp-zoom-1.image” style=”width:60%”>
</p>

一个容器集群 N 个宿主机如何治理?

<p align=”center”>
<img src=”https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9ffb899d538841f6b798897321b9e4c1~tplv-k3u1fbpfcp-zoom-1.image” style=”width:60%”>
</p>

容器一直动静变更,如何反对负载平衡

集群外部一个业务利用对应多个容器且容器一直动静变更,如何实现负载平衡?

<p align=”center”>
<img src=”https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/bd986737be2f4263b981880fe0b3b193~tplv-k3u1fbpfcp-zoom-1.image” style=”width:80%”>
</p>

新创建的容器如何调度

创立一个容器该创立在哪台宿主机上?

<p align=”center”>
<img src=”https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/288585e4150d475fa6c49bd3993616b9~tplv-k3u1fbpfcp-zoom-1.image” style=”width:80%”>
</p>

如何达到高可用

单个宿主机挂了如何主动摘除容器流量和剔除宿主机?

<p align=”center”>
<img src=”https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/00a3cd1fff2640349390d4cc920efe54~tplv-k3u1fbpfcp-zoom-1.image” style=”width:80%”>
</p>

如何实现主动按需伸缩容器数量?

<p align=”center”>
<img src=”https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a17763dba21c47e78f373c7cc396e57f~tplv-k3u1fbpfcp-zoom-1.image” style=”width:70%”>
</p>

​公布新版本镜像,如何实现容器平滑启动?

<p align=”center”>
<img src=”https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d86dc1901fd04f83986005b207b25752~tplv-k3u1fbpfcp-zoom-1.image” style=”width:70%”>
</p>

容器依赖治理

存在“过程级”依赖关系容器如何治理和管制启动程序:

<p align=”center”>
<img src=”https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f7414401cc29449d8bfde1790116bc0e~tplv-k3u1fbpfcp-zoom-1.image” style=”width:70%”>
</p>

权限如何治理

不同团队或租户权限如何治理?

<p align=”center”>
<img src=”https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f372898c1f8c4b0c8283d07347bcf021~tplv-k3u1fbpfcp-zoom-1.image” style=”width:70%”>
</p>

总结

综上所述,间接应用 docker 部署服务会存在以下问题,这也就是 k8s 要解决的问题:

  • 容器和宿主机治理问题

    • 单宿主机上 N 个容器如何治理?
    • 一个容器集群 N 个宿主机如何治理?
  • 容器一直动静变更,如何反对负载平衡

    • 集群外部一个业务利用对应多个容器且容器一直动静变更,如何反对负载平衡?
  • 新创建的容器如何调度

    • 创立一个容器该创立在哪台宿主机上?
  • 如何达到高可用

    • 单个宿主机挂了如何主动摘除容器流量和剔除宿主机?
    • 如何实现主动按需伸缩容器数量?
    • 公布新版本镜像,如何实现容器平滑启动?
  • 容器依赖治理

    • 存在“过程级”依赖关系容器如何治理和管制启动程序
  • 权限如何治理

    • 不同团队或租户权限如何治理?
  • 等等

所以,为什么须要 k8s,你了解了吗?

正文完
 0