从对象中提取特定字段
kubectl 使用 JSONPath 查询语言来选择返回对象中的字段。 JSONPath 的完整细节超出了本章的范围,但作为示例,此命令将提取并打印指定 Pod 的 IP 地址:
$ kubectl get pods my-pod -o jsonpath –template={.status.podIP}
如果您对有关特定对象的更多详细信息感兴趣,请使用 describe 命令:
$ kubectl describe <resource-name> <obj-name>
这将为对象以及 Kubernetes 集群中的任何其他相关对象和事件提供丰富的多行可读描述。
创建、更新和销毁
Kubernetes 对象
Kubernetes API 中的对象表示为 JSON 或 YAML 文件。这些文件要么由服务器返回以响应查询,要么作为 API 请求的一部分发布到服务器。您可以使用这些 YAML 或 JSON 文件来创建、更新或删除对象。
Kubernetes server
假设您有一个简单的对象存储在obj.yaml 中。您可以使用 kubectl 通过运行以
下命令在 Kubernetes 中创建此对象:
$ kubectl apply -f obj.yaml
请注意,您不需要指定对象的资源类型;它是从目标文件本身获得的。
同样,在对对象进行更改后,您可以再次使用 apply 命令来更新对象:
$ kubectl apply -f obj.yaml
应用工具只会修改不同于集群中的当前对象。如果您正在创建的对象已经存在于集群中,它将直接成功退出而不做任何更改。这对于您要确保集群的状态与文件系统的状态相匹配。您可以重复使用 apply 来协调状态。如果您想在不实际进行更改的情况下查看应用命令将执行的操作,您可以使用 ‑‑dry‑run 标志来打印将对象发送到终端而不实际将它们发送到服务器。
如果您想进行交互式编辑而不是编辑本地文件,您可以改用编辑命令,它将下载最新的对象状态和
然后启动一个包含定义的编辑器
$ kubectl edit <resource-name> <obj-name>
保存文件后,它会自动上传回 Kubernetes cluster
apply 命令还会在对象内的注释中记录先前配置的历史记录。您可以使用
edit‑last‑applied、set‑last applied 和 view‑last‑applied 命令操作这些记录。例如:
kubectl apply -f myobj.yaml view-last-applied
将向您显示应用于对象的最后状态。
当你想删除一个对象时,你可以简单地运行:
$ kubectl delete -f obj.yaml
需要注意的是,kubectl 不会提示你确认删除。发出命令后,对象将被删除。
同样,您可以使用资源类型和名称删除对象:
$ kubectl delete <resource-name> <obj-name>