引言
简单了解常见的查询命令格式:
kubectl get <resource> [-o wide | json | yaml] [-n namespace]
获取资源的相关信息,-n
指定命令空间,-o
指定输出格式
resource可以是具体资源名称,如pod nginx -xxx
; 或者all
(仅展示几种核心资源,并不完整)
- –all-namespaces 或-A :表示显示所有命令空间,
- –show-labels :显示所有标签
- -l app:仅显示标签为app的资源
- -l app=nginx:仅显示包含app标签, 且值为nginx的资源
1. 查询命名空间
kubfectl get namespace
2. 查询命名空间下的内容
查询命名空间下的pods:
kubectl get pods -n kubesphere-monitoring-system
查询命名空间下的service:
kubectl get service -n kubesphere-monitoring-system 或 kubectl get svc -n kubesphere-monitoring-system
查询命名空间下的configmap
(在dashboard
也可以看到):
kubectl get configmap -n kubesphere-monitoring-system
查询命名空间下的secret
(比较隐私的配置,在dashboard
也可以看到):
kubectl get secret -n kubesphere-monitoring-system
查询命名空间下特定类型的内容:
## 获取prometheus内容 kubectl get Prometheus -n kubesphere-monitoring-system ## 获取prometheus规则内容 kubectl get PrometheusRule -n kubesphere-monitoring-system
3. yaml操作
3.1 yaml查询
接着第二步,如果要获取特定查询的内容,直接使用"/"即可:
kubectl get secret/想要查询的内容 -n kubesphere-monitoring-system
后缀加上 -o yaml
就可以查询yaml
里面的内容,如下:
kubectl get secret/alertmanager-main -n kubesphere-monitoring-system -o yaml
同时也可以导出到本地文件,使用指定符">
",然后下载直接使用记事本打开即可查看:
kubectl get secret/alertmanager-main -n kubesphere-monitoring-system -o yaml > xxx.yaml
3.2 yaml编辑
从3.1步骤可以知道导出yaml
进行编辑,编辑之后上传,然后使用apply命令,即可更新内容:
kubectl apply -f xxx.yaml
也可以直接编辑文件(后缀可以不加“-o yaml
”)
kubectl edit secret/alertmanager-main -n kubesphere-monitoring-system
如果要更新指定指定字段的yaml
内容:
kubectl create secret alertmanager-main --from-file=alertmanager.yaml=xxxx.yaml
如果要删除某个字段,直接定位到行,直接连续输入如下命令即可删除整行:
dd
如果要定位到最后一行,直接Shift+G即可。
一般edit之后会自动重启,如果不放心,可以使用重启命令(直接删除节点):
kubectl delete pod alertmanager-main-0 -n kubesphere-monitoring-system
3.3 yaml删除
大致如下,delete
后跟指定的类型(如pod/nginx
):
kubectl delete PrometheusRule/disk-free-rules -n kubesphere-monitoring-system
4. 进入容器查看
命令如下,直接进入节点查看(prometheus-k8s-0
是你想要进入的节点,跟docker有点像):
kubectl exec -it prometheus-k8s-0 /bin/sh -n kubesphere-monitoring-system
5. 查询日志
查询日志命令如下:
kubectl logs -f --tail 200 pod名称
如果是多副本,后面可能要求跟上指定的容器,命令如下:
kubectl logs -f --tail 200 pod名称 -c 提示的容器名
查看事件日志:
kubectl describe pod/pod名称
6. 查询节点
看 pod 在哪个节点:
kubectl get pod -o wide