使用kubectl-sae工具管理应用实例Pod

SAE的应用实例对应于Kubernetes的Pod资源类型。本文介绍如何使用kubectl-sae工具管理SAE应用实例,并提供相关的K8s YAML配置文件示例。

前提条件

已安装kubectl-sae工具,并配置AccessKey ID、AccessKey Secret、应用部署地域,详见安装与配置kubectl-sae工具

管理应用实例

kubectl-sae工具支持查看、删除应用实例,但不支持创建、更新应用实例。

查看应用实例列表

执行以下命令,查看指定应用下的实例列表。

kubectl-sae get pod ${instance-id} -n ${namespace} -l sae.aliyun.com/app-name=${app-name}
# ${instance-id}为实例ID,如果不指定实例ID,则获取范围内所有实例。
# ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间。
# ${app-name}为应用名称,如果不通过-l指定应用名称,则获取范围内所有应用的实例。

输出结果的字段说明如下:

字段

说明

NAME

实例ID。

READY

已准备就绪的实例数 / 总实例数,准备就绪是指已通过Readiness探针检查。

STATUS

实例的状态,Running表示实例正在运行。

RESTARTS

重启次数。

AGE

实例的存在时间。

查看应用实例详情

kubectl-sae工具支持使用getdescribe命令查看应用实例详情。返回结果中包含应用实例的配置项,详情请参考K8s YAML配置项说明

通过get命令查看应用实例配置信息

kubectl-sae get pod ${instance-id} -o {yaml | json} -n ${namespace}
# ${instance-id}为实例ID
# -o参数指定返回结果的格式
# ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间

通过describe命令查看应用实例详情

kubectl-sae describe pod ${instance-id} -n ${namespace}
# ${instance-id}为实例ID
# ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间

查看应用实例日志

kubectl-sae logs ${instance-id} -n ${namespace}
# ${instance-id}为实例ID
# ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间

进入应用实例控制台

kubectl-sae exec -it ${instance-id} /bin/bash -n ${namespace}
# ${instance-id}为实例ID
# ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间

删除应用实例

kubectl-sae delete pod ${instance-id} -n ${namespace}
# ${instance-id}为实例ID
# ${namespace}为命名空间ID,如果不通过-n参数指定命名空间,则默认使用default命名空间

K8s YAML配置项说明

SAE的应用实例对应于Kubernetes的Pod资源类型。相关K8s YAML配置项说明详见下表。

配置项

说明

metadata.name

实例ID。

metadata.namespace

实例所在的命名空间。

metadata.uid

实例ID。

metadata.labels

使用固定格式如下:

  labels:
    sae.aliyun.com/app-name: ${应用名}

metadata.ownerReferences

实例所属的Deployment应用。

使用固定格式如下:

  ownerReferences:
  - apiVersion: apps/v1
    kind: Deployment
    name: ${应用名}
    uid: ${应用ID}

spec.containers

SAE不支持Sidecar,只显示主容器信息。

status.podIP

实例IP。