如何在 AKS 上创建 Redis 集群?

时间:2021-04-14 16:14:04

标签: kubernetes redis azure-aks bitnami

我正在尝试使用 Bitnami Helm Chart 在 Azure AKS 上创建 Redis 集群,但无法正常工作。

我的集群有两个节点池,一个运行 linux,另一个运行 Windows 机器,因此,我必须指定 nodeSelector 属性。我的命令是:

helm install --set master.nodeSelector."kubernetes\.io/os"="linux" --set slave.nodeSelector."kubernetes\.io/os"="linux" redis azure-marketplace/redis

我从https://bitnami.com/stack/redis/helm

那里得到的

当我运行 helm install 时,主节点开始按预期运行,但从节点失败。消息说:

<块引用>

警告 FailedMount 26s (x2 over 2m41s) kubelet 无法附加或挂载卷:未挂载的卷=[redis-data],未附加的卷=[health redis-data config redis-tmp-conf default-token-p7zgf start-scripts]:等待条件超时

<块引用>

正常成功AttachVolume 3s attachdetach-controller AttachVolume.Attach 成功为卷“pvc-aXXXXXXc-aXXf-4XXe-bXX9-9xxxxxxxxx49”

<块引用>

警告失败Mount kubelet 卷“pvc-aXXXXXXc-aXXf-4XXe-bXX9-9XXXXXXXXX49”的 MountVolume.MountDevice 失败:azureDisk - mountDevice:FormatAndMount 失败,挂载失败:退出状态 32 挂载命令:systemd-run 挂载参数:--description=Kubernetes 临时挂载 /var/lib/kubelet/plugins/kubernetes.io/azure-disk/mounts/m38XXXXXX77 --scope -- mount -t ext4 -o defaults /dev/disk/azure/ scsi1/lun0 /var/lib/kubelet/plugins/kubernetes.io/azure-disk/mounts/m38XXXXXX77

<块引用>

输出:运行范围为单位:run-ra32XXXXXXXXXXXXXXXXXXXXXXXX7f2f7.scope 挂载:/var/lib/kubelet/plugins/kubernetes.io/azure-disk/mounts/m38XXXXXX77:fs 类型错误、选项错误、/dev/sdc 上的超级块错误、缺少代码页或帮助程序或其他错误。 <块引用>

警告 FailedMount kubelet MountVolume.MountDevice 卷“pvc-aXXXXXXc-aXXf-4XXe-bXX9-9XXXXXXXXX49”失败:azureDisk - mountDevice:FormatAndMount 失败,挂载失败:退出状态 32

我尝试了很多次都没有成功。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

从属 Pod 是否与附加持久卷的节点位于同一节点上?我们开始使用

volumeBindingMode: WaitForFirstConsumer

在我们的存储类中帮助避免在不同主机上的 pod 和 pv 实例化。

后续:在这种情况下,图表似乎依赖于集群默认存储类,该类没有与部署/状态集对象相同的节点关联规则。此外,集群还混合了来自不同操作系统(win、linux)的工作人员。图表逻辑期待 linux os 挂载,但遇到了 windows 主机。