本节以nginx工作负载为例,说明kubectl命令创建工作负载的方法。
步骤1 请参见通过kubectl连接集群,使用kubectl连接集群。
步骤2 创建一个名为nginx-deployment.yaml的描述文件。其中,nginx-deployment.yaml为 自定义名称,您可以随意命名。
vi nginx-deployment.yaml
描述文件内容如下。此处仅为示例,deployment的详细说明请参见kubernetes官方文 档。
apiVersion: apps/v1 kind: Deployment metadata:
表6-4 deployment 字段详解
字段名称 字段说明 必选/可选
apiVersion 表示API的版本号。
说明
name deployment的名称。 必选
Spec 用户对deployment的详细描述的主体
部分都在spec中给出。 必选
replicas 实例数量。 必选
selector 定义Deployment可管理的容器实例。 必选 strategy 升级类型。当前支持两种升级方式,
默认为滚动升级。
● RollingUpdate:滚动升级。
● ReplaceUpdate:替换升级。
可选
template 描述创建的容器实例详细信息。 必选
metadata 元数据。 必选
labels metadata.labels定义容器标签。 可选 spec:
containers
● image(必选):容器镜像名称。
● imagePullPolicy(可选):获取镜 像的策略,可选值包括Always(每
imagePullSecrets Pull镜像时使用的secret名称。若使用 私有镜像,该参数为必选。
步骤3 创建deployment。
kubectl create -f nginx-deployment.yaml 回显如下表示已开始创建deployment。
deployment "nginx" created
步骤4 查看deployment状态。
kubectl get pods
deployment状态显示为Running,表示deployment已创建成功。
NAME READY STATUS RESTARTS AGE icagent-m9dkt 0/0 Running 0 3d nginx-1212400781-qv313 1/1 Running 0 3d
参数解析:
● NAME:pod的名称
● READY:已经部署完毕的pod副本数
● STATUS:状态
● RESTARTS:重启次数
● AGE:已经运行的时间
步骤5 若工作负载(即deployment)需要被访问(集群内访问或节点访问),您需要设置访 问方式,具体请参见网络管理创建对应服务。
----结束
6.3 创建有状态负载(StatefulSet)
操作场景
在运行过程中会保存数据或状态的工作负载称为“有状态工作负载(statefulset)”。
例如Mysql,它需要存储产生的新数据。
因为容器可以在不同主机间迁移,所以在宿主机上并不会保存数据,这依赖于CCE提供 的高可用存储卷,将存储卷挂载在容器上,从而实现有状态工作负载的数据持久化。
前提条件
● 在创建容器工作负载前,您需要存在一个可用集群。若没有请参照购买CCE集群 中内容创建。
● 若工作负载需要被外网访问,请确保集群中至少有一个节点已绑定弹性IP,或已 购买负载均衡实例。
说明
单个实例(Pod)内如果有多个容器,请确保容器使用的端口不冲突 ,否则部署会失败。
通过控制台创建
云容器引擎提供了多种创建工作负载的方式,您可以通过如下方式进行创建:
1. 基于“开源镜像中心”创建工作负载,无需上传镜像。
步骤1 登录CCE控制台,在左侧导航栏中选择“工作负载 > 有状态负载 StatefulSet”,单击
“创建有状态工作负载”。在打开的创建有状态工作负载页面中,参照表6-5设置工作 支持CCE Turbo集群。
● docker运行时:普通容器
● 安全运行时:选择该运行时后工作负载容器将升级为安全容 器,该工作负载只能运行在使用安全运行时的节点上。
两种容器运行时的对比请参见普通容器与安全容器的区别。
参数 参数说明
● 网络平面是CCE新增的一种crd资源,记录了租户ID,子网ID,安全 组等的配置项,作为申请弹性网卡的配置信息。
CCI弹性承载 勾选此选项后,当集群资源不足时,支持将Pod部署到云容器实 例CCI。
该参数仅在安装virtual kubelet插件后才显示,具体请参见