kubeless自定义运行环境

原创
2020/12/03 16:26
阅读数 375
  • kubeless默认运行环境有可能差一些环境,需要自定义。如:face_recognition 需要cmake

  • 参考官网(Use a custom runtime):https://kubeless.io/docs/runtimes/

  • clone项目

git clone https://github.com/kubeless/runtimes
  • 根据实际情况修改python/go的Dockerfile/Makefile。本例运行环境中差cmake

  • 打包自己的运行环境
sudo make build3.7
sudo make push3.7
  • 编辑kubeless-config
kubectl edit -n kubeless configmap kubeless-config

并在runtime-images中的数组中增加以下对象

{
	"ID": "mypython",
	"depName": "requirements.txt",
	"fileNameSuffix": ".py",
	"versions": [{
		"images": [{
			"command": "pip install --prefix=$KUBELESS_INSTALL_VOLUME -r $KUBELESS_DEPS_FILE",
			"image": "jeessy/kubeless-python:3.7",
			"phase": "installation"
		}, {
			"env": {
				"PYTHONPATH": "$(KUBELESS_INSTALL_VOLUME)/lib/python3.7/site-packages:$(KUBELESS_INSTALL_VOLUME)"
			},
			"image": "kubeless/python@sha256:76a32b0f4e11f02cd9e51147f4c3fed870c1ee2c9463167e9ef0e6856de99794",
			"phase": "runtime"
		}],
		"name": "python37",
		"version": "3.7"
	}]
}
  • 因为刚创建了新的环境,需要重新创建Kubeless controller pod
kubectl delete pods -n kubeless -l kubeless=controller
  • 部署刚创建的functions。 --runtime 使用上面ID+version。注:使用UI来部署有可能出问题
kubeless function deploy face --runtime mypython3.7 \
                                --from-file face_kubeless.py \
                                --handler face.get_face \
                                --dependencies requirements.txt
  • 通过此serverless就成功把头像取出来了。也可通过ingress导出此接口
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部