创建服务常见问题
服务的名称为什么不能重复?
服务名称是当前集群下的服务的唯一标识,服务之间可以通过服务名称+访问端口的形式互相访问。
创建服务能否使用非腾讯云或 dockerhub 镜像的第三方镜像?
您可以通过登录到主机执行 docker login 命令登录到第三方镜像仓库拉取。
使用外网服务的有什么前置条件?
确保集群内的云服务器拥有外网带宽,否则外网服务将创建失败。
内存限制,CPU 限制如何填写?
创建服务时的特权级是什么意思?
开启该选项会使得容器内程序具有真正的 root 权限。在容器内程序需要进行高级系统操作时建议开启,如搭建 nfs 服务器。
负载均衡可以在创建时就指定安全组吗?
可以,目前支持以下两个方案,实现服务使用负载均衡时指定安全组:
可在服务中通过 TkeServiceConfig
配置安全组,负载均衡创建时会根据配置使用对应安全组。如需使用此功能,请 提交工单 进行申请。 说明:
集群内进行服务访问时,建议不要通过负载均衡 IP 进行访问,以避免出现访问不通的情况。
一般情况下,4层负载均衡会绑定多台 Node 作为 real server(rs) ,使用时需要限制 client 和 rs 不能存在于同一台云服务器上,否则会有一定概率导致报文回环失败。
当 Pod 去访问负载均衡时,Pod 为源 IP,当其传输到内网时负载均衡也不会做 snat 处理将源 IP 转化为 Node IP,则负载均衡收到报文时无法判断是哪个 Node 发送的,避免回环策略就无法生效,所有的 rs 都可能被转发。当转发到 client 所在的 Node 上时,负载均衡就无法收到回包,从而导致访问不通。
更新服务容器数量常见问题
更新容器数量需注意哪些问题?
需确认 CPU、内存资源充足,否则容器将创建失败。
能否将容器数量设为0?
可以,通过将容器数量设置为0,保存服务配置并且释放资源占用。
更新服务配置常见问题
更新服务是否支持滚动更新?
支持滚动更新和快速更新两种方式。
公网负载均衡可以切换为内网负载均衡吗?
注意:
若为服务负责负载均衡资源的生命周期管理,则负载均衡及其公网 IP 将会被释放。
公网切换内网的过程并不是瞬间的,公网负载均衡服务下线到内网负载均衡并提供服务,此过程需要一定的时间。建议您先在集群中配置一个内网服务资源,并进行测试。等到流量切换完成之后,再删除原有公网服务资源。
删除服务常见问题
删除服务后服务创建的负载均衡会自动销毁么?
删除服务时,将会同时删除创建该服务时自动创建的负载均衡。若在创建服务时选用的是已有负载均衡,则该负载均衡将不会受到任何影响。
删除服务是否会影响业务数据?
删除服务不会删除业务容器,数据不会受到影响,该操作无需提前备份数据。
服务运行常见问题
如何设置容器系统时间为北京时间?
容器默认使用 UTC 时间,使用容器时经常碰到容器系统时间和北京时间差8小时的问题,解决方法是在 dockerfile 中创建时区文件。详情请参见 解决容器内时区不一致问题。 Dockerhub 部分镜像如 ubuntu、php 和 busybox 等在容器服务里运行异常怎么办?
运行异常是因为没有设置启动命令或者默认的启动命令为 bash,导致容器执行完启动程序就退出了。要使容器一直运行,容器里 PID 为1的进程必须是常驻进程,否则 PID 为1的进程一结束容器就退出了。对于部分镜像如 centos 等,可以使用 /bin/bash 作为运行命令, -c sleep 800000 作为运行参数来创建服务,在控制台填运行参数时 -c 和 sleep 800000 必须放在两行。
目前已知的使用默认参数启动不了服务的镜像包括这些:clearlinux、ros、mageia、amazonlinux、ubuntu、clojure、crux、gcc、photon、java、debian、oraclelinux、mono、bash、buildpack-deps、golang、sourcemage、swift、openjdk、centos、busybox、docker、alpine、ibmjava、php和python。
容器执行 perf top -p 查看进程 CPU 情况提示 “Operation not permitted”
容器执行 perf top -p
查看进程 CPU 情况提示 “Operation not permitted”,如下图所示:
Docker 默认配置文件阻止了重要的系统调用,perf_event_open 可能会泄漏主机上的大量信息所以被禁止使用。如果您需要调用请配置特权容器或者直接修改 Pod yaml 字段 privileged 为 true,您需自行评估安全风险。
本页内容是否解决了您的问题?