Kubernetes指南
Linux性能优化实战eBPF 核心技术与实战SDN指南个人博客
中文
中文
  • 序言
  • 基础入门
    • Kubernetes 简介
    • Kubernetes 基本概念
    • Kubernetes 101
    • Kubernetes 201
    • Kubernetes 集群
  • 核心原理
    • 核心原理
    • 架构原理
    • 设计理念
    • 核心组件
      • etcd
      • kube-apiserver
      • kube-scheduler
      • kube-controller-manager
      • kubelet
      • kube-proxy
      • kube-dns
      • Federation
      • kubeadm
      • hyperkube
      • kubectl
    • 资源对象
      • Autoscaling
      • ConfigMap
      • CronJob
      • CustomResourceDefinition
      • DaemonSet
      • Deployment
      • Ingress
      • Job
      • LocalVolume
      • Namespace
      • NetworkPolicy
      • Node
      • PersistentVolume
      • Pod
      • PodPreset
      • ReplicaSet
      • Resource Quota
      • Secret
      • SecurityContext
      • Service
      • ServiceAccount
      • StatefulSet
      • Volume
  • 部署配置
    • 部署指南
    • kubectl 安装
    • 单机部署
    • 特性开关
    • 最佳配置
    • 版本支持
    • 集群部署
      • kubeadm
      • kops
      • Kubespray
      • Azure
      • Windows
      • LinuxKit
      • kubeasz
    • 附加组件
      • Addon-manager
      • DNS
      • Dashboard
      • 监控
      • 日志
      • Metrics
      • GPU
      • Cluster Autoscaler
      • ip-masq-agent
    • Kubernetes-The-Hard-Way
      • 准备部署环境
      • 安装必要工具
      • 创建计算资源
      • 配置创建证书
      • 配置生成配置
      • 配置生成密钥
      • 部署 Etcd 群集
      • 部署控制节点
      • 部署计算节点
      • 配置 Kubectl
      • 配置网络路由
      • 部署 DNS 扩展
      • 烟雾测试
      • 删除集群
  • 插件扩展
    • API 扩展
      • Aggregation
      • CustomResourceDefinition
    • 访问控制
      • 认证
      • RBAC 授权
      • 准入控制
    • Scheduler 扩展
    • 网络插件
      • CNI
      • Flannel
      • Calico
      • Weave
      • Cilium
      • OVN
      • Contiv
      • SR-IOV
      • Romana
      • OpenContrail
      • Kuryr
    • 运行时插件 CRI
      • CRI-tools
      • Frakti
    • 存储插件
      • 容器存储接口 CSI
      • FlexVolume
      • glusterfs
    • 网络策略
    • Ingress Controller
      • Ingress + Letsencrypt
      • minikube Ingress
      • Traefik Ingress
      • Keepalived-VIP
    • Cloud Provider 扩展
    • Device 插件
  • 服务治理
    • 服务治理
      • 一般准则
      • 滚动升级
      • Helm
      • Operator
      • Service Mesh
      • Linkerd
      • Linkerd2
    • Istio
      • 安装
      • 流量管理
      • 安全管理
      • 策略管理
      • 度量管理
      • 排错
      • 社区
    • Devops
      • Draft
      • Jenkins X
      • Spinnaker
      • Kompose
      • Skaffold
      • Argo
      • Flux GitOps
  • 实践案例
    • 实践概览
    • 资源控制
    • 集群高可用
    • 应用高可用
    • 调试
    • 端口映射
    • 端口转发
    • 用户管理
    • GPU
    • HugePage
    • 安全
    • 审计
    • 备份恢复
    • 证书轮换
    • 大规模集群
    • 大数据与机器学习
      • Spark
      • Tensorflow
    • Serverless
  • 排错指南
    • 排错概览
    • 集群排错
    • Pod 排错
    • 网络排错
    • PV 排错
      • AzureDisk
      • AzureFile
    • Windows 排错
    • 云平台排错
      • Azure
    • 排错工具
  • 社区贡献
    • 开发指南
    • 单元测试和集成测试
    • 社区贡献
  • 附录
    • 生态圈
    • 学习资源
    • 国内镜像
    • 如何贡献
    • 参考文档
由 GitBook 提供支持
在本页
  • 社区结构
  • 提交 Pull Request 到主分支
  • 提交 Pull Request 到发布分支
  • 参考文档
  1. 社区贡献

社区贡献

上一页单元测试和集成测试下一页生态圈

最后更新于2年前

Kubernetes 支持以许多种方式来贡献社区,包括汇报代码缺陷、提交问题修复和功能实现、添加或修复文档、协助用户解决问题等等。

社区结构

Kubernetes 社区由三部分组成

提交 Pull Request 到主分支

当需要修改 Kubernetes 代码时,可以给 Kubernetes 主分支提 Pull Request。这其实是一个标准的 Github 工作流:

一些加快 PR 合并的方法:

  • 使用小的提交,将不同功能的代码分拆到不同的提交甚至是不同的 Pull Request 中

  • 必要的逻辑添加注释说明变更的理由

  • 确保修改部分可以本地跑过单元测试和功能测试

提交 Pull Request 到发布分支

发布分支的问题一般是首先在主分支里面修复(发送 Pull Request 到主分支并通过代码审核之后合并),然后通过 cherry-pick 的方式发送 Pull Request 到老的分支(如 release-1.7 等)。

# on macOS
brew install hub

# on others
go get github.com/github/hub

然后执行下面的脚本自动 cherry-pick 并发送 PR 到需要的分支,其中 upstream/release-1.7 是要发布的分支,而 51870 则是发送到主分支的 PR 号:

hack/cherry_pick_pull.sh upstream/release-1.7 51870

然后安装输出中的提示操作即可。如果合并过程中发生错误,需要另开一个终端手动合并冲突,并执行 git add . && git am --continue,最后再回去继续,直到 PR 发送成功。

参考文档

如果在社区贡献中碰到问题,可以参考以下指南

遵循代码约定,如 、 和

使用 设置正确的标签或重试失败的测试

对于主分支的 PR,待 Reviewer 添加 cherrypick-candidate 标签后就可以开始 cherry-pick 到老的分支了。但首先需要安装一个 Github 发布的 工具,如

注意:提交到发布分支的每个 PR 除了需要正常的代码审核之外,还需要对应版本的 release manager 批准。当前所有版本的 release manager 可以在 找到。

Coding Conventions
API Conventions
kubectl Conventions
Bot 命令
hub
这里
Kubernetes Contributor Community
Kubernetes Contributor Guide
Kubernetes Developer Guide
Kubernetes Contributor Documentation
Special Interest Groups
Feature Tracking and Backlog
Community Expectations
Kubernetes release managers
Steering committee
Special Interest Groups (SIG)
Working Groups (WG)
SIG-diagram.png