Import Azure AKS Cluster

将现有的 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 证书外的集群证书相关信息。