Kubernetes
  • 序言
  • 基礎入門
    • 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
    • 排錯工具
  • 社區貢獻
    • 開發指南
    • 單元測試和集成測試
    • 社區貢獻
  • 附錄
    • 生態圈
    • 學習資源
    • 國內鏡像
    • 如何貢獻
    • 參考文檔
Powered by GitBook
On this page
  • 社區結構
  • 提交 Pull Request 到主分支
  • 提交 Pull Request 到發佈分支
  • 參考文檔
  1. 社區貢獻

社區貢獻

Previous單元測試和集成測試Next生態圈

Last updated 1 year ago

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