配置BCIPod
配置CPU和Memory资源
BCI规格说明及创建见指定vCPU和内存创建Pod
BCI实例的运行费用与实例资源配置和实例运行时长有关,详情可以参考BCI计费规则。
BCI支持的规格如下表所示
CPU/核 | 内存区间(GiB) |
0.25 | 0.5、1、2 |
0.5 | 1、2、3、4 |
1 | 1、2、4、8 |
2 | 4、8、16 |
4 | 8、16、32 |
8 | 16、32 |
12 | 24、48 |
16 | 32、64 |
32 | 64、128 |
如果配置了不合法的CPU和Memory规格,将无法成功创建BCI实例。
如果您有不在上述规格内的实例规格诉求,请提交工单。
镜像拉取
当前BCI仅支持拉取存储于以下仓库中的容器镜像:
- 百度智能云容器镜像服务CCR(镜像地址为
registry.baidubce.com/<namespace>/<name>:<tag>
) - Docker Hub(镜像地址为
[<namespace>/]<name>:<tag>
) - 百度智能云CCE镜像仓库(镜像地址为
hub.baidubce.com/<namespace>/<name>:<tag>
)
如果镜像为私有镜像,可以为BCI Pod配置imagePullSecrets拉取私有镜像,示例可以参考CCE集群中使用私有镜像实践。
存储
BCI Pod中每个容器rootfs可用空间为3GB。
当前BCI Pod支持挂载以下类型的volume:
- ConfigMap,详细说明见文档挂载EmptyDir数据卷,详细说明见文档挂载CFS文件存储
- Secret
- EmptyDir(暂不支持指定
sizeLimit
,单个Pod的emptyDir可用存储空间为10GB) -
[PersistentVolumeClaim(PVC)],PVC类型当前仅支持CFS/NFS/PFS PVC挂载.暂不支持挂载CDS云磁盘。(https://kubernetes.io/docs/concepts/storage/volumes/#persistentvolumeclaim)
- NFS(CFS), 详细说明见文档挂载CFS文件存储
- PFS, 详细说明见文档挂载PFS并行文件存储
- BOS, 详细说明见文档挂载BOS数据卷
暂不支持subPath/subPathExpr挂载。
网络
配置公网访问
一个BCI Pod将占用所属VPC下的交换机的一个弹性网卡资源,默认具备一个内网IP地址。如果需要连接公网,例如需要拉取公网镜像。则需要为BCI Pod绑定EIP,或者为所属VPC绑定NAT网关,更多信息详见连接公网
K8S service
在BCI Pod中访问集群内service, 参考文档配置BCI Pod访问集群内Service;
Serverless集群中Pod访问ClusterIP的方式根据集群创建时的参数不同有所区别,详情请参考在Serverless集群中使用Service。若Cluster Service模式选择为BLB则无需在BCI Pod中注入kube-proxy sidecar。
若您的BCI服务需发布被外部访问,则参考文档通过Service访问BCI服务
更多网络配置
配置日志推送
当前BCI支持将Pod容器内日志推送到BLS,进行日志的持久化存储和结构化查询。详细配置请参考 BLS日志采集方式
配置监控
错误排查
若创建BCI Pod后,Pod状态变为ProviderFailed
,代表BCI实例创建失败。可以通过kubectl describe po <pod名称> --namespace <命名空间>
查看具体失败原因。
若创建BCI Pod后,实例状态长时间处于Creating
,一般为BCI订单异常导致,可以通过查看pod annotation中的bci.virtual-kubelet.io/order-id
字段查询到BCI订单ID,查询对应的订单失败原因。
BCI自定义annotation列表
BCI支持的anntation列表详见BCI Pod Annotation
注意:annotation需要配置在PodSpec中,而不是DeploymentSpec中。
注意:配置网络,安全组和可用区相关annotation时,需要保证相互之间的一致性,如子网与安全组应该同属一个VPC,子网与可用区参数需要匹配,等等。没有在Pod中单独配置的情况下默认使用虚拟节点本身的配置。
注意:若通过annotation指定了子网参数,必须同时通过annotation指定可用区参数,可用区参数的值为子网所属可用区。
BCI限制
由于公有云安全性及虚拟节点带来的限制,BCI目前还不支持Kubernetes中HostPath、DaemonSet等功能,如下表所示。
不支持的功能 | 说明 | 推荐替代方案 |
---|---|---|
HostPath | 挂载本地宿主机文件到容器中 | 使用emptyDir、云盘或者CFS文件系统 |
HostNetwork | 将宿主机端口映射到容器上 | BCI将忽略HostNetwork字段,推荐使用type=LoadBalancer的负载均衡 |
DaemonSet | 在容器所在宿主机上部署Static Pod | 通过sidecar形式在Pod中部署多个镜像 |
Privileged权限 | 容器拥有privileged权限 | 去除业务逻辑特权依赖 |
type=NodePort的Service | 将宿主机端口映射到容器上 | 使用type=LoadBalancer的负载均衡 |
更多文档见: 对接概述