Kubernetes 生产运维之日常管理工具
1. kubectl
-
推荐使用更便捷的管理工具: github.com/wl4g-k8s/k9s
-
查看资源
# 获取所有 namespace 的几类资源
kubectl get deploy,po,svc,gateway,virtualservice -A
# 获取单个 namespace 中所有资源
kubectl get all -n kube-logging
# 获取所有 namespace 中所有资源(不推荐)
kubectl get all -A
# 打印 Pod 所有容器的 image 信息
kubectl get po ingress-84d8c6b6c5-f4lgg --template '{{range $i,$c:=.spec.containers}}{{$c.image}}{{end}}'
# 打印 Pod 第一个 container 的 image 信息
kubectl get po ingress-84d8c6b6c5-f4lgg -o custom-columns='NAME:metadata.name,IMAGE:spec.containers[0].image'
- 运行 Pod
# 运行最简单的 nginx
kubectl run nginx --image=nginx:alpine
- 进入 Pod
kubectl -n sidecar exec -ti toolbox-68f79dd5f8-vzlnj -- bash
- 强制重启 Pod (无 yaml 时)
kubectl -n kube-system get po kube-proxy-7mj7b -o yaml | kubectl replace --force -f -
- 清理 NS 下所有资源 (常用于实验清理)
export API_RESOURCES=$(kubectl api-resources --verbs=list --namespaced -o name)
## 先查看 namespace 下所有类型的资源
echo $API_RESOURCES | xargs -n 1 kubectl get --show-kind --ignore-not-found -n myns -v5
## 一键删除 namespace 下所有类型的资源
echo $API_RESOURCES | xargs -n 1 kubectl delete --ignore-not-found -n myns --all -v5
2. istioctl
- 查看 istiod 管理的 cluster
## 查看 nginx pod 的 envoy cluster 列表
istioctl pc cluster nginx-deployment-6799fc88d8-z4sc6 -n sidecar
## 查看 nginx pod 的 envoy cluster 信息,按 fqdn 过滤,然后以 yaml 输出
istioctl pc cluster nginx-deployment-6799fc88d8-z4sc6 -n sidecar --fqdn istio-egressgateway.istio-system.svc.cluster.local -oyaml
- 查看 istiod 管理的 route
## 查看 nginx pod 的 envoy route 列表
istioctl pc route nginx-deployment-6799fc88d8-z4sc6 -n sidecar
## 查看 nginx pod 的 envoy route 信息,按 name 过滤,然后以 yaml 输出
istioctl pc route nginx-deployment-6799fc88d8-z4sc6 -n sidecar --name 80 -oyaml
3. k9s (推荐)
非常推荐它来快速便捷管理 kubernetes 集群,此工具实现了 vim 绑定(很多快捷键类似),非常容易上手。
- Installation for linux
curl -sS https://webinstall.dev/k9s | bash
-
常见实用款快捷键
/
默认搜索 Pod 资源,如kubectl get po | grep xx
ctrl+a
列出所有 Resources,选择后,然后就可以过滤该类型的资源,如kubectl api-resources
ctrl+d
查看资源的事件,如kubectl describe
y
查看资源的配置以 yaml 输出,如kubectl get po xx -oyaml
e
查看资源的配置以 yaml 输出,如kubectl edit po xx -oyaml
d
删除资源,如kubectl delete po xx
- 更多参见官方文档: github.com/derailed/k9s#key-bindings
一条评论
Administrator
goods!