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 

    • 相关阅读:
      asp.net MVC 3/4 equivalent to a response.filter
      Asp.net MVC Request Life Cycle
      无法完成你的itunes store 请求发生未知错误50
      苹果Mac OS X系统十三年视觉变化发展史
      authentication not supported Connect to TFS Git from Xamarin Studio (non-hosted, locally installed TFS 2013)
      iOS开发者帐号申请指南
      Apple Developer Registration and DUNS Number Not Accepted
      apple developer D-U-N-S® Number
      苹果企业开发者账号申请记录
      D-U-N-S申请流程
    • 原文地址:https://www.cnblogs.com/wxmdevelop/p/10559236.html
    Copyright © 2011-2022 走看看