Skip to content

Kubenate 安装时遇到的问题

xiaoke_1256 edited this page Aug 24, 2023 · 23 revisions

Home >> Kubenate 笔记 >> Kubenate-安装配置

具体安装过程请参考: 这里

ip变掉后重置请看 这里

0.初始化命令:

sudo kubeadm init --apiserver-advertise-address=192.168.1.7 --image-repository=registry.aliyuncs.com/google_containers --kubernetes-version=v1.16.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap

(注意:apiserver-advertise-address 要根据需求改的)

  1. sudo kubeadm init 命令时发现 /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1

具体提示信息如下:

[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1 

先赋予/etc/sysctl.conf文件写权限,然后执行以下命令:

$ echo "net.bridge.bridge-nf-call-iptables=1" >> /etc/sysctl.conf
$ echo "net.bridge.bridge-nf-call-ip6tables=1" >> /etc/sysctl.conf
 
$ sysctl -p /etc/sysctl.conf
  1. Master(或 Worker) 节点NotReady 的问题

刚刚执行完kubeadm init命令时发现此问题。用journalctl -u kubelet | tail -n 300命令查日志,发现如下提示:

Unable to update cni config: No networks found in /etc/cni/net.d

解决方法:新增文件 /etc/cni/net.d/10-flannel.conflist,内容如下:

{
  "cniVersion": "0.3.1",
  "name": "cbr0",
  "plugins": [
    {
      "type": "flannel",
      "delegate": {
        "hairpinMode": true,
        "isDefaultGateway": true
      }
    },
    {
      "type": "portmap",
      "capabilities": {
        "portMappings": true
      }
    }
  ]
}

systemctl restart kubelet命令重启kubelet。

如果在work节点,用journalctl -u kubelet | tail -n 300命令,发现了如下提示:

failed to find plugin “flannel” in path [/opt/cni/bin]

则需要安装 cni 插件。具体查看这里

下载cni插件并解压缩后复制 flannel 目录到 /opt/cni/bin/。

如果用journalctl -u kubelet | tail -n 300命令,发现了如下提示:

unknown container “/system.slice/docker.service“

请看这里

如果用journalctl -u kubelet | tail -n 300命令,发现了如下提示:

failed to find plugin \"portmap\" in path [/opt/cni/bin]

那就是因为相关组件未安装。执行以下语句安装组件:

yum clean all
yum install kubernetes-cni -y
  1. 如果忘记工作节点加入集群的命令,可用如下命令获取
kubeadm token create --print-join-command
  1. swap 永久关闭

查看是否关闭:

free -h

然后输入 vi /etc/fstab 将swap那行注释掉。

  1. /proc/sys/net/ipv4/ip_forward 无权写入

修改 /etc/sysctl.conf 文件,加入以下一行:

net.ipv4.ip_forward=1

然后执行/sbin/sysctl -p 刷新。

  1. LoadBalancer service 不生效

部署 LoadBalancer 有时会出现 External-IP 一直处于 pending , 指定 External-IP 后任然没法从外网访问. 原因是自建的 Kubernetes 集群(minikube、kubeadm等),没有集成 LoadBalancer.

此处 用 metallb 解决此问题.