服务实例

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 | 容器曾经启动了,但又异常退出了。容器退出的原因有容器进程退出、健康检查失败退出等。 |
| Terminating | Pod停止中。 |
| OOMKilled | Pod使用的内存超过了资源配置中的内存最大限制,被强行 |
服务实例
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



