云服务器内容精选

  • 简介 CCE集群成功将负载弹性到CCI运行起负载后,用户可以通过CCE的“CCE Log Collector”插件来收集pod的日志,提升工作负载的可观测性。通过阅读本章用户可以快速搭建日志平台,在CCE的日志观测CCI侧日志。 弹性到CCI的负载会默认开启容器标准输出采集并上报到 应用运维管理 AOM 每月赠送每个租户500M的免费日志存储空间,超过500M时将根据实际使用量进行收费,计费规则请参见产品价格详情。 若要关闭标准输出采集可通过在Pod annotation中指定log.stdoutcollection.kubernetes.io: '{"collectionContainers": []}'实现,参考示例: kind: Deployment apiVersion: apps/v1 metadata: name: test namespace: default spec: replicas: 1 template: metadata: annotations: log.stdoutcollection.kubernetes.io: '{"collectionContainers": []}' spec: containers: - name: container-1 image: nginx:latest
  • 约束与限制 使用场景 使用说明 CCE内容器日志采集 + CCI集群容器日志采集 CCE集群内的工作负载支持三种日志采集类型: 容器标准输出:采集集群内指定容器日志,仅支持Stderr和Stdout的日志。 容器文件日志:采集集群内指定容器内的文件日志。 节点文件日志:采集集群内指定节点路径的文件。 须知: 弹性到CCI的工作负载仅支持“容器文件日志”类型的采集策略。 不支持采集的日志文件类型 不支持容器中软链路径的日志采集。 pod通过指定系统、设备、cgroup、tmpfs等挂载目录下的日志无法被采集。 弹性CCI的pod关联多个日志采集策略 为了更好的采集日志,建议为pod预留充足内存。pod被第一个日志策略关联请预留至少50MiB内存。每增加一个关联日志采集策略,建议多预留5MiB内存。 超长日志采集 单条日志最大容量为250KB,超过会被丢弃。 日志采集文件名 audit.log,oss.icAgent.trace,oss.script.trace,audit_*.log这几类日志默认不采集,请勿使用以上几类命名采集日志。 超长日志文件名 容器中长度超过190的日志文件无法被采集。容器中长度在180~190范围的日志文件仅支持采集第一个文件。 日志采集速率 单个Pod单行日志采集速率不超过10000条/秒,多行日志不超过2000条/秒。 最大采集文件数 单个Pod所有日志采集策略监听的文件数不超过2000个文件。 容器停止前日志采集 当容器被停止时,如果出现因网络延迟、资源占用多等原因导致的采集延时,可能会丢失容器停止前的部分日志。
  • 操作步骤 安装“云原生日志采集插件”和“CCE 突发弹性引擎 (对接 CCI)”插件。 登录CCE控制台。 选择CCE集群,单击进入CCE集群总览页面。 在导航栏左侧单击“插件中心”,进入插件中心首页。 选择“CCE 突发弹性引擎 (对接 CCI)”插件,单击“安装”。 在安装配置中需要勾选“网络互通”功能。 选择“云原生日志采集插件”,单击“安装”。 创建弹性到CCI的负载。 在导航栏左侧单击“工作负载”,进入工作负载首页。 单击“创建工作负载”,具体操作步骤详情请参见创建工作负载。 填写基本信息并完成工作负载创建。更多创建弹性到CCI负载的方式,请参考调度负载到CCI。 配置日志采集策略。 在导航栏左侧单击“日志中心”,进入日志中心首页。 单击“日志采集策略”,进入日志采集策略创建的界面。 配置具体日志采集策略,完成后单击“确定”。 弹性到CCI的Pod不支持日志策略热更新,更新日志采集策略后需要重新部署弹性到CCI的Pod才可生效。 查看弹性到CCI的pod yaml。 为支持CCI pod日志被采集到日志中心,CCE插件CCE Log Collector为pod注入了如下四个annotation: annotation 示例值 coordinator.cci.io/inject-volumes '[{"name":"log-agent-conf","configMap":{"name":"log-agent-cci-logging-config","defaultMode":384},"namespace":"monitoring"},{"name":"log-agent-cert","secret":{"secretName":"log-agent-ca-secret","defaultMode":384},"namespace":"monitoring"}]' logconf.k8s.io/fluent-bit-configmap-reference monitoring-log-agent-cci-logging-config logconfigs.logging.openvessel.io '{"testcci001":{"container_files":{"container-1":"/var/test/*/*.log"},"regulation":""}}'' sandbox-volume.openvessel.io/volume-names log-agent-conf,log-agent-cert 在日志中心查看日志上报。 CCE集群日志中心更详细的用法可以参考CCE插件CCE Log Collector相关文档指导。
  • CCE集群pod与CCI集群中pod通过service互通的使用指导 安装插件,勾选”网络互通“功能。 安装成功后租户账号下会自动创建负载均衡器,可以通过网络控制台进行查看。 创建弹性CCI侧pod,并配置service发布。 为了方便验证,镜像选择暴露容器80端口的nginx。 为工作负载配置service。推荐自动创建新的负载均衡器,以避免和插件自动创建的elb产生冲突。 通过CCE集群控制台,获取该负载的访问方式。 创建CCE侧pod,并配置service发布。方法请参考步骤2,不选择弹性CCI标签。 验证网络互访。 创建弹性CCI的工作负载,镜像选择含有curl命令的镜像,如centos。 通过CCI侧进入该容器,执行图中命令,观测CCI访问CCE service网络打通。 图1 访问CCI pod的service 图2 访问CCE pod的service 同理创建CCE侧pod,镜像选择含有curl命令的镜像,如centos。执行相同的命令。观测CCE访问CCI service网络打通。
  • 约束与限制 使用共享VPC的CCE集群不支持开启“网络互通”功能。 使用CCE集群中的Bursting插件对接CCI 2.0服务,支持配置独享型ELB的Ingress,不支持配置ELB类型的Service。 当前网络互通能力依赖sidecar容器的启动,因此在初始化容器中暂不支持使用网络互通能力,且业务容器如果使用preStart、postStart功能阻塞后续容器的启动会导致网络互通能力异常。 跨CCE和CCI实例Service网络互通只支持集群内访问(ClusterIP)类型。不支持在init-container中访问CCE侧ClusterIP service。 跨CCE和CCI实例,在对接LoadBalancer类型的Service或Ingress时: 禁止指定健康检查端口,在CCE集群下,由于CCI的容器与CCE的容器在ELB注册的后端使用端口不一致,指定健康检查端口会导致部分后端健康检查异常。 跨集群使用Service对接同一个ELB的监听器时,需确认健康检查方式,避免服务访问异常。 跨CCE和CCI实例,在对接共享型LoadBalancer类型的Service时,需要放通node安全组下100.125.0.0/16网段的容器端口。 当前对接LoadBalancer类型的Service或Ingress仅支持auto和enforce调度策略。
  • 约束与限制 metrics-server无法采集到通过bursting插件弹性到CCI 2.0上的Pod的监控数据,可能会影响HPA工作。如果HPA无法正常工作,请参考弹性伸缩进行处理。 从CCE bursting弹到CCI 2.0的pod,与从CCI 2.0前端或API创建的pod,如非必要,命名空间和pod名请勿同时重复,这将导致CCI 2.0侧的pod监控数据异常。从CCE侧查看pod的监控不受影响。