查看k8s使用的Cgroup Driver

这篇文章指导读者定位并查看Kuberneteskubelet的配置文件,特别是--cgroup-driver参数,以确定Cgroup驱动程序的使用情况。默认情况下,如果没有设置该参数,系统会使用cgroupfs驱动。若使用kubeadm安装,配置文件可能位于/etc/systemd/system/kubelet.service.d/10-kubeadm.conf。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、找到配置文件位置

进入到 Kubernetes 的 master 节点或者任一节点。

运行以下命令查看 kubelet 配置文件路径:

ps -aux | grep kubelet

2、查看配置文件

进入 kubelet 配置文件所在目录,如 /etc/kubernetes/

查看 kubelet 的配置文件,找到 --cgroup-driver 参数,如下所示:

cat /etc/kubernetes/kubelet.conf | grep cgroup-driver

cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf | grep cgroup-driver

如果 Kubernetes 是用 kubeadm 工具安装,则需要查看第二个文件。


3、注意事项

如果 --cgroup-driver 未设置,默认使用 cgroupfs 驱动程序。

如果已经设置 --cgroup-driver 参数,则可以从中获得当前使用的 Cgroup 驱动程序。

### Kubernetes使用 Containerd 作为容器运行时的配置教程 #### 前期准备 在开始之前,确保所有节点已完成必要的环境准备工作。这包括但不限于更新软件包、关闭防火墙和 SELinux、禁用 swap 分区以及启用 IPVS 和 iptables 支持。 1. 更新软件包 所有节点都需要执行以下命令来更新系统软件包: ```bash sudo apt update && sudo apt upgrade -y ``` 2. 关闭防火墙、SELinux 和 Swap 分区 确保安全设置不会干扰 Kubernetes 的正常工作: ```bash sudo systemctl stop firewalld && sudo systemctl disable firewalld sudo setenforce 0 && sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config sudo swapoff -a && (grep -q '^/swapfile' /etc/fstab && sed -i '/^\/swapfile/d' /etc/fstab || true) ``` 3. 启用桥接 IPv4 流量传递到 iptables 链 修改 `/etc/sysctl.conf` 文件并加载新参数: ```bash echo "net.bridge.bridge-nf-call-iptables = 1" | sudo tee -a /etc/sysctl.conf sysctl --system ``` 4. 开启 IPVS 模块 加载所需的内核模块以支持 IPVS: ```bash modprobe br_netfilter ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack_ipv4 cat <<EOF | sudo tee /etc/modules-load.d/ipvs.conf br_netfilter ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh nf_conntrack_ipv4 EOF ``` --- #### 安装 Containerd 并配置为 Kubernetes 默认容器运行时 1. 安装 Containerd 下载官方脚本或手动编译安装 Containerd: ```bash curl -fsSL https://get.containers/project/install.sh | sh - sudo systemctl enable --now containerd ``` 2. 配置 Containerd 编辑 `config.toml` 文件以适配 Kubernetes 的需求: ```toml [plugins."io.containerd.grpc.v1.cri"] sandbox_image = "registry.k8s.io/pause:3.6" [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] runtime_type = "io.containerd.runc.v2" ``` 如果需要自定义镜像仓库地址,则可以在 `[plugins."io.containerd.grpc.v1.cri".registry]` 部分添加相关内容[^5]。 3. 设置 Cgroup Driver 为 systemd 修改 Kubelet 的默认 cgroup driver 以便与 Containerd 协同工作: ```bash mkdir -p /etc/systemd/system/kubelet.service.d/ cat <<EOF | sudo tee /etc/systemd/system/kubelet.service.d/10-kubeadm.conf Environment="KUBELET_EXTRA_ARGS=--cgroup-driver=systemd" EOF systemctl daemon-reload && systemctl restart kubelet ``` --- #### 安装 Kubernetes 组件 1. 添加 Kubernetes APT 源 导入 GPG key 并注册官方源: ```bash curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt-get update ``` 2. 安装核心组件 包括 `kubectl`, `kubeadm`, 和 `kubelet`: ```bash sudo apt install -y kubectl kubeadm kubelet ``` 3. 初始化 Master 节点 使用 `kubeadm init` 来初始化集群,并指定 Containerd 作为运行时: ```bash sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --cri-socket=/run/containerd/containerd.sock ``` 4. 配置 kubeconfig 文件 将管理员权限赋予当前用户: ```bash mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` 5. 安装网络插件(如 Calico 或 Flannel) 应用 YAML 文件部署网络层服务: ```bash kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml ``` 6. 加入 Worker 节点 获取加入令牌并通过以下命令让 worker 节点连接至 master: ```bash kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash> ``` --- #### 私有镜像库的支持 如果希望从私有的 Harbor 镜像仓库拉取镜像,在 Pod Spec 中需提供认证信息。可以通过 Secret 对象存储凭证数据[^4]。 ```yaml apiVersion: v1 kind: Secret metadata: name: regcred type: kubernetes.io/dockerconfigjson data: .dockerconfigjson: <base64-encoded-auth-file> ``` 随后关联该 Secret 至目标 Deployment: ```yaml spec: containers: imagePullSecrets: - name: regcred ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王雀跃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值