kubesphere 开发流程网上看着有不少,但是都比较琐碎,没有从头到尾的教程,最近在开发云平台,然后自己整理了一下从头到尾的操作,大家可以看看参考一下
这里就以修改ks-apiserver为例
该文档是在已经安装好kubesphere基础上进行调试,如没有安装,请先部署kubesphere
依赖:
A running KubeSphere cluster (Kubernetes version >v1.15.x <v1.19.x)
Go (>1.11.x)
Docker (18.x)
Telepresence - for debugging (www.telepresence.io/ )
kubebuilder (latest stable version is ok github.com/kubernetes-…)
More tools for debugging
一、编译产物
# 拉取代码
git clone git@github.com:kubesphere/kubesphere.git
export GOPROXY=https://goproxy.cnexport GO111MODULE=on
#下载相应依赖
go mod tidy
#编译产物
make ks-apiserver
二、集群配置文件
先获取集群jwtSecret文本
kubectl -n kubesphere-system get cm kubesphere-config -o yaml | grep -v “apiVersion” | grep jwtSecret
mkdir /etc/kubesphere/vim kubesphere.yaml
# 以下为集群基础配置文件authentication: oauthOptions:
accessTokenMaxAge: 0
clients:
- name: kubesphere
secret: kubesphere
redirectURIs:
- '*'
authenticateRateLimiterMaxTries: 10
authenticateRateLimiterDuration: 10m0s
loginHistoryRetentionPeriod: 168h
maximumClockSkew: 10s
multipleLogin: true# 此处为集群的jwtSecret
jwtSecret: "XdIZiwl744eLuFIMajp6xJXsrEOiauia" oauthOptions:
accessTokenMaxAge: 0
accessTokenInactivityTimeout: 30m
#authorization:
# mode: "AlwaysAllow"
monitoring:
endpoint: http://proetheus-k8s.kubesphere-monitoring-system.svc:9090
三、启动集群
cd kubesphere/bin/cmd/
./ks-apiserver
此为启动成功
# 测试ks-apiserver是否为正常启动
curl -v http://127.0.0.1:9090/kapis/config.kubesphere.io/v1alpha2/configs/configz
如上输出则为集群正常启动
四、开发
进行简单的开发修改
vim pkg/models/resources/v1alpha3/deployment/deployments.go
这里主要修改了获取deployment容器时将名称改为大写
# 重新编译
make ks-apiserver
在编译好之后,按照上面第二和第三段落启动服务器准备进行测试
五、测试
kubectl -n kubesphere-system get po -o wide
确保ks-apiserver的pod为正常运行
安装telepresence
# 1. Download the latest binary (~95 MB):
sudo curl -fL https://app.getambassador.io/download/tel2oss/releases/download/v2.20.0/telepresence-linux-amd64 -o /usr/local/bin/telepresence
# 2. Make the binary executable:
sudo chmod a+x /usr/local/bin/telepresence
安装完成之后
telepresence version 显示版本号为正确安装
以下操作一定要确保集群内的docker能访问到仓库否则会安装Traffic Manager失败
# 拉取Traffic Manager pod
telepresence helm install
安装成功之后,使用telepresence开始进行测试
因为telepresence 新版本必须登录需要登录官网注册注册账号
需要使用apikey来进行登录
app.getambassador.io/cloud/welco…
# 登录
telepresence login --apikey "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# 进行代理映射
telepresence intercept ks-apiserver --namespace kubesphere-system --port 9090
如下输出为成功启动
检查ks-apiserver是否注入代理pod
kubectl describe pods -n kubesphere-system ks-apiserver-{集群pod名称}
如下有telepresence 相应的label并且pod状态为running则为代理成功
进入集群查看工作负载检查修改是否生效
修改前:
修改后: