如何修改源代码并部署Kubernetes

问题描述 投票:0回答:1

我正在修改kubelet的源代码。为了编译,我可以做make quick-release。我可以从kubelet获得可执行文件_output

然后我用新的可执行文件替换原来的/usr/bin/kubelet,但是当我运行kubeadm init时,它给了我错误信息:

[preflight] Some fatal errors occurred: [ERROR KubeletVersion]: couldn't get kubelet version: Unable to parse output from Kubelet: "Kubernetes v0.0.0-master+$Format:%h$"

我相信必须有一种标准的方法来编译和部署Kubernetes。我的googled资源主要是关于在Kubernetes上开发应用程序。任何人都可以给我一个指南或给一些关键字,所以我可以自己google?

谢谢

--

更新

我取代了kubelet env中的minikube

我得到了许可错误。

W0613 16:34:55.917805 26616 status_manager.go:496] Failed to update status for pod "kube-apiserver-minikube_kube-system(5ff9a836-6f27-11e8-8667-080027c176b2)": failed to patch status "{\"status\":{\"$setElementOrder/conditions\":[{\"type\":\"Initialized\"},{\"type\":\"Ready\"},{\"type\":\"PodScheduled\"}],\"conditions\":[{\"lastTransitionTime\":\"2018-06-13T16:34:51Z\",\"status\":\"True\",\"type\":\"Ready\"}]}}" for pod "kube-system"/"kube-apiserver-minikube": pods "kube-apiserver-minikube" is forbidden: User "system:node:minikube" cannot patch pods/status in the namespace "kube-system"

--

再次更新

我发现这是版本不一致的问题。一旦我在minikube git checkout v1.10.0中检出相同版本的Kubernete,那么问题就解决了。

kubernetes
1个回答
2
投票

尝试

cd $GOPATH/src/k8s.io/kubernetes
make clean
# use the version you used, like v1.9.2-123
git tag v1.x.x-xxxx
make kubelet
# should show the above tag
_output/bin/kubelet --version

如果您只是修改了单个组件的源代码,则不需要make quick-release,只需要make <componenet_name>(例如,make kubeletmake kube-proxy ......)。而且你只需要标记一次(在对源代码进行新的更改后标记应该在那里)。

© www.soinside.com 2019 - 2024. All rights reserved.