常用运维命令收集
常用的运维命令收集
服务器
- 查看服务器磁盘中占用>500M的文件
find / -type f -size +500M -exec ls -lh {} \; 2>/dev/null | awk '{ print $9 ": " $5 }'
- 查找服务器文件,并且忽略权限不足导致的输出
find / -name [文件地址/可以使用通配符] 2>/dev/null
K8s
-
删除所有因Evicted原因失败的pod:删除内容【Evicted】可以更换
kubectl get pods --all-namespaces --field-selector=status.phase=Failed -o jsonpath='{.items[?(@.status.reason=="Evicted")].metadata.name}' | xargs -I {} kubectl delete pod {} --grace-period=0 --force --namespace {}
-
docker进入容器内并指定账号角色为root
docker exec -it --user root xxxxxx sh
-
查看docker images中所有的arm架构的镜像
docker images --format "{{.Repository}}:{{.Tag}} {{.ID}}" | \
while read repo_tag image_id; do
if docker image inspect "$image_id" --format '{{.Architecture}}' | grep -q 'arm'; then
echo "$repo_tag ($image_id)"
fi
done
- 查看docker images中所有的arm架构镜像并且删除
docker images --format "{{.Repository}}:{{.Tag}} {{.ID}}" | \
while read repo_tag image_id; do
if docker image inspect "$image_id" --format '{{.Architecture}}' | grep -q 'arm'; then
echo "Deleting $repo_tag ($image_id)"
docker rmi -f "$image_id"
fi
done
-
调试容器网络
在命名空间下临时启动一个pod调试网络
kubectl run -i --tty debug \ --image=deploy.bocloud.k8s:40443/alpine/curl:latest \ --restart=Never \ --namespace=axpaas \ --rm --command -- /bin/sh \
-
使用sidecar调试容器网络
# spec.template.spec.containers 下增加一个调试容器,例如: apiVersion: apps/v1 kind: Deployment metadata: name: my-deployment namespace: axpaas spec: replicas: 1 selector: matchLabels: app: myapp template: metadata: labels: app: myapp spec: containers: - name: main-app image: your-app-image:latest ports: - containerPort: 8080 - name: debug-sidecar image: deploy.bocloud.k8s:40443/alpine/curl:latest command: ["/bin/sh"] args: ["-c", "while true; do sleep 3600; done"] resources: limits: cpu: "100m" memory: "128Mi" requests: cpu: "50m" memory: "64Mi"
# 进入 debug-sidecar 容器
kubectl exec -it <pod-name> -n axpaas -c debug-sidecar -- /bin/sh
- 使用
Ephemeral Containers
调试容器网络(v1.16+)kubectl debug <pod-name> -n axpaas --image=deploy.bocloud.k8s:40443/alpine/curl:latest --target=<主容器名>