【问题标题】:deploy jupyter from kubernetes从 Kubernetes 部署 jupyter
【发布时间】:2018-04-02 17:10:14
【问题描述】:

我正在尝试从 Kubernetes 部署 jupyter notebook;但是,当我启动 jupyter 并打印本地主机链接时,我无法在我的计算机上打开它,因为它是“本地主机”。因此,它需要在容器内打开。

但是,我无法为 kubernetes 找到任何类型的 GUI 桌面,并且我不确定如何打开浏览器来启动链接。我看到了一些关于 minikube 的东西。有没有办法在不使用 minikube 的情况下做到这一点?

我试图在没有 minikube 的情况下安装的原因是因为 minikube 需要 hyper V,而我的 Windows 10 Home 与 hyper V 不兼容。

【问题讨论】:

    标签: kubernetes jupyter-notebook


    【解决方案1】:

    在 pod 中访问应用程序最常用的方法是使用 Service。

    创建后,Service 对象被分配一个唯一的 IP 地址 (ClusterIP),该地址在 Service 对象的整个生命周期内保持不变。 Pod 可以使用此 ClusterIP 和端口来访问标签与服务选择器匹配的 pod 子集。当多个 pod 匹配时,Service 会通过循环原则选择其中一个作为目的地。

    例如:

    您可以使用 kubectl expose 为您的 2 个 nginx 副本创建服务:

    $ kubectl expose deployment/my-nginx 
    service "my-nginx" exposed 
    

    这相当于kubectl create -f nginx-svc.yaml

    nginx-svc.yaml 内容为:

    apiVersion: v1 
    kind: Service 
    metadata: 
     name: my-nginx 
     labels: 
       run: my-nginx 
    spec: 
     ports: 
     - port: 80 
       protocol: TCP 
     selector: 
       run: my-nginx 
    

    如何检查您的服务:

    $ kubectl get svc my-nginx 
    NAME       CLUSTER-IP    EXTERNAL-IP PORT(S)   AGE 
    my-nginx   10.0.162.149   <none> 80/TCP    21s  
    

    在您的应用程序的某些部分,您可能希望将服务公开到外部 IP 地址。 Kubernetes 支持两种方式:NodePorts 和 LoadBalancers。
    NodePort 模式在所有集群节点上保留一个端口,并将来自该端口的流量转发到与选择器匹配的 pod。
    在 LoadBalancer 模式下,Service 创建云负载均衡器并将流量从负载均衡器转发到与选择器匹配的 pod。
    您可以在文档Connecting Applications with Services 中阅读更多相关信息

    为避免手动创建所有这些对象,您可以使用 helm 基于特定应用程序的模板生成和运行对象。这是 jupiter notebook 的 helm 存储库:

    https://github.com/UNINETT/helm-charts

    Kubernetes 具有称为 Dashboard 的 WebUI。默认情况下它不会部署,但在您需要时很容易部署。

    要部署 Dashboard,请执行以下命令:

    $ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml 
    

    要从本地工作站访问 Dashboard,您必须为 Kubernetes 集群创建一个安全通道。运行以下命令:

    $ kubectl proxy 
    

    现在访问仪表板:

    http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

    要了解如何创建示例用户并登录,请遵循创建 sample user guide

    从 1.7 版开始,Dashboard 默认拥有一组最小权限,并且只能通过 HTTPS 访问。 Access Control guide 可以帮助您扩展用户权限。

    如果您受限于操作系统版本,您可以免费使用Oracle VirtualBox for minikube

    【讨论】:

      猜你喜欢
      • 2020-07-27
      • 2016-04-18
      • 2022-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多