距离上一次更新该文章已经过了 646 天,文章所描述的內容可能已经发生变化,请留意。
网站记录
K8S训练营
kubectl自动补全以及命令大全
kubectl自动补全以及命令大全github地址
k8s中文文档1
k8s中文文档2
k8s API 参考
关于Deployment的资源文件编写
plaintext
1 | 1,在Deployment中必须写matchLables, |
指令记录
k8s 清理namespace(命名空间)资源
plaintext
1 | 1. 查找所有当前namespace下的资源 |
查看集群的CPU和内存资源的声明占用情况
可以使用下面的指令进行查看和过滤
bash
1 | kubectl describe node |grep -E '((Name|Roles):\s{6,})|(\s+(memory|cpu)\s+[0-9]+\w{0,2}.+%\))' |
下图是对k8s集群的检查结果。可以明显地看到,所有的worker节点的内存Requests都已经达到99%,剩余的1%不足1G

container执行指令
bash
1 | kubectl exec podName -c containerName -n namespace -- <shell comand> |
replace和aplly的区别
bash
1 | kubectl replace 的执行过程,是使用新的 YAML 文件中的 API 对象,替换原有的 API 对象(前提是有这个原有api对象, 否则会报错) |
删除标签
bash
1 | kubectl describe node <node> |grep Labels |
查看pod中的容器
bash
1 | kubectl get pods sapi-customer-696cc7cc8f-6frfc -n sopei-biz -o jsonpath={.spec.containers[*].name} |
重启pod
bash
1 | kubectl get pod {podname} -n {namespace} -o yaml | kubectl replace --force -f - |
查询某个node节点下{NAME_SPACE}
所有pod的资源使用情况以及每个pod所在节点名称
bash
1 | # sort -nrk 3:按cpu使用情况倒序 |
为什么当一个节点故障时,一个 Pod 需要大于 5 分钟时间才能被重新调度?#
这是因为下列默认 Kubernetes 设置共同产生的效果:
- kubelet
node-status-update-frequency
:设置 kubelet 上报节点信息给 master 的频率。(默认 10s)
- kube-controller-manager
node-monitor-period
:NodeController 中 NodeStatus 的同步周期(默认 5s)node-monitor-grace-period
:节点被认定为不健康前,节点不作响应的总的时间。(默认 40s)pod-eviction-timeout
:优雅删除故障节点上容器的周期。(默认 5m0s)
获取更多信息请参阅
- Kubernetes:kubelet
- Kubernetes: kube-controller-manager
- Kubernetes Kubelet 状态更新机制 node-status-update-frequency
在 Kubernetes v1.13 版本中,TaintBasedEvictions
特性是默认开启的。请查阅 Kubernetes: Taint based Evictions 获取更多信息。
- kube-apiserver (Kubernetes v1.13 版本及以后)
default-not-ready-toleration-seconds
: 表示 notReady:NoExecute 容忍的容忍时间。notReady:NoExecute 被默认添加到没有该容忍的所有 Pod。default-unreachable-toleration-seconds
: 表示 unreachable:NoExecute 容忍的容忍时间。unreachable:NoExecute 被默认添加到没有该容忍的所有 Pod。
解决办法
可以参考下面这个示例调整tolerationSeconds
时间:
bash
1 | https://raw.githubusercontent.com/kingsd041/rancher-k3s/master/demo-busybox.yaml |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小五的个人杂货铺!