Kubernetes 开发相关汇总
k8s 开发
开发环境需求
- 4 CPU
- 8G 内存
- 50G 磁盘
- Ubuntu 20.04
软件包
apt update
apt install build-essential jq curl lsb-release gnupg python3-pip openssl rsync gcc g++ gawk autoconf automake python3-cmarkgfm acl libacl1-dev libxxhash-dev liblz4-dev libssl-dev
pip install pyyaml
mkdir $GOPATH/src/k8s.io && cd $GOPATH/src/k8s.io
git clone https://github.com/kubernetes/kubernetes.git
cd kubernetes
git tag | grep v1.25
git check v1.25.0
// cmd 目录为函数入口,即 main 函数
// 编译一个,输出目录 ./_output/local/bin/linux/amd64/
sudo make WHAT="cmd/kube-apiserver"
// 编译所有
make all
// 本地提供服务
sudo ./hack/local-up-cluster.sh
// 可以通过 ./hack/lib/golang.sh 中 `gogcflags\goldflags` 参数调整 debug 模式
// 启动后,默认的 kubeconfig 文件在 /var/run/kubernetes/admin.kubeconfig
// 使用命令行工具:cluster/kubectl.sh get nodes
// 清理
sudo make clean
相关软件包
k8s 扩展开发
Kubernetes 几种常见的二次开发模式:
client-go
与普通的 SDK 使用一样,示例:- Operator:一套完善的 Kubernetes 扩展软件,用来管理 k8s 的原生应用
- 调度器的开发
- CNI 开发
- CSI 开发
- CRI 开发
示例