Aggregated APIServer 构建云原生应用最佳实践 (3)

完成以上步骤,你其实已经拥有一个完整的 Aggregated APIServer,接下来我们试着将它运行起来;apiserver-boot 本身提供了两种运行模式:in-cluster、local; local 模式下只作为单独的 API 服务部署在本地方便做调试,过于简单这里不做过多介绍,主要关注一下 in-cluster 模式;in-cluster 可以将你的 Aggregated APIServer 部署在任何 K8s 集群中,例如:minikube,腾讯 TKE,EKS 等,我们这里使用 EKS 集群作为演示。

创建EKS集群&配置好本地kubeconfig; 执行部署命令 ; $ apiserver-boot run in-cluster --image=xxx/skai.io/skai-demo:0.0.1 --name=skai-demo --namespace=default

在执行部署命令过程中,apiserver-boot 主要帮我们做了如下几件事情:

自动生成 APIServer Dockerfile 文件;

通过 APIServer Dockerfile 构建服务镜像,并将镜像推送到指定仓库;

在config目录下生成 CA 及其他 APIServer 部署需要的证书文件;

在config目录下生成 APIServer 部署需要的 Deployment、Service、APIService、ServiceAccount 等 yaml 文件;

将上一步生成的 yaml 文件部署到集群中;

功能验证 确认 Resource 注册成功 $ kubectl api-versions |grep animal animal.skai.io/v1alpha1 确认 Aggregated APIServer 能正常工作 $ kubectl get apiservice v1alpha1.animal.skai.io NAME SERVICE AVAILABLE AGE v1alpha1.animal.skai.io default/skai-demo True 19h 创建并查看新增的 Resource

创建

$ cat lucky.yaml apiVersion: animal.skai.io/v1alpha1 kind: Cat metadata: name: mycat namespace: default spec: name: lucky # 创建自定义 resource $ kubectl apply -f lucky.yaml

查找

# 查找自定义 resource 列表 $ kubectl get cat NAME CREATED AT mycat 2021-11-17T09:08:10Z # 查找自定义资源详情 $ kubectl get cat mycat -oyaml apiVersion: animal.skai.io/v1alpha1 kind: Cat metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"animal.skai.io/v1alpha1","kind":"Cat","metadata":{"annotations":{},"name":"mycat"},"spec":{"name":"lucky"}} creationTimestamp: "2021-11-17T09:08:10Z" name: mycat resourceVersion: "17" uid: 98af0905-f01d-4042-bad3-71b96c0919f4 spec: name: lucky status: {} 总结

本文从实战角度出发介绍我们开发 SKAI 平台过程中选择 Aggregated API 的原因,以及 kube-apisever 的扩展原理,最后介绍了 apiserver-builder 工具,并演示如何一步一步构建起自己的 Aggregated API,并将它部署到 EKS 集群中。希望该篇 Aggregated APIServer 最佳实践可以帮助即将使用 K8s API 扩展来构建云原生应用的开发者。

关于我们

更多关于云原生的案例和知识,可关注同名【腾讯云原生】公众号~

福利:

①公众号后台回复【手册】,可获得《腾讯云原生路线图手册》&《腾讯云原生最佳实践》~

②公众号后台回复【系列】,可获得《15个系列100+篇超实用云原生原创干货合集》,包含Kubernetes 降本增效、K8s 性能优化实践、最佳实践等系列。

【腾讯云原生】云说新品、云研新术、云游新活、云赏资讯,扫码关注同名公众号,及时获取更多干货!!

Aggregated APIServer 构建云原生应用最佳实践

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwpzpd.html