当前位置: 首页 > news >正文

网站视频解析中国做外贸网站有哪些

网站视频解析,中国做外贸网站有哪些,wordpress启用主题网站出错,网站开发诺亚科技引言 在 Kubernetes 集群中#xff0c;Informer 是一种重要的机制#xff0c;用于监控和处理集群中资源对象的变化。它是基于观察者模式设计的#xff0c;允许开发者注册对某类资源对象的关注#xff0c;并在对象发生变化时得到通知。本文将深入介绍 Kubernetes 中的 Info…引言 在 Kubernetes 集群中Informer 是一种重要的机制用于监控和处理集群中资源对象的变化。它是基于观察者模式设计的允许开发者注册对某类资源对象的关注并在对象发生变化时得到通知。本文将深入介绍 Kubernetes 中的 Informer 机制包括其设计思想、工作原理、示例和最佳实践。 什么是 Informer Informer 是 Kubernetes 中用于监控和处理资源对象变化的框架。它建立在 Kubernetes 的客户端库 client-go 之上提供了高级别的 API简化了开发者对资源对象状态变化的监听和处理。 Informer 的核心思想是将对资源对象的监听和处理逻辑进行模块化以便更容易地维护和扩展。通过 Informer开发者可以注册关注的资源类型并在资源状态发生变化时执行自定义的业务逻辑。 Informer 的工作原理 Informer 机制的核心工作原理主要包括以下几个步骤 List-Watch 机制 Informer 使用 Kubernetes API 的 List-Watch 机制来获取资源对象的初始列表并通过 Watch 机制实时接收对象的变化事件。SharedInformerFactory SharedInformerFactory 是 Informer 的工厂负责创建和管理多个 SharedInformer。每个 SharedInformer 监听一种资源对象的变化。Event Handlers 开发者可以注册事件处理器Event Handlers在资源对象发生变化时触发相应的处理逻辑。Event Handlers 是 Informer 的核心扩展点用于实现自定义的业务逻辑。Delta FIFO Queue 通过 Delta FIFO QueueInformer 在收到资源对象的变化事件时将事件推送到队列中。Event Handlers 从队列中取出事件进行处理。Resync Informer 支持定期的全量同步Resync机制以确保本地缓存与实际状态的一致性。定期地对资源对象进行全量同步更新本地缓存。 如何使用 Informer 1. 创建 SharedInformerFactory 首先创建一个 SharedInformerFactory 对象 clientset, err : kubernetes.NewForConfig(config) if err ! nil {panic(err.Error()) }informerFactory : informers.NewSharedInformerFactory(clientset, time.Second*30)2. 注册关注的资源类型 使用 SharedInformerFactory 注册对某一种资源类型的关注 podInformer : informerFactory.Core().V1().Pods()3. 注册 Event Handlers 注册事件处理器定义在资源对象发生变化时的处理逻辑 podInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{AddFunc: func(obj interface{}) {// 处理资源对象新增事件pod : obj.(*corev1.Pod)fmt.Printf(Pod added: %s\n, pod.Name)},UpdateFunc: func(oldObj, newObj interface{}) {// 处理资源对象更新事件oldPod : oldObj.(*corev1.Pod)newPod : newObj.(*corev1.Pod)fmt.Printf(Pod updated: %s\n, newPod.Name)},DeleteFunc: func(obj interface{}) {// 处理资源对象删除事件pod : obj.(*corev1.Pod)fmt.Printf(Pod deleted: %s\n, pod.Name)}, })4. 启动 Informer 启动 SharedInformerFactory开始监听资源对象的变化 informerFactory.Start(stopCh)5. 处理资源对象变化事件 在 Event Handlers 中定义的逻辑将在资源对象发生变化时被触发 -stopCh通过以上步骤就可以使用 Informer 监听和处理 Kubernetes 集群中资源对象的变化。 示例使用 Informer 监听 Pod 变化 下面是一个简单的示例演示如何使用 Informer 监听 Pod 对象的变化 package mainimport (contextflagfmtosos/signaltimek8s.io/client-go/kubernetesk8s.io/client-go/tools/cachek8s.io/client-go/tools/clientcmdk8s.io/client-go/util/homedirk8s.io/client-go/util/wait )func main() {var kubeconfig *stringif home : homedir.HomeDir(); home ! {kubeconfig flag.String(kubeconfig, home/.kube/config, kubeconfig file)} else {kubeconfig flag.String(kubeconfig, , kubeconfig file)}config, err : clientcmd.BuildConfigFromFlags(, *kubeconfig)if err ! nil {panic(err.Error())}clientset, err : kubernetes.NewForConfig(config)if err ! nil {panic(err.Error())}stopCh : make(chan struct{})defer close(stopCh)informerFactory : cache.NewSharedInformerFactory(clientset, time.Second*30)podInformer : informerFactory.Core().V1().Pods()podInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{AddFunc: func(obj interface{}) {pod : obj.(*corev1.Pod)fmt.Printf(Pod added: %s\n, pod.Name)},UpdateFunc: func(oldObj, newObj interface{}) {oldPod : oldObj.(*corev1.Pod)newPod : newObj.(*corev1.Pod)fmt.Printf(Pod updated: %s\n, newPod.Name)},DeleteFunc: func(obj interface{}) {pod : obj.(*corev1.Pod)fmt.Printf(Pod deleted: %s\n, pod.Name)},})go informerFactory.Start(stopCh)if !cache.WaitForCacheSync(stopCh, podInformer.Informer().HasSynced) {fmt.Println(Timed out waiting for caches to sync)return}fmt.Println(Informer started. Waiting for Pod events...)c : make(chan os.Signal, 1)signal.Notify(c, os.Interrupt)-cfmt.Println(Received interrupt signal. Stopping Informer...) }结语 Informer 机制是 Kubernetes 中强大且灵活的一部分为开发者提供了便捷的方式监听和处理集群中资源对象的变化。通过 SharedInformerFactory 的注册和 Event Handlers 的定义可以轻松实现对特定资源类型的关注和处理逻辑。Informer 的应用范围广泛涉及到许多领域包括控制器开发、自动伸缩、日志收集等。希望本文的详细介绍和示例能够帮助你更好地理解和应用 Kubernetes 中的 Informer 机制。
http://www.hkea.cn/news/14327415/

相关文章:

  • 网站的子域名做视频网站利润如何
  • 网站开发过程模型跨境电商商城源码
  • 企业网站用织梦好吗沈阳建站模板系统包括
  • 水果销售网站模板在新西兰做兼职的网站
  • 人员调动在网站上怎么做网站开发私人培训
  • 网站做专业团队优化型网站是模板
  • 使用编辑字母做免费网站怎么自己办网站
  • 国开行网站毕业申请怎么做泸州网站建设公司
  • 服装网站建设可行性分析网络营销推广方法公司推荐
  • 网站建设必备的功能模块做期货到哪个网站看新闻
  • 营销型网站建设套餐深圳营销网站建设策划
  • 做视频背景音乐专用网站做五金建材市场的网站
  • 建网站网络推广优势吉林省干部网络培训
  • 巴马网站建设网站不备案可以用吗
  • 免费网站模板psd免费申请个人邮箱
  • 财政网站 建设方案新安县做网站
  • 网站主体注销唐山乾正建设工程材料检测公司网站
  • 怎么用记事本做钓鱼网站广州网站制作开发公司哪家好
  • 网站建设河南公司东莞常平网站设计
  • 一个服务器可以建多少个网站山东人才招聘信息网官网
  • muse做网站wordpress 极简杂志
  • wordpress用虚拟主机还是vps宁波seo推广服务电话
  • 做网站图注意事项专利申请
  • 学网站建设 去哪里工程承包合同协议书
  • 烟台网站设计单位东莞塘厦招聘网最新招聘
  • 网站的底部设计搜索引擎下载安装
  • 网站开发设计是前端吗做我的世界皮肤壁纸的网站
  • 天津外贸网站建设企业首页模板
  • 网站设计博客互联网保险销售行为可回溯
  • 肥西建设局官方网站云空间的网站如何做