首页 / 平台管理 / 集群管理 / 集群 / 接入阿里云 ACK 集群

接入阿里云 ACK 集群

将已部署的阿里云 ACK 托管集群(Managed Kubernetes)或阿里云 ACK 专有集群(Dedicated Kubernetes)接入平台统一管理。

提示:关于ACK 托管集群(Managed Kubernetes)或阿里云 ACK 专有集群(Dedicated Kubernetes)的产品介绍请参考 官方文档

前提条件

获取镜像仓库地址

判断镜像仓库是否需要额外配置

(可选)信任非安全镜像仓库

注意:若上一步的检测通过,请跳过本小节。

根据您所使用的容器运行时,配置镜像仓库信任的步骤也有不同。文档支持 docker 和 containerd 两种容器进行时。

Docker 运行时

操作步骤

  1. 在被接入集群的 所有节点 上分别执行以下命令:

    • 备份 docker 配置文件。
    mkdir -p '/var/backup-docker-confs/'
    if ! [ -f /etc/docker/daemon.json ]; then
        echo '找不到 docker 配置文件,请检查 docker 是否正确安装。如果仍然不能排障,可申请技术支持。'
        exit 1
    else
        cp /etc/docker/daemon.json "/var/backup-docker-confs/daemon.json_$(date -u +%F_%R)"
    fi
    • 修改 /etc/docker/daemon.json 文件。

    确保文件中存在 insecure-registries 参数,并添加第一步中获取的 镜像仓库地址。 以配置多个镜像地址的场景为例,参考配置如下:

    {
        "insecure-registries": [
            "<镜像仓库地址>",
            "192.168.134.43"
        ],
        "registry-mirrors": ["https://6telrzl8.mirror.aliyuncs.com"],
        "log-opts": {
          "max-size": "100m",
          "max-file": "2"
        },
        "live-restore": true,
        "metrics-addr": "0.0.0.0:9323",
        "experimental": true,
        "storage-driver": "overlay2"
    }
  2. (可选)使用 jq 命令检查 Docker 配置文件语法。

    提示:请确保主机上已安装 jq,可参考命令:yum install jq -y

    jq . < /etc/docker/daemon.json
  3. 重启所有节点 Docker 服务。

    systemctl daemon-reload
    systemctl restart docker

Containerd 非安全镜像仓库配置

注意

  1. 在被接入集群的 所有节点 上分别执行以下命令:

    • 备份配置文件
    mkdir -p '/var/backup-containerd-confs/'
    if ! [ -f /etc/containerd/config.toml ]; then
        echo '找不到 containerd 配置文件,请检查 containerd 是否正确安装。如果仍然不能排障,可申请技术支持。'
        exit 1
    else
        cp /etc/containerd/config.toml /var/backup-containerd-confs/config.toml_$(date +%F_%T)
    fi
    • 获取 Containerd 容器运行时版本
    # 获取环境上 containerd 的版本
    # 请比较该版本号是否小于 v1.6,并在接下来的文档中选择合适的步骤操作
    ctr --version | grep -Eo 'v[0-9]+\.[0-9]+\.[0-9]+'

Containerd v1.4 v1.5 非安全镜像仓库配置

  1. 在被接入集群的 所有节点 上分别执行以下命令:

    • 修改 /etc/containerd/config.toml 配置文件
    # 以下为需要添加到配置文件中的内容示例
    # 方括号括起来的行称为节点,在添加以下内容到配置文件时,请注意检查配置文件中是否有同名的节点
    # 若已经存在同名的节点,请将节点下的内容进行合并
    [plugins."io.containerd.grpc.v1.cri".registry]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors]  # 该配置下写多个仓库地址的endpoint
            [plugins."io.containerd.grpc.v1.cri".registry.mirrors."<镜像仓库地址>"]
                endpoint = ["https://<镜像仓库地址>", "http://<镜像仓库地址>"]
            [plugins."io.containerd.grpc.v1.cri".registry.mirrors."192.168.134.43"]
                endpoint = ["https://192.168.134.43", "http://192.168.134.43"]
        [plugins."io.containerd.grpc.v1.cri".registry.configs]
            [plugins."io.containerd.grpc.v1.cri".registry.configs."<镜像仓库地址>".tls]
                insecure_skip_verify = true
            [plugins."io.containerd.grpc.v1.cri".registry.configs."192.168.134.43".tls]
                insecure_skip_verify = true
    • 重启 Containerd 服务。
    systemctl restart containerd

Containerd v1.6 非安全镜像仓库配置

  1. 在被接入集群的 所有节点 上分别执行以下命令:

    • 判断配置文件中是否存在 config_path 字段。
    if ! grep -qF 'config_path' /etc/containerd/config.toml; then
        if grep -qE '\[plugins."io.containerd.grpc.v1.cri".registry.(mirrors|configs)(\.|\])' /etc/containerconfig.toml; then
            echo '请按照“Containerd v1.4 v1.5 非安全镜像仓库配置”一节的说明操作。'
        else
            cat >> /etc/containerd/config.toml << 'EOF'
    [plugins."io.containerd.grpc.v1.cri".registry]
        config_path = "/etc/containerd/certs.d/"
    EOF
        fi
    fi
    
    config_path_var=$(grep -F '/etc/containerd/certs.d' /etc/containerd/config.toml)
    if [ -z "$config_path_var" ]; then
       echo '配置文件中 config_path 字段的值不合预期,请检查!'
       exit 1
    fi
    • 创建 hosts.toml 文件。

    如果上一步执行的命令提示 请按照“Containerd v1.4 v1.5 非安全镜像仓库配置”一节的说明操作。 请参考 Containerd v1.4 v1.5 非安全镜像仓库配置 一节。

    REGISTRY=<“获取镜像仓库地址”一节中获得的镜像仓库地址>
    
    mkdir -p "/etc/containerd/certs.d/$REGISTRY/"
    cat > "/etc/containerd/certs.d/$REGISTRY/hosts.toml" << EOF
    server = "$REGISTRY"
    [host."http://$REGISTRY"]
      capabilities = ["pull", "resolve", "push"]
      skip_verify = true
    [host."https://$REGISTRY"]
      capabilities = ["pull", "resolve", "push"]
      skip_verify = true
    EOF
    • 重启 Containerd 服务。
    systemctl restart containerd

获取 KubeConfig

  1. 登录阿里云容器服务管理平台。

  2. 在控制台左侧导航栏中,单击 集群

  3. 集群列表 页面中,单击目标集群名称或者目标集群右侧 操作 列下的 详情

  4. 集群信息 页面,单击 连接信息 页签,然后单击 生成临时KubeConfig

  5. 临时KubeConfig 对话框中,设置临时凭证的有效期及访问集群的方式(包括公网访问和内网访问)。

  6. 单击 生成临时KubeConfig ,然后单击 复制 ,将内容粘贴保存至本地计算机的 KubeConfig 文件下。

  7. 集群接入成功后,可以吊销临时凭据。

接入集群

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

  2. 单击 接入集群

  3. 参照以下说明,配置相关参数。

    参数 说明
    镜像仓库 存储集群所需平台组件镜像的仓库。
    - 平台默认:部署 global 时配置的 平台部署 镜像仓库。
    - 外部:提前搭建的外部镜像仓库。需输入访问镜像仓库的 私有镜像仓库地址端口用户名密码
    集群信息 提示:可手动填写或上传 KubeConfig 文件由平台自动解析并填写。

    解析 KubeConfig 文件:上传已获取的 KubeConfig 文件后,平台会自动解析并填写 集群信息,您可修改自动填写的信息。

    集群地址:集群对外暴露 API Server 的访问地址,用于平台访问集群的 API Server。

    CA 证书:集群的 CA 证书。
    注意:手动输入时,需输入经过 Base64 解码的证书。

    认证方式:访问集群的认证方式,需要使用具备 集群管理权限令牌(Token)或 证书认证(客户端证书及秘钥) 进行认证。
  4. 单击 检查连通性 以检查与接入集群的网络连通性并自动识别接入集群的类型,集群类型将以表单右上角角标的形式展现。

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

    提示

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

后续操作

部署插件

集群接入成功后,您可前往 插件管理 选择为集群部署必须的插件,包括日志采集组件、日志存储组件等。

纳管集群下命名空间

接入集群后,您可通过基于集群 创建项目 ,或通过 添加项目关联集群 的方式将集群添加至已有项目,可将新接入的集群关联至项目。

进而,通过 导入命名空间 操作,将集群下已有的 Kubernetes 命名空间纳入到平台的项目下进行管理。

常见问题

阿里云监控和平台监控组件端口冲突怎么处理?

阿里云集群自带的监控和平台监控组件同时存在时会出现端口冲突的情况,建议您卸载阿里云监控,只保留平台监控。

如何使用公网访问阿里云集群?

若使用公网访问阿里云集群,可以在阿里云上绑定公网 IP。

接入集群后添加节点按钮置灰,如何添加节点?

阿里云 ACK 托管集群ACK 专有集群 都不支持在平台界面添加节点,请在后台添加或联系集群供应商添加。

接入集群的证书管理功能支持哪些证书?

  1. Kubernetes 证书:所有接入集群仅支持在平台证书管理界面查看 APIServer 证书信息,不支持查看其他 Kubernetes 证书且不支持自动轮换。

  2. 平台组件证书:所有接入集群可在平台证书管理界面查看平台组件证书信息且支持自动轮换。

还有哪些功能不支持接入的 阿里云 ACK 托管集群ACK 专有集群