导读:本文分为三个部分,首先给大家演示 serverless kubernetes 集群的创建和业务应用的部署,其次介绍 serverless kubernetes 的常用功能,最后对应用扩缩容的操作进行探讨。
集群创建及应用部署
1. 集群创建
在对 serverless kubernetes 的基础概念有了充分了解之后,我们直接进入容器服务控制台(https://cs.console.aliyun.com/#/authorize)进行集群的创建。
在创建页面,主要有三类属性需要选择或填写:
- 集群创建的地域和 kubernetes 的版本信息;
- 网络属性:可以选择容器服务自动创建或者指定已有的 vpc 资源;
- 集群能力和服务:可以按需选择。
属性完成后,点击“创建集群”即可,整个创建过程需要 1~2 分钟的时间。
2. 应用部署
集群创建完成后,接下来我们部署一个无状态的 nginx 应用,主要分成三步:
- 应用基本信息:名称、pod 数量、标签等;
- 容器配置:镜像、所需资源、容器端口、数据卷等;
- 高级配置:服务、路由、hpa、pod 标签等。
创建完成后,在路由中就可以看到服务对外暴露的访问方式了。
如上图所示,在本地 host 绑定 ask-demo.com
到路由端点 123.57.252.131
的解析,然后浏览器访问域名,即可请求到部署的 nginx 应用。
常用功能介绍
我们一般会通过容器服务控制台和 kubectl 两种方式,来使用 serverless kubernetes 的常用功能。
1. 容器服务控制台
在容器服务控制台上,我们可以进行以下功能的白屏化操作:
- 基本信息:集群 id 和运行状态、api server 端点、vpc 和安全性、集群访问凭证的查看和操作;
- 存储卷:pv、pvc、storageclass 的查看和操作;
- 命名空间:集群 namespace 的查看和操作;
- 工作负载:deployment、statefulset、job、cronjob、pod 的查看和操作;
- 服务:工作负载提供出的 service 的查看和操作;
- 路由:ingress 的查看和操作,用来路由 service;
- 发布:对基于 helm 或者容器服务分批发布的任务进行查看和操作;
- 配置管理:对 configmap 和 secret 的查看和操作;
- 运维管理:集群的事件列表和操作审计。
2. kubectl
除了通过控制台,我们还可以基于 kubectl 来进行集群操作和管理。
我们可以在云端通过 cloudshell 来使用 kubectl,也可以在本地安装 kubectl,然后通过将集群的访问凭证写入到 kubeconfig 来使用 serverless kubernetes 。
应用弹性伸缩
通通过上面的内容讲解,我们已经了解了应用的部署和集群的常用操作,下面为大家介绍一下如何为应用做扩缩容操作。
在 serverless kubernetes 中常用的应用扩缩容方式包括:
- 人工扩缩容:最为原始的方式,在成本和应用稳定性上均有一定程度的牺牲;
- hpa(horizontal pod autoscaler):根据 cpu 和 memory 等指标来弹性伸缩,适合有突发流量场景的应用;
- cron hpa :根据 cron 表达式来定期伸缩,适合有固定波峰波谷特性的应用;
- external metrics(alibaba-cloud-metrics-adapter):阿里云指标容器水平伸缩,在原生 hpa 的基础上支持更多的数据指标。
结语
以上就是 serverless kubernetes 应用部署及扩缩容的全部分享,希望通过这次分享能够帮助大家更好地入门和使用 serverless kubernetes,后续也将会有更多的 serverless kubernetes 的实践案例分享给大家。