使用 virtual-kubelet
命令行工具,可以在 Kubernetes 集群的 内部 或 外部 运行 Virtual Kubelet。如果在 Kubernetes 集群中运行 Virtual Kubelet,还可以使用 Helm 部署它。
有关
virtual-kubelet
安装说明,请参阅 设置 指南。
在 Kubernetes 集群外部
要在 Kubernetes 集群外部(而非连接到的 Kubernetes 集群)运行 Virtual Kubelet,使用您选择的 提供者 来运行 virtual-kubelet
二进制文件。以下是一个示例
virtual-kubelet --provider aws
部署 Virtual Kubelet 后,运行 kubectl get nodes
,您应该会看到一个 virtual-kubelet
节点(除非您已使用 --nodename
标志将名称指定为其他名称)。
virtual-kubelet
用于运行 Virtual Kubelet 的命令行工具
标志
标志 | 说明 | 默认值 |
---|---|---|
--cluster-domain string | Kubernetes 集群域 | cluster.local |
--disable-taint bool | 禁用 Virtual Kubelet 节点污染 | false |
--enable-node-lease bool | 使用节点租约 (1.13) 进行节点心跳 | false |
--full-resync-period duration | 在 Kubernetes 和提供者之间执行 Pod 完全重新同步的频率 | 1m0s |
--kubeconfig string | kubectl 配置文件 | $HOME/.kube/config |
--log-level string | 日志级别,例如 trace debug 、info 、warn 或 error | info |
--metrics-addr string | 侦听指标和统计信息的地址 | :10255 |
--namespace string | Kubernetes 命名空间 | all |
--nodename string | Kubernetes 节点名称 | virtual-kubelet |
--os string | 操作系统(必须是 linux 或 windows ) | Linux |
--pod-sync-workers int | Pod 同步工作进程的数量 | 10 |
--provider string | 虚拟 Kubelet 提供程序 | |
--provider-config 字符串 | 虚拟 Kubelet 提供程序配置文件 | |
--startup-timeout 持续时间 | 虚拟 Kubelet 启动前的等待时间 | |
--trace-exporter 字符串 | 使用的跟踪导出器。提供的导出器包括jaeger 和ocagent | |
--trace-sample-rate 字符串 | 追踪样本的概率 | |
--trace-service-name 字符串 | 在追踪导出器中注册的服务名称 | virtual-kubelet |
--trace-tag 映射 | 包含在追踪中的标签,格式为key=value |
在 Kubernetes 集群中
可以在 Minikube 或 Docker for Desktop Kubernetes 集群的 Kubernetes Pod 中运行虚拟 Kubelet。
目前,仅支持
mock
提供程序此部署的自动化。
为了部署虚拟 Kubelet,您需要安装 Skaffold,这是一个 Kubernetes 开发工具。您还需要确保您当前的 kubectl 上下文 为minikube
或docker-for-desktop
(具体取决于您使用的 Kubernetes 平台)。
首先,克隆虚拟 Kubelet 储存库
git clone https://github.com/virtual-kubelet/virtual-kubelet
cd virtual-kubelet
然后
make skaffold
默认情况下,这将在 开发模式 下运行 Skaffold,这将使 Skaffold 监视 hack/skaffold/virtual-kubelet/Dockerfile
及其依赖项中的更改并对更改进行重新部署虚拟 Kubelet。它还将使 Skaffold 从虚拟 Kubelet Pod 流式传输日志。
如果您不关心持续部署和日志流,则可以通过运行以下命令在开发模式之外运行 Skaffold
make skaffold MODE=run
这将构建和部署虚拟 Kubelet 并返回。
Helm
您可以使用 Virtual Kubelet Helm chart 在 Kubernetes 上部署 Virtual Kubelet。
首先,添加 Chart 存储库(Chart 目前托管在 GitHub 上)
helm repo add virtual-kubelet \
https://raw.githubusercontent.com/virtual-kubelet/virtual-kubelet/master/charts
helm repo list
检查存储库是否在您的当前存储库中列出。现在您可以使用 helm install
安装 Virtual Kubelet。这里有一个示例命令
helm install virtual-kubelet/virtual-kubelet \
--name virtual-kubelet-azure \
--namespace virtual-kubelet \
--set provider=azure
这将在 virtual-kubelet
命名空间中安装 Azure Container Instances Virtual Kubelet。
要检查 Virtual Kubelet 是否已安装,请运行此命令,该命令将列出可用的节点并监视更改
kubectl get nodes \
--namespace virtual-kubelet \
--watch