0
点赞
收藏
分享

微信扫一扫

周边生态|Pulsar Resources Operator for Kubernetes 正式开源


本文翻译自 StreamNative 博客《Introducing Pulsar Resources Operator for Kubernetes》,作者沈瑀昊、王夫沭。

译者简介

张建威,Shopee 商家服务团队后台开发工程师,致力于云原生、微服务、分布式架构等方向,热爱开源。

我们很高兴地宣布 Pulsar Resources Operator[1] 正式开源,遵循 ​​Apache License V2​​​ 协议。Pulsar Resources Operator 对 ​​Kubenetes​​ 上的关键 Pulsar 资源提供了声明式管理功能。

什么是 Pulsar Resources Operator?

Pulsar Resources Operator 是一个独立的控制器,它可以使用清单文件自动管理 Kubenetes 上的 Pulsar 资源。Pulsar Resources Operator 为以下 Pulsar 资源提供完整的生命周期管理,包括创建、更新和删除:

  • • 租户[2]
  • • 命名空间[3]
  • • 主题[4]
  • • 权限[5]

为何使用 Pulsar Resources Operator?

虽然你可以使用,例如 pulsar-admin[6] 和 pulsarctl[7] 等命令行工具或者客户端SDK 管理 Pulsar 资源,但是当你在 Kubenetes 上运行 Pulsar 集群时,这些都不是最佳实践。通过应用清单文件创建 Pulsar 资源简单且有用,特别是如果你想在创建新的 Pulsar 集群时在 CI 工作流程中初始化一些基本的 Pulsar 资源。。

开始使用 Pulsar Resources Operator

你可以使用官方支持的 ​​pulsar-resources-operator​​ Helm chart 安装 Pulsar Resources Operator。它提供了CRD(自定义资源定义,Custom Resource Definition)和控制器来管理 Pulsar resources。

准备工作

  • • 安装与集群兼容的 kubectl[8](v1.16 - v1.24 版本)(+/- 1 你的集群最小的发布版本)。
  • • 安装 Helm[9](v3.0.2或更高版本)。
  • • 准备一个 Kubenetes 集群(v1.16 - v1.24 版本)。
  • • 准备一个 Pulsar 集群[10]

步骤

要安装 Pulsar Resources Operator,执行以下步骤:

  1. 1. 添加 StreamNative chart 仓库。

helm repo add streamnative https://charts.streamnative.io
helm repo update

  1. 2. 使用​​pulsar-resources-operator​​ Helm chat 安装 operator。

helm install <release-name> streamnative/pulsar-resources-operator -n <k8s-namespace> --create-namespace
kubectl get pods -n <k8s-namespace>

  1. 3. 若你想要升级 operator ,使用下面的命令。你需要拉取 chart 文件,解压 TGZ 文件,然后应用 CRD。

helm repo update
helm pull streamnative/pulsar-resources-operator
tar -zxvf pulsar-resources-operator-v0.1.0.tgz
kubectl apply -f pulsar-resources-operator/crds
helm upgrade <release-name> streamnative/pulsar-resources-operator -n <k8s-namespace>

  1. 4. 更多安装的详情,请在 GitHub 上查看 安装[11] 文档。

创建 PulsarConnection

PulsarConnection 包含 Pulsar 集群的地址和授权信息。Operator 通过它访问 Pulsar 集群并创建其他资源。创建 PulsarConnection 的步骤如下:

  1. 1. 定义一个名为​​pulsar-connection​​ 的连接,包含下面代码所示字段。

apiVersion: pulsar.streamnative.io/v1alpha1
kind: PulsarConnection
metadata:
name: pulsar-connection
namespace: <k8s-namespace>
spec:
adminServiceURL: http://pulsar-sn-platform-broker.test.svc.cluster.local:8080

  1. 2. 应用该 YAML 文件创建 PulsarConnection 并检查其状态。

kubectl  apply -f connection.yaml

kubectl get pulsarconnections -n <k8s-namespace>
NAME ADMIN_SERVICE_URL GENERATION OBSERVED_GENERATION READY
pulsar-connection http://pulsar-xxxx:8080 1 1 True

创建 Pulsar 资源

Pulsar Resources Operator 可以使用 YAML 文件在 Kubernetes 上快速创建 Pulsar 资源,如PulsarTenant 和 PulsarNamespace。以下示例演示了如何在 Kubernetes 上创建 PulsarTenant 对象。

  1. 1. 创建一个名为 pulsar-tenant 的 YAML 文件,包含下面代码所示字段。

apiVersion: pulsar.streamnative.io/v1alpha1
kind: PulsarTenant
metadata:
name: pulsar-tenant
namespace: <k8s-namespace>
spec:
name: pulsar-tenant
connectionRef:
name: pulsar-connection
adminRoles:
- admin
- ops

  1. 2. 应用该 YAML 文件创建 tenant 并检查其状态。

kubectl apply -f tenant.yaml

kubectl get pulsartenants -n <k8s-namespace>
NAME RESOURCE_NAME GENERATION OBSERVED_GENERATION READY
pulsar-tenant pulsar-tenant 1 1 True

使用并贡献

你可以通过查看 Github 仓库[12] 和 教程[13] 了解更多 Pulsar 资源的不同配置。

欢迎大家使用 Pulsar Resources Operator。如果遇到疑问,可以在 GitHub[14] 上创建 issue。


举报

相关推荐

0 条评论