云下集群接入ACK注册集群的2种方式
ACK One注册集群帮助您将云下Kubernetes集群接入云端,快速搭建混合云集群,可以将本地数据中心Kubernetes集群或其他云厂商Kubernetes集群接入阿里云容器服务管理平台,进行统一管理。
内网接入方式:
如果云上云下集群已通过专线接通网络,则可以使用ACK One注册集群的 私网集群导入代理配置 接入集群。内网接入ACK One注册集群,在安装addon组件时,会默认使用内网容器镜像地址,例如:
registry-vpc.cn-hangzhou.aliyuncs.com/acs/ack-cluster-agent:latest
公网接入方式:
如果云上云下集群还未通过专线接通网络,则可以使用ACK One注册集群的 公网集群导入代理配置(创建集群时勾选绑定EIP) 接入集群。公网接入ACK One注册集群,在安装addon组件时,会默认使用公网容器镜像地址,例如:
registry.cn-hangzhou.aliyuncs.com/acs/ack-cluster-agent:latest
内网或公网接入的集群功能差异
内网接入 |
公网接入 |
|
节点池 |
支持 |
不支持 |
集群管理 |
支持 |
支持 |
安全治理 |
支持 |
支持 |
可观测性 |
支持 |
支持 |
云下使用内网域名访问ACR容器镜像仓库
云下内网接入ACK One注册集群的情况下,您需要在云企业网产品中添加配置指向ACR内网网段的路由。
当前ACK One注册集群中需要配置2种内网域名解析,个人版和企业版ACR镜像内网域名地址(最终都会收敛为企业版ACR镜像)。
如何在云企业网上配置访问云服务请参考:《云企业网配置访问云服务》
个人版ACR镜像内网域名解析
ACR个人版内网域名与路由网段对照表请参考:《ACR个人版内网域名与路由网段对照表》
ACR个人版内网域名示例:
registry-vpc.cn-hangzhou.aliyuncs.com
企业版ACR镜像内网域名解析
ACR企业版内网域名与路由网段配置请参考:《从本地数据中心访问容器镜像服务企业版实例》
ACR企业版内网域名示例:
registry-cn-hangzhou-vpc.ack.aliyuncs.com
云下集群访问云上服务
通过ACK One注册集群,用户可以为云下集群选addon组件,部署在云下的addon组件需要使用AK访问云上云服务,所以此处需要您生成子账户并授予对应的RAM权限,生成AK并使用该AK位addon组件配置权限。
Onectl CLI配置
手动配置
示例
以日志采集组件为例,用户在集群详情->运维管理->日志中心->应用日志 中进行安装之前,需要完成以下操作:
(1) 创建RAM子账号并授予日志组件所需的RAM权限。
创建RAM子账号请参考: 《创建RAM用户》
(2)创建权限策略。具体操作,请参见创建自定义策略。
日志组件需要的RAM权限如下所示:
{ "Version": "1", "Statement": [ { "Action": [ "log:CreateProject", "log:GetProject", "log:DeleteProject", "log:CreateLogStore", "log:GetLogStore", "log:UpdateLogStore", "log:DeleteLogStore", "log:CreateConfig", "log:UpdateConfig", "log:GetConfig", "log:DeleteConfig", "log:CreateMachineGroup", "log:UpdateMachineGroup", "log:GetMachineGroup", "log:DeleteMachineGroup", "log:ApplyConfigToGroup", "log:GetAppliedMachineGroups", "log:GetAppliedConfigs", "log:RemoveConfigFromMachineGroup", "log:CreateIndex", "log:GetIndex", "log:UpdateIndex", "log:DeleteIndex", "log:CreateSavedSearch", "log:GetSavedSearch", "log:UpdateSavedSearch", "log:DeleteSavedSearch", "log:CreateDashboard", "log:GetDashboard", "log:UpdateDashboard", "log:DeleteDashboard", "log:CreateJob", "log:GetJob", "log:DeleteJob", "log:UpdateJob", "log:PostLogStoreLogs", "log:CreateSortedSubStore", "log:GetSortedSubStore", "log:ListSortedSubStore", "log:UpdateSortedSubStore", "log:DeleteSortedSubStore", "log:CreateApp", "log:UpdateApp", "log:GetApp", "log:DeleteApp", "cs:DescribeTemplates", "cs:DescribeTemplateAttribute" ], "Resource": [ "*" ], "Effect": "Allow" } ] }
(3) 为RAM用户添加权限。具体操作,请参见为RAM用户授权。
(4) 为RAM用户创建AccessKey。具体操作,请参见获取AccessKey。
(5) 使用AccessKey在注册集群中创建名为alibaba-addon-secret
的Secret资源。
执行以下命令创建日志组件使用的Secret(若已存在可跳过此步骤,只需保证对应的AK已经被授予对应的RAM权限即可)。
kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'
完成以上AK配置后,安装的日志组件即可引用该AK与云上日志服务进行数据传输,日志组件通过挂载Secret的方式使用AK如下所示:
- name: ALICLOUD_ACCESS_KEY_ID valueFrom: secretKeyRef: key: access-key-id name: alibaba-addon-secret - name: ALICLOUD_ACCESS_KEY_SECRET valueFrom: secretKeyRef: key: access-key-secret name: alibaba-addon-secret
需要配置AK的组件
组件名称 |
是否需要 配置AK Secret |
命名空间 |
其他描述 |
日志中心(logtail-ds) |
是 |
kube-system |
|
事件中心(ack-node-problem-detector) |
是 |
kube-system |
|
Promethues监控(ack-arms-promethues) |
是 |
arms-prom |
|
报警配置(alibabacloud-monitor-controller) |
是 |
kube-system |
|
成本分析(ack-cost-exporter) |
是 |
kube-system |
文档 《集群成本分析》 |
应用备份(migrate-controller) |
是 |
csdr |
|
ack-virtual-node |
是 |
kube-system |
|
aliyun-acr-credential-helper |
是 |
kube-system |
文档 《免密组件拉取容器镜像》 |
terway-eniip |
是 |
kube-system |
|
csi |
是 |
kube-system |