个人觉得kubernetes应该分为三类开发等级。
第一分类:
主要针对的是怎么使用现有的K8S能力;
技术要求(运维):
- 清楚了解K8S的各类资源的基本概念和功能(Job/Deployment/StatefulSet/DaemSet/Service/Service-Headless/ConfigMap/Secret/Pod/Ingress/Ingress Controller/Service Account/Rule/Cluster Rule/Init Container/Health Checking/Helm);
- 编写部署脚本(YAML/JSON/Shell),清楚K8S中YAML一些参数的意思,以及不清楚的话怎么解决;
- 清楚使用K8S的一些技术场景,比如:负载均衡、灰度发布等;
- 离线和在线安装K8S集群,问题排查
第二分类:
主要针对K8S进行应用开发;
技术要求(应用开发):
- 熟悉K8S的API
- 熟悉K8S的Customer Resource Management,可以编写Operator
- 熟悉针对Service Mesh的开发
第三等级:
主要针对K8S的Plugin的开发
技术要求(基础能力开发):
- 熟悉CSI
- 熟悉NCI
- 熟悉资源配额管理
- Cloud Provider开发