kubernetes的API对象的数据都保存在etcd中,本章实战如何查看这些数据;

环境信息

实战环境的版本信息如下,请确保以下软件都已运行正常:

  1. 操作系统 :CentOS Linux release 7.6.1810
  2. Kubernetes:1.13
  3. Go版本:1.12

实际操作的机器可以用kubectl操作k8s,并且已经安装了Go 1.12版本;

准备工作

  1. 下载etcd,地址是:https://github.com/etcd-io/etcd/releases ,选3.3.10版本,如下图:
  2. 解压后找到etcdctl文件,将其放入$GOPATH\bin目录,记得执行chown命令给予可执行权限;

    现在准备工作已经完成,接下来试试etcdctl工具查看etcd数据;

查看etcd数据的实际操作

执行查询时前缀是固定的,如下所示,使用这个前缀再加上etcd的查找命令即可成功查询:

ETCDCTL_API=3 ./etcdctl --endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt \
--key=/etc/kubernetes/pki/etcd/healthcheck-client.key
  1. 查看所有etcd的所有key,执行以下命令:
ETCDCTL_API=3 etcdctl \
--endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt \
--key=/etc/kubernetes/pki/etcd/healthcheck-client.key \
get / --prefix --keys-only

查到的结果如下:

[root@master ~]# ETCDCTL_API=3 etcdctl \
> --endpoints=https://127.0.0.1:2379 \
> --cacert=/etc/kubernetes/pki/etcd/ca.crt \
> --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt \
> --key=/etc/kubernetes/pki/etcd/healthcheck-client.key \
> get / --prefix --keys-only
/registry/apiregistration.k8s.io/apiservices/v1./registry/apiregistration.k8s.io/apiservices/v1.apps/registry/apiregistration.k8s.io/apiservices/v1.authentication.k8s.io/registry/apiregistration.k8s.io/apiservices/v1.authorization.k8s.io/registry/apiregistration.k8s.io/apiservices/v1.autoscaling/registry/apiregistration.k8s.io/apiservices/v1.batch/registry/apiregistration.k8s.io/apiservices/v1.networking.k8s.io
...
  1. 查看指定key的内容,如果您的系统用的是flannel网络插件,可以执行以下命令查看相关数据:
ETCDCTL_API=3 etcdctl \
--endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt \
--key=/etc/kubernetes/pki/etcd/healthcheck-client.key \
get /registry/configmaps/kube-system/kube-flannel-cfg

看到的数据如下所示:

[root@master ~]# ETCDCTL_API=3 etcdctl \
> --endpoints=https://127.0.0.1:2379 \
> --cacert=/etc/kubernetes/pki/etcd/ca.crt \
> --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt \
> --key=/etc/kubernetes/pki/etcd/healthcheck-client.key \
> get /registry/configmaps/kube-system/kube-flannel-cfg
/registry/configmaps/kube-system/kube-flannel-cfg
k8sv1      ConfigMap?
?
kube-flannel-cfgkube-system"*$c2b898e2-3a58-11e9-86b5-000c292593442????Z
appflannelZtiernodeb?
0kubectl.kubernetes.io/last-applied-configuration?{"apiVersion":"v1","data":{"cni-conf.json":"{\n  \"name\": \"cbr0\",\n  \"plugins\": [\n    {\n      \"type\": \"flannel\",\n      \"delegate\": {\n        \"hairpinMode\": true,\n        \"isDefaultGateway\": true\n      }\n    },\n    {\n      \"type\": \"portmap\",\n      \"capabilities\": {\n        \"portMappings\": true\n      }\n    }\n  ]\n}\n","net-conf.json":"{\n  \"Network\": \"10.244.0.0/16\",\n  \"Backend\": {\n    \"Type\": \"vxlan\"\n  }\n}\n"},"kind":"ConfigMap","metadata":{"annotations":{},"labels":{"app":"flannel","tier":"node"},"name":"kube-flannel-cfg","namespace":"kube-system"}}
z?
cni-conf.json?{"name": "cbr0","plugins": [{"type": "flannel","delegate": {"hairpinMode": true,"isDefaultGateway": true}},{"type": "portmap","capabilities": {"portMappings": true}}]
}
Z
net-conf.jsonI{"Network": "10.244.0.0/16","Backend": {"Type": "vxlan"}
}
"

如上所示,有少量不可见字符,这是因为etcd中存储的并不是json的原文,而是protocol buffer序列化后的数据,不过还是有部分内容是可读的;
3. 查看节点信息,如下所示,当前环境有master和node0两个节点:

[root@master ~]# ETCDCTL_API=3 etcdctl \
> --cacert=/etc/kubernetes/pki/etcd/ca.crt \
> --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt \
> --key=/etc/kubernetes/pki/etcd/healthcheck-client.key \
> get /registry/minions/ --prefix --keys-only
/registry/minions/master/registry/minions/node0
  1. 执行以下命令可以查看node0节点的信息,由于结果中有很多序列化之后的不可读字符,就不把结果贴出来了:
ETCDCTL_API=3 etcdctl \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt \
--key=/etc/kubernetes/pki/etcd/healthcheck-client.key \
get /registry/minions/node0

etcd中的key及其含义

关于kubernetes的etcd中有哪些key以及它们的含义,可以这篇文章中有更详细的说明:https://jakubbujny.com/2018/09/02/what-stores-kubernetes-in-etcd/

至此,kubernetes环境下如何查看etcd存储的数据的实战就完成了,希望能够帮助您快速查看k8s系统的数据。

欢迎关注我的公众号:程序员欣宸

查看k8s的etcd数据相关推荐

  1. K8s基础12——etcd数据备份与恢复、集群版本升级、网络策略

    文章目录 一.etcd备份与恢复 1.1 kubeadm部署方式 1.1.1 备份 1.1.2 恢复 1.2 单etcd二进制部署方式 1.2.1 部署 1.2.2 备份 1.2.3 恢复 1.2.4 ...

  2. k8s 的etcd备份、CoreDNS和dashboard安装,集群升级,yaml详解

    前言:本文k8s环境搭建是采用kubeasz 3.2.0方式二进制部署的,这个种部署方式是经过CNCF(云原生基金会)认证的,可以用在生产上,本演示环境已装好k8s和calico 安装包链接:http ...

  3. 查看某个方法在哪里被调用_一篇文章带你查看并处理Pandas数据

    今天我们将一下如何查看Pandas中的各类数据以及对Pandas进行处理的一些方法,通过这些方法我们可以更快的掌握Pandas对数据进行处理: 描述与统计 函数应用 修改列/行索引名称 类型的操作 表 ...

  4. tstringlist怎么查看是否存在该数据_财务报表审计该如何进行?

    财务报表审计顾名思义便是对财务报表进行审计.一般来说,财务报表审计的优点是为了掌握公司的全体运营情况以及查看好公司的一切财物或者现金的情况,以防存在什么问题为企业运营开展带来危险.一般,财务报表审计与 ...

  5. SQL2K数据库开发十五之表操作查看表中的数据

    1.可以使用SELECT语句查询表中的数据.如在查询分析器中执行SELECT * FROM Products语句就可以查询Products表中的数据,如下图: 2.如在企业管理器中查询表中数据,则要展 ...

  6. 直播粉丝统计平台 抖音直播粉丝 如何查看直播间的粉丝人数 如何查看主播直播数据记录

    该开源项目提供了一个基于 web 的抖音直播粉丝统计平台,用户可以使用该平台查看直播过程中的实时粉丝数量,以及每个粉丝的等级.停留时长.粉丝名称和抖音号等信息.此外,该平台还提供了查看历史直播数据的功 ...

  7. 在AIX或Linux下,如何查看磁盘是否包含数据?

    在AIX或Linux下,如何查看磁盘是否包含数据? 真题1.在AIX或Linux下,如何查看磁盘是否包含数据? 答案:在AIX下,可以使用lquerypv -h来查看磁盘是否包含数据,或磁盘头是否被d ...

  8. html如何查看json数据,浏览器如何查看json格式的数据?查看方法分享

    用户在使用浏览器的时候不仅仅只是搜索自己想要的内容,在项目开发的时候就需要用户查看更多接口的数据,查看的数据就会比较乱,用户可以使用手机在平台上快速使用,马上就可以帮助用户想要的数据,那么要如何才能查 ...

  9. android info命令,5.查看APK里面的数据库命令   2015/10/28

    查看APK里面的数据库命令2015/10/28 Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation.保留所有权利. ...

最新文章

  1. Shell-06 函数
  2. rust建的怎么拆除_农民为什么建简易房?
  3. JAVA抽象类为什么可以有构造_抽象类为什么可以有构造函数?- Constructor of an abstract class in C#(转载)...
  4. case zhen语句_switch case语句,switch case用法详解
  5. Java 中的List动态转Map集合
  6. 【转】C# HttpWebRequest 异常时获取 HttpWebResponse 数据
  7. 程序员》推荐C++ 图书三人谈
  8. fread和fwrite函数
  9. mysql第二条减第一条_Mysql SQL优化
  10. MySQL如何按天统计数据,没有记录的天自动补充0
  11. 修改服务器编码和oracle编码,修改oracle 数据服务器编码
  12. Linux服务器校准时间
  13. 关于spring框架
  14. 百旺智能编码_【百旺开票软件税控盘版】百旺金税盘开票软件下载 v2020 最新版本-趣致软件园...
  15. A股主要指数的市盈率(PE)估值高度
  16. 如何安装python_如何安装Python?(第一节)
  17. phpnow mysql_phpnow重新安装mysql数据库的方法
  18. 邮箱校验以及电话号码校验
  19. JavaWeb HTTP状态 405 - 方法不允许
  20. Cutecom无法打开USB串口

热门文章

  1. python opencv手势识别_OpenCV+Python3.5 简易手势识别的实现
  2. CSS学习笔记 01、CSS3基础知识学习
  3. linux 自启动 快捷键,linux自定义快捷键、文件打开方式、文件快捷方式、启动器及开机启动...
  4. ACdream 之ACfun 题解
  5. 计算机未来设计建筑,未来设计的趋势解析,参数化设计及创意设计案例欣赏
  6. 让ppsx幻灯片进入可编辑状态
  7. Springboot 拦截器链 - 加载拦截器
  8. 教你唱千千阙歌,粤语版的
  9. 4G 工业路由器并入cisco专网
  10. 计算机辅助项目管理实验论文,计算机辅助项目管理课程设计—毕设论文.doc