【技术实现步骤摘要】
一种基于Webhook技术实现容器资源定制调度和删除保护的方法
[0001]本专利涉及云计算
,尤其涉及一种基于Webhook技术实现容器资源定制调度和删除保护的方法。
技术介绍
[0002]Kubernetes中提供了自定义资源类型和自定义控制器来扩展功能,还提供了动态准入控制,即通过Webhook来实现准入控制,分为两种:验证性质的准入Webhook(Validating Admission Webhook)和修改性质的准入Webhook(Mutating Admission Webhook)。Kubernetes中Webhook的调用原理为首先向Kubernetes集群中注册一个Admission Webhook(Validating/Mutating),当用户的请求到达Kubernetes Apiserver后,Apiserver根据MutatingWebhookConfiguration和ValidatingWebhookConfigurat ion的配置。先调用MutatingWebhookConfiguration去修改用户请求的配置文件,最后会调用ValidatingWebhookConfiguration来验证这个修改后的配置文件是否合法。当创建资源或删除资源的时候会调用配置的Webhook进行修改或验证,最后持久化到ETCD中。Admission Webhook是HTTP回调,接收Admission请求并做一些处理。Validating Webhook可以拒绝请求,但是却不能修改在准入请求中 ...
【技术保护点】
【技术特征摘要】
1.一种基于Webhook技术实现容器资源定制调度和删除保护的方法,其特征在于:所述容器资源定制调度和删除保护的方法设计了删除自定义云资源的保护机制,针对租户侧命名空间下的容器,支持创建时调度到指定节点上;通过参数配置器设置参数供Webhook服务器使用;在集群中创建受保护的资源时自动加一个受保护的注解(mutate方法),Mutating控制器在收到创建资源的请求时,自动给待创建资源加保护注解;当收到租户侧命名空间下容器的创建请求时,自动添加节点选择器调度容器资源到指定节点创建;当有了保护注解后,拒绝删除受保护资源(validate方法),Validating控制器在处理删除集群关键资源请求时,根据保护特性是否启用和有无保护注解来控制是否拒绝删除请求;容器资源定制调度和删除保护的方法包括以下步骤:步骤一、配置Kubernetes集群支持Admission Webhook插件功能:步骤二、部署Webhook server并启用Webhook的功能:步骤三、使用Webhook的删除保护和定制调度功能。2.根据权利要求1所述的一种基于Webhook技术实现容器资源定制调度和删除保护的方法,其特征在于:所述自定义云资源包括:自定义虚机资源、自定义集群资源、自定义节点资源、自定义组件、自定义组件升级资源、自定义组件组、自定义组件升级组。3.根据权利要求1所述的一种基于Webhook技术实现容器资源定制调度和删除保护的方法,其特征在于:所述管理侧命名空间包括:搭建平台所必须的k8s集群,网络集群,存储集群,监控集群,openstack集群等重要集群的命名空间,非管理侧命名空间即为租户侧命名空间,支持配置管理侧命名空间到ManagedNameSpace。4.根据权利要求1所述的一种基于Webhook技术实现容器资源定制调度和删除保护的方法,其特征在于:所述针对租户侧命名空间下的DaemonSet、Deployment、ReplicaSet、Pod、StatefulSet、Job、CronJob资源创建时,把TenantNodeSelectors配置的值指定到对应资源的nodeselector字段。5.根据权利要求1所述的一种基于Webhook技术实现容器资源定制调度和删除保护的方法,其特征在于:步骤一所述配置Kubernetes集群支持Admission Webhook插件功能的过程包括:S1:确保Kubernetes APIServer开启了MutatingAdmissionWebhook和ValidatingAdmissionWebhook,查看Apiserver的启动参数,存在如下配置即可:
‑‑
enable
‑
admission
‑
plugins=MutatingAdmissionWebhook,ValidatingAdmissionWebhook;S2:检查集群中是否启用了准入注册API:$kubectl api
‑
versions|grep admissionadmissionregistration.k8s.io/${version};S3:创建RBAC,由于Webhook会对资源进行修改,所以需要单独创建一个ServiceAccount,在Kubernetes集群中直接创建即可;S4:证书认证,Kubernetes集群默认是HTTPS通信,Apiserver调用Webhook的过程也是
HTTPS,所以需要证书认证,证书认证相当于是给Service的域名进行认证,将Service域名放到认证请求server.csr文件中,然后创建一个K8S证书签署请求资源CertificateSigningRequest,APIServer签署该证书后生成server
‑
cert.pem,再将最初创建的私钥server
‑
key.pem和签署好的证书server
‑
cert.pem放到Secret中供Deployment调用;S5:创建service,上面的证书是给该Service的域名颁发的;S6:部署Admission Deployment,ServiceAccount和Secret依次是上面...
【专利技术属性】
技术研发人员:王艳艳,蔡卫卫,高传集,王文岗,石光银,
申请(专利权)人:浪潮云信息技术股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。