SKIL/安装/Kubernetes与minikube

59 篇文章 0 订阅

Kubernetes 与 minikube

你还可以在本地kubernetes集群上运行skil,也称为Minikube

 

先决条件

你需要以下工具来遵循本指南:

 

安装 Minikube

要安装Minikube,可以按照此处的指南进行操作。
由于skil映像的大小相当大(约6GB),建议你并排安装minikube和docker。这样,你就可以通过运行以下命令来获取SKIL的Docker镜像:

docker pull skymind/skil

稍后在Minikube设置中使用从Docker环境下载的这个镜像。这对于查看skil镜像文件的下载进度很有用,因为minikube在拉取镜像时不会显示进度。对于Windows,这里有一个有用的指南在Windows操作系统中并排运行Docker和Virtual Box(用于Minikube)。

 

安装Kubernetes CLI

此外,按照本指南安装kube-ctl。

 

安装  Docker toolbox

对于安装Mac或Windows的Docker toolbox,你可以遵循本指南

 

在Minikube上运行SKIL-CE镜像
创建一个名为skil-app.yaml的文件,并将以下内容放入其中。

YAML

apiVersion: v1
kind: Service
metadata:
  name: skil-service
  labels:
    app: skil-service
spec:
  type: NodePort
  ports:
  - port: 9008
    targetPort: 9008
    protocol: TCP
    name: skilmain
  - port: 8080
    targetPort: 8080
    protocol: TCP
    name: skilzep
  - port: 9100
    targetPort: 9100
    protocol: TCP
    name: skilmh
  - port: 8888
    targetPort: 8888
    protocol: TCP
    name: skiljpy
  selector:
    app: skil-ce-app
---
apiVersion: v1
kind: ReplicationController
metadata:
  name: skil-ce-app
  labels:
    app: skil-ce-app
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: skil-ce-app
    spec:
      containers:
      - name: skil-ce
        image: skymind/skil
        imagePullPolicy: Never # This lets us use the locally downloaded docker image file for SKIL-CE. Comment this line if you want to pull the image from the docker hub.
        ports:
        - name: skilmain
          containerPort: 9008
          protocol: TCP
        - name: skilzep
          containerPort: 8080
          protocol: TCP
        - name: skilmh
          containerPort: 9100
          protocol: TCP
        - name: skiljpy
          containerPort: 8888
          protocol: TCP

现在运行以下脚本之一,在Minikube(基于你的操作系统)上启动SKIL-CE应用程序。

 

对于Linux, Mac OS

Shell

# 启动minikube
minikube start

# 设置docker环境
eval $(minikube docker-env)

# 下载SKIL-CE docker镜像
docker pull skymind/skil

# 在minikube中运行
kubectl create skil-app -f skil-app.yaml

 

对于Windows (Powershell)

Shell

#启动minikube
minikube start

# 设置docker环境
minikube docker-env | Invoke-Expression

# 下载SKIL-CE docker镜像
docker pull skymind/skil

# 在minikube中运行
kubectl create skil-app -f skil-app.yaml

 

验证SKIL-CE应用程序
运行以下命令检查应用程序的状态。

Shell

# 检查Pod状态
kubectl get pods


#检查pod日志(当容器启动时-如果镜像已经存在于本地注册表中,则这几乎是即时的)
kubectl logs <pod_container_name> # You will get this through "kubectl get pods"

# 获取minikube ip 
minikube ip

# SKIL端口
kubectl get services/skil-service -o go-template='{{(index .spec.ports 0).nodePort}}'

# Zeppelin端口
kubectl get services/skil-service -o go-template='{{(index .spec.ports 1).nodePort}}'

# Model History Server Port
kubectl get services/skil-service -o go-template='{{(index .spec.ports 2).nodePort}}'

# Jupyter端口 (If jupyter 已经启动) # 这里有相关说明: https://github.com/SkymindIO/SKIL_Examples/blob/1.2/notebooks/jupyter/jupyter_notebook_example.ipynb
kubectl get services/skil-service -o go-template='{{(index .spec.ports 3).nodePort}}'

 

现在,你可以通过访问http://<minikube_port>:<application_port_number>在浏览器中访问你的skil镜像(大多数情况是192.168.99.100:30xxx)。使用通过执行上面代码段中的go-template命令找到的端口号。

注意

SKIL需要一段时间才能加载完成。在通过浏览器访问应用程序之前,请等待大约10-15分钟,等待其加载。

 

故障排除

  • 有时候Minikube在启动时会报很多错。解决此问题的一种简单有效的方法是删除c:\user\$env:username.minikube(powershell-windows)或c:\user\%username.minikube(cmd-windows)或~/.minikube/(linux)下的“.minikube”文件夹,然后通过运行minikube start重新启动minikube服务器。
  • 有时候,当特定Linux操作系统发行版的virtualbox内核没有编译和安装时,minikube就不会启动。这里是在Linux操作系统上安装virtualbox的有用指南。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值