-
Notifications
You must be signed in to change notification settings - Fork 2
Kubenate 安装时遇到的问题
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 要根据需求改的)
- 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
- 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
- 如果忘记工作节点加入集群的命令,可用如下命令获取
kubeadm token create --print-join-command
- swap 永久关闭
查看是否关闭:
free -h
然后输入 vi /etc/fstab
将swap那行注释掉。
- /proc/sys/net/ipv4/ip_forward 无权写入
修改 /etc/sysctl.conf 文件,加入以下一行:
net.ipv4.ip_forward=1
然后执行/sbin/sysctl -p
刷新。
- LoadBalancer service 不生效
部署 LoadBalancer 有时会出现 External-IP 一直处于 pending , 指定 External-IP 后任然没法从外网访问. 原因是自建的 Kubernetes 集群(minikube、kubeadm等),没有集成 LoadBalancer.
此处 用 metallb 解决此问题.
Hi