Kubernetes

Kubernetes 生产运维之日常管理工具

1. kubectl

# 获取所有 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

一条评论

留言

您的电子邮箱地址不会被公开。