中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

K8S核心組件(jian)etcd詳(xiang)解(下)

1 k8s如何使用etcd

在k8s中(zhong)所(suo)有(you)對象的(de)manifest都需(xu)要保存到(dao)某個地方,這(zhe)樣(yang)他們的(de)manifest在重啟和(he)失敗的(de)時候才不會丟失。

只有api server能訪(fang)問(wen)(wen)etcd,其它組件只能間接訪(fang)問(wen)(wen)etcd的好處(chu)是

  • 增強樂觀鎖系統及驗證系統的健壯性
  • 方便后續存儲的替換,只需修改api server組件的相關接口。

etcd是一(yi)個響應快、分布(bu)式、一(yi)致的(de)K-V存儲,也是k8s存儲集群狀態和(he)元(yuan)數據的(de)唯(wei)一(yi)地方。

 

 

2 如何更方便地使用etcdctl命令

etcd接口(kou)有和(he)(he)兩個版(ban)本(ben),從Kubernetes1.6開始默認etcd版(ban)本(ben)都為v3,v2和(he)(he)v3接口(kou)不兼容,因此(ci)使用etcdctl操作我們要確認好api版(ban)本(ben)。

[root@k8s-master01 ~]# yum install etcd -y ##安裝etcd服務,下載后會自帶客戶端工具etcdctl[root@k8s-master01 ~]# etcdctl --versionetcdctl version: 3.3.11
API version: 2
[root@k8s-master01 ~]# export ETCDCTL_API=3 ##設置api版本為v3
[root@k8s-master01 ~]# etcdctl version ##不同接口使用的命令也有差異
etcdctl version: 3.3.11
API version: 3.3

 

 

另(ling)外在k8s中使(shi)用etcdctl連接etcd中要用到(dao)ca證書進(jin)行(xing)認證,而(er)且還需(xu)要指(zhi)定etcd節(jie)點ip和端口信息,這(zhe)就使(shi)得整個命令(ling)執行(xing)起來(lai)非常的冗長。

我們(men)可以把相應的信息(xi)通(tong)過變(bian)量定義,這樣在etcdctl命令在執(zhi)行時可以根據相關的變(bian)量獲取需要(yao)的信息(xi)。

[root@k8s-master01 ~]# cat /etc/profile.d/etcd
export ETCDCTL_API=3
export ETCDCTL_CACERT=/etc/kubernetes/pki/etcd/ca.crt
export ETCDCTL_CERT=/etc/kubernetes/pki/etcd/server.crt
export ETCDCTL_KEY=/etc/kubernetes/pki/etcd/server.key
export ETCDCTL_ENDPOINTS=//10.0.107.77:2379,//10.0.113.204:2379,//10.0.87.66:2379
[root@k8s-master01 ~]# source /etc/profile.d/etcd
[root@k8s-master01 ~]# etcdctl member list
15c808b23512a31a, started, k8s-master02, //10.0.107.77:2380, //10.0.107.77:2379
5ca9692dbcd57e55, started, k8s-master03, //10.0.113.204:2380, //10.0.113.204:2379
f8b45063ae1a7dfa, started, k8s-master01, //10.0.87.66:2380, //10.0.87.66:2379

 

 

3 查看k8s儲存在etcd中的數據

資源都存儲(chu)在/registry下

[root@k8s-master01 ~]# etcdctl get --prefix / --keys-only|head -10 ##--keys-only表示只看key,相對應的--print-value-only表示只看value

 

 

查看/registry/pods下的內容,通過輸出結果可以看出。key的命名規則為
/registry/pods/namespace_name/pod_name

[root@k8s-master01 ~]# etcdctl get --prefix /registry/pods --keys-only|head -10

 

 

查看kube-system命(ming)名空(kong)間下的條(tiao)目

[root@k8s-master01 ~]# etcdctl get --prefix /registry/pods/kube-system --keys-only|head -10

 

 

4 查看某個pod的值

在k8s中,pod等資源的value是以protobuf格式存(cun)儲(chu)的,因此我們(men)無法直接使用etcdctl命令去查詢,會出現亂碼現象。

 

 

對此提供(gong)了(le)一個工具etcdhelper來解碼(ma)proto格式(shi)的內容。下(xia)面鏈接提供(gong)了(le)OpenShift官方的go源碼(ma)文件,需要編譯成可(ke)執行文件,放到/usr/local/bin目錄后就可(ke)以直接使用。

etcdhelper編譯

[root@k8s-master01 ~]# wget //github.com/openshift/origin/archive/refs/heads/master.zip
[root@k8s-master01 ~]# unzip master.zip
[root@k8s-master01 ~]# cd origin-master/tools/etcdhelper/
[root@k8s-master01 etcdhelper]# ls
etcdhelper.go OWNERS README.md
[root@k8s-master01 etcdhelper]# go build etcdhelper.go
[root@k8s-master01 etcdhelper]# ls
etcdhelper etcdhelper.go OWNERS README.md
[root@k8s-master01 etcdhelper]# cp etcdhelper /usr/local/bin/

 

 


etcdhelper使用方法與etcdctl類似,也(ye)需要(yao)指定(ding)k8s的ca文件路(lu)徑,默認直接連接本機的2789端口進行查(cha)詢(xun)。

另外要注(zhu)意具(ju)體的get查詢命令要放到(dao)最后,否則命令無法正常執行

[root@k8s-master01 ~]# etcdhelper -cacert /etc/kubernetes/pki/etcd/ca.crt -cert /etc/kubernetes/pki/etcd/server.crt -key /etc/kubernetes/pki/etcd/server.key get /registry/pods/kube-system/etcd-k8s-master01

通過查詢結果我們可以看到,etcd中存儲了(le)pod etcd-k8s-master01的(de)元數據(ju)信(xin)息(xi)(xi),包括類型(xing)、api版(ban)本(ben)、名字、命名空間等信(xin)息(xi)(xi)。

 

posted @ 2025-10-29 14:31  singless233  閱讀(7)  評論(0)    收藏  舉報