Kubernetes
常用 Kubernetes 命令,复制,粘贴,这就是生活。
- 复制 secret 到另一个 namespace。
kubectl get secret mys --namespace=na -oyaml | grep -v '^\s*namespace:\s' | kubectl apply --namespace=nb -f -
- 批量删除 pod。
kubectl get pods --all-namespaces | grep Evicted | awk '{print $2 " --namespace=" $1}' | xargs kubectl delete pod
# Delete by label
kubectl delete pod -n idaas-book -l app.kubernetes.io/name=idaas-book
- 原地重启 Pod。
kubectl rollout restart deploy/xxx -n your-namespace
- 命令行快速扩缩容。
# kubectl scale -h
kubectl scale --replicas=1 deploy/xxx -n your-namespace
- 密钥解密。
kubectl get secret my-creds -n mysql -o jsonpath="{.data.ADMIN_PASSWORD}" | base64 --decode
- 合并多个 kube config 文件。
export KUBECONFIG=~/.kube/config:~/.kube/anotherconfig
kubectl config view --flatten > ~/.kube/config-all
cp ~/.kube/config-all ~/.kube/config
# 顺手把权限改了,避免 helm 或 kubectl 客户端 warning
chmod 600 ~/.kube/config
- 获取某个 namespace 下的全部资源,找出你看不见的资源,常用于 webhook/CR/CRD 等资源清理,解决强制删除失败。
ns=your-namespace
for resource in `kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get -o name -n $ns`; do
kubectl get $resource -n $ns;
# kubectl patch $resource -p '{"metadata": {"finalizers": []}}' --type='merge' -n $ns;
done
- 根据特定字段排序 Pod 列表。
# 根据重启次数排序
kubectl get pods --sort-by='.status.containerStatuses[0].restartCount' -A
Prev
IntroductionNext
总体架构