AKS节点镜像中Azure CLI缺失问题分析与解决方案

AKS节点镜像中Azure CLI缺失问题分析与解决方案

AKS Azure Kubernetes Service AKS 项目地址: https://gitcode.com/gh_mirrors/ak/AKS

问题背景

在Azure Kubernetes Service(AKS)的最新节点镜像AKSUbuntu-2204gen2containerd-202406.19.0中,用户发现Azure CLI工具缺失,这导致依赖azure-blob-fuse存储类的Pod无法正常启动。具体表现为Pod卡在"ContainerCreating"状态,并报错"Azure CLI not found on path"。

问题根源分析

经过深入调查,该问题源于blobfuse 2.3.0版本的一个重大变更。当使用AzureStorageIdentityObjectID参数时,blobfuse现在需要依赖Azure CLI来完成身份验证流程。这一变更在之前的版本中并不存在,因此当节点镜像移除了Azure CLI后,就导致了兼容性问题。

影响范围

该问题影响所有满足以下条件的AKS集群:

  1. 使用AKSUbuntu-2204gen2containerd-202406.19.0或更新版本的节点镜像
  2. 部署了使用azure-blob-fuse-premium存储类的Pod
  3. 在存储类配置中使用了AzureStorageIdentityObjectID参数

临时解决方案

对于需要立即解决问题的用户,可以考虑以下两种临时方案:

方案一:节点安装Azure CLI

通过创建DaemonSet在集群所有节点上自动安装Azure CLI:

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: azure-cli-installer
  namespace: kube-system
spec:
  selector:
    matchLabels:
      app: azure-cli-installer
  template:
    metadata:
      labels:
        app: azure-cli-installer
    spec:
      containers:
      - name: installer
        image: ubuntu:20.04
        command: ["/bin/sh", "-c"]
        args:
          - apt-get update && apt-get install -y curl && 
            curl -sL https://aka.ms/InstallAzureCLIDeb | bash
        securityContext:
          privileged: true

方案二:修改存储类配置

将存储类配置中的AzureStorageIdentityObjectID参数替换为AzureStorageIdentityClientID:

parameters:
  AzureStorageAuthType: MSI
  AzureStorageIdentityClientID: "<your-client-id>"

长期解决方案

Azure blobfuse团队正在评估是否移除对Azure CLI的依赖,但这可能需要数月时间。因此,建议用户采用方案二作为长期解决方案,原因如下:

  1. 更安全:不需要在节点上安装额外的工具
  2. 更稳定:不受未来节点镜像变更的影响
  3. 性能更好:减少了身份验证流程中的外部依赖

最佳实践建议

  1. 对于新部署的存储类,建议始终使用AzureStorageIdentityClientID参数
  2. 对于现有部署,应尽快迁移到使用ClientID的方案
  3. 定期检查AKS发行说明,了解节点镜像的变更情况
  4. 在测试环境中验证新版本节点镜像的兼容性,再应用到生产环境

总结

AKS节点镜像中Azure CLI的缺失暴露了应用程序对特定工具的依赖问题。通过理解问题根源并采用正确的身份验证参数,可以有效解决这一问题,同时提高应用程序的健壮性。建议用户尽快评估和更新现有配置,以避免未来可能出现的中断。

AKS Azure Kubernetes Service AKS 项目地址: https://gitcode.com/gh_mirrors/ak/AKS

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翁凡申

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值