老刘博客前文《UCloud优刻得Serverless容器服务产品Cube免费公测》有介绍UCloud优刻得最新发布了基于serverless架构的容器实例服务容器实例(Cube)产品,这里继续和大家分享下UCloud优刻得docker容器化产品Cube快速上手使用教程。
接下来我们使用容器实例(Cube)发布您的服务,将介绍具体创建填写字段含义以及示例操作。
1,使用Cube服务,必须通过UCloud实名认证服务;
2,使用Cube暴露公网服务,请与UCloud备案团队联系进行备案,否则可能会影响您的服务正常使用;
3,自己的业务程序已经完成容器化,已有Docker镜像;
4,创建的Cube实例,将默认镜像拉取策略为总是(Always),将不支持其他镜像拉取策略。
5,要预先创建好VPC和子网;
6,如果是需要绑定EIP,需要预先给操作账号赋予网络相关权限;
7,需要使用到UCloud UHub镜像仓库,需要创建并将镜像上传。
好啦,准备好上述内容,接下来我们就可以进入快速创建Cube实例步骤了。
1,登录控制台,选择容器实例Cube产品
2,点击Cube的创建按钮进入创建页面,为容器组起一个名字
3,选择一个仓库内的镜像,这里快速创建我选择的UCloud镜像仓库nginx镜像1.17.10-alpine版本,你可以将自有镜像推送到UCloud私有镜像仓库,UHub镜像仓库操作
4,点击确定,完成创建操作,创建一个Nginx容器组,从创建到running约5秒完成
注意:Cube支持除UFS外,也默认支持其他nfs协议的文件存储,需要自行配置。
通过上面的快速创建我们接下来将通过上面的例子来进行创建操作中的详细设置说明。如果你对于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,作为一个配置文件进行创建。
这里只会创建一个卷设置,将不会进行挂载,如需挂载需要在高阶设置中进行卷挂载。
高阶设置中将针对容器进行详细的参数设置。
非必填项
这里可以定义容器运行时的工作目录,指定了工作目录之后镜像中所有命令执行都将在工作目录中完成,可以将工作目录指定在Dockerfile中。这里我们使用到的nginx工作目录为根目录。
工作目录: /
非必填项
这里可以定义容器运行时的命令,命令对应的是镜像中程序运行的命令,如果没有设置,将使用容器镜像中的命令。
非必填项
这里可以定义容器运行命令时的参数,如果没有设置,将使用容器镜像中的命令。从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和选择对应的防火墙设置。
容器组的运行状态与kubernetes中的pod运行状态一致,共有以下几种。
状态 | 含义 |
---|---|
Running | 表示容器组正常运行。 |
Completed | 表示容器组中的容器任务已经执行完成,执行任务结束的状态返回。 |
Error | 表示容器组中部分容器运行不正常,正在重试容器启动。 |
ContainerCreating | 容器创建中。 |
CreateContainerError | 镜像中的执行命令或者创建时添加的命令在容器中执行失败。 |
CrashLoopBackOff | 表示容器组启动成功后运行失败,组内部分或全部容器处于不健康的状态。 |
ErrImagePull | 镜像拉取错误,正在进行重试。 |
ImagePullBackOff | 表示使用的镜像仓库设置了密码或者镜像已经被删除,导致镜像拉取失败。 |
Terminating | 表示容器正在结束当前执行程序优雅退出。 |
Pending | 没有足够资源创建容器组。 |
容器组中容器运行不正常的一个中间状态,将会很快转为其他状态。
镜像中的执行命令或者创建时添加的命令在容器中执行失败。
容器中有部分容器启动成功后运行失败或者退出,常见得错误状态出现情况有:
使用的镜像仓库设置了密码或者镜像已经被删除,导致镜像拉取失败。
容器正在结束当前执行程序优雅退出。
没有足够资源创建容器组。
以上就是老刘博客总结的优刻得docker容器化产品Cube快速上手使用教程内容了,有关Cube使用准备工作,快速创建Cube实例,Cube创建详情,Cube运营状态及错误排查的具体内容也可访问UCloud官网容器实例Cube页面。