node节点运行kubeadm join后master节点运行kubectl get node不显示node节点

node节点运行kubeadm join后master节点运行kubectl get node不显示node节点_第1张图片

kubeadm init运行报错:[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1,解决方法如下:

echo "1" > /proc/sys/net/bridge/bridge-nf-call-iptables

/usr/bin/kubeadm init --kubernetes-version=v1.18.0 \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.1.0.0/16 \
--apiserver-advertise-address=192.168.1.234 \
--image-repository registry.aliyuncs.com/google_containers


kubeadm join 192.168.1.234:6443 --token 8yzeht.r1r5shaonusbydai \
--discovery-token-ca-cert-hash sha256:e69f646d1fb5f398abb3e10801adb5f7a5af2eb4b5aa300a22b59d7443892e88

成功加入到集群中后kubectl get nodes只显示主节点不显示从节点

通过观察NAME发现,主节点和从节点的主机名都是localhost.localdomain,加入到集群中后三个节点同名因此只显示一个,解决方法:

更改所有节点的主机名,便于区分:

master节点:hostnamectl --static set-hostname k8s-master
node1节点:hostnamectl --static set-hostname k8s-node1
node2节点:hostnamectl --static set-hostname k8s-node2
重启后生效,也可以运行hostname $hostname直接生效
再重新执行kubeadm init和kubeadm join操作就可以看到节点成功显示

node节点运行kubeadm join后master节点运行kubectl get node不显示node节点_第2张图片

会发现Kubernetes提示Master为NotReady状态,这是因为还没有安装CNI网络插件:
对于CNI网络插件,可以有许多选择,请参考https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#pod-network的说明。这里我选择的flannel:
wget https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml
修改kube-flannel.yml:
vim kube-flannel.yml
修改的地方如下所示:
......
containers:
      - name: kube-flannel
        image: quay.io/coreos/flannel:v0.11.0-amd64
        command:
        - /opt/bin/flanneld
        args:
        - --ip-masq
        - --kube-subnet-mgr
        - --iface=eth1 # 新增部分
......
kubectl create -f kube-flannel.yml
输出如下所示时,表示安装成功:

node节点运行kubeadm join后master节点运行kubectl get node不显示node节点_第3张图片

你可能感兴趣的:(node节点运行kubeadm join后master节点运行kubectl get node不显示node节点)