到这里购买安装包1.8.1
注意1.9.2安装方式见商品页面,与1.8.1有点差别,做一些配置和脚本的优化
安装
- master节点执行init-master.sh
- node节点执行init-node.sh
- node节点执行master输出的kubeadm join命令
选装,dashboard,master安装完就可以装这个了,这样dashboard不会调度到node节点:
执行init-dashboard.sh
把type:ClusterIP改成 NodePort 然后访问dashboard所在节点+端口号即可。
没有然后了,任何问题联系我,100%安装成功。
常见问题
kubelet服务启动不了?
cgroup driver配置要相同
查看docker cgroup driver:
docker info|grep Cgroup
有systemd和cgroupfs两种,把kubelet service配置改成与docker一致
vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
KUBELET_CGROUP_ARGS=–cgroup-driver=cgroupfs #这个配置与docker改成一致
节点not ready ?
建议安装calico网络,如果要把主节点当成node节点需要加个命令:
[root@dev-86-202 ~]# kubectl taint nodes --all node-role.kubernetes.io/master-
dashboard 访问不了?
如果是NodePort方式访问,那需要知道dashboard服务具体调度到哪个节点上去了。访问那个节点的ip而不是master的ip。
不行的话把https 改成http试试。
查看具体在哪个节点
kubectl get pod -n kube-system -o wide
拉取镜像失败?
可以把node节点与master节点的镜像都在每个节点load一下。
dashboard crash, dns起不来?
可以把node节点与master节点的镜像都在每个节点load一下。
192.168网段与calico网段冲突?
如果你恰好也是192.168网段,那么建议修改一下calico的网段
这样init
kubeadm init --pod-network-cidr=192.168.122.0/24 --kubernetes-version v1.8.1
修改calico.yaml
- name: FELIX_DEFAULTENDPOINTTOHOSTACTION
value: "ACCEPT"
# Configure the IP Pool from which Pod IPs will be chosen.
- name: CALICO_IPV4POOL_CIDR
value: "192.168.122.0/24"
- name: CALICO_IPV4POOL_IPIP
value: "always"
# Disable IPv6 on Kubernetes.
- name: FELIX_IPV6SUPPORT
value: "false"
dns 半天起不来?
dns镜像如果load成功了的话,可能是机器配置太低,起的会非常慢,有朋友 单核2G上15分钟没启动成功。 建议双核4G以上资源
kubelet unhealthy?
[kubelet-check] The HTTP call equal to 'curl -sSL http://localhost:10255/healthz/syncloop' failed with error: Get http://localhost:10255/healthz/syncloop: dial tcp 127.0.0.1:10255: getsockopt: connection refused.
[kubelet-check] It seems like the kubelet isn't running or healthy.
可能是manifast已经存在,删除即可:
[root@dev-86-205 kubeadm]# rm -rf /etc/kubernetes/manifests
时间超过24小时,节点加不进去?
[root@dev-86-208 test]# kubeadm token create
[kubeadm] WARNING: starting in 1.8, tokens expire after 24 hours by default (if you require a non-expiring token use --ttl 0)
887ac7.e82f0e13ad72c367
上面命令重新生成一下token,执行kubeadm join 时用上面的token替换一下,如果想永远不过期init时把ttl设置成0
–token-ttl duration