<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Etcd解析 Etcd是Kubernetes集群中的一個十分重要的組件,用于保存集群所有的網絡配置和對象的狀態信息。在后面具體的安裝環境中,我們安裝的etcd的版本是v3.1.5,整個kubernetes系統中一共有兩個服務需要用到etcd用來協同和存儲配置,分別是: - 網絡插件flannel、對于其它網絡插件也需要用到etcd存儲網絡的配置信息 - kubernetes本身,包括各種對象的狀態和元信息配置 **注意**:flannel操作etcd使用的是v2的API,而kubernetes操作etcd使用的v3的API,所以在下面我們執行`etcdctl`的時候需要設置`ETCDCTL_API`環境變量,該變量默認值為2。 ## 原理 Etcd使用的是raft一致性算法來實現的,是一款分布式的一致性KV存儲,主要用于共享配置和服務發現。關于raft一致性算法請參考[該動畫演示](http://thesecretlivesofdata.com/raft/)。 關于Etcd的原理解析請參考[Etcd 架構與實現解析](http://jolestar.com/etcd-architecture/)。 ## 使用Etcd存儲Flannel網絡信息 我們在安裝Flannel的時候配置了`FLANNEL_ETCD_PREFIX="/kube-centos/network"`參數,這是Flannel查詢etcd的目錄地址。 查看Etcd中存儲的flannel網絡信息: ```ini $ etcdctl --ca-file=/etc/kubernetes/ssl/ca.pem --cert-file=/etc/kubernetes/ssl/kubernetes.pem --key-file=/etc/kubernetes/ssl/kubernetes-key.pem ls /kube-centos/network -r 2018-01-19 18:38:22.768145 I | warning: ignoring ServerName for user-provided CA for backwards compatibility is deprecated /kube-centos/network/config /kube-centos/network/subnets /kube-centos/network/subnets/172.30.31.0-24 /kube-centos/network/subnets/172.30.20.0-24 /kube-centos/network/subnets/172.30.23.0-24 ``` 查看flannel的配置: ```bash $ etcdctl --ca-file=/etc/kubernetes/ssl/ca.pem --cert-file=/etc/kubernetes/ssl/kubernetes.pem --key-file=/etc/kubernetes/ssl/kubernetes-key.pem get /kube-centos/network/config 2018-01-19 18:38:22.768145 I | warning: ignoring ServerName for user-provided CA for backwards compatibility is deprecated { "Network": "172.30.0.0/16", "SubnetLen": 24, "Backend": { "Type": "host-gw" } } ``` ## 使用Etcd存儲Kubernetes對象信息 Kubernetes使用etcd v3的API操作etcd中的數據。所有的資源對象都保存在`/registry`路徑下,如下: ```ini 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。 ### 查看集群中所有的Pod信息 例如我們直接從etcd中查看kubernetes集群中所有的pod的信息,可以使用下面的命令: ```bash ETCDCTL_API=3 etcdctl get /registry/pods --prefix -w json|python -m json.tool ``` 此時將看到json格式輸出的結果,其中的`key`使用了`base64`編碼,關于etcdctl命令的詳細用法請參考[使用etcdctl訪問kubernetes數據](../guide/using-etcdctl-to-access-kubernetes-data.md)。 ## Etcd V2與V3版本API的區別 Etcd V2和V3之間的數據結構完全不同,互不兼容,也就是說使用V2版本的API創建的數據只能使用V2的API訪問,V3的版本的API創建的數據只能使用V3的API訪問。這就造成我們訪問etcd中保存的flannel的數據需要使用`etcdctl`的V2版本的客戶端,而訪問kubernetes的數據需要設置`ETCDCTL_API=3`環境變量來指定V3版本的API。 ## Etcd數據備份 我們安裝的時候指定的Etcd數據的存儲路徑是`/var/lib/etcd`,一定要對該目錄做好備份。 ## 參考 - [etcd官方文檔](https://coreos.com/etcd/docs/latest) - [etcd v3命令和API](http://blog.csdn.net/u010278923/article/details/71727682) - [Etcd 架構與實現解析](http://jolestar.com/etcd-architecture/)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看