起步
本指南向您展示如何使用Knative部署应用程序,然后使用CURL发送请求与应用程序进行交互。
开始之前
你需要:
已部署Knative的kubernetes集群
一个你想要部署程序的的容器镜像已上传到镜像仓库,本指南中使用的示例应用程序的图像可在谷歌容器镜像仓库上找到。
示例应用
本指南使用Hello World示例应用程序来演示部署应用程序的基本工作流程, 这些步骤可以适用于您自己的应用程序,假如如果您可以在docker hub、谷歌容器镜像仓库或其它容器镜像仓库上提供镜像。
Hello World示例应用程序从.yaml
配置文件中读取env
变量,然后打印"Hello World:${Task}!",如果TARGET
没有定义,它将打印"NOT SPECIFIED"。
配置你的部署
要使用Knative部署应用程序,需要配置一个定义服务的.yaml
文件。有关服务对象的更多信息,查看 资源类型文档
此配置文件指定有关应用程序的元数据,指向部署的应用程序的宿主映像。 并允许deployment
可配置。有关哪些配置选项可用的,更多信息查看服务规格文档
创建一个名为service.yaml
的新文件,然后复制并粘贴下面的内容:
如果要部署示例应用程序,请将配置文件按原样保留。 如果您正在部署自己的应用程序的镜像,则相应地更新应用程序的名称和镜像的URL。
部署应用
在创建service.yaml
文件的目录中,应用配置:
既然你的服务被创建了,那么 Knative 将执行以下步骤:
为这个版本的应用程序创建一个新的不可更改的版本
执行网络编程,为应用程序创建路由、入口、服务和负载均衡器
根据流量自动缩放你的pods,包括零活pods
与应用程序交互
要查看您的应用程序是否已成功部署,您需要由Knative创建的host URL和IP地址.
要找到您的服务的IP地址,请输入
kubectl get svc knative-ingressgateway -n istio-system
。如果您的群集是新的,则该服务可能需要一段时间来获得外部IP地址。
注意:如果使用minikube或没有外部负载均衡器的裸集群,则
EXTERNAL-IP
字段显示为<pending>
。 你需要使用NodeIP
和NodePort
来代替你的应用程序。要获得应用程序的NoDEIP
和NodePort
,请输入以下命令:
要查找您的服务的主机URL,请输入
如果在创建.yaml
文件时将名称从helloworld-go
更改为其他内容,请在上面的命令中用你输入的名称替换helloworld-go
。
现在你可以向你的应用程序请求查看结果。用您写下的
EXTERNAL-IP
替换IP_ADDRESS
,并用前一步返回的域替换
helloworld-go.default.example.com
。
如果部署了自己的应用程序,您可能希望自定义curl请求,以便与应用程序交互.
它可以花几秒钟的时间来扩展你的应用程序并返回一个响应。
清理
若要从群集中移除示例应用程序,请删除service记录:
Last updated