最近,我在Functions和Project Fn中玩了很多游戏。 最终,我不得不离开笔记本电脑上的操场,进入真正的野生世界。 在K8s集群上运行Fn的想法对我来说很有吸引力,因此我决定在Prem或云中的某个地方进行操作。 在对如何在裸机上自行安装和配置K8s集群进行了一些研究之后,我得出的结论是我对此太懒了。 因此,我飞到了云端。
在本文中,我将展示如何在Google Cloud Platform托管的Kubernetes集群上运行Fn。 为什么选择Google? K8s服务还有很多其他云提供商。
事实是,Google 确实在云中拥有Kubernetes集群,每个人都可以使用。 他们会立即为您提供服务,而无需申请预览模式访问权限(也就是我们在找到适合您的功能后会与您联系),解释您为什么需要它,检查背景,信用记录等。因此,谷歌。
在完成所有手续并最终可以使用Google Kubernetes Engine之后 ,转到“ 快速入门”页面并按照说明安装Google Cloud SDK。
如果您的计算机上未安装kubectl ,则可以使用gcloud进行安装:
gcloud components install kubectl
按照Kubernetes Engine快速入门上的说明,通过调用以下命令来配置gcloud并创建K8s集群:
gcloud container clusters create fncluster
gcloud container clusters get-credentials fncluster
用kubectl检查结果:
kubectl cluster-info
这将为您提供集群中K8s服务及其URL的列表。
好的,这就是我们的出发点。 一方面,我们在云中有了一个新的K8s集群,另一方面是Fn项目。 让他们结婚吧。
我们需要安装一个工具来管理Kubernetes软件包(图表)。 类似于Linux上的apt / yum / dnf / pkg。 工具是Helm 。 由于我是Mac用户,所以我做到了:
brew install kubernetes-helm
其余的Helm安装选项可在此处获得 。
下一步是在K8s集群中安装Tiller。 这是Helm的服务器部分:
kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
helm init --service-account tiller --upgrade
helm repo update
如果未在本地安装Fn,则需要安装它,以便在计算机上(在Mac或Linux上)具有Fn CLI:
curl -LSs https:
//raw
.githubusercontent.com
/fnproject/cli/master/install> setup.shchmod u+x setup.shsudo ./setup.sh
在带有Helm的K8s集群上安装Fn(假设您确实有git client):
git clone git@github.com:fnproject/fn-helm.git && cd fn-helm
helm dep build fn
helm install --name fn-release fn
等待(几分钟),直到Google Kubernetes Engine将外部IP分配给集群中的Fn API。 检查:
kubectl get svc --namespace default -w fn-release-fn-api
配置本地Fn客户端以访问在K8s集群上运行的Fn
export FN_API_URL=http://$(kubectl get svc --namespace default fn-release-fn-api -o jsonpath='{.status.loadBalancer.ingress[0].ip}'):80
基本上完成了。 让我们检查一下:
fn apps create adfbuilderapp fn apps list
现在,我们可以使用Fn函数构建ADF应用程序,如我以前的文章中所述 。 仅这次,该功能将运行,因此构建作业将在云中较高的位置执行。
而已!
翻译自: https://www.javacodegeeks.com/2018/03/run-fn-functions-on-k8s-on-google-cloud-platform.html