遇见云原生 kubernetes的开源参与指南

645 阅读4分钟

「本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,2万元奖池等你挑战!

PS:这篇文章虽然参与了好文召集活动,但阅读此文的朋友心态请摆正,文中有不理解的地方(非语言阅读问题)欢迎在评论区留言,谢谢

阅读此文章的预先准备 由于kubernetes是管理容器用的,我们需要知道docker容器的工作原理和应用实践

容器定义: 轻量级应用代码包,它还包含依赖项,例如编程语言运行时的特定版本和运行软件服务所需的库。

什么是kubernetes

图像/flower.svg

  • what

    Kubernetes,也称为 K8s,是一个开源系统,用于自动化部署、扩展和管理容器化应用程序

  • why

    1.Kubernetes 是容器编排系统的事实标准

    2.在单机上运行容器,无法发挥它的最大效能,只有形成集群,才能最大程度发挥容器的良好隔离、资源分配与编排管理的优势,而对于容器的编排管理,Swarm、Mesos 和 Kubernetes 的大战已经基本宣告结束,Kubernetes 成为了无可争议的赢家。

    3.下面这张图是 Kubernetes 的架构图(图片来自网络),其中显示了组件之间交互的接口 CNI、CRI、OCI 等,这些将 Kubernetes 与某款具体产品解耦,给用户最大的定制程度,使得 Kubernetes 有机会成为跨云的真正的云原生应用的操作系统。

kubernetes-high-level-component-archtecture.jpeg

  • how

Alibaba && CNCF 联合教程

kubernetes中文使用教程 (kubernetes 1.6+版本阅读)

如何与社区保持沟通

Kubernetes的社区是以SIG(Special Interest Group特别兴趣小组)和工作组的形式组织起来的,每个工作组都会定期召开视频会议。以下是讨论组列表

SIG-list

2021-07-17-01-01.png


   -   **api-machinery**:所有API级别的功能,包括了API server、API注册和发现、通用的API CRUD语义,准入控制,编码/解码,转换,默认值,持久化层(etcd),OpenAPI,第三方资源,垃圾手机和客户端库的方方面面。


   -   **aws**:如何在AWS上支持和使用kubernetes。


   -   **apps**:在kubernetes上部署和运维应用程序。关注开发者和DevOps在kubernetes上运行应用程序的体验。

   -   **architecture**:维持kubernetes在架构设计上的一致性和原则。

   -   **auth**:kubernetes的认证授权、权限管理和安全性策略。

   -   **autoscaling**:集群的自动缩放,pod的水平和垂直自动缩放,pod的资源初始化,pod监控和指标收集等主题。

   -   **azure**:如何在Azure上支持和使用kubernetes。

   -   **big-data**:在kubernetes上部署和运行大数据应用,如Spark、Kafka、Hadoop、Flink、Storm等。

   -   **CLI**:kubectl和相关工具。

   -   **cluster-lifecycle**:部署和升级kubernetes集群。

   -   **cluster-ops**:促进kubernetes集群本身的可操作性和集群间的互操作性,使不同的运营商之间协调一致。

   -   **contributor-experience**:维持良好的开发者社区。

   -   **docs**:文档,流程和出版物。


   -   **GCP**:在Google Cloud Platform上使用kubernetes。

   -   **instrumentation**:集群可观测性的最佳实践,包括指标设置、日志收集、事件等。

   -   **multicluster**:多kubernetes集群的用例和工具。

   -   **network**:kubernetes集群的网络。

   -   **node**:node节点、kubelet。

   -   **onprem**:在非云供应商的环境下运行kubernetes,例如on premise、裸机等环境。

   -   **openstack**:协调跨OpenStack和Kubernetes社区的努力。

   -   **product-management**:侧重于产品管理方面。

   -   **release**:发布、PR和bug提交等。


   -   **scalability**:负责回答可伸缩性相关的问题。

   -   **scheduling**:资源调度。

   -   **service-catalog**:为CNCF service broker和Kubernetes broker实现开发API。

   -   **storage**:存储和volume插件。

   -   **testing**:测试。

   -   **ui**:与UI相关的话题。

   -   **windows**:在kubernets上运行Windows Server Container。

  • 英文阅读能力不强的同学

  • 英文阅读能力强的同学

从上述sig-list我们可以看到参与相关的SIG存在两种方式: 点击(slack)或者Mailing List可以参与

2021-01-10-01-01.png

  • 邮件列表 比如这里我订阅了 kubernetes-sig-architecture 每周会收到周二到周四的定期会议,对未来的功能迭代和版本回顾做讨论

2021-07017-09-01.png

  • slack群组(国外开源社区的沟通工具之一,类似于我们的微信群)

2021-07-01-01.png

如何在本地部署kubernetes的运行环境

Minikube用于在本地运行kubernetes环境

我想定制化开发kubernetes,如何参与社区呢?

如何向kubernetes做贡献

doc:github.com/kubernetes/…

1626481871818.jpg

正如上图所说,需要做到两点

  • 订阅SIG-list,找到你期望贡献的SIG组的slack讨论群组以及邮件列表
  • 根据贡献指南进行贡献