1

一直在尝试在共享服务器(即不是我的笔记本电脑)上的裸机(prem 等)上设置 Kubeflow。我遵循Kubeflow 部署和 kfctl_k8s_istio设置说明,一切都很好。

在“访问 Kubeflow 仪表板”下,它说

请参阅入口网关指南。

这只会导致更多问题,我不知道答案,因为我没有编写设置,即

  1. UI 的入口端口是什么?kubectl get svc istio-ingressgateway -n istio-system返回一个拥抱列表??
  2. 如果外部IP是我该怎么办<none>?服务器在本地网络上有一个 IP,即 192.168.1.69
  3. 我假设kfctl没有设置外部负载平衡器?
  4. 托管 Web UI 的容器是什么?Gateway和yaml应该是什么VirtualService样子?

我想使用 Kubeflow 并且必须了解 Istio 的工作原理?为什么?

4

3 回答 3

1

所以,最后我选择了 k3s,因为它是单线设置

curl -sfL https://get.k3s.io | sh -

并且您可以使用环境变量设置许多选项。

我们使用的是 GPU,因此需要为 Kubernetes 设置 NVIDIA 设备插件

我们现在使用 Ansible 脚本来完成所有这些工作,因为我们有一组机器要管理。

Kubeflow 与大多数 Google 项目一样,过于臃肿,我们现在正在研究Dagster,因为它很容易在您的本地设置上进行开发。

于 2021-07-05T04:22:37.097 回答
1

不幸的是,这就是 Kubeflow 自 0.6 版以来的工作方式。我记得有很多关于大使代理的麻烦,并且考虑到 Istio事实上已成为 Kubernetes 的新服务网格标准,这个项目最终将其集成为默认解决方案只是时间问题. 然而,对于裸机用户来说,部署它变得稍微复杂一些。

在你的情况下,这就是你必须做的:

  1. 在集群中安装istio并启用istio-ingressgateway (确保您的 Kubernetes 版本受支持)
  2. 安装外部负载均衡器配置器,metallb是要走的路。L2 设置适用于大多数情况,几乎不需要配置。
  3. 将您的istio-ingressgateway类型从 ClusterIP 转换为 LoadBalancer,显式设置 LoadBalancer IP 以提高可读性。
  4. 通过访问负载平衡器,享受配置不佳但工作正常的中央仪表板。

总体而言,Istio 集成让 ML 工程师更痛苦,而 Ops 和 DevOps 工程师更容易部署和配置它。

于 2020-02-24T11:58:25.673 回答
0

如果您仍然想给 Kubeflow 一个机会,这就是我启动和运行它的方法。我在 Ubuntu 18.04.3 LTS 上本地运行 MicroK8s 1.18.2 + Kubeflow(不在 VM 环境中)。

我的安装程序:

> # Install MicroK8s
> $ sudo snap install microk8s --classic --channel=1.18/stable  

> # Set IP forwarding
> $ sudo apt-get update -qq  
> $ sudo apt-get install -qq -y iptables-persistent  
> $ sudo iptables -P FORWARD ACCEPT

> # Add xip.io adress to hosts   
> $ sudo -- sh -c "echo '10.64.140.43\t10.64.140.43.xip.io' >>
> /etc/hosts"

> # Check if MicroK8s is Running
> $ microk8s status --wait-ready | grep microk8s  
> $ microk8s kubectl get nodes
> $ microk8s kubectl get services

> # Set kubectl alias for MicroK8s 
> $ sudo snap alias microk8s.kubectl kubectl 

> # Activate MicroK8s Add-ons (DNS, Storage, K8s-Dashboard)
> $ microk8s.enable dns storage dashboard

> # (OPTIONAL) Activate GPU Devices for Nvidia GPUs
> $ microk8s.enable gpu 

> # Activate Kubeflow 
> $ microk8s.enable kubeflow    

> # Check if MicroK8s Add-ons are Running 
> $ microk8s status --wait-ready

根据您的硬件和 Internet 连接,可能需要一些时间才能准备好所有服务。如果所有服务都启动了,只需在浏览器中打开http://10.64.140.43.xip.io并输入用户(管理员)和您生成的密码。

于 2020-05-28T18:22:46.670 回答