[K8s] Pod 与容器设计模式 Sidecar

为什么 Pod 必须是原子调度?

  在两个容器紧密协作的场景中,避免调度失败问题。

  Pod 解决了里面多个容器之间高效共享某些资源和数据,共享网络、共享存储。 

容器设计模式?

通过在 Pod 里定义专门容器,来执行主业务容器需要的辅助工作。

优势是将辅助功能同主业务容器解耦,实现独立发布和能力重用。

比如:

  原来需要 SSH 进服务器执行的脚本。

  日志收集。

  Debug 应用。

  应用监控。

具体 Sidecar 案例:应用与日志收集

  业务容器将日志写在 Volume 里。

  日志容器共享该 Volume 从而将日志转发到远程存储中。Fluentd 等。

具体 Sidecar 案例:代理容器

  代理容器对业务容器屏蔽被代理的服务器集群,简化业务代码的实现逻辑。

    * 容器之间通过 localhost 直接通向。

    * 代理容器的代码可以被其它业务组重用。

具体 Sidecar 案例:适配器容器

  适配器容器将业务容器暴露出来的接口转换为另一种格式。

    * 业务容器暴露监控接口 /metrics。

    * 适配器容器将其转换为 /health 已适配新的监控系统。

Refer:[K8s] Kubernetes核心基础概念 Node, Pod, ReplicaSet, Deployment, Service, Ingress, ConfigMap 

Other:https://tool.offso.com/navs/play-with-k8s

Link:https://www.cnblogs.com/farwish/p/15416974.html

原文地址:https://www.cnblogs.com/farwish/p/15416974.html