kubernetes 使用jq命令对资源配置查看方式

 更新时间:2022年11月30日 10:16:52   作者:我的喵叫初六  
这篇文章主要介绍了kubernetes 使用jq命令对资源配置查看方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

使用jq命令对资源配置查看

有图形化的直接从图形化可以看到各种资源,如Deployment、Pod等资源的配置

这里写一个 jq 命令

jq命令允许针对json进行操作,如过滤

jq命令centos环境下安装

# yum -y install jq

假设我们有个文件

# cat pod-yaml
 
{
    "apiVersion": "v1",
    "kind": "Pod",
    "metadata": {
        "name": "nginx-pod",
        "namespace": "default"
    },
    "spec": {
        "containers": [
            {
                "image": "nginx:1.20",
                "imagePullPolicy": "IfNotPresent",
                "name": "nginx-pod",
                "resources": {
                    "limits": {
                        "cpu": "20m",
                        "memory": "120Mi"
                    },
                    "requests": {
                        "cpu": "10m",
                        "memory": "100Mi"
                    }
                }
            }
        ]
    }
}

我们要直接取出下面这一段

  "limits": {
    "cpu": "20m",
    "memory": "120Mi"
  },
  "requests": {
    "cpu": "10m",
    "memory": "100Mi"
  }

可以这么执行

# cat pod-yaml | jq .spec.containers[].resources
 
输出:
{
  "limits": {
    "cpu": "20m",
    "memory": "120Mi"
  },
  "requests": {
    "cpu": "10m",
    "memory": "100Mi"
  }
}

规律很容易看出来,就是取key的value

同样,在查看资源时也可以这样使用

例如查看一个pod资源限制:

查看pod名称
# kubectl get pod
NAME        READY   STATUS    RESTARTS   AGE
nginx-pod   1/1     Running   0          22s
 
 
查看该pod的资源限制
# kubectl get pod/nginx-pod -o json | jq .spec.containers[].resources
{
  "limits": {
    "cpu": "20m",
    "memory": "120Mi"
  },
  "requests": {
    "cpu": "10m",
    "memory": "100Mi"
  }
}
 
 
查看该Pod的容器重启策略
# kubectl get pod/nginx-pod -o json | jq .spec.restartPolicy
"Always"

kubernetes常用命令总结

k8s常用命令

kubectl常用命令

创建资源对象

kubectl create -f xxx.yaml(文件)、kubectl create -f <directory>(目录下所有文件)

查看资源对象

kubectl get nodes
kubectl get pods -n <namespace> -o wide

描述资源对象

kubectl describe nodes <node-name>
kubectl describe pods -n <namespace> kubectl describe <pod-name>
kubectl describe pods <rc-name>

删除资源对象

kubectl delete -f <filename>
kubectl delete pods,services -l name=<label-name>
kubectl delete pods --all(生产环境慎用)

执行容器的命令

kubectl exec <pod-name> date(默认使用第一个容器执行Pod的date命令)
kubectl exec <pod-name> -c <container-name> date(指定Pod中的某个容器执行date命令)
kubectl exec -it <pod-name> -c <container-name> /bin/bash (相当与docker exec -it <container-name> /bin/bash)

查看容器的日志

kubectl logs <pod-name>
kubectl logs -f <pod-name> -c <container-name> (相当于tail -f 命令)

kubectl格式化输出

显示Pod的更多信息

kubectl get pods -n <namespace> -o wide

以yaml格式显示

kubectl get pods -n <namespace> -o yaml

以自定义列明显示Pod信息

kubectl get pod <pod-name> -o =custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion

基于文件的自定义列名输出

kubectl get pods <pod-name> -o=custom-columns-file=template.txt

输出结果排序

kubectl get pods --sort-by=.metadata.name

kubernetes集群管理指南

node的管理

命令:

kubectl replace -f xxx.yaml
kubectl patch
kubectl cordon <node_name> kubectl uncordon <node_name>(对node节点的隔离和恢复)

删除节点:

kubectl drain swarm1 --delete-local-data --force --ignore-daemonsets
kubectl delete node swarm1

使用:

kubectl get nodes
kubectl cordon <node_name> kubectl uncordon <node_name>

Label的管理:

给node设置标签

  • 添加:kubectl label node lustre-manager-1 node-role.kubernetes.io/minion-1=
  • 删除:kubectl label node lustre-manager-1 node-role.kubernetes.io/minion-1-
  • 修改: kubectl label node lustre-manager-1 node-role.kubernetes.io/minion-1= --overwrite

给pod设置标签

把node改成pod即可

其他命令:

node节点加入master:

kubeadm join 192.168.138.131:6443 --token zlk694.ev3odwj7rbyaggz6 --discovery-token-ca-cert-hash 

sha256:eefe51ccf1c54149f5ce89423c100b1e0de8f8081c7c2c0e07a7613ef2025146

生成加入master的命令:kubeadm token create --print-join-command

删除node节点:1)kubectl drain swarm1 --delete-local-data --force --ignore-daemonsets 2)kubectl delete node swarm1

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • k8s部署Pyroscope并分析golang性能瓶颈(最新推荐)

    k8s部署Pyroscope并分析golang性能瓶颈(最新推荐)

    这篇文章主要介绍了k8s部署Pyroscope并分析golang性能瓶颈,Pyroscope支持多种编程语言并提供了丰富的性能数据,可以帮助我们跟踪应用程序的执行情况,并根据收集到的数据来识别性能瓶颈,需要的朋友可以参考下
    2023-04-04
  • Harbor高可用配置及仓库使用介绍

    Harbor高可用配置及仓库使用介绍

    这篇文章主要为大家介绍了Harbor高可用配置及仓库使用介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 在AWS-EC2中安装Minikube集群的详细过程

    在AWS-EC2中安装Minikube集群的详细过程

    这篇文章主要介绍了在AWS-EC2中安装Minikube集群,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • K8s如何拉取habor镜像

    K8s如何拉取habor镜像

    这篇文章主要介绍了K8s如何拉取habor镜像,在daemon.json中添加仓库地址,需要在创建资源对象所在的节点进行添加,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • centos7部署k8s集群1.28.2版本完整步骤

    centos7部署k8s集群1.28.2版本完整步骤

    部署Kubernetes集群需要多台物理机或虚拟机,每个节点至少需要2个CPU、2GB内存和20GB硬盘空间,这篇文章主要给大家介绍了关于centos7部署k8s集群1.28.2版本的相关资料,需要的朋友可以参考下
    2024-01-01
  • KubeSphere分级管理实践及解析

    KubeSphere分级管理实践及解析

    这篇文章主要为大家介绍了KubeSphere分级管理实践及解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • 如何在kubernetes中创建Pod

    如何在kubernetes中创建Pod

    这篇文章主要介绍了如何在kubernetes中创建Pod,帮助大家更好的理解和学习使用kubernetes,感兴趣的朋友可以了解下
    2021-04-04
  • k8s中kubeconfig的配置以及使用详解

    k8s中kubeconfig的配置以及使用详解

    每当与集群交互的时候少不了的是身份认证,使用kubeconfig(即证书)和token两种认证方式是最简单也最通用的认证方式,下面这篇文章主要给大家介绍了关于k8s中kubeconfig的配置以及使用的相关资料,需要的朋友可以参考下
    2022-01-01
  • Spark三种属性配置方式详解

    Spark三种属性配置方式详解

    有时间还是多学习知识比较好,这篇文章主要介绍了Spark三种属性配置方式详解,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • kubernetes需要默认的serviceaccount的原因解析

    kubernetes需要默认的serviceaccount的原因解析

    这篇文章主要介绍了kubernetes为何需要默认的serviceaccount,ServiceAccount 是 Kubernetes 中的一种重要概念,它的实际使用场景包括很多,本文给大家讲解的非常详细,需要的朋友可以参考下
    2023-04-04

最新评论