2019独角兽企业重金招聘Python工程师标准>>>
Kubernetes的集群元数据都保存在etcd中,我们可以直接访问来查看数据。
1、查看etcd数据
kubeadm默认安装
方法如下:
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/deployments/default --prefix --keys-only
因为Kubernetes中的etcd 实例使用了https,需要指定证书等信息,即cacert/cert/key参数。
上面的参数是在使用kubeadm默认安装时,证书位于宿主机的/etc/kubernetes/pki目录下,在安装etcdctl-client后就可以使用上面的命令来访问了。
cfssl证书安装
使用cfssl证书安装的etcd集群,证书的目录可以自己定,证书格式是*.pem。方法如下:
ETCDCTL_API=3 etcdctl --endpoints=https://[10.1.1.202]:2379 \
--cacert=/etc/kubernetes/pki/etcd-certs/ca.pem \
--cert=/etc/kubernetes/pki/etcd-certs/client.pem \
--key=/etc/kubernetes/pki/etcd-certs/client-key.pem \
get /registry/deployments/default --prefix --keys-only
我这里将证书放在了/etc/kubernetes/pki/etcd-certs目录下。
2、迁移etcd数据
使用etcd make-mirror命令来完成。
下面的命令将使用kubeadm安装的etcd实例数据传送到使用cfssl安装的etcd集群中。
ETCDCTL_API=3 etcdctl make-mirror \
--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 \
--dest-cacert=/etc/kubernetes/pki/etcd-certs/ca.pem \
--dest-cert=/etc/kubernetes/pki/etcd-certs/client.pem \
--dest-key=/etc/kubernetes/pki/etcd-certs/client-key.pem \
https://[10.1.1.202]:2379
然后,可以使用上面1的方法来查看数据。
3、更多参考
- 脚本参见:https://github.com/openthings/kubernetes-tools/etcd
- Kubernetes集群的主节点备份与恢复
- Kubernetes探秘-etcd节点和实例扩容
- Kubernetes探秘—etcd状态数据及其备份
- Kubernetes 1.13.1的etcd集群扩容实战技巧
- Kubernetes探秘—配置文件目录结构
- etcd集群备份和数据恢复