千家信息网

自建Kubernetes 集群是如何使用弹性容器

发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,自建Kubernetes 集群是如何使用弹性容器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。虚拟节点(Virtual Node)实现了
千家信息网最后更新 2024年11月22日自建Kubernetes 集群是如何使用弹性容器

自建Kubernetes 集群是如何使用弹性容器,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

虚拟节点(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=' --from-literal='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

2.执行以下命令查看Pod。

kubectl get pod -o wide|grep virtual-kubelet

3.预期输出:

nginx-7fc9f746b6-r4xgx     0/1     ContainerCreating   0          20s   192.168.XX.XX   virtual-kubelet                   
  • 配置命名空间标签。给Pod所在的命名空间添加标签alibabacloud.com/eci=true,Pod将以ECI方式运行,其节点是虚拟节点,示例如下:

4.执行以下命令创建虚拟节点。

kubectl create ns vk

5.执行以下命令给Pod所在的命名空间添加标签。

kubectl label namespace vk alibabacloud.com/eci=true

6.执行以下命令让命名空间中的Pod调度到虚拟节点上。

kubectl -n vk run nginx --image nginx

7.执行以下命令查看Pod。

kubectl -n vk get pod -o wide|grep virtual-kubelet

8.预期输出:

nginx-6f489b847d-vgj4d      1/1     Running             0          1m   192.168.XX.XX   virtual-kubelet                   

相关操作

修改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组件即可。

2.通过命令kubectl delete no删除相关虚拟节点。
说明 当集群中存在ECI Pod时,卸载ack-virtual-node组件会导致ECI实例的残留。

看完上述内容,你们掌握自建Kubernetes 集群是如何使用弹性容器的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

集群 节点 配置 容器 弹性 组件 用户 服务 命令 实例 步骤 权限 标签 环境 运行 交换机 场景 资源 管理 安全 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 测试工程师与网络安全 软件开发解耦是什么意思 服务器配置安全模板 福州机器人rpa软件开发 万盛网络安全和信息化工作会议 软件开发招聘猎头 vf第一章数据库基础 网络技术NTA原理和作用 卫星互联网板块走强亚光科技涨停 文献题录如何从数据库导出 威海星展云计算软件开发公司 不遵守网络安全法案例 职业软件开发价格行情 信用社软件开发工资 云服务器可以买了不用 软件开发中的软件详细计划 服务器如何设置系统决策 徐汇区一站式软件开发平台资质 上海信息化软件开发创意 清远数字软件开发价目表 菜鸟包裹侠服务器同步异常 8年级网络安全及防护措施 网络安全态势感知研究 为啥登录象棋时显示服务器异常 奉贤区信息软件开发统计 美国企业级服务器 ins信息管理服务器 数据库需要的jar 软件开发小组团队宗旨 四川双工位视觉点胶软件开发
0