导入 Azure AKS 集群

使用此特定于提供商的操作步骤,将现有的 Azure AKS 集群导入为第三方集群。除非文档中说明了特定于提供商的能力,否则外部提供商仍负责提供商基础设施以及提供商托管的 Kubernetes 和节点生命周期。

前提条件

准备运行环境

为符合 Azure AKS 安全标准,必须使用 Cloud Shell 执行以下步骤。

  1. 确保与 Azure Console 的网络连通性。

  2. 打开Kubernetes 服务页面,找到要导入的集群,然后单击进入集群概览页面。

  3. 单击 Connect 按钮,将打开一个标题为 Connect to <导入集群名称> 的浮动窗口。按照说明打开 Cloud Shell 并配置运行环境。

获取集群信息

获取导入令牌

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

请参见如何获取集群信息?以获取导入集群令牌。

导入集群

  1. 在左侧导航栏中,单击 集群管理 > 集群

  2. 单击 导入集群

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

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

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

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

网络配置

确保 global 集群与导入的集群之间具备网络连通性。请参见导入集群的网络配置

导入后的操作

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

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

常见问题

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

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

如何访问 AKS 节点

要查看 Kubelet、CNI 和 kernel 等系统组件的日志,您需要先 SSH 到节点。建议使用 kubectl-node-shell 插件,而不是为每个节点分配公网 IP 地址。

选项 1:使用 kubectl node-shell

请参见 kubectl-node-shell 项目

选项 2:使用 debug

请参见关于连接到 AKS 节点的提供商指导。

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. 平台组件证书:所有导入的集群都可以在平台证书管理界面中查看平台组件证书信息,并支持自动轮换。

此特定于提供商的导入路径有哪些限制?

  • 不支持审计数据检索。

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

  • 无法检索除 Kubernetes APIServer 证书之外的集群证书相关信息。