弹性容器实例是火山引擎提供的一种 Serverless 和容器化计算服务,支持秒级启动、高并发创建和沙箱容器安全隔离等能力。弹性容器实例与容器服务无缝集成,共同提供 Kubernetes 编排能力。开通弹性容器实例后,您可以专注于应用构建,无需购买和管理底层云服务器等基础设施,并且仅需为容器实际消耗的资源付费,降低您的人力和资金成本。
创建 VPC-CNI 容器网络模型的集群时,可能会产生负载均衡、NAT 网关、公网 IP、云盘等云基础资源费用。请在创建集群页面下方 配置费用 处,查看实际计费。更多计费说明及云基础资源计费,请参见 产品计费。
参数 | 说明 |
---|---|
基本配置 | |
名称 | 设置集群名称。示例:vci-cluster。 |
Kubernetes 版本 | 选择部署 Kubernetes 集群的版本。 保持默认选项。 |
描述 | 描述或备注集群信息。可以为空。 |
标签 | 集群的标签。可以为空。 |
网络配置 | |
私有网络 | 选择集群所属的私有网络(VPC)。选择 VCI 准备工作 中已创建的私有网络。 |
容器网络模型 | 配置集群的容器网络(CNI)方案。 弹性容器业务中,必须选择 VPC-CNI。 |
子网 | 选择私有网络下的子网。 |
容器网络 | 自定义配置容器网络,详细的参数配置方法,请参见 容器网络。
|
公网访问 | 开启公网访问后,容器服务自动为集群私有网络创建 NAT 网关并配置相关规则,使集群内的节点、应用可以访问公网。 本示例 开启 公网访问。 |
API Server 公网访问 | 开启后,容器服务自动创建多线路类型(BGP)的公网 IP 并关联 CLB,使集群 API Server 可访问公网。 本示例 开启 API Server 公网访问,用于获取集群的外网访问 Config,使用 kubectl 连接集群。 |
高级配置 | 本示例中无需设置,保持默认值。详细参数说明,请参见 创建集群。 |
参数 | 说明 |
---|---|
节点信息 | |
Worker 节点 | 是否创建 Worker 节点并加入集群。 本示例选择 立即创建。 |
节点来源 | Worker 节点的获取方式。 本示例选择 创建节点。 |
节点池配置 | |
节点池名称 | 设置节点池名称。示例:vci-demo-nodepool。 |
计费类型 | 节点对应的云服务器资源的收费模式:
|
可用区 | 选择新增节点所在的可用区。可用区是同一地域下电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。 |
子网 | 选择新增节点的子网,同一个私有网络下可能存在多个子网,请根据实际业务情况选择。 |
计算规格 | 选择新增节点的规格。计算规格的详细说明,请参见 实例规格清单。 VPC-CNI 容器网络模型的集群,系统会自动为您校验 Worker 节点支持的 ENI 数量。请根据界面提示,选择合适的 计算规格。 本示例选择: |
节点数量 | 设置新增节点的数量。增加节点数量后,对应的云服务器资源费用也会增加,费用详情请参见页面下方 配置费用 后的帮助说明。 本示例保持默认值。 |
系统配置 | |
操作系统 | 选择新增节点的操作系统。 本示例保持默认值。 |
启动时安装批量作业 Agent | 默认安装 Agent,不支持修改。节点池使用 Agent 进行节点管理,方便该节点池中节点的故障监测和自愈。 本示例保持默认值。 |
系统云盘 | 提供操作系统运行、日志存储相关工作需要使用的存储空间。 本示例保持默认值。 |
数据云盘 | 提供额外存储空间,可用于日常工作中的数据存储。 本示例中数据云盘的配置及其挂载目录均保持默认值。 |
安全配置 | |
安全组 | 安全组类似一种虚拟防火墙,通过不同的安全组规则控制节点实例(云服务器)的入流量和出流量。 |
登录方式 | 节点实例的登录认证方式,支持通过 密码 和 SSH密钥对 两种方式。
本示例选择 密码 并设置和确认 root 密码。建议您设置强密码。 |
安全加固 | 可选,HIDS 主机防护免费提供异常登录等风险告警服务,在保证主机系统镜像兼容性的基础上进行安全加固。开启以后支持在云服务 ECS 查看告警信息,详细说明,请参见 安全加固。 本示例保持默认值。 |
更多配置 | 本示例中无需设置,保持默认值。详细参数说明,请参见 创建集群。 |
高级配置 | 本示例中无需设置,保持默认值。详细参数说明,请参见 创建集群。 |
您可以通过 kubectl 客户端连接到已创建的集群。
$HOME/.kube/config
文件中。注意
若您没有$HOME/.kube/config
文件,请自行创建文件,并将访问凭证复制到该文件中。
kubectl get namespace
NAME STATUS AGE default Active 3h22m kube-flannel Active 3h22m kube-node-lease Active 3h22m kube-public Active 3h22m kube-system Active 3h22m
完成集群和 kubectl 的连接后,您可以通过 kubectl 客户端创建无状态工作负载,部署应用。
在您的本地计算机$home
目录下,新建nginx.yaml
应用文件,并复制如下内容到该文件。
说明
请根据代码示例中的注释信息,更改参数值。
apiVersion: apps/v1 kind: Deployment metadata: name: doc-deployment-vci # 替换为您的应用名称 namespace: default # 命名空间名称 spec: replicas: 1 # Pod 实例个数 selector: matchLabels: app: doc-deployment-vci # 需要和后续创建的服务中 selector 的 app 参数取值一致 template: metadata: annotations: vke.volcengine.com/burst-to-vci: enforce # 固定使用该值,表示强制使用 VCI labels: app: doc-deployment-vci # 替换为您的应用名称 spec: containers: - image: cr-cn-beijing.ivolces.com/dontdelete/nginxnew:doc # 替换为您的镜像地址 name: doc-deployment-vci-container # 替换为您的容器名称 ports: - containerPort: 80 protocol: TCP
执行如下命令,部署应用。
kubectl apply -f nginx.yaml
执行如下命令,查看应用部署状态。
kubectl get deployment ${your_deployment_name}
说明
请将${your_deployment_name}
替换为您设置的工作负载名称,例如doc-deployment-vci
,则完整的命令为:
kubectl get deployment doc-deployment-vci
返回类似如下信息,表示应用部署成功。
NAME READY UP-TO-DATE AVAILABLE AGE doc-deployment-vci 1/1 1 1 63s
在您的本地计算机$home
目录下,新建ngixn-svc.yaml
服务文件,并复制如下内容到该文件。
说明
请根据代码示例中的注释信息,更改参数值。
apiVersion: v1 kind: Service metadata: name: nginx-svc # 替换为您的服务名称 namespace: default spec: ports: - name: doc-vci-port # 替换为您的端口映射名称 port: 80 protocol: TCP targetPort: 80 selector: app: doc-deployment-vci # 需要和之前创建应用中 matchLabels 的 app 参数取值一致 type: LoadBalancer
执行如下命令,创建服务。
kubectl apply -f ngixn-svc.yaml
执行如下命令,查看服务状态。
kubectl get svc ${your_service_name}
说明
请将${your_service_name}
替换为您设置的服务名称,例如nginx-svc
,则完整的命令为:
kubectl get svc nginx-svc
返回类似如下信息,表示应用部署成功。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-svc LoadBalancer 172.**.**.** 124.**.**.** 80:31647/TCP 17s
在浏览器中输入上一步获取到的 EXTERNAL-IP 值,访问 Nginx 的欢迎页面。
完成应用部署后,可以通过云监控产品了解应用的运行状态,包括 CPU 用量、内存用量等,协助后续的运维工作。
...
图标,然后单击 查看监控,查看应用的运行状态。至此,您已体验完成通过 kubctl 使用弹性容器 VCI 部署应用的过程。