k8s集群一些常用命令记录
2020-06-01 本文已影响0人
wowshiwoniu
日常命令记录
1. 对集群内的pod数量排序
kubectl get pods -A | awk '{print $1}' | uniq -c | sort -n
2. 获取集群内的所有镜像列表
kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}"
jsonpath 解释如下:
- .items[*]: 对于每个返回的值
- .spec: 获取 spec
- .containers[*]: 对于每个容器
- .image: 获取镜像
注意: 注意: 按名字获取单个 Pod 时,例如 kubectl get pod nginx
,路径的 .items[*]
部分应该省略,因为返回的是一个 Pod 而不是一个项目列表。
3. 观察pod部署状态
kubectl get pods --watch
或
kubectl get pods -w
该命令会监听pod部署状态,及时更新刷新,不必手动去刷新 kubectl get pods
4、创建Role并绑定
--dry-run
只是打印命令到控制台,并不真正执行
>
将打印命令重定向输入到文件内
# 创建role,具有所有资源的访问和操作权限,将运行命令导入到yaml文件并不执行
kubectl create role "tmp:reader" --verb="*" --resource="*" -n xxx --dry-run -o yaml > role.yaml
# 创建rolebinding,将role绑定到指定的namespace下,--dry-run 只是打印命令,并不真的执行
kubectl create rolebinding "tmp:reader-bind" --role="tmp:reader" -n xxx --user=xxx --dry-run -o yaml
# 创建role
kubectl create role "tmp:reader" --verb="*" --resource="*" -n xxx
# 创建rolebinding
kubectl create rolebinding "tmp:reader-bind" --role="tmp:reader" -n xxx --user=xxx
# 删除role
kubectl delete role "tmp:reader" -n xxx
# 删除rolebinding
kubectl delete rolebinding "tmp:reader-bind" -n xxx