cookeem / kubeadm-ha

通过kubeadm安装kubernetes高可用集群,使用docker/containerd容器运行时,适用v1.24.x以上版本
MIT License
678 stars 275 forks source link

v1.11.1 安装部署问题,pod创建失败 #35

Closed salwell closed 6 years ago

salwell commented 6 years ago

@cookeem 大神好,一直在关注您的k8s安装教程,我这边试了一下v1.11.1-ha的搭建,安装到keeplived、nginx-lb为止的一些列步骤都成功了,很赞!中间有部分问题,自行解决了,到部署metics-server和dashboard时提示创建失败,podIp未分配,不知是什么原因,我把相关日志截图给您看看,怀疑是防火墙问题,我把3个master防火墙都停掉了,但问题依旧

1

2

3

cookeem commented 6 years ago

网络组件没有起来caliconode应该是2/2 RUNNING才是正常,建议你先测试一下单机情况下网络组件是否起来,这种情况很有可能你证书创建环节有问题

salwell commented 6 years ago

我全部kubeadm reset后,重新安装单master,网络组件可以起来,部署dashboard没问题,然后再加入第2个master,也很顺利,加完后部署influxdb、grafana也都ok,如图 4 后来加入第3个节点后,在全部running情况下 修改kube-proxy的server 为keepalive的vip后出现问题 ,部署pod失败,删掉原来的influxdb重现部署也会出现之前那种错误 6

salwell commented 6 years ago

kube-proxy修改的VIP: 8

不知道是不是keepalived设置有问题,以前没用过,curl -k https://192.168.1.111:6443 貌似正常 7

cookeem commented 6 years ago

你的calico配置有问题,检查create-config.sh以下选项配置是否正确

calico reachable ip address

export K8SHA_CALICO_REACHABLE_IP=192.168.60.1

salwell commented 6 years ago

我的3个master:192.168.1.58/131/89
VIP:192.168.1.111 export K8SHA_CALICO_REACHABLE_IP=192.168.1.1 export K8SHA_CIDR=172.168.0.0

以上配置有问题吗,calico reachable ip address没明白起什么作用

salwell commented 6 years ago

kubectl logs kube-apiserver-node89
kubectl logs kube-proxy-XXXX 9 10

提示都是证书错误,但是docker-compose启动的nginx没有转发apiserver的日志信息 如果把kube-proxy configmap server改成 master1的hostIP ,集群又能够恢复正常

cookeem commented 6 years ago

对于多网卡情况下, calico需要绑定一个特定的网卡接口,calico reachable ip address就是用于指定这个网卡接口,对应的ip地址就是这个网卡可达的ip地址。

cookeem commented 6 years ago

这个是证书设置错误喔,你的vip没有写在证书的SAN中啊。

参见create-config.sh这部分代码:

cat << EOF > config/$K8SHA_HOST1/kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1alpha2
kind: MasterConfiguration
kubernetesVersion: v1.11.1
apiServerCertSANs:
- ${K8SHA_HOST1}
- ${K8SHA_HOST2}
- ${K8SHA_HOST3}
- ${K8SHA_VHOST}
- ${K8SHA_IP1}
- ${K8SHA_IP2}
- ${K8SHA_IP3}
- ${K8SHA_VIP}
salwell commented 6 years ago

@cookeem 是我create-config.sh中- ${K8SHA_VHOST}写错IP了,一直没看到这块,太大意了- -!

cat << EOF > config/$K8SHA_HOST1/kubeadm-config.yaml apiVersion: kubeadm.k8s.io/v1alpha2 kind: MasterConfiguration kubernetesVersion: v1.11.1 apiServerCertSANs:

改对后全部集群ok!多谢

不过如果更换VIP,能不能在不重装k8s的情况下修改这个IP?

cookeem commented 6 years ago

那么执行证书更新那步就可以了,可以不重装的。 昨天github是不是有问题啊,提交完comment居然要第二天才看到