您好,登錄后才能下訂單哦!
環(huán)境說明:
主機(jī)名 | 操作系統(tǒng)版本 | ip | docker version | kubelet version | 配置 | 備注 |
---|---|---|---|---|---|---|
master | Centos 7.6.1810 | 172.27.9.131 | Docker 18.09.6 | V1.14.2 | 2C2G | master主機(jī) |
node01 | Centos 7.6.1810 | 172.27.9.135 | Docker 18.09.6 | V1.14.2 | 2C2G | node節(jié)點(diǎn) |
node02 | Centos 7.6.1810 | 172.27.9.136 | Docker 18.09.6 | V1.14.2 | 2C2G | node節(jié)點(diǎn) |
?
k8s集群部署詳見:Centos7.6部署k8s(v1.14.2)集群
k8s學(xué)習(xí)資料詳見:基本概念、kubectl命令和資料分享
?k8s高可用集群部署詳見:Centos7.6部署k8s v1.16.4高可用集群(主備模式)
Kubernetes 主要由以下幾個(gè)核心組件組成:
- etcd 保存了整個(gè)集群的狀態(tài);
- apiserver 提供了資源操作的唯一入口,并提供認(rèn)證、授權(quán)、訪問控制、API注冊(cè)和發(fā)現(xiàn)等機(jī)制;
- controller manager 負(fù)責(zé)維護(hù)集群的狀態(tài),比如故障檢測(cè)、自動(dòng)擴(kuò)展、滾動(dòng)更新等;
- scheduler 負(fù)責(zé)資源的調(diào)度,按照預(yù)定的調(diào)度策略將Pod調(diào)度到相應(yīng)的機(jī)器上;
- kubelet 負(fù)責(zé)維護(hù)容器的生命周期,同時(shí)也負(fù)責(zé)Volume(CVI)和網(wǎng)絡(luò)(CNI)的管理;
- Container runtime 負(fù)責(zé)鏡像管理以及Pod和容器的真正運(yùn)行(CRI);
- kube-proxy 負(fù)責(zé)為Service提供cluster內(nèi)部的服務(wù)發(fā)現(xiàn)和負(fù)載均衡
kubectl 是 Kubernetes 的命令行工具(CLI),是 Kubernetes 用戶和管理員必備的管理
工具。該kubectl工具控制Kubernetes集群管理器。它可以讓您檢查集群資源,創(chuàng)建、刪除和更新組
件以及更多功能。kubectl 提供了大量的子命令,方便管理 Kubernetes 集群中的各種功能。
- kubectl -h 查看子命令列表
- kubectl options 查看全局選項(xiàng)
- kubectl <command> --help 查看子命令的幫助
- kubectl [command] [PARAMS] -o=<format> 設(shè)置輸出格式(如 json、yaml、jsonpath 等)
- kubectl explain [RESOURCE] 查看資源的定義
krew
是一個(gè)用來管理 kubectl 插件的工具,類似于 apt 或 yum,支持搜索、安裝和管理kubectl 插件。
[root@master ~]# yum -y install git
set -x; cd "$(mktemp -d)" &&
curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/download/v0.3.2/krew.{tar.gz,yaml}" &&
tar zxvf krew.tar.gz &&
./krew-"$(uname | tr '[:upper:]' '[:lower:]')_amd64" install \
--manifest=krew.yaml --archive=krew.tar.gz
可能由于網(wǎng)絡(luò)原因介質(zhì)無法下載,已上傳github:https://github.com/loong576/krew-for-kubectl.git
[root@master ~]# export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"
可以永久寫的用戶的環(huán)境變量文件,避免登出后失效。
[root@master ~]# kubectl plugin list
The following compatible plugins are available:
/root/.krew/bin/kubectl-krew
安裝完成
[root@master ~]# kubectl krew update
Updated the local copy of plugin index.
[root@master ~]# kubectl krew search
[root@master ~]# kubectl krew search crt
搜索全部插件和模糊搜索
[root@master ~]# kubectl krew install get-all
[root@master ~]# kubectl krew install ns tail
[root@master ~]# kubectl krew list
PLUGIN VERSION
get-all v1.2.1
krew v0.3.2
ns v0.7.1
tail v0.10.1
[root@master ~]# kubectl krew info ns
NAME: ns
URI: https://github.com/ahmetb/kubectx/archive/v0.7.1.tar.gz
SHA256: 6df4def2caf5a9c291310124098ad6c4c3123936ddd4080b382b9f7930a233ec
VERSION: v0.7.1
HOMEPAGE: https://github.com/ahmetb/kubectx
DESCRIPTION:
Also known as "kubens", a utility to set your current namespace and switch
between them.
CAVEATS:
\
| If fzf is installed on your machine, you can interactively choose
| between the entries using the arrow keys, or by fuzzy searching
| as you type.
|
| See https://github.com/ahmetb/kubectx for customization and details.
/
[root@master ~]# kubectl krew upgrade ns
Updated the local copy of plugin index.
F1118 17:21:47.271927 81116 root.go:58] failed to upgrade plugin "ns": can't upgrade, the newest version is already installed
更新插件ns,由于是最新版所以更新失敗,可通過命令'kubectl krew upgrade'更新全部插件
[root@master ~]# kubectl
kubectl kubectl-get_all kubectl-krew kubectl-ns kubectl-tail
[root@master ~]# kubectl ns weave
[root@master ~]# kubectl-ns default
裝完插件后可通過命令kubectl <plugin-name> 或者kubectl-<plugin-name> 使用插件,比如'kubectl ns weave'和'kubectl-ns default'都可以切換默認(rèn)表空間
[root@master ~]# kubectl-get_all
該命令類似'kubectl get all --all-namespaces',但更全。
[root@master ~]# kubectl-tail
[root@master ~]# kubectl-tail --ns default
[root@master ~]# kubectl-tail --rs kubeapps-8fd98f6f5
[root@master ~]# kubectl-tail --rs kubeapps/kubeapps-8fd98f6f5
tail為輸出pod日志,以上命令分別為:輸出全部pod日志、輸出所有命名空間default的pod日志、輸出全部命名空間中所有replicaset為kubeapps-8fd98f6f5的pod日志、輸出命名空間為kubeapps且replicaset為kubeapps-8fd98f6f5的pod日志。
[root@master ~]# kubectl krew uninstall tail
Uninstalled plugin tail
卸載插件tail
rm -rf ~/.krew
[root@master ~]# kubectl krew version
OPTION VALUE
GitTag v0.3.2
GitCommit bd754e1
IndexURI https://github.com/kubernetes-sigs/krew-index.git
BasePath /root/.krew
IndexPath /root/.krew/index
InstallPath /root/.krew/store
DownloadPath /tmp/krew-downloads
BinPath /root/.krew/bin
[root@master ~]# rm -rf /root/.krew
?
?
本文所有腳本和配置文件已上傳:k8s實(shí)踐(十三):kubectl插件管理工具krew
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。