接入 Azure 集群
将已部署的 Azure 集群接入平台统一管理。
前提条件
-
集群上 Kubernetes 版本和组件的满足 接入公有云集群版本要求 。
-
在平台 global 集群控制节点中安装 Azure CLI 工具,参考 官方文档 。
-
确保该集群与 global 集群网络互通,您可参考以下步骤配置网络:
-
若接入集群可以正常访问平台访问地址:则无需进行网络配置。
-
若接入集群无法正常访问平台访问地址:您必须为平台添加域名,并将域名解析至平台访问地址,根据实际场景配置域名解析(内网和公网),在 更新平台参数 页面,将域名添加至 平台其他访问地址。
注意:
-
被接入集群接入成功后,在 global 集群 master 节点修改对应集群 cluster 资源,增加 annotation:
cpaas.io/platform-url
:<平台的域名地址,例如:https://www.domain.cn>
。 -
若 Azure 节点仍无法访问 global 可参考常见问题: Azure node 外网 IP 安全组如何放行 。
-
-
-
您需准备包含平台组件镜像的镜像仓库,可以为 global 集群内置镜像仓库或第三方镜像仓库,并且仓库地址需使用域名访问,证书需要为公共认证机构认证的证书。
提示:
-
如需从第三方镜像仓库拉取 Azure 集群所需的平台组件镜像,实施方案可联系技术支持人员获取。
-
如需使用平台默认的镜像仓库拉取 Azure 集群所需的平台组件镜像,请确保 Azure 集群可以正常访问平台默认镜像仓库,若无法访问,可参考 配置平台默认镜像仓库以支持业务集群的外网访问 进行配置。
-
平台管理员需在 global 集群,监控 kube-system 命名空间下名为
registry-address.tls
证书的有效期,到期前请及时更换。
-
访问 Azure 集群
-
准备好 Azure 集群账户信息,并在安装了 Azure CLI 工具的节点中运行如下命令连接到 Azure 集群,根据您账号所在的区域不同,执行命令:
中国区
az cloud set -n AzureChinaCloud az login -u <user> -p <password> -t <tenant id > az account set --subscription <subscription id> az aks get-credentials --resource-group <myResourceGroup> --name <myAKSCluster>
国际区
az cloud set -n AzureCloud az login -u <user> -p <password> -t <tenant id > az account set --subscription <subscription id> az aks get-credentials --resource-group <myResourceGroup> --name <myAKSCluster>
参数解释:
参数 含义 user Azure 用户名 password Azure 密码 tenant id Azure 租户 ID(登录 Azure 门户,在 主页选择 Azure Active Directory,单击查看 租户ID) subscription id Azure 订阅id(登录 Azure 门户,在主页选择 Kubernetes服务 连接 AKS 获取) myResourceGroup Azure 集群资源组名称(使用 az aks get-credentials 命令获取) myAKSCluster Azure 集群名称(使用 az aks get-credentials 命令获取) -
验证与 Azure 集群集的连接,可运行
kubectl get nodes
命令验证是否正常返回群集节点列表。
获取集群信息
参考 获取集群令牌、访问地址、CA 证书 获取集群信息,为接入集群做准备。
接入集群
-
在左侧导航栏中,单击 集群管理 > 集群。
-
单击 接入集群。
-
参照以下说明,配置相关参数。
参数 说明 镜像仓库 存储集群所需平台组件镜像的仓库。
- 平台默认:部署 global 时配置的 平台部署 镜像仓库。
- 外部:提前搭建的外部镜像仓库。需输入访问镜像仓库的 私有镜像仓库地址、端口、用户名、密码。集群信息 提示:可手动填写或上传 KubeConfig 文件由平台自动解析并填写。
解析 KubeConfig 文件:上传已获取的 KubeConfig 文件后,平台会自动解析并填写 集群信息,您可修改自动填写的信息。
集群地址:集群对外暴露 API Server 的访问地址,用于平台访问集群的 API Server。
CA 证书:集群的 CA 证书。
注意:手动输入时,需输入经过 Base64 解码的证书。
认证方式:访问集群的认证方式,需要使用具备 集群管理权限 的 令牌(Token)或 证书认证(客户端证书及秘钥) 进行认证。 -
单击 检查连通性 以检查与接入集群的网络连通性并自动识别接入集群的类型,集群类型将以表单右上角角标的形式展现。
-
连通性检查通过后,单击 接入,并确认。
提示:
- 单击处于 接入中 状态的集群右侧的
图标,可在弹出的 执行进度 对话框中,查看集群的执行进度(status.conditions)。
- 集群接入成功后,在集群列表可查看集群的关键信息,集群的状态显示为正常,并可执行集群相关操作。
- 单击处于 接入中 状态的集群右侧的
后续操作
部署插件
集群接入成功后,您可前往 插件管理 选择为集群部署必须的插件。
提示:由于 Azure 是托管集群,无 Master 节点,所以在平台界面无法查看 Kubernetes 组件监控数据,日志审计也无法查看数据。
纳管集群下命名空间
接入集群后,您可通过基于集群 创建项目 ,或通过 添加项目关联集群 的方式将集群添加至已有项目,可将新接入的集群关联至项目。
进而,通过 导入命名空间 操作,将集群下已有的 Kubernetes 命名空间纳入到平台的项目下进行管理。
常见问题
Azure node 外网 IP 安全组如何放行
Node 本身只有内网 IP,公网 IP 是前端的一个负载均衡 LB 上的配置,默认使用该公网出站。同时该 LB 受 AKS 主体控制,若直接手动修改该配置会导致异常,可以通过 Kubernetes > 属性 > 基础结构资源组 > 网络安全组 > 添加出站/入站所有规则 放行流量。
Azure 如何登陆 node 节点
查看 Kubelet、CNI、kernel 等系统组件的日志需要首先 SSH 登录到 Node 上,推荐使用 kubectl-node-shell
插件而不是为每个节点分配公网 IP 地址。
方案一:使用kubectl node-shell
方案二:使用debug
kubectl alpha 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
常见问题
接入集群后添加节点按钮置灰,如何添加节点?
不支持在平台界面添加节点,请于联系集群供应商添加。
接入集群的证书管理功能支持哪些证书?
-
Kubernetes 证书:所有接入集群仅支持在平台证书管理界面查看 APIServer 证书信息,不支持查看其他 Kubernetes 证书且不支持自动轮换。
-
平台组件证书:所有接入集群可在平台证书管理界面查看平台组件证书信息且支持自动轮换。
还有哪些功能不支持接入的 Azure 集群?
-
不支持获取审计数据。
-
不支持 ETCD、Scheduler、Controller Manager 相关监控信息,支持 APIServer 部分监控图表。
-
不支持获取除 Kubernetes APIServer 证书外的集群证书相关信息。