说明:以下问题只做简单总结,详细内容请参考链接:https://github.com/bregman-arie/devops-exercises/blob/master/topics/kubernetes/README.md#kubernetes-101
1、k8s 是什么,为什么企业选择使用它
k8s是一个开源应用,给用户提供了管理、部署、扩展容器的能力。
- 将容器运行在不同的机器或节点上,并且将一些变化同步给容器(只需要编写yaml文件,告诉k8s我的预期是什么,同步变化的过程交由k8s去完成)。
- 一键管理所有容器,同步所有变更
- 根据负载调整应用副本数,手动和自动完成都可以
2、什么时候用或不用k8s
- 通常传统的业务,还在使用物理机这种低级别的基础设施的话,不建议使用k8s
- 小团队、容器规模小的时候也不建议使用,除非想使用 k8s 的滚动发布和自扩容能力,不过这些功能运维自己写工具也能实现。
3、k8s特性
- 自我修复,
k8s
对容器有着健康检测(探针、oom) - 自带负载均衡(service)
- 自动运维能力(扩缩容)、水平扩展
- 滚动更新
- 数据加密(secret)
4、k8s最佳实践
- 验证yaml文件内容正确性(一旦执行错了后果很严重,比如使用 helm 的时候最好岂容
dry-run
和debug
,先看看生成的yaml
是否是预期想要的)- helm upgrade app --dry-run --debug
- 限制资源使用,如CPU、内存( 不设置一旦应用出现bug,可能导致k8s集群受到影响)
# 资源限制 resources: limits: cpu: 200m memory: 200Mi requests: cpu: 100m memory: 100Mi
- 为pod、deployment指定标签,用于分组
标签:容器,面试题,Kubernetes,常见,yaml,使用,helm,k8s From: https://www.cnblogs.com/hj416/p/17786677.html