Cube 使用准备工作
1,使用 Cube 服务,必须通过 UCloud 实名认证服务;
2,使用 Cube 暴露公网服务,请与 UCloud 备案团队联系进行备案,否则可能会影响您的服务正常使用;
3,自己的业务程序已经完成容器化,已有 Docker 镜像;
4,创建的 Cube 实例,将默认镜像拉取策略为总是(Always),将不支持其他镜像拉取策略。
5,要预先创建好 VPC 和子网;
6,如果是需要绑定 EIP,需要预先给操作账号赋予网络相关权限;
7,需要使用到 UCloud UHub 镜像仓库,需要创建并将镜像上传。
好啦,准备好上述内容,接下来我们就可以进入快速创建 Cube 实例步骤了。
快速创建 Cube 实例
1,登录控制台,选择容器实例 Cube 产品
2,点击 Cube 的创建按钮进入创建页面,为容器组起一个名字
3,选择一个仓库内的镜像,这里快速创建我选择的 UCloud 镜像仓库 nginx 镜像 1.17.10-alpine 版本,你可以将自有镜像推送到 UCloud 私有镜像仓库,UHub 镜像仓库操作
4,点击确定,完成创建操作,创建一个 Nginx 容器组,从创建到 running 约 5 秒完成
注意:Cube 支持除 UFS 外,也默认支持其他 nfs 协议的文件存储,需要自行配置。
Cube 创建详情
通过上面的快速创建我们接下来将通过上面的例子来进行创建操作中的详细设置说明。如果你对于 kubernetes 比较熟悉,可以查看k8s 参考示例对比。
卷设置
非必填项
卷设置提供了 config 类型,与 Kubernetes 中的 configMap 资源对象一致。config 提供的是键值对配置文件挂载。
如图所示点击添加卷设置,填入如下信息然后确定。
卷名:defaultconf
键值对 key:default.conf
键值对 value:
server {
listen 8080;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
这里可以看到我们修改了 nginx 的配置文件,将监听端口配置从原 80 到 8080,作为一个配置文件进行创建。
这里只会创建一个卷设置,将不会进行挂载,如需挂载需要在高阶设置中进行卷挂载。
高阶设置
高阶设置中将针对容器进行详细的参数设置。
工作目录(workDir)
非必填项
这里可以定义容器运行时的工作目录,指定了工作目录之后镜像中所有命令执行都将在工作目录中完成,可以将工作目录指定在 Dockerfile 中。这里我们使用到的 nginx 工作目录为根目录。
工作目录: /
命令(command)
非必填项
这里可以定义容器运行时的命令,命令对应的是镜像中程序运行的命令,如果没有设置,将使用容器镜像中的命令。
参数(args)
非必填项
这里可以定义容器运行命令时的参数,如果没有设置,将使用容器镜像中的命令。从 Dockerfile 中可以看到 nginx 的参数全部放在了命令中,我们也可以将它拆分成为命令和参数。
这里我们使用到的 nginx 命令在 Dockerfile 中为CMD ["nginx", "-g", "daemon off;"]
,其中可以拆分成
命令: nginx
参数:
-g
daemon off;
环境变量
非必填项
这里可以定义容器运行时的环境变量,环境变量将在运行的容器中使用env
进行查看,可以将环境变量指定在 Dockerfile 中。这里我们使用的 nginx 环境变量可以参考 Dockerfile 中的环境变量。
环境变量 name: NGINX_VERSION
环境变量 value: 1.17.10
挂载卷
非必填项
这里可以将我们创建的卷设置进行挂载,我们上面创建了一个 nginx 的配置文件 config,这里我们将它挂进我们的容器中。
挂载路径: /etc/nginx/conf.d/
卷名称: defaultconf
注意:如没有创建卷设置,在挂载卷中将选择不到具体的卷名称,请先创建卷设置。
标签
非必填项
这里可以将我们创建的 Cube 实例打上标签,可以方便我们后续通过标签进行筛选,如下举例。
标签 key: app
标签 value: nginx
重启策略
这里可以设置我们创建的 Cube 实例的重启策略,分别为总是(Always)、失败时(OnFailure)、从不(Never)。
自定义网络
所创建的 Cube 实例的网络位置将存在于具体的一个 VPC 的子网里。可以根据你镜像程序的需要选择是否绑定外网 IP 和选择对应的防火墙设置。
Cube 运行状态及错误排查
Cube 状态分类
容器组的运行状态与 kubernetes 中的 pod 运行状态一致,共有以下几种。
状态 | 含义 |
---|---|
Running | 表示容器组正常运行。 |
Completed | 表示容器组中的容器任务已经执行完成,执行任务结束的状态返回。 |
Error | 表示容器组中部分容器运行不正常,正在重试容器启动。 |
ContainerCreating | 容器创建中。 |
CreateContainerError | 镜像中的执行命令或者创建时添加的命令在容器中执行失败。 |
CrashLoopBackOff | 表示容器组启动成功后运行失败,组内部分或全部容器处于不健康的状态。 |
ErrImagePull | 镜像拉取错误,正在进行重试。 |
ImagePullBackOff | 表示使用的镜像仓库设置了密码或者镜像已经被删除,导致镜像拉取失败。 |
Terminating | 表示容器正在结束当前执行程序优雅退出。 |
Pending | 没有足够资源创建容器组。 |
错误状态排查
Error
容器组中容器运行不正常的一个中间状态,将会很快转为其他状态。
处理方法
- 查看 error 下一个状态,查找对应的处理方法。
CreateContainerError
镜像中的执行命令或者创建时添加的命令在容器中执行失败。
处理方法
- 检查镜像中的执行命令是否正确。
- 检查创建时添加的命令(command)是否正确,检查完成后重新创建。
CrashLoopBackOff
容器中有部分容器启动成功后运行失败或者退出,常见得错误状态出现情况有:
- 批处理任务容器镜像,在启动容器组时选择了重启策略为“总是”。
- 多容器的容器组中,有部分容器无法正常运行或者退出。
- 多容器的容器组中,有存在监听端口冲突的情况。
处理方法
- 检查是否为批处理任务容器镜像,如果是请选择重启策略为“从不”,可以正常返回,需重建。
- 检查容器组中哪些容器没有正常运行,查看启动命令是否正确,需重建。
- 查看是否为 centos、busybox 一类镜像,此类镜像由于没有固定进程启动,如是则需要设定启动命令,需重建。
- 多容器的容器组中,修改已存在的端口冲突,需重建。
ImagePullBackOff & ErrImagePull
使用的镜像仓库设置了密码或者镜像已经被删除,导致镜像拉取失败。
处理方法
- 检查是否将镜像仓库加密了,如果加密了仓库需要设置打开或者增加镜像拉取密钥,增加密钥需重建。
- 检查是否将镜像删除了,如删除了,需要重新上传对应镜像和版本。
Terminating
容器正在结束当前执行程序优雅退出。
处理方法
- 正常情况下等待一会会退出完成,如退出时间超过 10 分钟,请与我们客服进行联系。
Pending
没有足够资源创建容器组。
处理方法
- 正常情况下不会存在 Pending 状态,如您遇到 Pending 状态超过 5 分钟,这需要联系他们官网客服了。
本文为原创文章,版权归主机之家测评所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ #活动#CUBECLOUD 五周年庆:老用户 5 折优惠,全场 88 折优惠,高防免费送08/18
- ♥ CUBECLOUD:香港机房接入联通 CUVIP 线路,继续 88 折优惠中05/19
- ♥ CN2 GIA 线路, CubeCloud, cubecloud.net, CubeCloud 优惠, CubeCloud 优惠码, cubecloud 怎么样, cubecloud 美国, UBECLOUD, 三网直连, 原生 IP, 圣诞促销, 洛杉矶 AS4837, 洛杉矶 CN2, 洛杉矶 CN2 GIA,05/06
- ♥ #中秋优惠#CUBECLOUD:限时全场 88 折,香港 CN2 GIA、洛杉矶 CN2 GIA/AS4837,大带宽09/20
- ♥ #做站推荐#CubeCloud:香港 A 区接入 CN2 与国际 BPG 多线,KVM 全场 9 折优惠10/23
- ♥ 魔方云:cubecloud 圣诞促销 _ 香港 CN2/美国 CN2 终身 88 折/香港原生 IP 服务器12/24