一直在尝试在共享服务器(而不是我的笔记本电脑)上的裸机上(在Prem等上)设置Kubeflow。我完全按照Kubeflow Deployment with kfctl_k8s_istio设置说明进行操作。
在“访问Kubeflow仪表板”下显示
请参阅Ingress Gateway指南。
这只会引发更多问题,我不知道我没有写设置的答案,即
kubectl get svc istio-ingressgateway -n istio-system
返回一个拥抱列表?<none>
怎么办?该服务器在本地网络上具有IP,即192.168.1.69 kfctl
没有设置外部负载均衡器?Gateway
和VirtualService
的Yaml应该是什么样子?我想使用Kubeflow并必须学习Istio的工作方式?为什么?
答案 0 :(得分:1)
不幸的是,这是自0.6版以来Kubeflow的工作方式。只要我记得大使代办处有很多麻烦,并且考虑到Istio -de-facto 已成为Kubernetes的新服务网格标准,这个项目的时间就已经到了最后将其集成为默认解决方案。但是,对于裸机用户来说,部署它变得有些复杂。
在您的情况下,这就是您要做的:
istio-ingressgateway
类型从ClusterIP转换为LoadBalancer,明确设置LoadBalancer IP的可读性。总体而言,Istio集成使ML工程师更加痛苦,而Ops和DevOps工程师则更容易部署和配置它。
答案 1 :(得分:1)
所以,最后我选择了 k3s,因为它是单线设置
class Zoo
{
public string AnimalType { get; set; }
public bool ForAdoption { get; set; }
public decimal ApproximateWeight { get; set; }
}
class Animal
{
public string Name { get; set; }
public string TypeOfAnimal { get; set; }
public short Weight { get; set; }
public string Color { get; set; }
}
class Program
{
static void Main(string[] args)
{
var myAnimalsCollection = GetAllAnimalsFromDB();
var listOfAnimals = (from item in myAnimalsCollection
select new Zoo
{
AnimalType = item.TypeOfAnimal,
ApproximateWeight = item.Weight,
ForAdoption = false
}).ToList();
}
}
您可以使用环境变量设置 many options。
我们使用 GPU,因此需要设置 NVIDIA device plugin for Kubernetes
我们现在使用 Ansible 脚本完成所有这些工作,因为我们要管理一组机器。
与大多数 Google 项目一样,Kubeflow 过于臃肿,我们现在将 Dagster 视为易于在本地设置中进行开发。
答案 2 :(得分:0)
如果EXTERNAL-IP值为,则您的环境未为入口网关提供外部负载平衡器。在这种情况下,您可以使用服务的节点端口访问网关,该端口可以找到here。
访问Kubeflow UI的说明,找到here。使用以下命令来设置到Istio网关的端口转发:
SKStoreReviewController.requestReview()
然后,您就有可能访问中央导航仪表板。
kfctl 是用于部署和管理Kubeflow的CLI。
答案 3 :(得分: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,然后输入用户(admin)和您生成的密码即可。