kubernetes 使用jq命令對資源配置查看方式
使用jq命令對資源配置查看
有圖形化的直接從圖形化可以看到各種資源,如Deployment、Pod等資源的配置
這里寫一個 jq 命令
jq命令允許針對json進(jìn)行操作,如過濾
jq命令centos環(huán)境下安裝
# yum -y install jq
假設(shè)我們有個文件
# cat pod-yaml ? { ? ? "apiVersion": "v1", ? ? "kind": "Pod", ? ? "metadata": { ? ? ? ? "name": "nginx-pod", ? ? ? ? "namespace": "default" ? ? }, ? ? "spec": { ? ? ? ? "containers": [ ? ? ? ? ? ? { ? ? ? ? ? ? ? ? "image": "nginx:1.20", ? ? ? ? ? ? ? ? "imagePullPolicy": "IfNotPresent", ? ? ? ? ? ? ? ? "name": "nginx-pod", ? ? ? ? ? ? ? ? "resources": { ? ? ? ? ? ? ? ? ? ? "limits": { ? ? ? ? ? ? ? ? ? ? ? ? "cpu": "20m", ? ? ? ? ? ? ? ? ? ? ? ? "memory": "120Mi" ? ? ? ? ? ? ? ? ? ? }, ? ? ? ? ? ? ? ? ? ? "requests": { ? ? ? ? ? ? ? ? ? ? ? ? "cpu": "10m", ? ? ? ? ? ? ? ? ? ? ? ? "memory": "100Mi" ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? ] ? ? } }
我們要直接取出下面這一段
? "limits": { ? ? "cpu": "20m", ? ? "memory": "120Mi" ? }, ? "requests": { ? ? "cpu": "10m", ? ? "memory": "100Mi" ? }
可以這么執(zhí)行
# cat pod-yaml | jq .spec.containers[].resources ? 輸出: { ? "limits": { ? ? "cpu": "20m", ? ? "memory": "120Mi" ? }, ? "requests": { ? ? "cpu": "10m", ? ? "memory": "100Mi" ? } }
規(guī)律很容易看出來,就是取key的value
同樣,在查看資源時也可以這樣使用
例如查看一個pod資源限制:
查看pod名稱 # kubectl get pod NAME READY STATUS RESTARTS AGE nginx-pod 1/1 Running 0 22s 查看該pod的資源限制 # kubectl get pod/nginx-pod -o json | jq .spec.containers[].resources { "limits": { "cpu": "20m", "memory": "120Mi" }, "requests": { "cpu": "10m", "memory": "100Mi" } } 查看該Pod的容器重啟策略 # kubectl get pod/nginx-pod -o json | jq .spec.restartPolicy "Always"
kubernetes常用命令總結(jié)
k8s常用命令
kubectl常用命令
創(chuàng)建資源對象
kubectl create -f xxx.yaml(文件)、kubectl create -f <directory>(目錄下所有文件)
查看資源對象
kubectl get nodes kubectl get pods -n <namespace> -o wide
描述資源對象
kubectl describe nodes <node-name> kubectl describe pods -n <namespace> kubectl describe <pod-name> kubectl describe pods <rc-name>
刪除資源對象
kubectl delete -f <filename> kubectl delete pods,services -l name=<label-name> kubectl delete pods --all(生產(chǎn)環(huán)境慎用)
執(zhí)行容器的命令
kubectl exec <pod-name> date(默認(rèn)使用第一個容器執(zhí)行Pod的date命令) kubectl exec <pod-name> -c <container-name> date(指定Pod中的某個容器執(zhí)行date命令) kubectl exec -it <pod-name> -c <container-name> /bin/bash (相當(dāng)與docker exec -it <container-name> /bin/bash)
查看容器的日志
kubectl logs <pod-name> kubectl logs -f <pod-name> -c <container-name> (相當(dāng)于tail -f 命令)
kubectl格式化輸出
顯示Pod的更多信息
kubectl get pods -n <namespace> -o wide
以yaml格式顯示
kubectl get pods -n <namespace> -o yaml
以自定義列明顯示Pod信息
kubectl get pod <pod-name> -o =custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion
基于文件的自定義列名輸出
kubectl get pods <pod-name> -o=custom-columns-file=template.txt
輸出結(jié)果排序
kubectl get pods --sort-by=.metadata.name
kubernetes集群管理指南
node的管理
命令:
kubectl replace -f xxx.yaml kubectl patch kubectl cordon <node_name> kubectl uncordon <node_name>(對node節(jié)點的隔離和恢復(fù))
刪除節(jié)點:
kubectl drain swarm1 --delete-local-data --force --ignore-daemonsets kubectl delete node swarm1
使用:
kubectl get nodes kubectl cordon <node_name> kubectl uncordon <node_name>
Label的管理:
給node設(shè)置標(biāo)簽
- 添加:kubectl label node lustre-manager-1 node-role.kubernetes.io/minion-1=
- 刪除:kubectl label node lustre-manager-1 node-role.kubernetes.io/minion-1-
- 修改: kubectl label node lustre-manager-1 node-role.kubernetes.io/minion-1= --overwrite
給pod設(shè)置標(biāo)簽
把node改成pod即可
其他命令:
node節(jié)點加入master:
kubeadm join 192.168.138.131:6443 --token zlk694.ev3odwj7rbyaggz6 --discovery-token-ca-cert-hash sha256:eefe51ccf1c54149f5ce89423c100b1e0de8f8081c7c2c0e07a7613ef2025146
生成加入master的命令:kubeadm token create --print-join-command
刪除node節(jié)點:1)kubectl drain swarm1 --delete-local-data --force --ignore-daemonsets 2)kubectl delete node swarm1
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Istio 自動注入 sidecar 失敗導(dǎo)致無法訪問webhook服務(wù)的解決方法
最近工作中在部署Istio環(huán)境的過程中發(fā)現(xiàn)官方示例啟動的pod不能訪問不到Istio的webhook,這個問題也是困擾了我一天,我把他歸類到sidecar注入失敗的情況下,本文給大家分享問題解決方法,感興趣的朋友跟隨小編一起看看吧2023-10-10KVM虛擬化技術(shù)之virt-manager使用及KVM虛擬化平臺網(wǎng)絡(luò)模型介紹
這篇文章主要介紹了KVM虛擬化技術(shù)之virt-manager使用及KVM虛擬化平臺網(wǎng)絡(luò)模型介紹,需要的朋友可以參考下2016-10-10K8S如何利用Prometheus監(jiān)控pod的實時數(shù)據(jù)指標(biāo)
這篇文章主要給大家介紹了關(guān)于K8S如何利用Prometheus監(jiān)控pod的實時數(shù)據(jù)指標(biāo)的相關(guān)資料,Prometheus是一個開源的服務(wù)監(jiān)控系統(tǒng)和時序數(shù)據(jù)庫,其提供了通用的數(shù)據(jù)模型和快捷數(shù)據(jù)采集、存儲和查詢接口,需要的朋友可以參考下2024-01-01Kubernetes k8s configmap 容器技術(shù)解析
這篇文章主要為大家介紹了k8s configmap 容器技術(shù)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08K8s學(xué)習(xí)之Pod的定義及詳細(xì)資源調(diào)用案例
Kubernetes將所有內(nèi)容抽象為資源,通過操作資源管理集群,核心單元是Pod,通過控制器管理Pod,資源管理分為命令式對象管理、命令式對象配置和聲明式對象配置,各有適用場景,需要的朋友可以參考下2024-09-09詳解Rainbond內(nèi)置ServiceMesh微服務(wù)架構(gòu)
這篇文章主要為大家介紹了詳解Rainbond內(nèi)置ServiceMesh微服務(wù)架構(gòu),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04