关于kubernetes:自建Kubernetes集群如何使用弹性容器实例ECI

38次阅读

共计 3528 个字符,预计需要花费 9 分钟才能阅读完成。

简介:

            虚构节点(Virtual Node)实现了 Kubernetes 与弹性容器实例 ECI 的无缝连贯,让 Kubernetes 集群轻松取得极大的弹性能力,而不用受限于集群的节点计算容量。您能够灵便动静的按需创立 ECI Pod,免去集群容量布局的麻烦。本文次要介绍虚构节点和 ECI,通过 ack-virtual-node 组件如何部署虚构节点及如何创立 ECI Pod。

虚构节点(Virtual Node)实现了 Kubernetes 与弹性容器实例 ECI 的无缝连贯,让 Kubernetes 集群轻松取得极大的弹性能力,而不用受限于集群的节点计算容量。您能够灵便动静的按需创立 ECI Pod,免去集群容量布局的麻烦。本文次要介绍虚构节点和 ECI,通过 ack-virtual-node 组件如何部署虚构节点及如何创立 ECI Pod。
前提条件
• 自建 Kubernetes 集群版本须要高于 1.14 版本。
• 您须要创立一个注册集群,并将自建 Kubernetes 集群接入注册集群。具体操作,请参见创立阿里云注册集群并接入自建 Kubernetes 集群。
• 您须要开明弹性容器实例服务。登录弹性容器实例控制台开明相应的服务。
• 您须要确认集群所在区域在 ECI 反对的地区列表内。登录弹性容器实例控制台查看曾经反对的地区和可用区。
虚构节点和弹性容器实例 ECI
阿里云弹性容器实例 ECI(Elastic Container Instance)是面向容器的无服务器弹性计算服务,提供免运维、强隔离、疾速启动的容器运行环境。应用 ECI 无需购买和治理底层 ECS 服务器,让您更加关注在容器利用而非底层基础设施的保护工作。您可按需创立 ECI,仅为容器配置的资源付费(按量按秒计费)。
虚构节点 Virtual Node 实现了 Kubernetes 与弹性容器实例 ECI 的无缝连贯,让 Kubernetes 集群轻松取得极大的弹性能力,而不用受限于集群的节点计算容量。您能够灵便动静的按需创立 ECI Pod,免去集群容量布局的麻烦。它非常适合运行在如下多个场景,帮忙用户极大升高计算成本,晋升计算弹性效率。
• 在线业务的波峰波谷弹性伸缩:如在线教育、电商等行业有着显著的波峰波谷计算特色。应用虚构节点能够显著缩小固定资源池的保护,升高计算成本。
• 数据计算:应用虚构节点承载 Spark、Presto 等计算场景,无效升高计算成本。
• CI/CD Pipeline:Jenkins、Gitlab-Runner。
• Job 工作:定时工作、AI。
阿里云容器服务基于虚构节点和 ECI 提供了多种 Serverless Container 产品状态,包含 Serverless Kubernetes(ASK)和 ACK on ECI,充沛撑持各种弹性和免节点运维场景的用户诉求。
步骤一:在自建集群中配置 ack-virtual-node 组件 RAM 权限
在注册集群中装置组件前,您须要在接入集群中设置 AK 用来拜访云服务的权限。设置 AK 前,您须要创立 RAM 用户并为其增加拜访相干云资源的权限。

  1. 创立 RAM 用户。无关如何创立 RAM 用户的具体步骤,请参见创立 RAM 用户。
  2. 创立权限策略。无关创立权限策略的具体操作步骤,请参见创立自定义策略。请受权 RAM 的 AliyunECIFullAccess 策略。
  3. 为 RAM 用户增加权限。无关如何为 RAM 用户受权的具体步骤,请参见为 RAM 用户受权。
  4. 为 RAM 用户创立 AK。无关如何为子账户创立 AK,请参见获取 AccessKey。
  5. 应用 AK 在自建 Kubernetes 集群中创立名为 alibaba-addon-secret 的 Secret 资源,步骤二中装置的 ack-virtual-node 组件将主动援用此 AK 拜访对应的云服务资源。
    kubectl -n kube-system create secret generic alibaba-addon-secret –from-literal=’access-key-id=<your access key id>’ –from-literal=’access-key-secret=<your access key secret>’
    您须要将上述代码中和替换为您获取的 AK 信息。
    步骤二:在注册集群中部署 ack-virtual-node 组件
    在注册集群中部署 ack-virtual-node 组件的操作步骤如下:
  6. 登录容器服务治理控制台。
  7. 在集群列表页面找到指标注册集群,点击进入集群详情页面。
  8. 点击运维治理 -> 组件治理,找到 ack-virtual-node 组件并点击装置
  9. 期待提醒装置胜利。
    步骤三:创立 ECI Pod
    您能够通过以下两种办法创立 ECI Pod。
    • 配置 Pod 标签。给 Pod 增加标签 alibabacloud.com/eci=true,Pod 将以 ECI 形式运行,其节点是虚构节点,示例如下:
    a. 执行以下命令给 Pod 增加标签。
    kubectl run nginx –image nginx -l alibabacloud.com/eci=true
    a. 执行以下命令查看 Pod。
    kubectl get pod -o wide|grep virtual-kubelet
    a. 预期输入:
    nginx-7fc9f746b6-r4xgx 0/1 ContainerCreating 0 20s 192.168.XX.XX virtual-kubelet <none> <none>
    • 配置命名空间标签。给 Pod 所在的命名空间增加标签 alibabacloud.com/eci=true,Pod 将以 ECI 形式运行,其节点是虚构节点,示例如下:
    a. 执行以下命令创立虚构节点。
    kubectl create ns vk
    a. 执行以下命令给 Pod 所在的命名空间增加标签。
    kubectl label namespace vk alibabacloud.com/eci=true
    a. 执行以下命令让命名空间中的 Pod 调度到虚构节点上。
    kubectl -n vk run nginx –image nginx
    a. 执行以下命令查看 Pod。
    kubectl -n vk get pod -o wide|grep virtual-kubelet
    a. 预期输入:
    nginx-6f489b847d-vgj4d 1/1 Running 0 1m 192.168.XX.XX virtual-kubelet <none> <none>
    相干操作
    批改 ACK 虚构节点配置
    虚构节点 Controller 的配置决定了其调度 ECI Pod 的行为和 ECI 运行环境配置,包含虚构交换机和平安组配置等。您能够依据须要灵便的批改 Controller 配置,批改配置后不会影响曾经运行的 ECI Pod,会立刻失效于新建的 ECI Pod。
    执行以下命令批改虚构节点 Controller 的配置。
    kubectl -n kube-system edit deployment ack-virtual-node-controller
    罕用的变更操作如下:
    • 更新 virtual-node controller 版本。当您应用更新虚构节点性能时,须要更新 Virtual Node Controller 镜像至最新版本。
    • 批改平安组配置 ECI_SECURITY_GROUP。您能够批改此环境变量,扭转 ECI Pod 的平安组。
    • 批改虚构交换机配置 ECI_VSWITCH。您能够批改此环境变量,扭转 ECI Pod 所在的虚构交换机。倡议配置多个虚构交换机反对多可用区,当单可用区库存有余时,Controller 会抉择另外一个可用区创立 ECI Pod。
    • 批改 kube-proxy 配置 ECI_KUBE_PROXY。此环境变量默认值为 true,示意 ECI Pod 默认能够拜访集群中的 ClusterIP Service。如果 ECI Pod 无需拜访 ClusterIP Service 时,例如 Job 计算场景,您能够设置此环境变量为 false 敞开 kube-proxy 性能。另外在一些规模化场景,例如集群中须要启动大量 ECI Pod 时,ECI 中的 kube-proxy 和 kubernetes apiserver 之间的并发连接数也会大量减少,您同样能够抉择敞开 kube-proxy 性能,缩小对 API Server 的压力晋升可扩展性。
    • 批改 kube-system/eci-profile configmap。您能够批改此 ConfigMap 配置更多 ECI 相干参数,例如虚构交换机、平安组等。
    删除虚构节点
  10. 卸载 ack-virtual-node 组件。
    • 在自建集群中,删除所有 ECI Pod 后,在组件治理页面卸载 ack-virtual-node 组件即可。
  11. 通过命令 kubectl delete no 删除相干虚构节点。
    阐明 当集群中存在 ECI Pod 时,卸载 ack-virtual-node 组件会导致 ECI 实例的残留。
    原文链接
    本文为阿里云原创内容,未经容许不得转载。

正文完
 0