无法在 AKS 上部署 Apache Pulsar。 'selectedNode annotation value "" not set'

Unable to deploy Apache Pulsar on AKS. 'selectedNode annotation value "" not set'

这是我第一次尝试在 AKS v1.15.11 上部署 Pulsar。

我从 2 pods 收到了一条不是很详细的“计划外”错误消息:

第一个 pod 未安排“pulsar-zookeeper-0”

[Pod] [pulsar-zookeeper-0] FailedScheduling: selectedNode annotation value "" not set to scheduled node "aks-agentpool-20916223-vmss000001"

第二个 Pod 未安排“pulsar-bookkeeper-0”

[Pod] [pulsar-bookkeeper-0] FailedScheduling: selectedNode annotation value "" not set to scheduled node "aks-pulsar-20916223-vmss000001"

这是我所做的详细过程。 我使用官方 helm-charts 进行部署

helm repo add kafkaesque https://helm.kafkaesque.io
helm repo update

根据文档,我了解到我需要在我的 storage_values.yaml 文件中提供这些值。

default_storage:
  provisioner: kubernetes.io/azure-disk
  fsType: ext4
  type: managed-premium
  extraParams:
    storageaccounttype: Premium_LRS
    kind: Managed
    cachingmode: ReadOnly

还创建了命名空间

{
  "kind": "Namespace",
  "apiVersion": "v1",
  "metadata": {
     "name": "pulsar",
     "labels": {
       "name": "pulsar"
     }
  }
}

使用这个命令

kubectl create -f namespace-pulsar.json

然后我使用之前的值启动了部署

helm install pulsar kafkaesque/pulsar --namespace pulsar --values storage_values.yaml

AKS 已附带存储 Classes

您不需要告诉图表使用

创建存储Class
default_storage:
  provisioner: kubernetes.io/azure-disk
  fsType: ext4
  type: managed-premium
  extraParams:
    storageaccounttype: Premium_LRS
    kind: Managed
    cachingmode: ReadOnly

改为更新 StorageClassName 变量,让您的 pods 使用来自 AKS

的现有存储 Class 创建 PVC

运行 kubectl get sc 获取所有已部署存储的列表 classes

对于您的特定图表,

为存储 class 设置创建一个名为 storage_values.yaml 的新文件。要使用现有存储 class(包括默认存储),请设置此值:

default_storage:
  existingStorageClassName: default or <name of storage class>

参考:https://helm.kafkaesque.io