服务实例

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

服务实例

1 介绍

服务实例(Pod),是服务实例运行的对象,通过服务来配置和管理。

服务实例可以在服务详情中进行查看。其中,当实例运行异常时,实例状态会显示相关的异常信息,具体可参考本文第5小节。



2 实例信息

在实例列表,可以看到实例的状态、所在的主机IP、实例的IP、创建时间。点击实例名称或"详情",进一步可以查看实例运行配置信息、监控、事件和容器进程信息。



运行信息:主要是查看到实例下容器运行的配置信息,这些配置信息通过服务中配置。

监控信息:查看实例的CPU、内存使用量、实例网络流入流出信息。这里在的监控信息只是展示实例最实时数据,历史数据需要到监控服务中进行查看。

事件:查看实例运行过程中的事件,通过事件信息,很方便排查实例异常问题。如果实例重启过,也可以看到重启次数和上次重启原因。事件信息默认保留1个小时,具体由K8S参数控制。

进程:查看实例中容器运行的进程。


3 日志

日志功能用于查看容器通过控制台终端console输出的日志,也可以日志下载到本地。这里下载的日志,是实例保存在所运行的K8S节点中的日志,如docker的json-file日志,由于docker会定期清理日志,所以下载的日志并不一定是容器从启动以来的所有日志,而是现存在node节点上的日志。


3 连接容器

可以连接到容器终端,执行Linux命令,具体可执行的命令,由容器镜像安装的命令决定。在连接容器页面,还可以上传文件到容器,或下载容器的文件到本地。


4 隔离

容器服务还实现了容器的隔离功能,如果集群服务间用服务名作为地址进行访问,当点隔离后,当前的实例将不能通过服务名访问到,也就是访问流量从服务的负载均衡中剔除掉,主要是为了保留现场,方便后续定位问题。

如果是使用微服务框架,直接是通过实例的IP和端口访问,将达不到隔离的效果,隔离后仍然会被访问到。


5 容器状态汇总

服务中的容器实例在创建、启动、运行、结束时会有相应的状态,这些状态有助于我们了解运行情况,出现问题有助于我们解决问题。

关键词状态说明
Pending等待中。系统已经接受pod实例的创建,但其中所包含容器的一个或者多个image还没有创建成功。Pending包含调度计算与通过网络创建image,所以此阶段时间可能会有点长。
ContainerCreating容器正在创建中。系统已经完成了Pod的调度,但可能需要通过网络下载镜像,这可能需要花点时间。
Running运行中。容器已经被调度到某个node上,容器已经创建并启动完成。注意:容器Running中,不代表服务可用,因为容器中的进程可能在启动中,并未准备好对外提示服务,或者健康检测还未检测到服务可用。
Unknow未知状态。无法取得pod状态,一般是网络问题引起,如超时。
ImagePullBackOff/
ErrImagePull
错误的容器镜像/非法的仓库权限。该状态出现的两个最普遍的问题是:(a)指定了错误的容器镜像(镜像 tag 不正确或镜像不存在),(b)使用私有镜像却不提供仓库认证信息。
CrashLoopBackOff容器曾经启动了,但又异常退出了。容器退出的原因有容器进程退出、健康检查失败退出等。
TerminatingPod停止中。
OOMKilledPod使用的内存超过了资源配置中的内存最大限制,被强行终止。
EvictedPod所处节点出现异常,kubernetes根据相应的机制把该Pod驱赶到其他节点。多见于资源不足时导致的驱赶。
Unschedulable/
FailedScheduling
调度失败,没有合适的节点可以运行该Pod,一般是CPU或内存资源不足。
CreateContainerConfigErrork8s资源需要的配置创建失败或者不存在,导致容器不能创建。
RunContainerError启动容器失败。比如容器中命令执行失败。
CreateContainerError创建容器失败。常见于镜像拉取超时,可以等待一会直到镜像拉取成功。

容器状态说明


下面对常见的一些状态进行说明,有助于用户在使用中进行排错。出现非Running状态时,一般查看方法是先查看容器事件,再看容器日志记录,最后看服务资源监控。

ContainerCreating 状态

如果长时间在ContainerCreating 状态,可能是下面的原因。

  • 镜像拉取时间过长。镜像太大或者网速太慢造成的,可以在容器事件中确认,原因中一直处于Pulled状态。如果是私有集群,可以到其中一个主机节点手动执行docker pull 一个镜像试一下。

  • k8s集群网络异常,无法分配到IP。需要找集群管理员协助。

  • 挂载存储异常。常见的情况是有状态服务的块存储,在重启时,旧的实例占用,导致新的实例无法挂载而一直在重试。需要找集群管理员协助。

CrashLoopBackOff 状态

CrashLoopBackOff 状态说明容器曾经启动了,但又异常退出了。此时 Pod 的 RestartCounts 通常是大于 0。当容器实例出现CrashLoopBackOff 状态时,可以查看事件和日志。

  • 容器进程退出
    在常见的情况下,是由于容器中用户的程序启动出错,未能正常启动,导致不断地重启容器。如果程序日志已经输出到控制台,可以在服务运行情况—实例列表—日志功能查看。

  • 健康检查失败退出
    可以在服务运行情况—实例列表—事件中查看

  • OOMKilled
    内存溢出,达到资源限制,系统会将容器kill掉并重启。这种情况下不一定会有日志或者事件,可以通过监控服务来辅助查看。




服务实例

1 介绍服务实例(Pod),是服务实例运行的对象,通过服务来配置和管理。服务实例可以在服务详情中进行查看。其中,当实例运行异常时,实例...
点击下载文档
上一篇:配置下一篇:应用
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息