导入 Azure AKS 集群

将已有的 Azure AKS 集群导入平台,实现统一管理。

前提条件

准备操作环境

为符合 Azure AKS 安全规范,以下步骤需使用 Cloud Shell 执行。

  1. 确保与 Azure 控制台的网络连通。

  2. 打开 Kubernetes 服务页面,定位到要导入的集群,点击进入集群概览页面。

  3. 点击 Connect 按钮,会弹出名为 Connect to <import cluster name> 的浮动窗口,按照提示打开 Cloud Shell 并配置操作环境。

获取集群信息

获取导入集群的 Token

公有云集群的 KubeConfig 文件不能直接用于集群导入。

请参考 FAQ 如何获取集群信息? 获取导入集群的 Token。

导入集群

  1. 在左侧导航栏点击 集群管理 > 集群

  2. 点击 导入集群

  3. 根据以下说明配置相关参数。

    参数说明
    镜像仓库存储集群所需平台组件镜像的仓库。- 平台默认:部署 global 集群时配置的镜像仓库。- 私有仓库:预先搭建的存储平台所需组件镜像的仓库,需要填写访问镜像仓库的私有镜像仓库地址端口用户名密码- 公共仓库:使用互联网公共镜像仓库服务,使用前需先参考更新公共镜像仓库云凭证获取仓库认证权限。
    集群信息提示:请上传 KubeConfig 文件,平台会自动解析并填写信息。集群地址:导入集群对外暴露的 API Server 访问地址,平台通过该地址访问导入集群的 API Server。CA 证书:导入集群的 CA 证书。认证方式:导入集群的认证方式,需使用上一步创建的具有集群管理权限Token进行认证。
  4. 点击 检测连通性,验证与导入集群的网络连通性,并自动识别导入集群类型。集群类型会以徽章形式显示在表单右上角。

  5. 连通性检测通过后,点击 导入 并确认。

    TIP
    • 点击处于 导入中 状态集群右侧的 详情 图标,可在弹出 执行进度 对话框中查看集群执行进度(status.conditions)。
    • 集群导入成功后,可在集群列表查看集群关键信息,集群状态显示正常,支持执行集群相关操作。

网络配置

确保 global 集群与导入集群之间网络连通。详见导入集群的网络配置

导入后操作

Ingress(入站规则)及存储初始化

导入集群后,如需使用 Ingress(入站规则)及存储相关功能,请参考Azure AKS 集群 Ingress 初始化配置Azure AKS 集群存储初始化配置

常见问题

如何配置 AKS 节点外网 IP 安全组规则

节点默认仅有内网 IP,外网 IP 配置在前端负载均衡器(LB)上,默认用于出站流量。该 LB 由 AKS 主体控制,直接手动修改该配置可能导致异常。可通过 Kubernetes > 属性 > 基础设施资源组 > 网络安全组 > 添加出站/入站全部规则 允许流量。

如何访问 AKS 节点

查看 Kubelet、CNI、内核等系统组件日志需先 SSH 登录节点,建议使用 kubectl-node-shell 插件,避免为每个节点分配公网 IP。

方案一:使用 kubectl node-shell

官方链接

方案二:使用 debug

官方链接

NOTE

该示例需 kubectl 版本 1.25 及以上,包含 GA 版本的 kubectl debug 命令。

kubectl debug node/aks-newadd-41368356-vmss000002 -it --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
chroot /host

Azure ALB 使用内部负载均衡器

参考官方链接

apiVersion: v1
kind: Service
metadata:
  name: internal-app
  namespace: cpaas-system
  annotations:
    service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
  type: LoadBalancer
  ports:
  - name: http-port
    port: 80
    protocol: TCP
  - name: https-port
    port: 443
    protocol: TCP
  selector:
    service.cpaas.io/name: deployment-aks-alb
    service_name: alb2-aks-alb

Azure ALB 使用外部负载均衡器

部署高可用 ALB,访问地址配置为外部 LB。

apiVersion: v1
kind: Service
metadata:
  name: azure-alb
  namespace: cpaas-system
spec:
  type: LoadBalancer
  ports:
  - name: http-port
    port: 80
    protocol: TCP
  - name: https-port
    port: 443
    protocol: TCP
  - name: prom-port
    port: 11780
    protocol: TCP
  - name: prom2-port
    port: 11781
    protocol: TCP
  - name: prom3-port
    port: 15012
    protocol: TCP
  selector:
    service_name: alb2-cpaas-system

若已提前部署,可使用以下命令修改。

kubectl edit helmrequest -n cpaas-system uat-cluster-aks-alb

导入集群后添加节点按钮置灰,如何添加节点?

平台界面不支持添加节点,请联系集群提供方添加节点。

导入集群的证书管理功能支持哪些证书?

  1. Kubernetes 证书:所有导入集群仅支持在平台证书管理界面查看 APIServer 证书信息,其他 Kubernetes 证书不可查看且不支持自动轮换。

  2. 平台组件证书:所有导入集群可在平台证书管理界面查看平台组件证书信息,支持自动轮换。

导入的 AKS 集群 还不支持哪些功能?

  • 不支持审计数据获取。

  • 不支持 ETCD、Scheduler 和 Controller Manager 相关监控信息,支持部分 APIServer 监控图表。

  • 不支持获取除 Kubernetes APIServer 证书外的集群证书相关信息。