IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    k8s 部署踩坑合集

    泠泫凝发表于 2024-02-28 07:05:00
    love 0

    个人学习部署使用K8S时的踩坑合集。

    切记先关了 swap

    1. 查看swap状态:
      1
      2
      3
      4
      root@k8s-learn-n1:/home/kawaii# free -h
      total used free shared buff/cache available
      Mem: 7.8Gi 301Mi 5.9Gi 1.0Mi 1.5Gi 7.2Gi
      Swap: 0B 0B 0B
      如果Swap后面值不为0,则需要先关闭Swap。
    2. 禁用Swap:
      1
      swapoff -a
    3. 别忘了禁用/etc/fstab里面的swap挂载。

    部署重置

    如果第一次初始化过程中出了问题可以用下面的命令重置,但其实不会删除包含个性化配置的配置文件。

    1
    kubeadm reset

    init时无法连接Google服务器

    在 init 命令中添加阿里云镜像:--image-repository registry.aliyuncs.com/google_containers。例如:

    1
    2
    3
    4
    kubeadm init \
    --apiserver-advertise-address=192.168.20.151 \
    --image-repository registry.aliyuncs.com/google_containers \
    --pod-network-cidr=10.244.0.0/16

    Preflight时不支持CRI v1 API

    一般这个会出现在从源安装Docker后的默认情况下,打开/etc/containerd/config.toml,取消注释其中的disabled_plugins = ["cri"]行启用CRI集成插件,然后重启containerd(systemctl restart containerd)。

    跳过所有Preflight

    不推荐。可以使用--ignore-preflight-errors=all跳过预检:

    1
    kubeadm init [...] --ignore-preflight-errors=all

    修改CGroupDriver

    在/etc/docker/daemon.json中添加:

    1
    2
    3
    {
    "exec-opts": ["native.cgroupdriver=systemd"]
    }

    然后重启docker和containerd,重启之后可以用如下命令看一下有没有修改成功:

    1
    2
    3
    4
    root@VM-16-2-ubuntu:~# docker info | grep Cgroup
    WARNING: No swap limit support
    Cgroup Driver: systemd
    Cgroup Version: 1

    kubelet起不来

    表现为报错:

    1
    2
    3
    I0228 14:52:31.056862   20490 waitcontrolplane.go:83] [wait-control-plane] Waiting for the API server to be healthy
    [wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory "/etc/kubernetes/manifests". This can take up to 4m0s
    [kubelet-check] Initial timeout of 40s passed.

    解决方案是编辑一下/lib/systemd/system/kubelet.service,找到如下行添加启动参数:

    1
    2
    [Service]
    ExecStart=/usr/bin/kubelet --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml

    然后重启,重启后先kubeadm reset重置,然后重新init即可。



沪ICP备19023445号-2号
友情链接