zoukankan      html  css  js  c++  java
  • k8s 学习笔记 etcd


    1. Etcd

    Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息。在后面具体的安装环境中,我们安装的etcd的版本是v3.1.5,整个kubernetes系统中一共有两个服务需要用到etcd用来协同和存储配置,分别是:

    • 网络插件flannel、对于其它网络插件也需要用到etcd存储网络的配置信息
    • kubernetes本身,包括各种对象的状态和元信息配置

    注意:flannel操作etcd使用的是v2的API,而kubernetes操作etcd使用的v3的API,所以在下面我们执行etcdctl的时候需要设置ETCDCTL_API环境变量,该变量默认值为2

    2. 使用Etcd存储Kubernetes对象信息

    Kubernetes使用etcd v3的API操作etcd中的数据。所有的资源对象都保存在/registry路径下,如下:

    Kubernetes使用etcd v3的API操作etcd中的数据。所有的资源对象都保存在/registry路径下,如下:

    ThirdPartyResourceData apiextensions.k8s.io apiregistration.k8s.io certificatesigningrequests clusterrolebindings clusterroles configmaps controllerrevisions controllers daemonsets deployments events horizontalpodautoscalers ingress limitranges minions monitoring.coreos.com namespaces persistentvolumeclaims persistentvolumes poddisruptionbudgets pods ranges replicasets resourcequotas rolebindings roles secrets serviceaccounts services statefulsets storageclasses thirdpartyresources 

    如果你还创建了CRD(自定义资源定义),则在此会出现CRD的API。 

     3. etcd

    Kubenretes1.6中使用etcd V3版本的API,使用etcdctl直接ls的话只能看到/kube-centos一个路径。需要在命令前加上ETCDCTL_API=3这个环境变量才能看到kuberentes在etcd中保存的数据。

    ETCDCTL_API=3 etcdctl get /registry/namespaces/default -w=json|python -m json.tool 

    如果是使用 kubeadm 创建的集群,在 Kubenretes 1.11 中,etcd 默认使用 tls ,这时你可以在 master 节点上使用以下命令来访问 etcd :

    ETCDCTL_API=3 etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt  --cert=/etc/kubernetes/pki/etcd/peer.crt  --key=/etc/kubernetes/pki/etcd/peer.key  get /registry/namespaces/default -w=json | jq . 

      打印方法:

      我们使用kubectl命令获取的kubernetes的对象状态实际上是保存在etcd中的,使用下面的脚本可以获取etcd中的所有kubernetes对象的key:

      注意,我们使用了ETCD v3版本的客户端命令来访问etcd。

      #!/bin/bash # Get kubernetes keys from etcd export ETCDCTL_API=3 keys=`etcdctl get /registry --prefix -w json|python -m json.tool|grep key|cut -d ":" -f2|tr -d '"'|tr -d ","` for x in $keys;do   echo $x|base64 -d|sort done 

    • 相关阅读:
      JS基本语法---while循环---练习
      JS基本语法---while循环
      JS基础语法---分支语句总结
      Python开发坦克大战
      基于Python的face_recognition库实现人脸识别
      10个Python 初学者必知编码小技巧
      论如何用python发qq消息轰炸虐狗好友
      Python + Selenium +Chrome 批量下载网页代码修改【新手必学】
      Python爬取mc皮肤【爬虫项目】
      Python 分发包中添加额外文件【新手必学】
    • 原文地址:https://www.cnblogs.com/wxmdevelop/p/10559236.html
    Copyright © 2011-2022 走看看