virtual kubelet 简单使用例子
- 实现过程
- 制作virtual kubelet节点证书
- 下载virtual kubelet代码并编译virtual kubelet
virtual kubelet 顾名思义就是虚拟的kubelet节点
效果如下:
实现过程
制作virtual kubelet节点证书
openssl genrsa -out client.key 2048
openssl req -new -key client.key -subj "/CN=admin" -out client.csr
openssl x509 -req -in client.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out client.crt -days 36500
执行以上操作后会生成3个文件
-rw------- 1 root root 1675 4月 26 14:06 client.key
-rw-r--r-- 1 root root 887 4月 26 14:06 client.csr
-rw-r--r-- 1 root root 989 4月 26 14:06 client.crt
把 client.key和client.crt 这两个文件拷贝到kubernetes master节点目录为 /etc/kubernetes/pki/
中
结果如下:
root@ai-evaluation-test:~# ls -lrt /etc/kubernetes/pki/
total 2
-rw------- 1 root root 1675 4月 26 14:08 client.key
-rw-r--r-- 1 root root 989 4月 26 14:08 client.crt
把client.key和client.crt 这两个文件拷贝到virtual kubelet节点上
结果如下图:
下载virtual kubelet代码并编译virtual kubelet
https://github.com/virtual-kubelet/virtual-kubelet.git
cd virtual-kubelet
make build
修改virtual-kubelet/hack/skaffold/virtual-kubelet/vkubelet-mock-0-cfg.json,该文件主要定义virtual kubelet节点的资源
我的配置文件如下:
{
"vkubelet-mock-0": {
"cpu": "100",
"memory": "132Gi",
"pods": "128"
}
}
编译完成后进行环境变量设置并启动virtual kubelet
export KUBECONFIG="~/.kube/config"
export VKUBELET_POD_IP="10.250.64.71"
export APISERVER_CERT_LOCATION="/etc/virtual-kubelet/client.crt"
export APISERVER_KEY_LOCATION="/etc/virtual-kubelet/client.key"
export KUBELET_PORT="10250"
# 启动
cd virtual-kubelet
./bin/virtual-kubelet --nodename vkubelet-mock-0 --provider mock --provider-config ./hack/skaffold/virtual-kubelet/vkubelet-mock-0-cfg.json --startup-timeout 10s --log-level debug --klog.v 10
查看效果
参考:
https://blog.csdn.net/xialingming/article/details/119893205
https://github.com/virtual-kubelet/virtual-kubelet
https://github.com/virtual-kubelet/cri