在 kubernetes 1.6 中,etcd v3 中的信息存储,我使用“etcdctl get”命令获取信息如下:
我的问题是如何反序列化信息?如何通过“protoc --raw”命令反序列化信息?我在一个网站上阅读了这篇论文:
“您有我们在使用 etcd2 防止 protobuf 存储中捕获并修复的异常数据,它是 base64 编码的 protobuf(etcd2 不支持存储二进制值)。在 1.6 中我们默认为支持二进制值的 etcd3 模式,并且默认存储在“application/vnd.kubernetes.protobuf”,这是值的以下形式
4 个字节 -
k8s\x00
runtime.Unknown (pkg/runtime/types.go#Unknown) 的 protobuf 编码 *“typeMeta”字段设置为与 API 返回的 kind 和 apiVersion 相同的值 *“raw”字段设置为由 typeMeta 标识的 golang 结构的 protobuf 编码字节 - 没有幻数您可以使用以下方法对此进行解码:
head -4(去除幻数)| protoc --raw(解码proto)
然后,您也可以使用 protoc 解码原始正文。”
但我不知道如何执行它,有人知道吗?