安装最新的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仪表板将指导您完成如何配置kubectl
和KUBECONFIG
文件以供在实验中使用。
即使您已经申请了免费信用,但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-这将使gcloud
和kubectl
命令可用。
对于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-manager
和nginx-ingress
。 这是启动和运行的最简单,最快的方法。 -
Helm chart -合理的默认设置,易于通过YAML或CLI标志进行配置。 安全选项,例如
helm template
或helm3
,也适用于在受限环境中工作的人员 -
纯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