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 

    • 相关阅读:
      python3安装 MAC
      MacOS三个比较接地气实用的终端命令
      maya界面字体怎么设置大小?
      Mac 下 Android Studio 连 夜神模拟器 调试以及真机调试方法
      [macOS] Mojave10.14 夜神安卓模拟器启动问题
      解决MAC电脑系统设置的安全性与隐私下通用没有任何来源选项
      一个分析“文件夹”选择框实现方法的过程
      windows下nginx+php简单配置
      使用windbg抓取崩溃文件和分析的过程
      解决工作中遇到的一个"打开,保存"文件框的bug的过程
    • 原文地址:https://www.cnblogs.com/wxmdevelop/p/10559236.html
    Copyright © 2011-2022 走看看