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

目录
  • 使用jq命令对资源配置查看
  • kubernetes常用命令总结
    • kubectl常用命令
    • kubectl格式化输出
    • kubernetes集群管理指南

使用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

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

(0)

相关推荐

  • Kubernetes scheduler启动监控资源变化解析

    目录 确立目标 run Scheduler NodeName Informer Shared Informer PodInformer Reflect Summary 确立目标 理解kube-scheduler启动的流程 了解Informer是如何从kube-apiserver监听资源变化的情况 理解kube-scheduler启动的流程 代码在cmd/kube-scheduler run // kube-scheduler 类似于kube-apiserver,是个常驻进程,查看其对应的Run函

  • 二进制方式安装 Kubernetes1.18.3版本实现脚本

    目录 一.Kubernetes 简介 1.Kubernetes 架构设计图 2.Kubernetes 常见组件介绍 二.Kubernetes 二进制方式安装 1.创建 CA 证书和密钥 2.安装 ETCD 组件 1)创建 ETCD 证书和密钥 2)生成证书和密钥 3)创建启动脚本 4)启动 ETCD 3.安装 Flannel 网络插件 1)创建 Flannel 证书和密钥 2)生成证书和密钥 3)编写启动脚本 4)启动并验证 4.安装 Docker 服务 1)创建启动脚本 2)启动 Docker

  • Kubernetes Informer数据存储Index与Pod分配流程解析

    目录 确立目标 Process 查看消费的过程 Index 掌握Index数据结构 distribute 信息的分发distribute 理解一个pod的被调度的大致流程 Scheduler SchedulingQueue scheduleOne ScheduleResult 调度计算结果 Assume 初步推算 Bind 实际绑定 Update To Etcd Summary 确立目标 理解Informer的数据存储方式 大致理解Pod的分配流程 理解Informer的数据存储方式 代码在k8

  • 删除Helm使用时关于kubernetes文件的警告问题

    目录 删除Helm使用时关于kubernetes文件的警告 执行helm警告kube/config文件不安全问题 解决 删除Helm使用时关于kubernetes文件的警告 使用helm命令行时如果有以下警告信息: zhang@zhang:~$ helm ls WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /home/zhang/.kube/config WARNING:

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

    目录 使用jq命令对资源配置查看 kubernetes常用命令总结 kubectl常用命令 kubectl格式化输出 kubernetes集群管理指南 使用jq命令对资源配置查看 有图形化的直接从图形化可以看到各种资源,如Deployment.Pod等资源的配置 这里写一个 jq 命令 jq命令允许针对json进行操作,如过滤 jq命令centos环境下安装 # yum -y install jq 假设我们有个文件 # cat pod-yaml   {     "apiVersion"

  • linux下数据压缩的几种方法与查看方式(示例代码)

    1,tar命令 使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的.生成tar包后,就可以用其它的程序来进行压缩了,tar命令本身不进行数据压缩,但可以在打包或解包的同时调用其它的压缩程序,比如调用gzip.bzip2 选项: -c 创建.tar格式包文件      -x 解开.tar格式包文件      -v显示详细信息      -f 使用归档文件      -p 保留原始文件权限      -C 解压到目标文件夹      -z 调用gzip进行压缩或解

  • TensorBoard 计算图的查看方式

    Tensorflow计算图的展示: 1. 设置生成计算图,运行程序会自动生成"logs"日志文件 2. 在Terminal下输入指令 如果当前路径为程序日志路径(即"logs"所在路径),直接输入指令 tensorboard --logdir = logs 如果当前路径不是程序日志路径(即"logs"所在路径),可以 cd "日志的绝对路径"进入"logs"所在的路径,或者 直接输入指令 tensorboa

  • js执行shell命令的几种方式(Node)

    目录 前言 调起shell的几种方式介绍(不限于这几种) 1.child_process 2.shelljs 3.simple-git 总结 在做一个客户端基建项目的时候,多处需要用到JS调取命令行执行shell脚本,这里对shell命令.JS执行shell命令做一个简单的介绍和总结. 前言 一般在纯前端静态页面的项目中,是不需要JS调命令行操作的,通常在Node项目,或者在Electron客户端项目中,可能会有这样的需求.(electron这个客户端框架本身就内置了node的很多方法).因此下

  • PostgreSQL 默认权限查看方式

    如何查看PostgreSQL默认权限 当我们对Postgresql的某个用户授予默认权限时, pg_default_acl表存储要被分配给新创建对象的初始权限.你可能通过查询该表获取默认权限,先了解下官方文档的解释: 表 50-17. pg_default_acl的列: 名称 类型 引用 描述 oid oid 行标识符(隐藏属性,必须被显式选择才会显示) defaclrole oid pg_authid.oid 与此项相关的角色的OID defaclnamespace oid pg_namesp

  • Linux 下目录文件权限(命令)的查看和修改

    Linux 下目录文件权限的查看和修改 在我的服务器下面有这几个文件夹 同时用ls -l也可以查看到这几个文件的权限. 看其中的assets文件一共有十位数,其中: 最前面那个 - 代表的是类型 中间那三个 rwx 代表的是所有者(user)拥有的权限 然后那三个 rwx 代表的是组群(group)拥有的权限 最后那三个 rwx 代表的是其他人(other)拥有的权限 r 表示文件可以被读(read) w 表示文件可以被写(write) x 表示文件可以被执行(如果它是程序的话) -表示相应的权

  • Ruby实现命令行中查看函数源码的方法

    如果要查看 ActiveRecord 的 update_attribute 函数的源代码,一个比较常见的方法是直接在 Rails 源码中搜索 def update_attribute.博客 The Pragmatic Studio 介绍了一个更方便的技巧,在 Ruby 命令行中就能启动编辑器直接访问. 通过 Object#method 方法可以获得 update_attribute 方法的对象,而 Method#source_location 则返回这个方法定义的文件和位置.有了这个信息后,就能

  • MySQL初始密码的查看方式

    目录 如何查看MySQL初始密码 问题 MySQL初始密码获取 如何查看MySQL初始密码 问题 在安装MySQL过程中,以管理员身份运行cmd后进入MySQL的bin目录,然后输入命令“mysqld --initialize”后没有显示初始密码,没办法进行后续的登录怎么办? 1.打开你的MySQL的安装目录下的data文件夹(就是使用mysqld --initialize命令后自动创建的文件夹) 2.找到data文件夹下面的XXX.err文件(我这里是DESKTOP-GURKLIR.err)

  • 使用批处理for命令清除事件查看器所有Windows EventLog日志

    以前装完系统后要做个Ghost,为了达到完美,每次做Ghost前都会手动清除 事件查看器所有Windows EventLog日志. 后来使用了Windows 2008 r2/Win7后,这事变的复杂多了,所以也就没管了. 再后来有同事问到如何把他们全部清除,因为一个一个清,在Microsoft一级有很多目录,要想完全清除得半小时,并且清除后又有了,不实用. 再到今天,我在玩Hyper-V时,总看到一堆Error,鉴于之前给公司做的持续交付里,批处理大显身手,所以想应该可以使用批处理来实现, Go

  • spring boot 命令行启动的方式

    在使用spring boot 构建应用启动时,我们在工作中都是通过命令行来启动应用,有时候会需要一些特定的参数以在应用启动时,做一些初始化的操作. spring boot 提供了 CommandLineRunner 和 ApplicationRunner 这两个接口供用户使用. 1. CommandLineRunner 1.1 声明: @FunctionalInterface public interface CommandLineRunner { /** * Callback used to

随机推荐