故障排查
常用的清理 Kubernetes 集群资源命令
· ☕ 2 分钟
长时间运行的集群,常会面临各种资源耗尽的问题,另外磁盘不足时 Kubelet 还会主动清理镜像增加不确定因素,本文提供了一些命令片段用于清理工作。 1. Kubernetes 基础对象清理 清理 Evicted 状态的 Pod 1 sudo kubectl get pods --all-namespaces -o wide | grep Evicted | awk '{print $1,$2}' | sudo xargs -L1 kubectl delete pod -n 清理 Error 状态的 Pod 1 sudo kubectl get pods --all-namespaces -o wide | grep

拉取 Dockerhub 镜像,无法连接 Cloudflare
· ☕ 1 分钟
1. 错误提示 在拉取镜像时,偶尔会碰到如下错误: 1 2 3 4 5 6 7 8 docker pull node:10.16-alpine 10.16-alpine: Pulling from library/node e7c96db7181b: Already exists 50958466d97a: Pulling fs layer 56174ae7ed1d: Pulling fs layer 284842a36c0d: Pulling fs layer error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2 /docker/registry/v2/blobs/sha256/b9/b95baba1cfdbfa8b789137179d8e fff08b9768f1906725a8758cf0c431b59621/data? verify=1636603895-lbb1QIruPZBdfgfhBZ95ArGK0wU%3D: dial tcp 104.18.124.25:443: i/o timeout 2. 主要解决办法 2.1 修改 DNS 地址 如果是 CentOS ,直接修改 /etc/resolv.conf 文件,新增一行 nameserver 8.8.8.8 即可。 如果是 Ubuntu ,需要修改 /etc/syste

Kubernetes 安装问题 QA
· ☕ 1 分钟
1. Calico 1.1 BIRD is not ready 1 kubectl -n kube-system get pod calico-node-xxx 0/1 一直起不来,报错 calico/node is not ready: BIRD is not ready: BGP not established with 解决办法: Calico 默认使用 first-found,也就是从第一个找到的网卡中获取 NodeIP。虽然排除了 lo、docker0 等网卡,但是依然有一定概率会识别失败。需要手动修改,

Jenkins为什么一直调度到同一个节点
· ☕ 3 分钟
1. 问题背景 在 Jenkins 中添加了很多个构建节点使用同一个 Label 以供流水线使用,但是 Jenkins 却每次都倾向于在同一个节点进行构建。 这导致了并发问题,单个节点的压力过大,而其他节点空闲,负载极其不均衡。 2. 业务流水线的设计 上述问题的产生和业务流水线的设计有一定的关系。

如何修改 Kubelet 的启动参数
· ☕ 1 分钟
1. 编辑 Kubelet 配置文件 1 vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 修改 Kubelet 相关参数 ExecStart=/usr/local/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS 可以通过如下命令查看可选的参数: 1 kubelet --help 例如需要修改,KUBELET_KUBECONFIG_ARGS 的 --sync-frequency , 同步容器配置的时钟周期,默认值是 1 min。其含义是,更新了容器挂载的配置文件 1 min 之后,容器