案例

K8s中的应用与任务部署

参考云原生一篇中的定义,将云原生的组件映射为Kubernetes的原语(即Kubernetes里的各种资源对象和概念组合,可以得到如下图:

云原生与 K8s 概念映射

K8s中的应用部署我们往往应该遵循如下的规则:

  • 不要直接部署裸的Pod。在Pod里增加ReadinessLiveness探针。给Pod这只CPU和内存资源限额。
  • 为工作负载选择合适的Controller
  • 定义多个Namespace来限制默认Service范围的可视性。在应用程序工作负载启动之前先启动Service
  • 使用Deployment history来回滚到历史版本。使用ConfigMapSecret来存储配置。
  • 使用Init容器确保应用程序被正确的初始化。配置HPA来动态扩展无状态工作负载。