人工和OpenFaaS——容器无处不在!

现在,我们生活在一个Kubernetes网站得到的世界更多的游客而不是西雅图海鹰队的网站这可能意味着容器以及它们运行的编排平台是最重要的东西之一。我是说,一切都像容器一样运行,不是吗?
开发人员的另一个大项目是Serverless。能够无限扩展,无需为不使用的资源付费,无需担心高可用性和容错性,这对开发人员来说是一种解放。2022世界杯阿根廷预选赛赛程开发人员需要担心的“唯一”事情就是编写代码。
将这两种想法结合起来听起来很容易。让世界一流的容器编排平台负责基础设施,让开发人员只编写代码。不出所料,您仍然希望将您构建的应用程序的依赖关系和应用程序本身保存在安全的地方。为了涵盖所有这些,我们把它们结合起来OpenFaaS与JFrog Artifactory作为工件存储库.
设置OpenFaaS
OpenFaaS始于2016年,Alex Ellis希望在现有的编排平台之上构建一个抽象,这样我们就不会被锁定在一个供应商或技术上。我们的想法是专注于优化开发者体验,让他们更容易开发游戏基于容器技术的无服务器应用.
将OpenFaaS部署到K8s集群的最简单方法是使用执掌图表.OpenFaaS可用的Helm图表用最合理的默认值设置项目。您可能希望更改的其中一个设置名为faasIdler.dryRun.通过将其设置为假您将指示OpenFaaS自动将功能缩小到零pod。当应用程序在一段指定的时间内(默认为5分钟)不使用时,就会进行缩减。
构建一个应用程序
就我个人而言,我喜欢编写Go语言,所以这款应用将非常简单。”你好世界在Go中。要开始,你需要下载函数模板,并在构建应用程序的Dockerfile中做一个小小的修改/去/ Dockerfile。/模板,应该是这样的
运行命令CGO_ENABLED=0 gos =linux \ go build——ldflags "-s -w" -a -installsuffix cgo -o handler。&& \ go test $(go list ./…)| grep -v /vendor/) -cover
使用供应商(像默认模板一样),或者直接从GitHub获取Go模块,如果你想要不可变和可重复的构建,这并不是一个好主意。更好的方法是从Artifactory或GoCenter.根据你想从哪里获得它们,你可以将Dockerfile更新为以下两种方式之一:
如果你想使用Artifactory,
运行export GOPROXY=https://my-artifactory-server/artifactory/api/go/go && \ go get -u ./…&& \ CGO_ENABLED=0 GOOS=linux \ go build——ldflags "-s -w" -a -installsuffix cgo -o handler。&& \ go test $(go list ./…)| grep -v /vendor/) -cover
如果你想使用GoCenter,
执行export GOPROXY=https://gocenter命令。IO && \ go get -u ./…&& \ CGO_ENABLED=0 GOOS=linux \ go build——ldflags "-s -w" -a -installsuffix cgo -o handler。&& \ go test $(go list ./…)| grep -v /vendor/) -cover
上面的代码片段确保在你的应用程序的构建过程中,Go客户端将使用代理来解析模块。
现在可以创建一个新项目了。第一步是使用一个简单的命令创建脚手架Faas-cli new -lang -go hello-openfaas-go.该命令将创建一个名为hello-openfaas-go,有一个处理程序。把文件放进去,然后hello-openfaas-go.yml这是部署描述符。一个简单的处理程序,用一个友好的“hello”响应,可能看起来像这样
默认情况下,OpenFaaS将容器的所有输出发送回用户,但并不总是需要这样做。第9和第10行hello-openfaas-go.yml进行更新以进行更改。
实际的“魔法连接OpenFaaS, JFrog Artifactory和Kubernetes发生在第8行。在这里,你可以指定生成的Docker镜像应该存储在哪里,这也是Kubernetes在开始部署时获取镜像的地方。在本例中,图像存储在
并且:8081 /码头工人/ hello-openfaas-go: 1
这个URL有几个组件,所以让我们来分解一下:
- 并且:8081是Artifactory服务器的URL(如果您想开始使用Artifactory作为Docker注册表,请查看入门指南);
- 码头工人Artifactory中存储库的名称是什么在哪里存储映像(docker是docker类型存储库的默认名称);
- hello-openfaas-go: 1docker映像和标记的名称。在Artifactory中,您可以在“Package Viewer”或“Artifact Repository Browser”下找到它。
部署和测试
配置完所有内容后,可以使用两个简单命令将功能部署到k8。首先,你需要登录Artifactory,让Docker守护进程知道在哪里存储镜像:
$ docker login myhost:8081
第二个命令将构建、存储和部署应用程序集成到OpenFaaS安装中。
$ faas-cli up - fhello -openfaas-go.yml
您可以使用UI或CLI测试刚刚部署的功能。CLI非常简单,尤其是在这种情况下:
$ echo "Hello World" | faas-cli调用Hello -openfaas-go {"Hello":"Hello, World ."}
在不改变工作流的情况下,您可以使用Artifactory作为OpenFaaS部署的存储库!
接下来是什么
如果您想试驾JFrog Artifactory的所有功能(以及更多),您可以在我们的网站上注册试驾演示环境.如有问题或意见,请在这里或上面留言推特!
