开发相关事项。

k8s本身开发

基本上都是扩展开发,比如CNI,CSI,CRI,调度框架,api等,最好不要在源码上修改。

云原生应用的开发

云原生应用开发基本方式

  • 全云端:开发效率低
  • 全本地:机器需求大
  • 云端+本地:本地开发,同步的云端,目前比较好的开发方式

社区开发模式

下面是社区中Kubernetes开源爱好者的分享内容,我觉得是对Kubernetes在DevOps中应用的很好的形式值得大家借鉴。

  • 根据环境(比如开发、测试、生产)划分namespace,也可以根据项目来划分
  • 再为每个用户划分一个namespace、创建一个serviceaccount和kubeconfig文件,不同namespace间的资源隔离,目前不隔离网络,不同namespace间的服务可以互相访问
  • 创建yaml模板,降低编写Kubernetes yaml文件编写难度
  • 在kubectl命令上再封装一层,增加用户身份设置和环境初始化操作,简化kubectl命令和常用功能
  • 管理员通过dashboard查看不同namespace的状态,也可以使用它来使操作更便捷
  • 所有应用的日志统一收集到ElasticSearch中,统一日志访问入口
  • 可以通过Grafana查看所有namespace中的应用的状态和kubernetes集群本身的状态
  • 需要持久化的数据保存在分布式存储中,例如GlusterFS或Ceph中