OpenFaaS中文WorkShop——实验1b:使用Kubernetes设置OpenFaaS

安装最新的kubectl

使用以下说明或[官方文档](https://kubernetes.io/docs/tasks/tools/install-kubectl/为您的操作系统安装kubectl

  • Linux
export VER=$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)
curl -LO https://storage.googleapis.com/kubernetes-release/release/$VER/bin/linux/amd64/kubectl
chmod +x kubectl
mv kubectl /usr/local/bin/
  • MacOS
export VER=$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)
curl -LO https://storage.googleapis.com/kubernetes-release/release/$VER/bin/darwin/amd64/kubectl
chmod +x kubectl
mv kubectl /usr/local/bin/
  • Windows
export VER=$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)
curl -LO https://storage.googleapis.com/kubernetes-release/release/$VER/bin/windows/amd64/kubectl.exe
chmod +x kubectl.exe
mkdir -p $HOME/bin/
mv kubectl $HOME/bin/

设置Kubernetes集群

您可以在使用Kubernetes时遵循实验,但是在此过程中可能需要进行一些小的更改。 网关的服务地址从http://gateway:8080更改为http://gateway.openfaas:8080。 这些差异已尽可能记录在案,并在每个实验提供了替代方法。

在笔记本电脑上创建本地集群

使用k3d的k3s

如果您的计算机上装有Docker,则可以使用Rancher Labs的k3d。 它会安装一个名为`k3s’的轻量级Kubernetes版本,并在Docker容器中运行它,这意味着它将在装有Docker的任何计算机上运行。

$ k3d create
INFO[0000] Created cluster network with ID 9a7d5887754d3e317b5c1500f706a5ae602077a18bc71bcedb9fae86ebd84c0b 
INFO[0000] Created docker volume  k3d-k3s-default-images 
INFO[0000] Creating cluster [k3s-default]               
INFO[0000] Creating server using docker.io/rancher/k3s:v0.9.1... 
INFO[0000] SUCCESS: created cluster [k3s-default]       

切换到k3d的上下文:

export KUBECONFIG="$(k3d get-kubeconfig --name='k3s-default')"
kubectl cluster-info 

注意:您在打开的任何新终端时都要运行此命令。

Docker for Mac

请注意,Kubernetes仅适用于Mac 17.12 CE及更高版本的Docker中可用

使用Minikube
  • 要安装Minikube,请根据您的平台从[最新版本](https://github.com/kubernetes/minikube/releases)下载正确的安装程序。

  • 现在运行Minikube

$ minikube start

minikube VM通过仅主机的IP地址暴露给主机系统。 使用minikube ip检查该IP。
这是您稍后将用于网关URL的IP。

注意:Minikube还需要Hypervisor,例如VirtualBox或Hyperkit(在MacOS上)。 遵循minikube的说明和文档

在云上创建远程集群

您可以在云中创建远程集群,并享受与本地开发相同的体验,同时节省RAM / CPU和电池。 运行群集1-2天的成本很小。

_在DigitalOcean的Kubernetes Service_上运行

您可以使用免费的积分通过DigitalOcean的UI创建集群。

然后,DigitalOcean仪表板将指导您完成如何配置kubectlKUBECONFIG文件以供在实验中使用。

即使您已经申请了免费信用,但2-3个节点的群集在24-48小时内的运行成本都是微不足道的。

  • 单击仪表盘左侧面板上的 Kubernetes,然后单击“启用受限访问”

  • 登录后,单击Kubernetes菜单项并创建一个集群。

建议使用可用的最新Kubernetes版本,并选择您最近的数据中心区域以最大程度地减少延迟。

  • 在“添加节点池”下
    使用2个4GB / 2vCPU

注意:如果需要,您可以在以后添加更多容量

*下载doctlCLI并将其放在您的路径中。

*在您的DigitalOcean仪表板中创建一个API密钥

跟踪您的API密钥(将其复制到剪贴板)

  • 验证CLI
$ doctl auth init

粘贴您的API密钥

  • 现在获取集群的名称:
$ doctl k8s cluster list
GUID    workshop-lon1      nyc1      1.13.5-do.1    provisioning    workshop-lon1-1
  • 保存一个配置文件,以便kubectl指向新集群:
$ doctl k8s cluster kubeconfig save workshop-lon1

现在,您需要切换Kubernetes上下文以指向新集群。

如果未突出显示群集名称,请使用“kubectl config get-contexts”查找,在“ kubectl config set-context <context-name>”中键入。

在GKE(Google Kubernetes Engine)上运行

登录到Google Cloud,创建一个项目并为其计费。 如果您没有帐户,则可以在here上注册以获取免费积分。

安装Google Cloud SDK-这将使gcloudkubectl命令可用。
对于Windows,请按照文档中的说明进行操作。

安装gcloud命令行实用程序后,使用gcloud init配置您的项目,并设置默认项目,计算区域和区域(将PROJECT_ID替换为您自己的项目):

$ gcloud config set project PROJECT_ID 
$ gcloud config set compute/region us-central1
$ gcloud config set compute/zone us-central1-a

启用Kubernetes服务:

$ gcloud services enable container.googleapis.com

安装kubectl:

gcloud components install kubectl

创建一个Kubernetes集群:

$ gcloud container clusters create openfaas \
--zone=us-central1-a \
--num-nodes=1 \
--machine-type=n1-standard-2 \
--disk-size=30 \
--no-enable-cloud-logging

设置kubectl的凭证:

$ gcloud container clusters get-credentials openfaas

创建集群管理员角色绑定:

$ kubectl create clusterrolebinding "cluster-admin-$(whoami)" \
--clusterrole=cluster-admin \
--user="$(gcloud config get-value core/account)"

现在,确认将“kubectl”配置为GKE集群:

$ kubectl get nodes
NAME                                   STATUS    ROLES     AGE       VERSION
gke-name-default-pool-eceef152-qjmt   Ready     <none>    1h        v1.10.7-gke.2

部署OpenFaaS

随着我们努力使OpenFaaS的部署变得更加容易,其说明会不时更改。

安装OpenFaaS

有三种安装OpenFaaS的方法,您可以选择对您和您的团队有意义的任何方式。 在本次workshop中,我们将使用官方安装程序“ k3sup”。

  • k3sup app install-k3sup使用官方helm chart安装OpenFaaS。 它还可以通过用户友好的CLI提供其他软件,例如cert-managernginx-ingress。 这是启动和运行的最简单,最快的方法。

  • Helm chart -合理的默认设置,易于通过YAML或CLI标志进行配置。 安全选项,例如helm templatehelm3,也适用于在受限环境中工作的人员

  • 纯YAML文件——硬编码的设置/值。 Kustomize之类的工具可以提供自定义设置

Install with k3sup
  • 获取k3sup

For MacOS / Linux:

curl -SLsf https://get.k3sup.dev/ | sudo sh

For Windows:

curl -SLsf https://get.k3sup.dev/ | sh
  • 安装OpenFaaS应用

如果您正在使用提供LoadBalancers的托管云Kubernetes服务,请运行以下命令:

k3sup app install openfaas --load-balancer

注意:--load-balancer标志的默认值为false,因此,通过传递该标志,安装将向您的云提供商请求一个。

如果您使用的是本地Kubernetes集群或VM,请运行:

k3sup app install openfaas
使用helm安装(高级)

如果愿意,可以使用helm chart说明安装OpenFaaS。

登录到您的OpenFaaS网关

  • 检查网关是否准备好
kubectl rollout status -n openfaas deploy/gateway

如果您使用的是笔记本电脑,VM或任何其他种类的Kubernetes发行版,请运行以下命令:

kubectl port-forward svc/gateway -n openfaas 8080:8080

此命令将打开从Kubernetes群集到本地计算机的隧道,以便您可以访问OpenFaaS网关。 还有其他访问OpenFaaS的方法,但这超出了本研讨会的范围。

您的网关URL是: http://127.0.0.1:8080

如果您使用的是托管云Kubernetes服务,请从下面的命令的EXTERNAL-IP字段中获取LoadBalancer的IP地址或DNS条目。

kubectl get svc -o wide gateway-external -n openfaas

您的URL将是端口8080上方的IP或DNS条目。

  • 登录:
export OPENFAAS_URL="" # 如上文填充

# 此命令检索您的密码
PASSWORD=$(kubectl get secret -n openfaas basic-auth -o jsonpath="{.data.basic-auth-password}" | base64 --decode; echo)

# 此命令登录并将文件保存到~/.openfaas/config.yml
echo -n $PASSWORD | faas-cli login --username admin --password-stdin
  • 检查faas-cli list是否有效:
faas-cli list

永久保存您的OpenFaaS URL

编辑〜/ .bashrc〜/ .bash_profile-创建文件(如果不存在)。

现在添加以下内容-根据上面看到的内容更改URL。

export OPENFAAS_URL="" # populate as above

现在让我们来看:实验2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值