关于人工智能:自建Kubernetes集群如何使用弹性容器实例ECI

57次阅读

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

简介:虚构节点(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 组件的操作步骤如下:

  1. 登录容器服务治理控制台。
  2. 在集群列表页面找到指标注册集群,点击进入集群详情页面。
  3. 点击运维治理 -> 组件治理,找到 ack-virtual-node 组件并点击装置
  4. 期待提醒装置胜利。

步骤三:创立 ECI Pod

您能够通过以下两种办法创立 ECI Pod。

  • 配置 Pod 标签。给 Pod 增加标签alibabacloud.com/eci=true,Pod 将以 ECI 形式运行,其节点是虚构节点,示例如下:
    1. 执行以下命令给 Pod 增加标签。
kubectl run nginx --image nginx -l alibabacloud.com/eci=true
    1. 执行以下命令查看 Pod。
kubectl get pod -o wide|grep virtual-kubelet
    1. 预期输入:

nginx-7fc9f746b6-r4xgx     0/1     ContainerCreating   0          20s   192.168.XX.XX   virtual-kubelet        <none>           <none>
  • 配置命名空间标签。给 Pod 所在的命名空间增加标签alibabacloud.com/eci=true,Pod 将以 ECI 形式运行,其节点是虚构节点,示例如下:
    1. 执行以下命令创立虚构节点。
kubectl create ns vk
    1. 执行以下命令给 Pod 所在的命名空间增加标签。
kubectl label namespace vk alibabacloud.com/eci=true
    1. 执行以下命令让命名空间中的 Pod 调度到虚构节点上。
kubectl -n vk run nginx --image nginx
    1. 执行以下命令查看 Pod。
kubectl -n vk get pod -o wide|grep virtual-kubelet
    1. 预期输入:

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 相干参数,例如虚构交换机、平安组等。

删除虚构节点

  1. 卸载 ack-virtual-node 组件。
    • 在自建集群中,删除所有 ECI Pod 后,在 组件治理 页面卸载 ack-virtual-node 组件即可。

  1. 通过命令 kubectl delete no 删除相干虚构节点。

    ** 阐明 ** 当集群中存在 ECI Pod 时,卸载 ack-virtual-node 组件会导致 ECI 实例的残留。

相干文档

  • 基于 ECI 运行 Job 工作

版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。

正文完
 0