首页 > 其他分享 >etcd 操作

etcd 操作

时间:2022-11-11 16:44:17浏览次数:32  
标签:key kubernetes -- etc etcd 操作 pki

查看k8s集群数据

ETCDCTL_API=3 /usr/local/bin/etcdctl  --cacert=/etc/etcd/ssl/ca.pem --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem --endpoints="https://xxxx,https://xxxx:2379,https://xxxx:2379" get / --prefix --keys-only

 

查看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
2
3
4
查看所有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
1
2
3
4
5
6
查到的结果如下:

[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
...

查看指定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
k8s

v1 ConfigMap?
?
kube-flannel-cfg
kube-system"*$c2b898e2-3a58-11e9-86b5-000c292593442????Z
appflannelZ

tiernodeb?
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



执行以下命令可以查看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系统的数据。
————————————————
版权声明:本文为CSDN博主「程序员欣宸」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/boling_cavalry/article/details/88958242

标签:key,kubernetes,--,etc,etcd,操作,pki
From: https://www.cnblogs.com/gaoyuechen/p/16880984.html

相关文章

  • Elasticsearch_API操作
     Elasticsearch的Java客户端非常强大;它可以建立一个嵌入式实例并在必要时运行管理任务。运行一个Java应用程序和Elasticsearch时,有两种操作模式可供使用。该应用程序可在El......
  • etcd member操作
    查看集群中存在的节点$etcdctlmemberlist8e9e05c52164694d:name=dev-master-01peerURLs=http://localhost:2380clientURLs=http://localhost:2379isLeader=true删......
  • 【JSR269实战】之编译时操作AST,修改字节码文件,以实现和lombok类似的功能
    参考:https://blog.csdn.net/justry_deng/article/details/106176181maven编译不成功。笔者日常****:兄弟姐妹们,还是尽量少熬夜啊。我感觉我记性有所下降,难受。需求说......
  • GCC-1——内嵌原子操作
    一、GCC内嵌原子操作翻译5.44用于原子内存访问的内置函数以下内置函数旨在与英特尔安腾处理器特定应用程序二进制接口第7.4节中描述的函数兼容。因此,它们偏离了使用......
  • 操作系统速成——5.设备管理
    五.设备管理5.1设备管理的目标使用方便、效率高、管理同意、与设备无关  5.2IO设备分类存储设备或输入输出设备块设备或字符设备低速中速高速设备 IO控制方式......
  • java通过cglib动态生成实体bean的操作
    转载自:https://www.jb51.net/article/205882.htm maven依赖:12345678910<dependency>      <groupId>commons-beanutils</groupId>   ......
  • Go实现栈与队列基本操作
    @目录一前言二实现栈与队列基本操作2.1栈基本操作2.2队列基本操作三用栈实现队列3.1理论3.2算法题3.3思路3.4代码部分四用队列实现栈4.1理论4.2算法题4.3思路......
  • 基于redis的分布式锁中的setnx+expire非原子操作问题
    基于redis的分布式锁,性能和稳定性都非常好.但是redis中setnx+expire是非原子操作,除了用LUA脚本保证实现原子操作,其实可以直接使用redis自带的set方法直接实现.setn......
  • 封装好的返回操作消息提醒工具类
    packagecom.ruoyi.common.core.domain;importcom.baomidou.mybatisplus.core.metadata.IPage;importcom.ruoyi.common.utils.StringUtils;importjava.util.Collec......
  • CS1752 无法嵌入互操作类型“XXXXClass“。请改适用的接口
    在打开.Net项目时应用其他库有的提示这个问题,这个原因是由于引入的属性中,有一个“嵌入操作类型”设置 设置为false即可。......