导入 Azure AKS 集群

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

前提条件

准备操作环境

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

  1. 确保与 Azure Console 的网络连接正常。

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

  3. 单击 Connect 按钮,这将打开标题为 Connect to <import cluster name> 的浮动窗口。按照说明打开 Cloud Shell 并配置操作环境。

获取集群信息

获取导入令牌

公共云集群的 KubeConfig 文件无法直接用于集群导入。

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

导入集群

  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 地址。

选项 1:使用 kubectl node-shell

请参见 kubectl-node-shell 项目。

选项 2:使用 debug

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

NOTE

此示例要求使用 1.25 或更高版本的 kubectl,其中包含 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 证书以外的集群证书相关信息。