14-部署Kafkasource和KafkaChannel

这篇具有很好参考价值的文章主要介绍了14-部署Kafkasource和KafkaChannel。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 部署KafkaSource

    • KafkaSource负责将Kafka中的消息记录转为CloudEvents

    • 仅在需要从Kafka中加载消息并提供给Knative Eventing上的应用程序使用时才需要KafkaSource

    • 命令:

      kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.12.1/eventing-kafka-controller.yaml
      
      kubectl apply -f https://mirror.ghproxy.com/https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.12.1/eventing-kafka-source.yaml
      
  • 部署KafkaChannel

    • 负责在Knative Eventing上提供基于Kafka集群的Channel实现,后端基于Kafka Topic

    • https://knative.dev/docs/install/yaml-install/eventing/install-eventing-with-yaml/#verify-the-installation

      kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.12.1/eventing-kafka-controller.yaml
      
      kubectl apply -f https://github.com/knative-extensions/eventing-kafka-broker/releases/download/knative-v1.12.1/eventing-kafka-channel.yaml
      
      
    • 如果所使用的Kafka集群是外置的,那需要修改kafka-channel-config的configmap中boostrap server的地址.

      kubectl get cm kafka-channel-config -n knative-eventing -o yaml
      

      14-部署Kafkasource和KafkaChannel,knative,云原生,knative,kafka

    • 修改Default Channel的default-ch-webhook相关配置: 可以在全局修改,也可以在某个名称空间修改

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: default-ch-webhook
        namespace: knative-eventing
      data:
        default-ch-config: |
          clusterDefault:
            apiVersion: messaging.knative.dev/v1
            kind: InMemoryChannel
          namespaceDefaults:
            event-demo:
              apiVersion: messaging.knative.dev/v1beta1
              kind: KafkaChannel
              spec:
                numPartitions: 5
                replicationFactor: 1 # Kafka集群的节点数量,决定了其复制因子的可用值上限;但使用的partition数量可按需定义;
      
  • 测试KafkaChannel

    • 创建KafkaChannel

      ~$ kn channel create kc01 --type messaging.knative.dev:v1beta1:KafkaChannel
      
      ~$ kn channel list 
      NAME    TYPE              URL                                                 AGE     READY   REASON 
      kc01    KafkaChannel      http://kc01-kn-channel.default.svc.cluster.local    37s     True 
      

      提示:在没有设置KafkaChannel为默认Channel类型的名称空间下创建KafkaChannel时需要显式指定其类型。

    • 测试KafkaChannel

      • 创建订阅至KafkaChannel/kc01的Subscription

        kn subscription create sub-to-kc01 --channel messaging.knative.dev:v1beta1:KafkaChannel:kc01 --sink ksvc:event-display
        
        说明:此处事先存在一个可用的名为event-display的Knative Service。
        
      • 创建用于模拟Source的Pod

        kubectl run client-$RANDOM --image=ikubernetes/admin-box:v1.2 --rm --restart=Never -it --command -- /bin/bash
        
      • 在Pod的交互式接口发送CloudEvents

        root@client-18448 ~# curl -v "http://kc01-kn-channel.default.svc.cluster.local" -X POST -H "Content-Type: application/cloudevents+json" \
            -d '{"id": "100001", "specversion": "1.0", "type": "com.icloud2native.flow.seq", "source": "Curl", "data": {"message":"Hello from Knative Eventing KafkaChannel"}}'
        
      • 在最后的Sink上查看生成的CloudEvents文章来源地址https://www.toymoban.com/news/detail-804957.html

        POD=$(kubectl get pods -l serving.knative.dev/configuration=event-display -o jsonpath='{.items[0].metadata.name}')
        
        ~$ kubectl logs $POD
        Defaulted container "user-container" out of: user-container, queue-proxy
        ☁️  cloudevents.Event
        Context Attributes,
          specversion: 1.0
          type: com.icloud2native.flow.seq
          source: Curl
          id: 100001
        Data,
           {"message":"Hello from Knative Eventing KafkaChannel"}
        

到了这里,关于14-部署Kafkasource和KafkaChannel的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 14.云原生之三高系统

    云原生专栏大纲 在计算机领域,\\\"三高\\\"通常指的是高性能(High Performance)、高可用性(High Availability)和高扩展性(High Scalability)。下面对这三个概念进行详细介绍: 高性能(High Performance) :高性能是指系统或应用程序在单位时间内能够处理更多的工作量或请求。高性能系

    2024年01月19日
    浏览(26)
  • Knative v1.0.x安装全过程

    提示:本章为第一篇文章,后续更新时间不定,主要取决于博主进度 学习Knative需要对 无服务计算(Serverless) 及 Kubernetes 和 Docker容器 有一定的基础知识储备。在学习和安装的过程中,可能会碰到一些棘手的问题,这些问题不一定是由于安装Knative组件本身造成的,有时候是

    2023年04月22日
    浏览(26)
  • k8s和knative的区别与联系

    目录 什么是k8s 什么事knative 区别与联系 联系 区别 k8s是容器编排引擎和管理器。 其主要功能特性有:服务发现(提供ip)和负载均衡,存储编排,自动推出和回滚,自我修复,自动装箱下的资源管理,敏感数据和配置管理,日志、监控和报警等 knative是基于k8s的无服务的框架

    2024年01月19日
    浏览(31)
  • 云原生周刊:Linkerd 发布 v2.14 | 2023.9.4

    Layerform Layerform 是一个 Terraform 包装器,可帮助工程师使用纯 Terraform 文件构建可重用的基础设施。 为了实现重用,Layerform 引入了层的概念。每层都包含一些基础设施,并且可以堆叠在另一层之上。 除了更易于使用之外,Layerform 还允许团队重用基础设施的核心部分。这样,开

    2024年02月10日
    浏览(39)
  • 【云原生|Kubernetes】14-DaemonSet资源控制器详解

    ​ 在 Kubernetes 中,DaemonSet 是一种用于在节点上运行指定的 Pod 的控制器(Controller)。与 ReplicaSet 或 Deployment 不同,DaemonSet 不是为了扩展 Pod 数量而创建的,而是为了在每个节点上运行一个实例或多个实例的 Pod。 ​ DaemonSet 通常用于在 Kubernetes 集群中运行一些系统级别的服务

    2024年02月13日
    浏览(27)
  • y149.第八章 Servless和Knative从入门到精通 -- Flow(十三)

    Importer 连接至期望使用的第3方消息系统 基于HTTP协议POST CloudEvents到Channel、Broker、Sequence/Parallel或Service/KService Channel 支持多路订阅 为订阅者“持久化”消息数据 Service 接收CloudEvents (可选)回复处理后的数据 事件流主要支持两种类型Sequence和Parallel,sequence表示可以串行的将一

    2024年02月02日
    浏览(31)
  • 14、Kafka 请求是怎么被处理的

    无论是 Kafka 客户端还是 Broker 端,它们之间的交互都是通过 “请求 / 响应” 的方式完成的。比如,客户端会通过网络发送消息生产请求给 Broker,而 Broker 处理完成后,会发送对应的响应给到客户端。 Apache Kafka 自己定义了一组请求协议,用于实现各种各样的交互操作。比如常

    2024年02月01日
    浏览(30)
  • 云原生周刊:Kubernetes v1.28 新特性一览 | 2023.8.14

    推荐一个 GitHub 仓库:Fast-Kubernetes。 Fast-Kubernetes 是一个涵盖了 Kubernetes 的实验室(LABs)的仓库。它提供了关于 Kubernetes 的各种主题和组件的详细内容,包括 Kubectl、Pod、Deployment、Service、ConfigMap、Volume、PV、PVC、Daemonset、Secret、Affinity、Taint-Toleration、Helm 等。仓库的目标是快速

    2024年02月13日
    浏览(32)
  • 使用Flume-KafkaSource实时采集Avro格式数据

    Flume是一个可靠、可扩展且具有高可用性的分布式系统,用于在大规模数据集群中进行高效的日志聚合、收集和传输。Kafka是一个分布式流处理平台,用于处理高容量的实时数据流。本文将介绍如何使用Flume的KafkaSource来实时采集Avro格式的数据,并提供相应的源代码。 首先,确

    2024年02月07日
    浏览(33)
  • 【kafka】记一次kafka基于linux的原生命令的使用

    环境是linux,4台机器,版本3.6,kafka安装在node 1 2 3 上,zookeeper安装在node2 3 4上。 安装好kafka,进入bin目录,可以看到有很多sh文件,是我们执行命令的基础。 启动kafka,下面的命令的后面带的配置文件的相对路径 遇到不熟悉的sh文件,直接输入名字并回车,就会提示你可用的

    2024年02月05日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包