1. 添加K8S 自动补全命令
yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
2. flannel网络插件Pending
1).我遇到的错是:- --iface=*
不能匹配所有机器,更改yaml文件
$ vi kube-flannel.yml
...
containers:
- name: kube-flannel
image: 10.168.1.232:5000/coreos/flannel:v0.11.0-amd64
command:
- /opt/bin/flanneld
args:
- --ip-masq
- --kube-subnet-mgr
- --iface=ens33 # 节点1的网卡
- --iface=ens32 # 节点2的网卡把所有机器的网卡都列举出来
resources:
requests:
cpu: "100m"
...
2).更改flannel网络为host-g模式
#修改flannel的网络
$ kubectl edit cm kube-flannel-cfg -n kube-system
# 删除网络pod,自动重建
$ kubectl -n kube-system delete pod kube-flannel-ds-amd64-4thh5 kube-flannel-ds-amd64-85qsn kube-flannel-ds-amd64-92znh
$ kubectl -n kube-system get pod
3. K8S 删除cattle-system的namespace为Terminating状态解决方案
删除Rancher依赖的namespace(cattle-system),状态一直是Terminating。无法重新添加
[root@kuiper-master kubernetes]# kubectl get namespace
NAME STATUS AGE
cattle-fleet-system Active 29d
cattle-impersonation-system Active 29d
cattle-system Active 29d
default Active 30d
dev Active 25d
ingress-nginx Active 28d
istio-system Active 15d
jenkins Active 27d
kube-node-lease Active 30d
kube-public Active 30d
kube-system Active 30d
local Active 29d
logging Active 29d
monitor Active 28d
mps-cloud Active 5d23h
test Active 16d
解决办法
kubectl patch namespace cattle-system -p '{"metadata":{"finalizers":[]}}' --type='merge' -n cattle-system
kubectl delete namespace cattle-system --grace-period=0 --force
kubectl patch namespace cattle-global-data -p '{"metadata":{"finalizers":[]}}' --type='merge' -n cattle-system
kubectl delete namespace cattle-global-data --grace-period=0 --force
kubectl patch namespace local -p '{"metadata":{"finalizers":[]}}' --type='merge' -n cattle-system
for resource in `kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get -o name -n local`; do kubectl patch $resource -p '{"metadata": {"finalizers": []}}' --type='merge' -n local; done
kubectl delete namespace local --grace-period=0 --force
4 Docker容器中清理
docker image prune
- 清理none镜像(虚悬镜像)
- docker image prune 没被标记且没被其它任何镜像引用的镜像
docker image prune -a
- 清理无容器使用的镜像
- 默认情况下,系统会提示是否继续。要绕过提示,请使用 -f 或 --force 标志。
- 可以使用 --filter 标志使用过滤表达式来限制修剪哪些镜像。例如,只考虑 24 小时前创建的镜像
$ docker image prune -a --filter "until=24h"
- 查看cpu 占用情况:
ps -eo pid,ppid,%mem,%cpu,cmd --sort=-%cpu | head