简介:虚构节点(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用户并为其增加拜访相干云资源的权限。
- 创立RAM用户。无关如何创立RAM用户的具体步骤,请参见创立RAM用户。
- 创立权限策略。无关创立权限策略的具体操作步骤,请参见创立自定义策略。请受权RAM的AliyunECIFullAccess策略。
- 为RAM用户增加权限。无关如何为RAM用户受权的具体步骤,请参见为RAM用户受权。
- 为RAM用户创立AK。无关如何为子账户创立AK,请参见获取AccessKey。
- 应用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组件的操作步骤如下:
- 登录容器服务治理控制台。
- 在集群列表页面找到指标注册集群,点击进入集群详情页面。
- 点击运维治理->组件治理,找到ack-virtual-node组件并点击装置
- 期待提醒装置胜利。
步骤三:创立ECI Pod
您能够通过以下两种办法创立ECI Pod。
- 配置Pod标签。给Pod增加标签
alibabacloud.com/eci=true
,Pod将以ECI形式运行,其节点是虚构节点,示例如下:
- 执行以下命令给Pod增加标签。
kubectl run nginx --image nginx -l alibabacloud.com/eci=true
- 执行以下命令查看Pod。
kubectl get pod -o wide|grep virtual-kubelet
预期输入:
nginx-7fc9f746b6-r4xgx 0/1 ContainerCreating 0 20s 192.168.XX.XX virtual-kubelet <none> <none>
- 配置命名空间标签。给Pod所在的命名空间增加标签
alibabacloud.com/eci=true
,Pod将以ECI形式运行,其节点是虚构节点,示例如下:
- 执行以下命令创立虚构节点。
kubectl create ns vk
- 执行以下命令给Pod所在的命名空间增加标签。
kubectl label namespace vk alibabacloud.com/eci=true
- 执行以下命令让命名空间中的Pod调度到虚构节点上。
kubectl -n vk run nginx --image nginx
- 执行以下命令查看Pod。
kubectl -n vk get pod -o wide|grep virtual-kubelet
预期输入:
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相干参数,例如虚构交换机、平安组等。
删除虚构节点
- 卸载ack-virtual-node组件。
在自建集群中,删除所有ECI Pod后,在组件治理页面卸载ack-virtual-node组件即可。
通过命令
kubectl delete no
删除相干虚构节点。**阐明** 当集群中存在ECI Pod时,卸载ack-virtual-node组件会导致ECI实例的残留。
相干文档
- 基于ECI运行Job工作
版权申明:本文内容由阿里云实名注册用户自发奉献,版权归原作者所有,阿里云开发者社区不领有其著作权,亦不承当相应法律责任。具体规定请查看《阿里云开发者社区用户服务协定》和《阿里云开发者社区知识产权爱护指引》。如果您发现本社区中有涉嫌剽窃的内容,填写侵权投诉表单进行举报,一经查实,本社区将立即删除涉嫌侵权内容。